Giới thiệu
Đặt vấn đề
Hệ thống camera giám sát (CCTV) là giải pháp sử dụng một hoặc nhiều camera để ghi lại hình ảnh theo thời gian thực tại một địa điểm cụ thể Hình ảnh được truyền tải tới các màn hình và đầu ghi hình, bao gồm NVR (Network Video Recorder) và DVR (Digital Video Recorder) NVR nhận dữ liệu từ camera qua mạng internet, trong khi DVR sử dụng công nghệ analog thông qua cáp đồng trục coax Hệ thống này giúp nâng cao an ninh và giám sát hiệu quả cho các khu vực cần bảo vệ.
Hệ thống IP và đầu thu NVR đang trở thành lựa chọn phổ biến trong các hệ thống an ninh và bảo vệ tại các thành phố lớn, đặc biệt là ở các khu vực công cộng, nhờ vào những tính năng tiên tiến mà chúng cung cấp.
Các camera IP và NVR được kết nối trong cùng một mạng internet, cho phép chúng giao tiếp hiệu quả qua dây mạng hoặc wifi Điều này không chỉ đảm bảo sự ổn định trong kết nối mà còn giúp quá trình lắp đặt và mở rộng trở nên dễ dàng hơn.
Dữ liệu được tiền xử lý ngay tại camera trước khi được truyền đến đầu ghi NVR, giúp giảm thiểu tài nguyên cần thiết cho việc lưu trữ.
Đầu ghi số tích hợp nhiều tính năng phức tạp hơn đầu ghi analog nhờ kết nối với trung tâm xử lý dựa trên điện toán đám mây, từ đó mở rộng khả năng phân tích và xử lý dữ liệu.
Hệ thống có thể được xem và điều khiển từ xa thông qua internet, trên các nền tảng khác nhau như máy tính, điện thoại thông minh…
Tuy nhiên, các hệ thống hiện tại vẫn còn nhiều hạn chế, không thể đáp ứng đầy đủ nhu cầu ngày càng tăng của người dùng.
Hầu hết các hệ thống camera hiện nay chỉ cung cấp những tính năng cơ bản như quan sát trực tiếp, lưu trữ và xem lại video khi cần thiết Thiếu vắng các chức năng thông minh và khả năng tự động khai thác thông tin hình ảnh, điều này hạn chế hiệu quả sử dụng của camera trong việc nâng cao an ninh và giám sát.
Mặc dù các tính năng thông minh có mặt, nhưng chúng thường rất hạn chế; hầu hết các nhà cung cấp hệ thống chỉ tích hợp tính năng phát hiện chuyển động trong khu vực quan sát của camera.
Các tính năng của hệ thống camera hoàn toàn phụ thuộc vào nhà cung cấp Việc truyền tải hình ảnh đến trung tâm xử lý tiềm ẩn nguy cơ rò rỉ dữ liệu cao Thực tế cho thấy nhiều video của người dùng đã bị phát tán trên các trang web không chính thống.
Các hệ thống camera được lắp đặt ở nhiều vị trí khác nhau và do các nhà cung cấp khác nhau cung cấp, nhưng điểm chung là tất cả đều kết nối internet Để tổng hợp và sử dụng dữ liệu từ các hệ thống camera này, cần có một nền tảng trung gian để kết nối và quản lý dữ liệu hiệu quả.
Hình 1.1 Các hệ thống camera ở các vị trí khác nhau
Hiện nay, có nhu cầu cấp thiết trong việc thiết kế một hệ thống tối ưu hóa việc sử dụng dữ liệu từ các camera giám sát khác nhau Hệ thống này cần đáp ứng các tiêu chí hiệu quả và khả thi.
Có thể kết nối với các hệ thống camera khác nhau, không phụ thuộc vào nhà cung cấp thiết bị
Hệ thống này đóng vai trò là cầu nối giữa camera giám sát và ứng dụng thông minh, với thiết kế đảm bảo tính dễ dàng kết nối (Plug and Play) cho cả hai phía.
Hệ thống camera cho phép thu nhận và lưu trữ thông tin ngữ nghĩa một cách linh hoạt, giúp dễ dàng tìm kiếm và tối ưu hóa hiệu suất đọc/ghi vào cơ sở dữ liệu.
Hệ thống cần đảm bảo tính bảo mật thông tin và quyền riêng tư, đặc biệt là đối với video thu nhận từ camera Việc truyền dữ liệu video lên đám mây tập trung có thể dẫn đến rủi ro rò rỉ thông tin, ảnh hưởng trực tiếp đến người dùng Do đó, nền tảng phải thiết lập cơ chế xử lý phù hợp để bảo vệ thông tin và quyền riêng tư của người dùng.
Các nghiên cứu liên quan
Trên toàn cầu, nhiều công ty đang phát triển giải pháp camera giám sát thông minh IC Realtime (Mỹ) cung cấp camera an ninh tích hợp công nghệ học sâu và tìm kiếm video qua ngôn ngữ tự nhiên Xiaomi (Trung Quốc) mang đến thiết bị IP camera cho cá nhân, sử dụng trí tuệ nhân tạo để phát hiện chuyển động bất thường và lưu trữ dữ liệu trên đám mây HikVision (Trung Quốc) cung cấp phần cứng như camera và thiết bị tính toán thông minh, kết hợp với dịch vụ điện toán đám mây Các giải pháp này được ứng dụng trong các lĩnh vực như thành phố thông minh, giao thông thông minh, và an ninh cộng đồng Trung Quốc đang triển khai hàng triệu camera giám sát trên toàn quốc, đặc biệt tại thành phố Guiyang với hệ thống nhận diện khuôn mặt AI, đã chứng minh hiệu quả khi phát hiện phóng viên BBC chỉ trong bảy phút.
Hệ thống camera giám sát tự động dựa trên kiến trúc cloud, được phát triển trên nền tảng FIWARE, có khả năng thu thập và xử lý dữ liệu từ camera qua mạng, nhằm giải quyết các vấn đề an ninh và lưu trữ sự kiện, đồng thời cung cấp cảnh báo sớm về hành vi bất thường Tuy nhiên, việc lưu trữ và quản lý luồng thông tin liên tục từ các cảm biến và camera trong các ứng dụng IoT vẫn là một thách thức lớn Để đảm bảo thông tin được xử lý theo thời gian thực và có thể truy vấn, cần phải lưu trữ dữ liệu trong cơ sở dữ liệu Việc gia tăng lượng dữ liệu lớn và liên tục vào cơ sở dữ liệu chính là nút nghẽn cổ chai đầu tiên của hệ thống IoT Nghiên cứu đã đề xuất một Framework cho phép áp dụng công nghệ xử lý dữ liệu thô vào quản lý luồng dữ liệu từ các cảm biến IoT, thay vì sử dụng dữ liệu SQL truyền thống, nhằm cải thiện vấn đề này Hệ thống quản lý dữ liệu thô bao gồm bốn thành phần chính: In-situ Query Engine.
+ DBMS, In-memory storage, Raw data files, và Streaming Data & Query
Management In-situ Query Engine + DBMS nhằm mục đích tạo ra câu lệnh truy vấn
SQL truyền thống có thể áp dụng cho các hệ thống in-situ query engine, trong khi việc xử lý câu lệnh truy vấn được thực hiện riêng biệt In-memory storage lưu trữ dữ liệu hiện tại hoặc dữ liệu thường xuyên sử dụng, và raw data files là dữ liệu thô từ các cảm biến IoT, thường ở định dạng CSV, JSON hoặc XML Streaming Data & Query Management xử lý và chuẩn hóa luồng dữ liệu, lưu trữ dưới dạng Raw và thực hiện truy vấn từ query engine Hệ thống PgRAW cho thấy cải thiện hiệu suất 99.5% cho việc thêm dữ liệu và 57% cho truy vấn so với PgSQL, mặc dù chỉ giải quyết một phần vấn đề trong nghiên cứu Đề xuất sử dụng NoSQL cho lưu trữ và quản lý dữ liệu có ý nghĩa lớn, đặc biệt tại Việt Nam, nơi hệ thống camera giám sát chỉ hỗ trợ lưu trữ video mà không tích hợp khả năng khai thác thông tin ngữ nghĩa, gây cản trở cho việc phát triển các ứng dụng xã hội thông minh và thành phố thông minh.
Những đóng góp của luận văn
Luận văn này nghiên cứu và xây dựng hệ thống CamNet, cho phép trích rút, lưu trữ và truy xuất thông tin ngữ nghĩa từ camera giám sát, đáp ứng các tiêu chí đã nêu Hệ thống CamNet được phát triển dựa trên nền tảng mã nguồn mở FIWARE, cung cấp thông tin như một dịch vụ, cho phép các ứng dụng thông minh đa nền tảng tìm kiếm dữ liệu với quyền truy cập phù hợp Ngoài ra, luận văn còn phát triển ứng dụng tích hợp CamNet vào bản đồ HERE Maps trên Android, giúp tài xế tìm bãi đỗ xe còn trống gần nhất, nhằm giải quyết vấn đề xã hội cấp thiết và chứng minh tính ứng dụng thực tiễn của hệ thống.
Cấu trúc luận văn
Phần tiếp theo của luận văn được chia thành 3 chương như dưới đây:
Chương 2 Cung cấp kiến thức cơ bản về nền tảng FIWARE được sử dụng để xây dựng hệ thống CamNet
Chương 3 Diễn giải thiết kế và cài đặt hệ thống
Chương 4 Phát triển ứng dụng tìm bãi đỗ xe và đánh giá kết quả
Cuối cùng là kết luận và hướng phát triển trong tương lai của hệ thống.
Tổng quan về nền tảng FIWARE
Orion Context Broker
Orion Context Broker là một triển khai C++ của NGSIv2 REST API, giúp quản lý thông tin ngữ nghĩa và tính khả dụng của nó Công cụ này cho phép quản lý toàn bộ vòng đời của thông tin ngữ nghĩa, từ việc tạo ra, cập nhật đến xóa bỏ thông tin.
Orion Context Broker lưu trữ và cập nhật thông tin ngữ nghĩa từ các ứng dụng, cho phép các truy vấn được giải quyết dựa trên dữ liệu này Thông tin ngữ nghĩa bao gồm các thực thể như camera giám sát và các thuộc tính liên quan, chẳng hạn như vị trí của camera và số lượng người được ghi nhận trong hình ảnh.
Cập nhật thông tin ngữ nghĩa: Ví dụ như gửi thông tin cập nhật về số lượng người trong khu vực
Nhận thông báo khi có thay đổi về thông tin ngữ nghĩa: Ví dụ như khi số lượng người trong khu vực đã thay đổi
Cần bổ sung thông tin ngữ nghĩa từ các nhà cung cấp mới, chẳng hạn như tích hợp dữ liệu từ hệ thống camera của tòa nhà Keangnam vào hệ thống hiện tại để nâng cao hiệu quả quản lý và giám sát.
Orion Context Broker hoạt động dựa trên API NGSIv2 và sử dụng cơ sở dữ liệu MongoDB Bài viết này sẽ giới thiệu chi tiết về các thành phần và cách thức hoạt động của nó.
MongoDB là một cơ sở dữ liệu mã nguồn mở được thiết kế theo kiểu hướng đối tượng, cho phép cấu trúc bảng linh hoạt mà không cần tuân theo một định dạng cố định Nhờ vào tính linh hoạt này, MongoDB thích hợp để lưu trữ các dữ liệu phức tạp, đa dạng và không cố định Những ưu điểm nổi bật của MongoDB bao gồm khả năng mở rộng dễ dàng, hiệu suất cao và hỗ trợ cho các loại dữ liệu phong phú.
MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON, mang lại sự linh hoạt cao trong việc quản lý dữ liệu Người dùng có thể dễ dàng thêm bất kỳ thông tin nào vào cơ sở dữ liệu mà không gặp phải những hạn chế như trong các hệ quản trị cơ sở dữ liệu truyền thống.
MongoDB không yêu cầu ràng buộc lẫn nhau và không hỗ trợ join như các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS), do đó, việc thêm, xóa hoặc sửa dữ liệu diễn ra nhanh chóng mà không cần kiểm tra các ràng buộc dữ liệu.
MongoDB nổi bật với khả năng mở rộng dễ dàng thông qua tính năng mở rộng ngang (Horizontal Scalability) Hệ thống này sử dụng khái niệm cluster, bao gồm các node chứa dữ liệu có khả năng giao tiếp lẫn nhau Khi cần mở rộng hệ thống, người dùng chỉ cần thêm một node vào cluster.
Trường dữ liệu “id” luôn được tự động đánh index (chỉ mục) để tốc độ truy vấn thông tin đạt hiệu suất cao nhất
MongoDB nổi bật với hiệu năng cao, cho phép tốc độ truy vấn (tìm kiếm, cập nhật, chèn, xóa) nhanh hơn đáng kể so với các hệ quản trị cơ sở dữ liệu quan hệ Các thử nghiệm cho thấy, với một lượng dữ liệu lớn, tốc độ chèn của MongoDB có thể nhanh gấp 100 lần so với MySQL, chứng minh sự vượt trội của nó trong việc xử lý dữ liệu.
Hình 2.1 So sánh tốc độ truy vấn của Mongo và SQL
MongoDB có các tính chất lý tưởng cho việc lưu trữ và quản lý dữ liệu phi cấu trúc từ các thiết bị IoT, vì vậy nó được lựa chọn làm cơ sở dữ liệu cho Orion Context Broker.
2.1.2 NGSI-v2 API và cách thức hoạt động
FIWARE NGSI, viết tắt của Next Generation Service Interface, với phiên bản thứ hai là NGSIv2, cho phép quản lý thông tin ngữ nghĩa hiệu quả Giả sử có một tòa nhà với các phòng như Room1, Room2, Room3, mỗi phòng được trang bị cảm biến nhiệt độ và độ ẩm Ngoài ra, có hai chiếc xe hơi (Car1 và Car2) với cảm biến cung cấp thông tin về tốc độ và vị trí Orion Context Broker sẽ tương tác với cả nguồn cung cấp dữ liệu (cảm biến) và nguồn sử dụng dữ liệu (các ứng dụng thông minh) để xử lý và đưa ra quyết định dựa trên dữ liệu ngữ nghĩa, tất cả đều thông qua NGSIv2 API.
Hình 2.2 Mô hình hoạt động của Orion Context Broker Để làm được điều đó, FIWARE NGSI API định nghĩa được: Mô hình dữ liệu
Mô hình dữ liệu cho dữ liệu ngữ nghĩa sử dụng khái niệm thực thể ngữ nghĩa và Lớp giao tiếp dữ liệu ngữ nghĩa để trao đổi thông tin qua các hoạt động truy vấn, đăng ký và cập nhật Mỗi thực thể trong mô hình dữ liệu được thể hiện bằng một đối tượng JSON với các cú pháp cụ thể.
Định danh của thực thể (id) được chỉ định bởi thuộc tính id của đối tượng, có giá trị là một chuỗi (String)
Loại thực thể (type) được chỉ định bởi thuộc tính type của đối tượng, có giá trị là một chuỗi (String)
Các thuộc tính của thực thể được xác định thông qua các thuộc tính bổ sung, bao gồm tên thuộc tính và giá trị tương ứng Cần lưu ý rằng "id" và "type" không được sử dụng làm tên thuộc tính.
Dưới đây là một ví dụ của một thực thể mô hình dữ liệu:
Giả sử phòng 1 có nhiệt độ phòng là 23 độ C, thì thực thể này được thể hiện như sau:
Lớp giao tiếp ngữ nghĩa cung cấp API cho phép trao đổi thông tin giữa nhà cung cấp dữ liệu và máy chủ, cũng như giữa máy chủ và các ứng dụng tiêu thụ dữ liệu Đối với nhà cung cấp dữ liệu ngữ nghĩa, như các cảm biến trong phòng và xe hơi, có nhiều hoạt động quan trọng diễn ra.
Append: POST /v2/entities (nếu chưa tồn tại thực thể) hoặc POST
/v2/entities//attrs (nếu thực thể đó đã tồn tại)
Update: PATCH /v2/entities//attrs để cập nhật giá trị của thuộc tính
Delete: DELETE /v2/entities//attrs/ để xóa các thuộc tính trong một thực thể hoặc DELETE /v2/entities/ để xóa cả thực thể
Replace: PUT /v2/entities//attrs để thay thế một thuộc tính
Khi hoạt động thành công, hệ thống sẽ trả về mã 200 OK, trong khi nếu thất bại, mã lỗi sẽ được cung cấp (khác với mã 2-xx) cùng với nội dung lỗi Đối với các ứng dụng truy vấn dữ liệu, NGSIv2 hỗ trợ nhiều phương thức truy vấn như theo id, type, và các thuộc tính khác, đặc biệt là khả năng truy vấn theo vị trí và đăng ký nhận thông tin khi có sự thay đổi dữ liệu Để thực hiện truy vấn theo vị trí địa lý, người dùng cần sử dụng các tham số thích hợp.
Keyrock Identity Manager
Quản lý dữ liệu ngữ nghĩa trong Orion Context Broker hiện chưa được bảo mật, cho phép mọi người dùng truy vấn và sửa đổi thông tin ngữ nghĩa Để giải quyết vấn đề này, FIWARE đã phát triển Keyrock Identity Manager, một GE hoạt động như trung gian giữa người dùng và Orion Context Broker, nhằm quản lý quyền và xác thực người sử dụng Tương tự như tài khoản Google, tài khoản Keyrock cung cấp định danh và quyền truy cập vào tất cả các GE của FIWARE, bao gồm cả Orion Context Broker.
Hình 2.3 Hệ sinh thái Google và FIWARE
Các khái niệm về quản lý danh tính của Keyrock được thể hiện ở bảng 2.4 Đối tượng Mô tả
Người dùng (Users) Có tài khoản đã đăng ký Keyrock
Có thể quản lý các tổ chức và đăng ký ứng dụng
Là nhóm người dùng chia sẻ tài nguyên của một ứng dụng (các quyền và vai trò)
Người dùng có thể là thành viên hoặc chủ sở hữu (quản lý tổ chức) Ứng dụng
Có vai trò là khách hàng trong kiến trúc OAuth 2.0 và sẽ yêu cầu dữ liệu người dùng đã được bảo vệ
Có thể xác thực người dùng dựa vào thông tin xác thực của họ Định nghĩa các quyền và vai trò để quản lý người dùng và tổ chức
Bảng 2.3 Các khái niệm quản lý danh tính trong keyrock
Keyrock cung cấp giao diện người dùng (GUI) và API, với kiến trúc bao gồm Front-End sử dụng Horizon và Back-End sử dụng Keystone, cùng với cơ sở dữ liệu MySQL Do các yêu cầu về dữ liệu ngữ nghĩa, dữ liệu định danh và quyền người dùng có nhiều ràng buộc chặt chẽ, nên Keyrock phù hợp hơn với cơ sở dữ liệu MySQL truyền thống.
Horizon là một dự án dựa trên nền tảng Django, cung cấp bảng điều khiển web cho các dịch vụ OpenStack như Nova và Swift FIWARE đã tùy biến Horizon để đáp ứng yêu cầu của hệ thống Keyrock, tích hợp các công nghệ bảo mật như Oauth2 Driver, reCAPTCHA và AuthZForce Driver Ngoài ra, Keyrock còn cung cấp giao diện người dùng cho cả tài khoản thường và tài khoản Admin.
The Keyrock login interface, as shown in Figure 2.5, is a customized version derived from the OpenStack Keystone project It serves as a service that provides essential mechanisms for authentication, authorization, and service discovery Keyrock connects to a MySQL database and includes advanced security features such as OAuth2, SCIM 2.0, and two-factor authentication.
Kết hợp Horizon và Keystone tạo ra một hệ thống quản lý định danh và quyền người dùng trực quan và dễ sử dụng Hệ thống cho phép cả người quản trị và người dùng cuối thực hiện hầu hết các thao tác qua giao diện đồ họa, bao gồm việc tạo tài khoản, đăng ký ứng dụng cần bảo vệ, cũng như định nghĩa và cấp quyền cho người dùng cuối.
Wilma PEP Proxy
FIWARE Wilma là một Policy Enforcement Point (PEP) giúp bảo vệ tài nguyên hệ thống bằng cách kiểm soát quyền truy cập sau khi xác thực tài khoản qua Keyrock Khi người dùng thực hiện truy vấn, Wilma hoạt động như một người gác cổng, nhận yêu cầu HTTP và thông tin xác thực từ Keyrock, sau đó xác thực và chuyển tiếp yêu cầu tới dịch vụ được bảo vệ như Orion Context Broker Đối với người dùng đã được xác nhận, độ trễ trong truy cập là rất nhỏ và kết quả tương tự như truy cập trực tiếp, trong khi người dùng trái phép sẽ nhận phản hồi lỗi 401-Unauthorized Nhờ vào cơ chế này, mọi truy vấn đến dịch vụ FIWARE được ẩn đi, bảo vệ dữ liệu khỏi những tác nhân không mong muốn Sự kết hợp giữa Wilma PEP proxy và Keyrock tạo ra một hệ thống xác thực và phân quyền người dùng hoàn chỉnh.
Hình 2.6 Cách thức hoạt động của Wilma PEP Proxy
Thiết kế và cài đặt hệ thống
Kiến trúc tổng quan hệ thống
Hệ thống CamNet kết hợp điện toán cạnh và điện toán đám mây, với trung tâm lưu trữ và quản lý dữ liệu được thiết kế như một nhà cung cấp dịch vụ hoàn toàn dựa trên mô hình điện toán đám mây Các thư viện FIWARE được sử dụng để xây dựng các thành phần của hệ thống, cho phép tùy chỉnh linh hoạt mà không tốn phí Mặc dù có nhiều nền tảng như Confluent và Google Cloud IoT Core cung cấp quản lý thông tin từ thiết bị IoT, nhưng chúng có tính phí và hạn chế can thiệp Việc thu nhận và trích rút thông tin từ camera giám sát gặp thách thức lớn về hiệu năng do độ phức tạp của thuật toán và số lượng camera gia tăng khi mở rộng hệ thống Do đó, quá trình này được thực hiện trên các máy chủ cạnh bên ngoài hệ thống điện toán đám mây Thiết kế hệ thống được mô tả chi tiết với từng khối có vai trò riêng, trong đó phân hệ lưu trữ dữ liệu ngữ nghĩa và quản lý định danh người dùng sử dụng các thư viện FIWARE, cùng với các thành phần thu nhận và trích rút thông tin từ camera.
Android kết nối với hệ thống CamNet (được trình bày ở chương 4) do tác giả tự phát triển
Hệ thống được thiết kế để thu nhận và trích xuất thông tin ngữ nghĩa từ hình ảnh qua camera giám sát, sử dụng các thuật toán phân tích ngữ nghĩa nhằm tạo ra dữ liệu ngữ nghĩa thô được lưu trữ trong cơ sở dữ liệu NoSQL Các thuật toán này đa dạng, phục vụ nhu cầu như phát hiện đám đông bất thường hay đoạn đường ngập lụt, chỉ truyền tải thông tin ngữ nghĩa mà không phải hình ảnh gốc Hệ thống lưu trữ dữ liệu ngữ nghĩa sử dụng thư viện FIWARE Orion Context Broker, tối ưu hóa hiệu năng đọc/ghi và linh hoạt trong truy vấn thông tin theo không gian, thời gian Phân hệ quản lý định danh và quyền người dùng kết hợp Keyrock Identity Manager và Wilma PEP Proxy, đảm bảo kết nối an toàn với dữ liệu ngữ nghĩa, yêu cầu xác thực đối với mọi truy vấn từ các ứng dụng khác nhau Ứng dụng kết nối có thể sử dụng tài khoản định danh để tìm kiếm thông tin hữu ích, hỗ trợ giải quyết các vấn đề như cảnh báo tắc đường hay ngập lụt Luận văn phát triển một ứng dụng bản đồ giúp người dùng tìm bãi đỗ xe gần nhất đến điểm đến.
Phân hệ thu nhận và trích rút thông tin ngữ nghĩa từ camera
Điện toán đám mây là mô hình cung cấp dịch vụ công nghệ thông tin qua Internet, cho phép người dùng truy cập mà không cần kiến thức chuyên sâu Tuy nhiên, sự bùng nổ của ứng dụng di động và Internet of Things (IoT), đặc biệt là các thiết bị cảm biến hình ảnh, đã đặt ra thách thức lớn cho kiến trúc điện toán đám mây hiện tại Việc kết nối và truyền tải dữ liệu từ hàng triệu thiết bị IoT đến máy chủ tập trung đang tạo ra áp lực lớn, yêu cầu các giải pháp mới để xử lý khối lượng dữ liệu khổng lồ này.
Độ trễ là một yếu tố quan trọng trong các ứng dụng IoT, đặc biệt khi yêu cầu thời gian thực cao Trong mô hình điện toán đám mây tập trung truyền thống, việc gửi dữ liệu đến trung tâm dữ liệu và nhận phản hồi có thể dẫn đến tăng độ trễ của hệ thống.
Truyền tải một lượng lớn dữ liệu từ các thiết bị IoT, như thiết bị thu nhận hình ảnh và video, lên đám mây theo thời gian thực tạo ra áp lực đáng kể lên băng thông mạng.
Tính khả dụng của dịch vụ điện toán đám mây ngày càng trở nên quan trọng trong cuộc sống hàng ngày, khi mà người dùng phụ thuộc vào sự sẵn sàng của các dịch vụ này Điều này đặt ra thách thức cho các hệ thống điện toán đám mây trong việc cung cấp dịch vụ liên tục 24/7.
Năng lượng: Trung tâm dữ liệu tiêu thụ rất nhiều năng lượng
Bảo mật và quyền riêng tư là mối quan tâm hàng đầu, khi dữ liệu của hàng ngàn hộ gia đình gắn liền với cuộc sống của họ Việc camera trong nhà truyền tải video lên đám mây có thể làm gia tăng nguy cơ rò rỉ thông tin cá nhân Do đó, việc tuân thủ Quy định bảo vệ dữ liệu chung của EU (GDPR) là rất quan trọng để bảo vệ quyền lợi của người dùng.
[10], các vấn đề bảo mật dữ liệu đã trở nên quan trọng hơn đối với các công ty điện toán đám mây
Điện toán cạnh (edge computing) đã phát triển mạnh mẽ từ năm 2014, đáp ứng nhu cầu xử lý dữ liệu ở rìa mạng Internet nhằm giảm độ trễ và phí băng thông, đồng thời tăng cường tính khả dụng và bảo vệ quyền riêng tư Mô hình này sử dụng tài nguyên của máy chủ cạnh gần thiết bị IoT và người dùng cuối, cho phép xử lý lượng lớn dữ liệu tạm thời tại rìa mạng, giảm áp lực lên băng thông và tiêu thụ điện của trung tâm điện toán đám mây Việc xử lý dữ liệu gần hệ thống cảm biến giúp giảm đáng kể độ trễ và nâng cao khả năng đáp ứng dịch vụ Hơn nữa, máy chủ cạnh lưu trữ dữ liệu riêng tư trên các thiết bị cạnh, giảm nguy cơ rò rỉ dữ liệu và bảo vệ an ninh cho người dùng.
Phân hệ thu nhận và trích rút thông tin từ camera của hệ thống CamNet sử dụng mô hình điện toán cạnh để xử lý dữ liệu video từ các hệ thống camera khác nhau Mỗi khu vực camera sẽ được trang bị một máy chủ cạnh để thu thập và trích xuất thông tin cần thiết, sau đó đẩy lên phân hệ lưu trữ đám mây Số lượng máy chủ cạnh có thể rất lớn và hiệu năng xử lý phụ thuộc vào phần cứng cục bộ, không ảnh hưởng đến hiệu suất toàn hệ thống Máy chủ cạnh linh hoạt kết nối với các hệ thống camera khác nhau, đảm bảo đầu ra dữ liệu ngữ nghĩa tuân thủ quy tắc chung, giúp việc đẩy dữ liệu lên đám mây diễn ra thuận lợi.
Hình 3.2 Các công việc được xử lý bởi một máy chủ cạnh
Hệ thống này sử dụng máy chủ cạnh để trích xuất thông tin về số ô đỗ xe còn trống từ hình ảnh, thu nhận ảnh từ luồng video qua thư viện FFMPEG Hình ảnh sau đó được xử lý bằng thuật toán đếm chỗ đỗ xe, cho ra kết quả là số lượng ô đỗ xe trống tại vị trí camera giám sát Kết quả sẽ được định dạng dưới dạng JSON, tuân thủ quy định của NGSIv2 Thiết kế dữ liệu JSON là chuẩn cho dữ liệu ngữ nghĩa trong toàn hệ thống, với các thực thể khác có thể điều chỉnh đối tượng phù hợp với từng yêu cầu cụ thể.
Hình 3.3 trình bày thiết kế dữ liệu JSON cho bài toán tìm bãi đỗ xe Bảng 3.1 dưới đây nêu rõ ý nghĩa của các đối tượng quan trọng, trong đó đối tượng "id" được xác định là "Cau_Giay_Dai_Hoc_".
Quoc_Gia là tên địa điểm đặt camera giám sát bãi đỗ xe, thuộc loại thực thể "Parking", cho thấy đây là dữ liệu liên quan đến việc tìm kiếm bãi đỗ xe Dữ liệu được ghi nhận vào lúc 15:23:55 ngày 08 tháng 01 năm 2020, với tổng số chỗ đỗ xe là 10, trong đó có 3 chỗ còn trống Tọa độ địa lý của hệ thống camera là 105.78556, 21.03655, tuân theo tiêu chuẩn quốc tế.
Bảng 3.1 Các đối tượng quan trọng của một thực thể dữ liệu
Dữ liệu đã được chuẩn hóa sẽ được chuyển từ máy chủ cạnh lên máy chủ quản lý dữ liệu ngữ nghĩa như đã nêu ở mục 3.3 Sau khi quá trình này hoàn tất, toàn bộ ảnh thu được sẽ được xóa tại máy chủ cạnh để bảo đảm an toàn thông tin người dùng.
Phân hệ lưu trữ, quản lý thông tin ngữ nghĩa
Phân hệ này chịu trách nhiệm lưu trữ dữ liệu từ máy chủ cạnh và cung cấp dữ liệu dưới dạng dịch vụ cho các ứng dụng thông minh, được thiết kế hoàn toàn dựa trên mô hình điện toán đám mây Hệ thống xử lý dữ liệu thô cho IoT rất phù hợp với việc lưu trữ và quản lý thông tin ngữ nghĩa từ các máy chủ cạnh, do đó, cơ sở dữ liệu của phân hệ phải là NoSQL với dữ liệu lưu trữ ở dạng RAW (JSON, XML ) Nhiệm vụ của phân hệ được phân chia rõ ràng giữa nhà cung cấp dữ liệu và bên sử dụng dữ liệu Nhà cung cấp dữ liệu cần cung cấp các API cho phép thêm, sửa, và xóa thực thể, trong khi bên sử dụng dữ liệu cần API để tìm kiếm dữ liệu linh hoạt, đặc biệt là theo không gian và thời gian Đối với các ứng dụng yêu cầu thông tin theo thời gian thực, phân hệ cũng phải có cơ chế thông báo khi có biến động về thực thể hoặc thuộc tính mà ứng dụng đã đăng ký.
Thư viện Orion Context Broker của FIWARE đáp ứng đầy đủ yêu cầu về lưu trữ và quản lý thông tin ngữ nghĩa Hình 3.4 minh họa thiết kế và hoạt động của Orion Context Broker Như đã nêu trong chương 2, Orion Context Broker sử dụng cơ sở dữ liệu MongoDB, với tất cả các truy vấn được thực hiện thông qua API NGSIv2.
Hình 3.4 Thiết kế và cách thức hoạt động của phân hệ lưu trữ, quản lý thông tin ngữ nghĩa
Orion Context Broker được cài đặt trên một máy chủ (server) cung cấp bởi công ty Digital Ocean với địa chỉ 165.22.62.250 và cấu hình như sau:
CPU: Intel(R) Xeon(R) Gold 6140 CPU @ 2.30GHz (1 CPU)
The module is installed using Docker and Docker Compose, linking the Orion Context Broker container with the MongoDB container The configuration settings include the MongoDB image version 3.6 with the command option set to nojournal, and the Orion image specified as fiware/orion.
Tất cả giao tiếp với phân hệ diễn ra qua cổng 1026 Dữ liệu ngữ nghĩa có thể được truy cập tại địa chỉ 165.22.62.250:1026/v2/entities, trong khi các ứng dụng có thể đăng ký theo dõi thực thể thông qua địa chỉ 165.22.62.250:1026/v2/subscription.
Broker hỗ trợ tìm kiếm theo vị trí địa lý một cách hiệu quả Ví dụ, để tìm bãi đỗ xe gần vị trí của xe hơi (lat, lon), người dùng có thể sử dụng dữ liệu ngữ nghĩa được thiết kế theo mục 3.2 Bằng cách thực hiện lệnh truy vấn: http://165.22.62.250:1026/v2/entities?coords=lat,lon, người dùng có thể dễ dàng xác định tất cả các bãi đỗ xe trong bán kính R (m).
&georel=near;maxDistance:R // tìm các thực thể trong bán kính R mét
&type=Parking // tìm các thực thể là bãi đỗ xe
&geometry=point // loại vị trí địa lý, ở đây là tọa độ một điểm
Phân hệ quản lý thông tin ngữ nghĩa dựa trên nền tảng Orion Context Broker đã đáp ứng hiệu quả các yêu cầu lưu trữ dữ liệu linh hoạt, hỗ trợ định dạng dữ liệu thô (RAW) Nó cung cấp API NGSIv2 tương thích cao với các nền tảng khác, cho phép người dùng dễ dàng tạo mới, xóa, cập nhật và truy vấn dữ liệu với các bộ lọc linh hoạt Đặc biệt, khả năng truy vấn theo vị trí địa lý của hệ thống mang lại giá trị lớn cho các ứng dụng IoT.
Phân hệ quản lý định danh và quyền người dùng
Hiện nay, yêu cầu về bảo mật và an toàn thông tin là điều bắt buộc đối với mọi hệ thống, đặc biệt là các hệ thống dựa trên điện toán đám mây Bảo mật hệ thống được phân thành hai vấn đề chính.
Để đảm bảo an toàn cho hệ thống, mọi người dùng đều phải xác minh danh tính bằng cách cung cấp tài khoản hợp lệ, bao gồm tên đăng nhập và mật khẩu Nếu không có tài khoản hợp lệ, người dùng sẽ không thể thực hiện bất kỳ hành động nào trong hệ thống.
Hệ thống CamNet yêu cầu xác định quyền của người dùng để đảm bảo rằng mỗi đối tượng tương tác có bộ quyền phù hợp với yêu cầu và mục đích của họ Với nhiều nguồn cấp dữ liệu khác nhau như dữ liệu bãi đỗ xe và dữ liệu đám đông, các ứng dụng tìm kiếm thông tin cần phải đáp ứng các mục tiêu tìm kiếm đa dạng Việc phân quyền này giúp tối ưu hóa trải nghiệm người dùng và đảm bảo an toàn cho hệ thống.
Sử dụng FIWARE Orion Context Broker cho trung tâm quản lý dữ liệu cho phép tích hợp Keyrock Identity Manager và Wilma PEP Proxy, tạo ra một bức tường bảo mật cho hệ thống Điều này bao gồm chức năng xác minh định danh người dùng và xác định quyền truy cập của họ, với sơ đồ hoạt động của phân hệ quản lý định danh và quyền người dùng được thể hiện rõ ràng.
Hình 3.5 Sơ đồ hoạt động của phân hệ quản lý định danh và quyền người dùng
Trung tâm dữ liệu Orion Context Broker được ẩn hoàn toàn phía sau các tác nhân sử dụng hệ thống Tất cả giao tiếp với Orion Context Broker diễn ra qua Wilma PEP Proxy Đầu tiên, các tác nhân cần yêu cầu access_token từ Keyrock với tài khoản hợp lệ Sau đó, họ sử dụng access_token này để gửi yêu cầu đến Wilma PEP Proxy, nơi sẽ xác minh access_token và chuyển tiếp yêu cầu đến Orion Context Broker Cuối cùng, Wilma nhận phản hồi từ Orion Context Broker và gửi lại cho tác nhân yêu cầu.
Trong luận văn này, Keyrock và Wilma được triển khai trên cùng một máy chủ với Orion Context Broker Tuy nhiên, để tăng cường khả năng bảo mật, có thể tách Orion Context Broker ra thành một máy chủ riêng, trong khi Keyrock và Wilma hoạt động trên một máy chủ khác Sơ đồ kết nối và các cổng giao tiếp của từng thành phần trong hệ thống CamNet được trình bày chi tiết trong hình 3.6.
Hình 3.6 Sơ đồ kết nối của hệ thống
Sau khi cài đặt Keyrock và Wilma, cần kết nối chúng với Orion Context Broker Tài khoản admin của Keyrock đã được định nghĩa trong quá trình cài đặt, cho phép thực hiện liên kết với Orion và thiết lập quyền cho các nhóm người dùng Để bảo vệ một ứng dụng FIWARE bằng Keyrock, ứng dụng đó phải được đăng ký trong Keyrock Applications Do đó, Orion Context Broker cần được thêm vào Keyrock dưới tên gọi Orion Service (Hình 3.7 Giao diện quản lý ứng dụng đã đăng ký trong Keyrock).
Hình 3.7 Giao diện quản lý ứng dụng đã đăng ký trong Keyrock
Sau đó, ta phải cài đặt các quyền cho từng đối tượng người dùng, đó là:
Quyền chỉ thêm mới hoặc cập nhật dữ liệu (Content Producer) dành cho nhà cung cấp dữ liệu ngữ nghĩa, tức là các máy chủ cạnh, cho phép họ thực hiện nhiệm vụ cung cấp dữ liệu cho hệ thống Do đó, chỉ có việc thêm mới hoặc cập nhật dữ liệu là được phép thực hiện.
Quyền truy vấn dữ liệu (Content Consumer) cho phép các ứng dụng kết nối với hệ thống CamNet chỉ được truy cập dữ liệu Các giới hạn quyền có thể được áp dụng cho từng ứng dụng, như giới hạn loại thực thể có thể truy vấn (ví dụ: chỉ cho phép truy vấn loại bãi đỗ xe) hoặc theo vị trí của hệ thống camera Chẳng hạn, người dùng hmi_lab_user, với quyền Content Consumer, có thể tìm kiếm dữ liệu được quản lý bởi hệ thống.
Trong Keyrock, người dùng thường có thể tận dụng giao diện trực quan để thực hiện các tác vụ cơ bản như đăng nhập, tạo tài khoản và khôi phục mật khẩu Sau khi đăng nhập, họ có khả năng quản lý tài khoản, tra cứu thông tin nhóm và các ứng dụng của mình Khi được thêm vào ứng dụng Orion Service và được thiết lập quyền bởi quản trị viên, tài khoản người dùng có thể yêu cầu access_token và sử dụng access_token này để gửi các yêu cầu lên hệ thống.
Phát triển ứng dụng tìm bãi đỗ xe và đánh giá kết quả
Xây dựng kịch bản kiểm thử khả năng ứng dụng của hệ thống
Sự phát triển của xã hội và thu nhập tăng cao đã làm cho việc sở hữu ô-tô trở nên dễ dàng hơn, nhưng cũng dẫn đến tình trạng thiếu chỗ đỗ xe, đặc biệt tại các đô thị lớn như Hà Nội và TP Hồ Chí Minh Vấn đề này không chỉ ảnh hưởng đến cuộc sống của người dân mà còn là một thách thức lớn cho các tài xế Để giải quyết, nhiều bãi đỗ xe hiện nay đã trang bị hệ thống camera giám sát nhằm tăng cường an ninh, tạo điều kiện cho việc kết nối vào các hệ thống này Từ đó, có động lực phát triển phần mềm tích hợp khả năng tìm kiếm bãi đỗ xe còn chỗ trống vào ứng dụng bản đồ, giúp tài xế dễ dàng hơn trong việc tìm kiếm chỗ đỗ.
Trong bài viết này, tác giả giới thiệu một ứng dụng tích hợp hệ thống CamNet vào bản đồ HERE Maps, giúp tài xế tìm kiếm bãi đỗ xe còn chỗ trống gần điểm đến nhất Thuật toán đếm số chỗ trống trong bãi đỗ xe được đề xuất trong mục 4.2 sẽ được tích hợp vào hệ thống thu nhận và trích xuất dữ liệu từ camera, nhằm tạo ra thông tin về trạng thái các bãi đỗ xe Ứng dụng này được phát triển trên nền tảng Android và HERE Maps SDK, với chi tiết thiết kế và cài đặt được trình bày ở mục 4.3.
Cài đặt thuật toán đếm số chỗ trống trong bãi đỗ xe
Bài toán này sử dụng ảnh từ camera giám sát để xác định số lượng chỗ trống trong bãi đỗ xe Thực nghiệm được thực hiện tại bãi đỗ xe ngoài trời của khu đô thị Handiresco, Cổ Nhuế 2, Bắc Từ Liêm, Hà Nội, với hình ảnh đầu vào cho thuật toán như hình 4.1.
Hình 4.1 Hình ảnh bãi đỗ xe là đầu vào của thuật toán
Sau khi thu thập dữ liệu đầu vào, thuật toán tiến hành ba bước để trích xuất thông tin về số lượng ô đỗ xe còn trống Bước đầu tiên là xác định vị trí các ô đỗ xe trong ảnh; tiếp theo, bước thứ hai là xác định vị trí các xe ô-tô có mặt trong ảnh Cuối cùng, bước ba là xác định ô đỗ xe đã có xe đỗ hay chưa, dựa trên việc tổng hợp kết quả từ hai bước trước Vị trí của mỗi ô đỗ xe và xe ô-tô được biểu diễn bằng hình bao chữ nhật (bounding boxes).
Vị trí các ô đỗ xe thường được phân biệt bằng vạch sơn trắng, nhưng trong nhiều trường hợp, vạch sơn này rất mờ và độ phân giải của ảnh từ camera không đủ cao để xác định vị trí Khi bãi đỗ xe không còn chỗ trống, vị trí của từng chiếc xe chính là vị trí của ô đỗ xe Do đó, để tìm bounding box của các ô đỗ xe, ta cần lấy bounding box của các xe ô-tô trong bãi Để thực hiện điều này, cần sử dụng thuật toán phát hiện đối tượng từ ảnh.
Hình 4.2 Quá trình nhận biết vị trí các ô đỗ xe và các xe ô-tô
Các phương pháp học sâu cho thấy ưu thế vượt trội trong việc phát hiện đối tượng, đặc biệt là khi các đối tượng trong ảnh có thể xoay theo nhiều hướng khác nhau Trong nghiên cứu này, tác giả áp dụng kiến trúc Mask R-CNN cùng với một mô hình đã được huấn luyện trước trên tập dữ liệu COCO để nhận diện xe ô-tô trong hình ảnh Việc cài đặt Mask R-CNN được thực hiện trên nền tảng Python 3, Keras và TensorFlow Quá trình nhận diện vị trí các ô đỗ xe và xe ô-tô được mô tả rõ ràng, trong đó mỗi đối tượng phát hiện cung cấp ba thông tin chính: loại đối tượng (được mã hóa dưới dạng số nguyên), điểm số tin cậy cho việc phát hiện, và bounding box với tọa độ (x,y) của đối tượng trong ảnh.
Cuối cùng, ta cần xác định vị trí ô đỗ xe đã có xe đỗ hay chưa Sau bước 1 và
Trong bài viết này, chúng ta có hai mảng bounding boxes: một cho vị trí các chỗ đỗ xe và một cho vị trí các xe ô-tô hiện có trong ảnh Với vị trí camera cố định, hình ảnh thu nhận có kích thước và góc độ không thay đổi, cho phép chúng ta xác định rằng nếu một bounding box của chỗ đỗ xe bị che phủ bởi bounding box của một chiếc xe, thì vị trí đó đã có xe đỗ Chỉ số che phủ được sử dụng là Intersection Over Union (IoU), được tính bằng cách tìm lượng điểm ảnh mà hai đối tượng trùng nhau và chia cho tổng số điểm ảnh được bao phủ bởi cả hai đối tượng.
Hình 4.3 Công thức tính độ che phủ IoU
Chỉ số IoU (Intersection over Union) đo lường mức độ chồng lấp giữa bounding box của xe ô-tô và bounding box của vị trí đỗ xe, từ đó xác định liệu xe có nằm trong bãi đỗ hay không.
Chỉ số IoU thấp (< 0.2) cho thấy xe không chiếm phần lớn vị trí đỗ, có thể là xe sắp rời đi hoặc bị ảnh hưởng bởi xe bên cạnh Ngược lại, chỉ số IoU cao chứng tỏ vị trí đã có xe đỗ Dựa vào kết quả này, chúng ta có thể đếm số lượng vị trí còn trống trong bãi đỗ Hình 4.4 minh họa phương pháp phát hiện ô đỗ xe còn trống, với các ô màu đỏ biểu thị vị trí không còn trống và ô màu xanh thể hiện vị trí còn trống.
Hình 4.4 Kết quả thực nghiệm của thuật toán đếm số lượng vị trí đỗ xe còn trống
Thiết kế và cài đặt ứng dụng
Ứng dụng chỉ đường cần có các tính năng thiết yếu như xem bản đồ, xác định vị trí hiện tại, chọn điểm xuất phát và điểm đến, cũng như tìm đường đi ngắn nhất giữa hai điểm Thêm vào đó, ứng dụng sẽ tích hợp tính năng hiển thị trạng thái bãi đỗ xe trên lộ trình và chỉ đường đến bãi đỗ xe còn chỗ trống gần điểm đến nhất, dựa trên thông tin từ hệ thống CamNet Hình 4.5 minh họa biểu đồ use-case của ứng dụng.
Ứng dụng được phát triển trên nền tảng Android 9 với SDK 28, sử dụng HERE SDK phiên bản premium để cung cấp đầy đủ các API cho các tính năng cần thiết HERE SDK mang lại sự linh hoạt và khả năng tùy biến cao, cho phép nhà phát triển thêm các đối tượng tùy chỉnh vào bản đồ, như hình ảnh và thông tin về chỗ đỗ xe Hệ thống thu nhận thông tin ngữ nghĩa kết nối với camera giám sát, cho phép thu thập luồng video, và đăng nhập vào hệ thống CamNet để lấy access_token với quyền truy cập cần thiết.
Mỗi khoảng thời gian nhất định, máy chủ cạnh sẽ ghi nhận một hình ảnh từ mỗi luồng video Hình ảnh này được xử lý qua thuật toán để đếm số chỗ đỗ xe còn trống, như đã đề xuất ở mục 4.2 Kết quả thu được sẽ được chuẩn hóa dưới dạng JSON, như đã đề cập trong chương.
Dữ liệu ngữ nghĩa được lưu trữ và quản lý qua ba phân hệ, trong đó ảnh từ camera sẽ bị xóa khỏi máy chủ cạnh sau khi hoàn tất quá trình xử lý Hình 4.6 minh họa sơ đồ khối cho quá trình trích rút dữ liệu ngữ nghĩa tại máy chủ cạnh.
Hình 4.6 Sơ đồ khối quá trình trích rút dữ liệu ngữ nghĩa
Dữ liệu ngữ nghĩa liên quan đến thông tin bãi đỗ xe đã được lưu trữ trên máy chủ quản lý thông tin ngữ nghĩa Ứng dụng Android cần tìm kiếm thông tin cần thiết để phát triển tính năng tìm bãi đỗ xe Để bắt đầu, ứng dụng phải đăng nhập vào hệ thống và lấy access_token với quyền truy cập phù hợp.
“consumer” – quyền cho phép tìm kiếm thông tin ngữ nghĩa Quá trình đăng nhập và lấy thông tin được thể hiện ở biểu đồ ở hình 4.5 dưới đây
Hình 4.7 Luồng xác minh định danh và quyền của ứng dụng
Tính năng hiển thị tất cả các bãi đỗ xe cùng số lượng chỗ đỗ trống kết hợp vị trí hiện tại của xe (dữ liệu từ HERE maps) và khả năng tìm kiếm không gian của hệ thống quản lý thông tin ngữ nghĩa Vị trí địa lý của bãi đỗ xe được xác định bằng tọa độ (latitude, longitude) nhưng trên bản đồ, chúng được thể hiện dưới dạng hình Để tính toán, cần tạo một hình vuông có tâm tại vị trí bãi đỗ xe bằng cách điều chỉnh tọa độ với hằng số △p = 0.000045, tương đương 5 mét Ứng dụng sẽ tìm kiếm các bãi đỗ xe trong bán kính R = 500 mét từ vị trí xe trong máy chủ quản lý thông tin ngữ nghĩa Điều kiện cần là ứng dụng phải có access_token hợp lệ.
Hình 4.8 Sơ đồ khối của quá trình hiển thị các bãi đỗ xe và số lượng ô đỗ xe trống
Tính năng tìm kiếm và chỉ đường đến bãi đỗ xe còn chỗ trống gần nhất sử dụng dữ liệu từ trung tâm quản lý bãi đỗ xe Sau khi xác định tọa độ bãi đỗ xe, API tìm đường của HERE SDK được sử dụng để tìm lộ trình ngắn nhất đến địa điểm đó Thông tin chỉ đường cũ sẽ bị hủy và thay thế bằng chỉ dẫn mới đến bãi đỗ xe gần nhất, với bán kính tìm kiếm xung quanh điểm đến là 500 mét.
Sơ đồ khối của quá trình tìm bãi đỗ xe còn chỗ trống gần nhất được trình bày ở hình 4.9 dưới đây
Hình 4.9 Sơ đồ khối của quá trình tìm bãi đỗ xe còn chỗ trống gần nhất
Thử nghiệm ứng dụng
Ứng dụng HERE Maps, sau khi tích hợp hệ thống CamNet, có khả năng hiển thị thông tin về tất cả các bãi đỗ xe trên lộ trình và tìm đường đến bãi đỗ xe gần nhất khi người dùng gần đến đích Ví dụ, nếu điểm xuất phát là siêu thị Metro, Bắc Từ Liêm, Hà Nội (tọa độ: 21.054266, 105.780990) và điểm đến là tòa nhà OCT3-B, khu đô thị Resco (tọa độ: 21.067474, 105.783576), ứng dụng sẽ xác định hai khu vực đỗ xe có camera giám sát kết nối với CamNet, bao gồm tòa nhà OCT3-A (tọa độ: 21.064345, 105.782880) và tòa nhà OCT3-B9 (tọa độ: 21.067419, 105.783088) Ứng dụng này được cài đặt trên điện thoại thông minh với cấu hình phù hợp.
Tên thiết bị: Xiaomi Mi 9 Lite
Hệ Điều Hành: MIUI 11 trên nền tảng Android 10
Bộ nhớ trong: 64GB Đầu tiên, chúng ta sẽ có một giao diện để chọn điểm xuất phát và điểm đến (Hình 4.10 Chọn điểm xuất phát và điểm đến)
Hình 4.10 Chọn điểm xuất phát và điểm đến
Thông tin về các tùy chọn đỗ xe được cung cấp cho người dùng bao gồm loại bãi đỗ (ngoài trời), khoảng cách tối đa từ bãi đỗ đến điểm đến (500m) và loại xe (Ô-tô) Hình 4.11 hiển thị các thông tin này trên màn hình ứng dụng Người dùng có thể nhấn nút “Tìm đường” để bắt đầu tìm kiếm hành trình trên bản đồ HERE Maps.
Hình 4.11 Thông tin về các tùy chọn đỗ xe
Khi bắt đầu hành trình, người dùng cần đăng nhập vào hệ thống dịch vụ cung cấp dữ liệu ngữ nghĩa bằng tài khoản hmi_lab_user được quản trị viên cấp Nếu việc đăng nhập không thành công, một thông báo sẽ hiển thị, cho biết rằng các tính năng liên quan đến bãi đỗ xe thông minh sẽ không khả dụng.
Hình 4.12 Tính năng bãi đỗ xe không khả dụng khi đăng nhập không thành công
Trong quá trình di chuyển, thông tin về các bãi đỗ xe được hiển thị trực tuyến trên bản đồ với các ô màu xanh, cho thấy số lượng chỗ đỗ xe còn trống Ví dụ, bãi đỗ xe tại tòa nhà OCT3-A hiện còn 7 chỗ trống, như hình 4.13 đã minh họa.
Hình 4.13 Thông tin các bãi đỗ xe còn chỗ trống dọc đường đi
Khi xe ô-tô còn 500m đến điểm đến, thuật toán sẽ tìm kiếm bãi đỗ xe gần nhất còn chỗ trống Nếu tìm thấy bãi đỗ phù hợp, bản đồ sẽ cung cấp chỉ dẫn mới cho tài xế; nếu không, chỉ dẫn cũ sẽ được tiếp tục Hành trình kết thúc khi xe đến bãi đỗ hoặc nếu không tìm được bãi đỗ, xe sẽ đến điểm đến ban đầu Ví dụ, tại khu đô thị Resco, nếu có 2 chỗ trống, ứng dụng sẽ chuyển hướng đến bãi đỗ đó, kết thúc hành trình tại bãi đỗ thay vì điểm đến ban đầu.
Hình 4.14 Chỉ đường đến bãi đỗ gần điểm đến nhất và kết thúc hành trình
Đánh giá hệ thống
Hệ thống CamNet đảm bảo bảo mật thông tin người dùng bằng cách xử lý dữ liệu ngữ nghĩa từ camera và ứng dụng Dữ liệu ảnh được trích xuất dưới dạng JSON và ngay lập tức bị xóa tại máy chủ cạnh Để truyền tải dữ liệu lên máy chủ quản lý thông tin ngữ nghĩa, máy chủ cạnh yêu cầu đăng nhập bằng tài khoản hợp lệ được cấp quyền.
Trong hệ thống, người sử dụng máy chủ cạnh không thể truy cập dữ liệu nhờ vào vai trò "producer" Để tìm kiếm thông tin ngữ nghĩa, ứng dụng cần đăng nhập với tài khoản "consumer" đã được cấp quyền, đảm bảo chỉ những ứng dụng đáng tin cậy mới có thể sử dụng dữ liệu mà không có quyền ghi ngược lại Tất cả giao tiếp với phân hệ quản lý thông tin ngữ nghĩa (Orion Context Broker) đều được thực hiện qua Wilma PEP proxy, giúp ẩn địa chỉ thực của Orion Context Broker đối với các bên liên quan.
Thuật toán đếm số chỗ trống trong bãi đỗ xe được thử nghiệm tại bãi đỗ ngoài trời ở khu đô thị Handiresco, Cổ Nhuế 2, Bắc Từ Liêm, Hà Nội, với 8 ô đỗ và một camera giám sát góc rộng 120 độ, ghi hình FullHD Dữ liệu đánh giá bao gồm 500 hình ảnh, trong đó 400 hình ảnh có điều kiện thời tiết tốt đạt độ chính xác 97.7%, trong khi toàn bộ 500 hình ảnh giảm xuống 82.2% do khó khăn trong việc phát hiện xe ô tô trong điều kiện trời tối, mưa hoặc khi có vật cản Việc che khuất xe thường xảy ra do phương tiện giao thông di chuyển gần, nhưng sau khi xe không còn bị che khuất, thuật toán có thể đưa ra kết quả chính xác So với nghiên cứu Deep Learning for Decentralized Parking Lot Occupancy Detection, độ chính xác của thuật toán này thấp hơn, chỉ đạt 90% trong nhiều điều kiện thời tiết khác nhau.
Hình 4.15 Kết quả đếm số chỗ trống trong bãi đỗ xe khi có vật cản che khuất một phần hình ảnh
Phân hệ thu nhận và trích rút thông tin ngữ nghĩa từ camera sử dụng thuật toán đếm số lượng chỗ đỗ xe trống đã được thử nghiệm trên máy tính với hệ điều hành Ubuntu 18.04 LTS, cấu hình CPU Core i7 2.9GHz, 16GB RAM và 512GB SSD Máy tính và camera giám sát được kết nối qua mạng Wifi băng tần 5GHz Để đánh giá hiệu quả xử lý, tác giả thu nhận liên tục 100 hình ảnh từ camera giám sát bằng FFMPEG và xử lý hình ảnh theo thuật toán đã đề xuất Tốc độ xử lý dữ liệu được trình bày trong bảng 4.1.
Thu nhận hình ảnh bằng FFMPEG 1816 4202 2077 Đếm số lượng chỗ đỗ xe còn trống 9197 12922 9916
Bảng 4.1 Tốc độ xử lý dữ liệu của phân hệ thu nhận và trích rút thông tin ngữ nghĩa
Thời gian xử lý trung bình của hệ thống cho hai công việc thu nhận hình ảnh và trích rút thông tin khoảng 12 giây, cho thấy hiệu năng ổn định và đáp ứng tốt nhu cầu tìm kiếm thông tin thời gian thực cho việc tìm chỗ đỗ xe Phân hệ quản lý thông tin ngữ nghĩa (Orion Context Broker) và phân hệ quản lý định danh và quyền người dùng (Keyrock + Wilma) được thử nghiệm trên máy chủ Ubuntu 18.04 với cấu hình 1 CPU 2.30GHz, 1GB RAM, và 25GB HDD Hệ thống được giả định kết nối với 100 camera IP, yêu cầu Orion Context Broker quản lý 100 thực thể Hiệu năng được đánh giá qua thời gian tạo mới và cập nhật dữ liệu cho một thực thể, cùng với thời gian tìm kiếm thông tin dựa trên vị trí địa lý của xe hơi thông qua 100 lần tìm kiếm với các số liệu khác nhau Số liệu chi tiết được thể hiện trong bảng 4.2.
Tổng thời gian (milli giây)
Cập nhật dữ liệu của thực thể
Tìm kiếm chỗ đỗ xe 178 285 219 21998
Bảng 4.2 Tốc độ truy vấn thông tin ngữ nghĩa
Tốc độ thêm mới và cập nhật dữ liệu ngữ nghĩa của hệ thống rất nhanh, chỉ mất vài trăm mili giây Mặc dù một số trường hợp có tốc độ thêm mới thực thể chưa tối ưu (409 mili giây), nhưng điều này vẫn chấp nhận được vì thực thể chỉ cần được thêm vào một lần và sau đó chỉ cần cập nhật thông tin Tốc độ tìm kiếm thông tin bãi đỗ xe dựa trên vị trí và bán kính tìm kiếm cũng rất nhanh, trung bình chỉ mất 219 mili giây, hoàn toàn đáp ứng yêu cầu tìm kiếm bãi đỗ xe theo vị trí thực của ô-tô.
Các hệ thống bãi đỗ xe hiện nay thường phức tạp và yêu cầu đầu tư lớn về cơ sở hạ tầng và thiết bị Ví dụ, giải pháp Smart Parking của công ty Hiotron sử dụng một hệ thống cảm biến để phát hiện chỗ đỗ xe trống Các cảm biến này được thiết kế riêng và cần lắp đặt ở vị trí trên hoặc dưới xe.
Hình 4.16 Hệ thống cảm biến phía trên hoặc phía dưới vị trí đỗ xe
Bảng 4.3 dưới đây cho thấy sự so sánh giữa ứng dụng tìm bãi đỗ xe áp dụng hệ thống CamNet và giải pháp Smart Parking của công ty Hiotron
Tiêu chí Hệ thống CamNet Hiotron Smart Parking Chi phí lắp đặt Thấp
Sử dụng hệ thống camera hiện có của bãi đỗ xe
Sử dụng máy tính hiện có làm máy chủ cạnh hoặc sử dụng 1 mini-pc chi phí thấp
Cần lắp đặt cảm biến riêng biệt tại từng vị trí đỗ xe
Để xử lý hiệu quả thông tin thu nhận, việc xây dựng một nền tảng điện toán đám mây mạnh mẽ là rất cần thiết Bên cạnh đó, việc chỉ cung cấp giải pháp phần mềm cho camera và máy chủ cạnh từ các đối tác khác nhau giúp giảm thiểu chi phí bảo trì.
Cung cấp cả phần cứng (cảm biến) và phần mềm, nên phải bảo trì toàn bộ
Tính năng tìm chỗ đỗ xe
Khả năng mở rộng phạm vi ứng dụng
Có thể tích hợp nhiều thuật toán trích xuất thông tin từ hình ảnh vào hệ thống, như phát hiện tắc đường và phát hiện tình trạng hỗn loạn, cùng với việc cung cấp các cảnh báo phù hợp cho ứng dụng.
Thấp Hệ thống chỉ phục vụ cho việc tìm bãi đỗ xe
Hệ thống CamNet tích hợp vào bản đồ HERE Maps mang lại lợi ích vượt trội về chi phí lắp đặt và bảo trì, nhờ vào việc sử dụng các camera và máy tính có sẵn tại các bãi đỗ xe Ứng dụng này không chỉ đáp ứng nhu cầu thực tiễn của xã hội mà còn khai thác hiệu quả lượng dữ liệu lớn từ hệ thống camera hiện có Hơn nữa, CamNet có khả năng mở rộng để tích hợp nhiều loại dữ liệu ngữ nghĩa, từ đó phát triển ứng dụng trong nhiều lĩnh vực khác nhau.