Bối cảnh và vấn đề nghiên cứu

Trong hệ thống giám sát và bảo vệ an ninh hiện đại, việc thu thập và phân tích dữ liệu hình ảnh đóng vai trò quyết định nhờ khả năng cung cấp thông tin trực quan, đáng tin cậy. Tuy nhiên, sự gia tăng nhanh chóng về số lượng camera giao thức Internet (IP Camera) truyền thống đã tạo ra áp lực lớn lên hạ tầng mạng và máy chủ trung tâm. Phần lớn các camera an ninh thông thường truyền toàn bộ luồng dữ liệu thô liên tục về máy chủ để xử lý và lưu trữ, dẫn đến tình trạng lãng phí băng thông truyền tải và nguy cơ quá tải tài nguyên máy chủ do phải xử lý khối lượng lớn dữ liệu không cần thiết.

Để khắc phục hạn chế trên, công nghệ tính toán biên (Edge Computing) kết hợp với các thuật toán thị giác máy tính và trí tuệ nhân tạo (AI) đã được đưa trực tiếp vào các thiết bị Smart Camera. Dù vậy, các giải pháp hiện hành vẫn tồn tại những rào cản kỹ thuật và chi phí:

  • Hệ thống thương mại (như Nest IQ): Cung cấp tính năng nhận diện khuôn mặt và cảnh báo tự động nhưng yêu cầu chi phí dịch vụ đám mây định kỳ cao (khoảng 300 USD/năm cho mỗi camera để lưu trữ video 30 ngày và sử dụng tính năng nhận diện).
  • Nghiên cứu của nhóm tác giả năm 2018: Xây dựng hệ thống camera IP dựa trên CCTV sử dụng 5 camera để phát hiện và theo dõi hướng di chuyển của người nhưng chỉ dừng lại ở mức phát hiện chuyển động, chưa nhận diện được danh tính đối tượng.
  • Nghiên cứu của Gören: Kết hợp tính toán biên và đám mây để lọc và gửi các bức ảnh chứa khuôn mặt về máy chủ nhằm giảm tải tài nguyên, nhưng hệ thống không hỗ trợ chế độ phát trực tiếp (live streaming) theo thời gian thực khi cần thiết.
  • Nghiên cứu của Võ Phúc Vinh Khang và Lê Hoài (2023): Tối ưu hóa streaming cho bộ tăng tốc AI trên bo mạch Ultra96-V2, tích hợp được cả nhận dạng và streaming nhưng phải phân tách riêng biệt và sử dụng 2 camera USB độc lập cho từng chế độ.

Từ thực tiễn đó, khóa luận của tác giả Trần Tấn Tài tập trung nghiên cứu, xây dựng và tích hợp thuật toán trao đổi dữ liệu linh hoạt trên nền tảng tính toán biên cho Smart Camera, kết hợp với máy chủ đám mây (Cloud Server) và ứng dụng di động (Mobile App).

Mục tiêu nghiên cứu cụ thể

  1. Nghiên cứu kỹ thuật giao tiếp sử dụng Socket và xây dựng chương trình kết nối giữa Smart Camera và Cloud Server nhằm truyền nhận và lưu trữ hình ảnh khi phát hiện đối tượng cần tìm kiếm.
  2. Ứng dụng bộ công cụ FFmpeg để thiết lập và truyền luồng video trực tiếp (streaming) theo giao thức RTSP khi người dùng gửi yêu cầu từ ứng dụng di động.
  3. Xây dựng chương trình trên thiết bị phụ trợ (Scan Camera) để thu thập khuôn mặt và tên đối tượng mới, sau đó gửi và cập nhật tự động vào cơ sở dữ liệu (Database) của Smart Camera thông qua Cloud Server.
  4. Xây dựng ứng dụng di động bằng nền tảng Flutter với giao diện hiển thị luồng video streaming, hình ảnh đối tượng tìm kiếm được và danh sách tên các đối tượng nhận diện.
  5. Thiết lập cơ chế trao đổi dữ liệu và điều khiển hai chiều giữa Smart Camera, Cloud Server và ứng dụng di động thông qua giao thức nhắn tin nhẹ MQTT.

Đối tượng và phạm vi nghiên cứu

  • Đối tượng nghiên cứu: Thuật toán truyền nhận dữ liệu qua Socket TCP, cơ chế xuất bản/đăng ký nhận tin qua MQTT, kỹ thuật xử lý và phát luồng video bằng FFmpeg, mô hình tính toán biên nhận diện khuôn mặt và kiến trúc ứng dụng đa nền tảng Flutter.
  • Phạm vi phần cứng và công nghệ:
    • Thiết bị biên Smart Camera: Bo mạch NVIDIA Jetson Nano kết hợp USB Camera, hỗ trợ độ phân giải HD (720p).
    • Thiết bị thu thập Scan Camera: Bo mạch Raspberry Pi 3 Model B, hỗ trợ độ phân giải SD (480p).
    • Hạ tầng mạng: Yêu cầu kết nối mạng đạt băng thông tối thiểu 18 Mbps để duy trì hoạt động ổn định của hệ thống.
    • Phạm vi vận hành: Smart Camera tại một thời điểm chỉ thực hiện một tác vụ chính (hoặc chế độ tìm kiếm khuôn mặt, hoặc chế độ phát video trực tiếp).

Cơ sở lý thuyết và phương pháp

Khóa luận kết hợp đồng bộ các cơ sở lý thuyết kỹ thuật máy tính, hệ thống nhúng và mạng truyền thông:

Khung lý thuyết và công nghệ sử dụng

  • Hệ thống nhúng và Smart Camera: Nghiên cứu cấu trúc tích hợp giữa cảm biến hình ảnh và các bộ vi xử lý chuyên dụng (CPU, DSP, GPU, FPGA, SoC). Smart Camera không chỉ thu nhận hình ảnh mà còn thực hiện tiền xử lý, phân tích đặc trưng và đưa ra quyết định trực tiếp tại biên trước khi truyền tải thông tin.
  • Thư viện thị giác máy tính OpenCV: Khai thác các module chức năng bao gồm module xử lý hình ảnh (imgproc), nhận diện đối tượng (objdetect với thuật toán Haar Cascade), giao diện cấp cao (highgui), thu nhận và giải mã video (videoio).
  • Xử lý đa phương tiện và Streaming với FFmpeg: Sử dụng hệ thống công cụ dòng lệnh và các thư viện liên kết tĩnh/động (libavcodec, libavformat, libavutil, libavfilter, libswscale) để mã hóa, ghép kênh và đóng gói luồng video thô (raw video định dạng BGR24) sang chuẩn nén H.264/YUV420p, truyền phát qua giao thức thời gian thực RTSP.
  • Lập trình mạng Socket với giao thức TCP: Áp dụng mô hình hướng kết nối (Connection-oriented) thông qua giao thức TCP với quy trình bắt tay 3 bước (three-way handshake). Tác giả sử dụng các hàm hệ thống chuẩn POSIX: socket(), bind(), listen(), accept(), connect(), send(), recv(), close() để đảm bảo tính toàn vẹn và thứ tự dữ liệu hình ảnh truyền tải.
  • Giao thức MQTT và Broker Mosquitto: Ứng dụng giao thức truyền thông nhẹ MQTT phiên bản 5 theo kiến trúc Publish/Subscribe. Sử dụng broker mã nguồn mở Mosquitto và thư viện lập trình C libmosquitto nhằm thiết lập kênh trao đổi thông điệp điều khiển có độ trễ thấp giữa thiết bị biên, máy chủ và thiết bị di động.
  • Khung phát triển ứng dụng di động Flutter và ngôn ngữ Dart: Xây dựng giao diện tương tác người dùng đa nền tảng (Android/iOS) bằng Flutter kết hợp ngôn ngữ lập trình Dart, tận dụng cơ chế biên dịch JIT (Just-In-Time) trong quá trình phát triển và AOT (Ahead-Of-Time) khi thực thi, tối ưu hóa hiệu năng hiển thị luồng RTSP và hình ảnh tải về qua giao thức HTTP URL.

Phương pháp nghiên cứu và thực nghiệm

  • Thiết kế và tích hợp hệ thống nhúng phân tán: Phân tách các khối xử lý độc lập giữa thiết bị biên (Jetson Nano), thiết bị quét (Raspberry Pi 3B), máy chủ trung gian (Cloud Server) và ứng dụng người dùng (Flutter App).
  • Kỹ thuật lập trình đa tiến trình (Multiprocessing) và đa luồng (Multithreading): Kết hợp đồng thời kỹ thuật tạo tiến trình con (fork), phân luồng POSIX (pthread) và cơ chế bộ nhớ dùng chung (Shared Memory qua shm_open, mmap) trên Linux để đồng bộ hóa trạng thái camera giữa các tiến trình mạng độc lập.
  • Phương pháp thực nghiệm định lượng: Đo đạc thời gian truyền gửi ảnh, tốc độ khung hình (FPS), độ trễ phát luồng video trực tiếp trên các môi trường mạng (Wifi, 4G), đánh giá độ ổn định của phần cứng trong các mốc thời gian dài liên tục (6 giờ, 12 giờ, 19 giờ, 24 giờ) và kiểm thử độ chính xác nhận diện theo các góc nhìn khuôn mặt (thẳng, lệch trái, lệch phải).

Thiết kế và triển khai hệ thống

Hệ thống được thiết kế theo cấu trúc phân tán gồm bốn thành phần chính: Smart Camera (Jetson Nano), Scan Camera (Raspberry Pi 3B), Cloud Server và Mobile App.

+------------------+         MQTT / RTSP / Socket        +------------------+
|  Mobile App      |<===================================>|  Cloud Server    |
|  (Flutter/Dart)  |                                     |  (Broker/IPC)    |
+------------------+                                     +--------+---------+
                                                                  |
                                  +-------------------------------+
                                  | Socket / MQTT / RTSP
                                  v
+------------------+     Socket TCP     +-------------------------+
|  Scan Camera     |------------------->|  Smart Camera           |
| (Raspberry Pi 3B)| (via Cloud Server) | (Jetson Nano + OpenCV)  |
+------------------+                    +-------------------------+

1. Kiến trúc phần mềm trên thiết bị Smart Camera (Jetson Nano)

Chương trình trên Jetson Nano được tổ chức thành 2 luồng hoạt động chính chạy song song:

  • Luồng 1 (Xử lý dữ liệu hình ảnh và phát luồng):
    • Khởi tạo đọc cơ sở dữ liệu khuôn mặt (read_csv), nạp bộ phân loại CascadeClassifier và xây dựng mô hình nhận diện (create_model).
    • Chế độ tìm kiếm: Thu nhận khung hình từ camera USB, chuyển đổi không gian màu, phát hiện và so khớp khuôn mặt với tên đối tượng do người dùng yêu cầu qua hàm detect_and_predict(). Khi nhận diện chính xác, chương trình lưu ảnh tạm (imwrite("name.jpg")) và truyền dữ liệu tên cùng tệp ảnh qua Socket TCP lên Cloud Server (send_image()).
    • Chế độ phát trực tiếp: Khởi tạo đường ống ẩn (Pipeline qua lệnh popen()) kết nối luồng dữ liệu hình ảnh thô với lệnh thực thi FFmpeg: ffmpeg -y -f rawvideo -r 20 -video_size [width]x[height] -pixel_format bgr24 -i pipe: -crf 24 -pix_fmt yuv420p -f rtsp -rtsp_transport tcp rtsp://119.45:8556/mystream720 Dữ liệu từng khung hình (frame.data) được đẩy liên tục vào pipeline bằng hàm fwrite(). Khi có yêu cầu đổi độ phân giải (từ HD 720p sang SD 480p hoặc ngược lại), chương trình hủy pipeline cũ (pclose()), giải phóng tài nguyên camera, đặt lại thông số CAP_PROP_FRAME_WIDTH, CAP_PROP_FRAME_HEIGHT và khởi tạo tiến trình FFmpeg mới.
    • Tự động cập nhật mô hình: Khi nhận cờ báo hiệu (flag_dataset == 1) từ Luồng 2, Luồng 1 sẽ đọc lại cơ sở dữ liệu và huấn luyện lại mô hình nhận diện mà không cần khởi động lại toàn bộ hệ thống.
  • Luồng 2 (Quản lý kết nối MQTT và tiếp nhận dữ liệu đối tượng mới):
    • Khởi tạo mosquitto_new(), kết nối tới MQTT Broker trên Cloud Server tại cổng 1883, đăng ký theo dõi (Subscribe) các topic điều khiển.
    • Khi nhận tin nhắn từ ứng dụng di động qua hàm callback on_message(), phân tích lệnh để chuyển đổi chế độ ("Stream", "HD", "SD") hoặc gán tên đối tượng cần tìm kiếm (find_name).
    • Lắng nghe Socket kết nối với Cloud Server để tiếp nhận dữ liệu đối tượng mới (tên và tệp ảnh khuôn mặt) từ Scan Camera gửi sang. Ghi tệp ảnh vào thư mục dataset/, bổ sung tên vào tệp chỉ mục name_file và bật cờ flag_dataset = 1.

2. Kiến trúc phần mềm trên Cloud Server

Cloud Server đóng vai trò trung tâm điều phối kết nối, lưu trữ trung gian và chuyển tiếp dữ liệu:

  • Cơ chế đa tiến trình (Multiprocessing): Khởi tạo tiến trình cha (Parent Process) quản lý kết nối Socket với thiết bị Scan Camera và tiến trình con (Child Process tạo bởi lệnh fork()) chuyên trách quản lý kết nối Socket với Smart Camera. Nhờ cấu trúc này, việc mất kết nối hoặc khởi động lại của một thiết bị không làm gián đoạn toàn bộ dịch vụ máy chủ.
  • Bộ nhớ dùng chung (Shared Memory): Khởi tạo phân vùng nhớ chia sẻ trên RAM bằng các hàm POSIX shm_open("cam_status", O_CREAT | O_RDWR, 0666) và mmap() để các tiến trình độc lập có thể truy xuất và cập nhật trực tiếp biến trạng thái hoạt động của Smart Camera.
  • Đa luồng quản lý và đồng bộ dữ liệu:
    • Luồng quản lý người dùng: Khởi tạo các MQTT Publisher/Subscriber (mosq1, mosq2, mosq3). Khi có ứng dụng di động mới kết nối, máy chủ lập tức xuất bản chuỗi danh sách các đối tượng hiện có trong cơ sở dữ liệu và trạng thái hoạt động của Smart Camera về ứng dụng.
    • Luồng trung chuyển ảnh tìm kiếm: Nhận tệp ảnh đối tượng do Smart Camera gửi qua Socket 1, lưu trữ vào bộ nhớ cục bộ máy chủ và cung cấp đường dẫn HTTP URL cho ứng dụng di động.
    • Luồng trung chuyển đối tượng mới: Nhận dữ liệu khuôn mặt và tên từ Scan Camera (Socket 2), chuyển tiếp toàn bộ sang Socket 1 của Smart Camera, đồng thời xuất bản thông báo MQTT đến các ứng dụng di động đang hoạt động.

3. Chương trình trên Scan Camera và Ứng dụng di động

  • Scan Camera (Raspberry Pi 3B): Thực hiện chụp ảnh chân dung người dùng, cắt vùng ảnh khuôn mặt và truyền kèm chuỗi ký tự tên đối tượng lên Cloud Server thông qua giao tiếp Socket TCP chuyên biệt.
  • Mobile App (Flutter):
    • Giao diện trực quan cho phép chọn tên đối tượng cần tìm từ danh sách, gửi lệnh điều khiển tìm kiếm qua MQTT Publish.
    • Tích hợp trình phát video hiển thị luồng RTSP trực tiếp với tùy chọn chuyển đổi độ phân giải linh hoạt (SD/HD) và chế độ xem toàn màn hình.
    • Màn hình kết quả hiển thị ảnh chụp đối tượng tìm thấy kèm mốc thời gian, hỗ trợ lưu trữ danh sách lịch sử cảnh báo.

4. Đóng gói phần cứng và triển khai dịch vụ

  • Phần cứng: Thiết bị Smart Camera Jetson Nano được tích hợp hoàn chỉnh trong hộp bảo vệ chuyên dụng có gắn kèm quạt tản nhiệt chủ động nhằm duy trì nhiệt độ ổn định cho GPU/CPU khi xử lý tác vụ nặng liên tục. Scan Camera Raspberry Pi 3B được đóng gói kèm module camera và các phụ kiện kết nối mạng.
  • Dịch vụ hệ thống: Viết các tập lệnh shell script khởi động và cấu hình service chạy ngầm (Systemd Service) trên cả Cloud Server và Smart Camera, cho phép hệ thống tự động chạy chương trình khi cấp nguồn và tự phục hồi khi có sự cố.

Nội dung chính theo từng chương

Chương Tên chương trong văn bản Nội dung trọng tâm và kết quả phân tích
Chương 1 Giới thiệu đề tài Trình bày tính cấp thiết của hệ thống camera giám sát an ninh thông minh; phân tích nhược điểm của IP Camera cũ; khảo sát các công trình liên quan (Nest IQ, hệ thống giám sát 2018, nghiên cứu của Gören, luận văn Khang & Hoài 2023); xác định 5 mục tiêu cụ thể và các giới hạn kỹ thuật của đề tài.
Chương 2 Cơ sở lý thuyết Hệ thống hóa nền tảng lý thuyết về hệ thống nhúng và Smart Camera (ví dụ thực tế HANET AI Camera); cấu trúc module của OpenCV; kiến trúc streaming video và framework FFmpeg (các công cụ và thư viện libav*); kỹ thuật lập trình Socket TCP; giao thức MQTT và broker Mosquitto; nền tảng Flutter và ngôn ngữ Dart.
Chương 3 Sơ đồ hoạt động của hệ thống Thiết lập lưu đồ và nguyên lý vận hành chi tiết cho 3 kịch bản chính: (1) Chế độ tìm kiếm người theo yêu cầu, (2) Chế độ phát trực tiếp video (streaming RTSP), (3) Chế độ thêm đối tượng nhận diện mới vào cơ sở dữ liệu qua Scan Camera.
Chương 4 Thiết kế hệ thống Xây dựng kiến trúc giải thuật và mã nguồn chi tiết: thiết kế luồng xử lý ảnh và cập nhật cơ sở dữ liệu trên Smart Camera; kiến trúc đa tiến trình, đa luồng và bộ nhớ chia sẻ (Shared Memory) trên Cloud Server; thuật toán truyền/nhận tệp ảnh qua Socket TCP; các màn hình chức năng trên ứng dụng Flutter.
Chương 5 Kết quả thực hiện Hiện thực hóa toàn bộ hệ thống phần mềm và phần cứng: giao diện ứng dụng Flutter (tìm kiếm, streaming, xem đồng thời, lịch sử thông báo); cấu hình Service chạy ngầm tự động; hoàn thiện đóng gói hộp sản phẩm Smart Camera (tích hợp quạt tản nhiệt) và Scan Camera.
Chương 6 Thực nghiệm và đánh giá hệ thống Tiến hành đo đạc và đánh giá hiệu năng hệ thống qua 5 kịch bản thực nghiệm: hiệu năng truyền ảnh qua Socket trên 3 thiết bị; tốc độ truyền ảnh qua Wifi/4G; tốc độ khung hình và độ trễ streaming; độ ổn định khi chạy liên tục 24 giờ; độ chính xác nhận diện khuôn mặt theo các góc nhìn.
Chương 7 Kết luận và hướng phát triển Tổng kết các mục tiêu đã hoàn thành; chỉ ra các giới hạn kỹ thuật còn tồn tại và đề xuất các giải pháp nâng cấp, mở rộng hệ thống trong tương lai.

Kết quả và đóng góp

1. Kết quả thực nghiệm và số liệu kỹ thuật

Khóa luận đã tiến hành đánh giá toàn diện hệ thống thông qua các bộ thực nghiệm với kết quả cụ thể ghi nhận trong văn bản:

Bảng tổng hợp các kịch bản thực nghiệm và đánh giá hệ thống:

Hạng mục thực nghiệm Điều kiện kiểm thử Kết quả kỹ thuật ghi nhận
Thuật toán gửi ảnh qua Socket Đo đạc trên 3 thiết bị: Smart Camera, Scan Camera, Cloud Server Tốc độ truyền gửi dữ liệu ảnh ổn định, thuật toán xử lý phân mảnh và tái tạo gói tin chính xác, không thất thoát dữ liệu trên cả 3 nền tảng phần cứng.
Tốc độ gửi ảnh của Smart Camera Kết nối qua mạng Wifi và mạng 4G ở 2 mức độ phân giải SD (480p) và HD (720p) Tốc độ truyền ảnh ở độ phân giải SD nhanh hơn HD. Mạng Wifi cho độ ổn định cao hơn, trong khi mạng 4G đáp ứng tốt yêu cầu truyền tải dữ liệu khi băng thông đạt trên mức tối thiểu 18 Mbps.
Hiệu năng phát trực tiếp (Streaming) Kiểm thử chế độ SD và HD trên 2 môi trường mạng Wifi và mạng 4G Luồng streaming qua giao thức RTSP đạt tốc độ khung hình từ 20 FPS (HD) đến 30 FPS (SD). Độ trễ luồng truyền hình ảnh ở mức thấp, đảm bảo tính thời gian thực cho người dùng theo dõi.
Độ ổn định vận hành thời gian dài Thiết bị Smart Camera chạy liên tục trong 24 giờ (đo kiểm tại các mốc 6 giờ, 12 giờ, 19 giờ và 24 giờ) Cả ở chế độ phát trực tiếp và chế độ tìm kiếm, hệ thống duy trì tốc độ truyền ảnh ổn định qua các mốc thời gian; phần cứng Jetson Nano hoạt động an toàn nhờ hệ thống quạt tản nhiệt tích hợp.
Độ chính xác nhận diện khuôn mặt Đo kiểm ở 3 góc độ: góc thẳng, góc lệch bên trái và góc lệch bên phải so với hướng đối tượng Độ chính xác nhận diện đạt mức cao nhất ở góc nhìn thẳng; khi góc quay lệch trái hoặc lệch phải, tỷ lệ nhận diện phụ thuộc vào phạm vi góc nghiêng nhưng vẫn đảm bảo khả năng phát hiện khi khuôn mặt nằm trong trường nhìn của camera.

2. Giải pháp và đóng góp kỹ thuật của đề tài

  • Tối ưu hóa tài nguyên máy chủ và mạng: Thay vì đẩy toàn bộ video liên tục về máy chủ, Smart Camera xử lý nhận diện trực tiếp tại biên và chỉ gửi ảnh chứa đối tượng cần tìm qua Socket TCP, giúp tiết kiệm băng thông và giảm tải xử lý cho Cloud Server.
  • Tích hợp linh hoạt hai chế độ trên cùng một thiết bị: Khắc phục nhược điểm của công trình Khang & Hoài (2023) bằng cách điều khiển chuyển đổi mềm dẻo giữa chế độ nhận diện biên và chế độ streaming RTSP trên cùng một phần cứng camera thông qua việc khởi tạo/giải phóng động đường ống FFmpeg.
  • Đồng bộ hóa cơ sở dữ liệu phân tán không cần tắt hệ thống: Cho phép thêm khuôn mặt mới từ một thiết bị ngoại vi (Scan Camera), tự động nạp dữ liệu vào Database của Smart Camera và huấn luyện lại mô hình nhận diện trong thời gian thực mà không làm gián đoạn hoạt động của chương trình.
  • Kiến trúc máy chủ bền vững: Ứng dụng kỹ thuật đa tiến trình kết hợp bộ nhớ chia sẻ (Shared Memory) trên Cloud Server, đảm bảo việc ngắt kết nối cục bộ của từng camera không gây ảnh hưởng đến toàn bộ hệ thống và tự động đồng bộ danh sách đối tượng cho các thiết bị di động truy cập sau.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế kỹ thuật

  • Tính đơn nhiệm tại thời điểm thực thi: Thiết bị Smart Camera Jetson Nano trong một thời điểm chỉ thực hiện được một trong hai tác vụ: hoặc xử lý thuật toán nhận diện khuôn mặt, hoặc phát video trực tiếp; chưa hỗ trợ chạy đồng thời cả hai chế độ trên cùng một luồng xử lý.
  • Quy mô phần cứng thử nghiệm: Hệ thống mới chỉ thử nghiệm trên quy mô mô hình gồm 1 thiết bị Smart Camera Jetson Nano (720p) và 1 thiết bị Scan Camera Raspberry Pi 3B (480p).
  • Yêu cầu hạ tầng truyền thông: Hệ thống đòi hỏi băng thông kết nối mạng tối thiểu 18 Mbps để đảm bảo duy trì luồng streaming và truyền ảnh ổn định, không bị giật lag hoặc mất gói tin.
  • Giới hạn điều khiển người dùng: Ứng dụng di động tuy cho phép nhiều máy cùng truy cập theo dõi danh sách, nhưng tại một thời điểm chỉ hỗ trợ gửi một yêu cầu điều khiển chức năng đến Smart Camera.

Hướng phát triển đề tài

  • Nghiên cứu tối ưu hóa thuật toán để Smart Camera có thể thực hiện song song đồng thời cả hai chức năng: vừa phát video trực tiếp thời gian thực, vừa chạy thuật toán nhận dạng khuôn mặt mà không cần phân tách chế độ.
  • Mở rộng hệ thống Cloud Server để quản lý, phân phối và kết nối đồng thời nhiều thiết bị Smart Camera và Scan Camera trên diện rộng.
  • Nâng cấp mô hình trí tuệ nhân tạo nhận diện khuôn mặt nhằm tăng độ chính xác ở các góc nghiêng lớn, khoảng cách xa và điều kiện ánh sáng phức tạp.
  • Tối ưu hóa giao thức truyền thông nhằm giảm yêu cầu băng thông mạng, cho phép hệ thống vận hành mượt mà ở các môi trường mạng tốc độ thấp.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo có giá trị chuyên môn cao đối với sinh viên, kỹ sư và nhóm nghiên cứu thuộc các chuyên ngành Kỹ thuật Máy tính, Công nghệ Thông tin, Hệ thống Nhúng và Mạng Truyền thông:

  • Tài liệu tham khảo thực hành lập trình nhúng và tính toán biên: Khóa luận cung cấp toàn bộ sơ đồ giải thuật và cấu trúc mã nguồn C/C++ tích hợp OpenCV, FFmpeg Pipeline và thư viện MQTT Mosquitto trên nền tảng bo mạch NVIDIA Jetson Nano và Raspberry Pi.
  • Tài liệu tham khảo về kiến trúc hệ thống mạng phân tán: Phần thiết kế máy chủ trên Linux sử dụng kỹ thuật đa tiến trình (fork), đa luồng (pthread), bộ nhớ dùng chung (shm_open, mmap) và Socket TCP là mẫu thiết kế thực tế hữu ích cho các bài toán truyền nhận dữ liệu IoT và Media Server.
  • Tài liệu phát triển ứng dụng di động điều khiển IoT: Cung cấp hướng dẫn tích hợp giao thức MQTT hai chiều và hiển thị luồng RTSP thời gian thực trên nền tảng Flutter/Dart.

Câu hỏi thường gặp

1. Smart Camera trong đề tài sử dụng phần cứng nào và hỗ trợ độ phân giải tối đa bao nhiêu?

Thiết bị biên Smart Camera sử dụng bo mạch xử lý NVIDIA Jetson Nano kết hợp USB Camera, hỗ trợ độ phân giải hình ảnh chuẩn HD (720p). Thiết bị phụ trợ Scan Camera sử dụng bo mạch Raspberry Pi 3 Model B hỗ trợ độ phân giải SD (480p).

2. Làm thế nào Smart Camera phát luồng video trực tiếp lên máy chủ khi người dùng yêu cầu?

Smart Camera sử dụng lệnh hệ thống tạo đường ống (Pipeline qua hàm popen()) kết nối với công cụ dòng lệnh FFmpeg. Dữ liệu khung hình thô (raw video định dạng BGR24) thu từ camera được ghi trực tiếp vào đường ống bằng lệnh fwrite(). FFmpeg sẽ tiến hành mã hóa sang định dạng H.264/YUV420p và đẩy luồng dữ liệu lên Cloud Server qua giao thức thời gian thực RTSP.

3. Cơ chế nào giúp Cloud Server quản lý trạng thái của Smart Camera giữa các tiến trình độc lập?

Cloud Server sử dụng kỹ thuật lập trình bộ nhớ dùng chung POSIX (Shared Memory). Máy chủ cấp phát một vùng nhớ trên RAM thông qua các hàm shm_open("cam_status", ...) và mmap(). Nhờ đó, tiến trình con quản lý kết nối Socket của Smart Camera và tiến trình quản lý kết nối MQTT với ứng dụng di động có thể đọc/ghi trực tiếp biến trạng thái hoạt động của camera mà không bị xung đột bộ nhớ.

4. Quy trình thêm một đối tượng nhận diện mới vào hệ thống diễn ra như thế nào?

Người dùng nhập tên và quay video khuôn mặt tại thiết bị Scan Camera (Raspberry Pi 3B). Thiết bị này cắt ảnh khuôn mặt và gửi tên cùng ảnh lên Cloud Server qua Socket. Máy chủ chuyển tiếp dữ liệu về Smart Camera (Jetson Nano) qua Socket kết nối sẵn, đồng thời phát thông báo MQTT đến ứng dụng di động để cập nhật danh sách. Smart Camera nhận dữ liệu, ghi tệp ảnh vào thư mục dataset/, lưu tên vào cơ sở dữ liệu và tự động cập nhật lại mô hình nhận diện (create_model).

5. Yêu cầu băng thông mạng tối thiểu để hệ thống vận hành ổn định là bao nhiêu?

Theo công bố trong giới hạn đề tài của tác giả, hệ thống yêu cầu kết nối mạng đạt băng thông tối thiểu 18 Mbps để đảm bảo việc truyền nhận dữ liệu hình ảnh, gửi ảnh qua Socket và phát luồng streaming trực tiếp không bị gián đoạn.


Kết luận

Khóa luận tốt nghiệp của tác giả Trần Tấn Tài đã thiết kế và hiện thực hóa thành công giải pháp tích hợp thuật toán trao đổi dữ liệu trên nền tảng tính toán biên cho Smart Camera sử dụng bo mạch Jetson Nano, máy chủ trung gian và ứng dụng di động Flutter. Hệ thống giải quyết hiệu quả bài toán tối ưu hóa băng thông mạng và giảm tải tài nguyên máy chủ thông qua việc xử lý nhận diện khuôn mặt trực tiếp tại biên, đồng thời vẫn duy trì khả năng phát video trực tiếp RTSP và cập nhật cơ sở dữ liệu nhận diện linh hoạt từ xa. Các kết quả đo đạc thực nghiệm về tốc độ truyền dữ liệu qua Socket, chất lượng streaming qua Wifi/4G, độ ổn định liên tục trong 24 giờ và độ chính xác nhận diện đã chứng minh tính khả thi và khả năng ứng dụng thực tiễn của mô hình.