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

Trong bối cảnh công nghệ Internet of Things (IoT) và tự động hóa nhà ở (Smart Home) phát triển nhanh chóng, việc quản lý và tương tác với các thiết bị gia dụng đang chuyển dịch mạnh mẽ từ các phương thức tiếp xúc vật lý truyền thống sang các giao diện không tiếp xúc, thông minh và an toàn hơn. Phần lớn các nghiên cứu trước đây thường tiếp cận riêng lẻ giữa hệ thống nhúng IoT và xử lý ảnh (Computer Vision). Việc kết hợp đồng thời công nghệ nhận diện khuôn mặt và nhận diện cử chỉ tay trong cùng một hệ thống nhà thông minh mở ra giải pháp tối ưu hóa trải nghiệm người dùng, vừa đảm bảo tính an ninh khi kiểm soát ra vào, vừa mang lại sự tiện lợi, vệ sinh và trực quan trong điều khiển môi trường sống.

Đồ án tốt nghiệp ngành Công nghệ Kỹ thuật Máy tính (Computer Engineering Technology) tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh với đề tài "Facial Recognition And Hand Gestures To Control Home Appliances" do sinh viên Lê Thị Thanh Thư và Nguyễn Trọng Hải thực hiện (dưới sự hướng dẫn của TS. Đỗ Duy Tân, tháng 06/2024) được triển khai nhằm giải quyết bài toán tích hợp này.

Nghiên cứu đặt ra các mục tiêu và nhiệm vụ cụ thể như sau:

  1. Thu thập dữ liệu thực tế và củng cố kiến thức: Tiến hành thu thập tập dữ liệu ảnh thực tế để phục vụ huấn luyện, gia tăng độ tin cậy và hiệu quả hoạt động cho hệ thống.
  2. Làm rõ nguyên lý vận hành của hệ thống: Phân tích và trình bày chi tiết các cơ chế, luồng truyền dữ liệu và quá trình xử lý từ cảm biến/camera đến cơ sở dữ liệu và cơ cấu chấp hành.
  3. Nghiên cứu tích hợp phần cứng: Thực nghiệm và kết nối đồng bộ các thành phần phần cứng gồm Raspberry Pi 4, ESP32, Camera, Khóa chốt điện từ (Solenoid Lock), Đèn LED và Quạt làm mát.
  4. Xác định chiến lược phát triển cụ thể: Đề xuất các bước và phương pháp luận triển khai có tính ứng dụng thực tế.
  5. Thiết kế giải pháp đơn giản, tiết kiệm chi phí và thực tiễn: Tối ưu hóa cấu hình phần cứng và giao diện điều khiển để hệ thống có chi phí hợp lý, dễ triển khai trong đời sống thường ngày.

Đối tượng nghiên cứu của đề tài là hệ thống IoT điều khiển thiết bị gia dụng và kiểm soát cửa thông minh thông qua luồng dữ liệu hình ảnh nhận diện khuôn mặt và cử chỉ bàn tay. Phạm vi nghiên cứu bao gồm việc thu thập dữ liệu và xử lý thuật toán trong không gian trong nhà (indoor), tránh ánh sáng mặt trời chiếu trực tiếp, tập trung vào điều kiện chiếu sáng tốt; các thiết bị được điều khiển trong mô hình thử nghiệm bao gồm khóa cửa điện từ, quạt làm mát và đèn chiếu sáng, kết hợp giao diện phần mềm điều khiển từ xa.

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

Đồ án xây dựng nền tảng dựa trên sự kết hợp giữa các lý thuyết mạng nơ-ron học sâu (Deep Learning), các mô hình thị giác máy tính hiện đại và nền tảng điện toán đám mây cho IoT:

  • Mạng nơ-ron tích chập (CNN): Đóng vai trò nền tảng trích xuất đặc trưng hình ảnh qua các lớp Convolutional, Pooling và Fully Connected để nhận dạng và phân loại đối tượng.
  • Mô hình YOLOv8: Là kiến trúc phát hiện đối tượng một giai đoạn (one-stage detector) gồm 3 phần chính:
    • Backbone: Ứng dụng cấu trúc Cross Stage Partial (CSP) kết hợp module C2f (cải tiến từ C3 và khái niệm ELAN của YOLOv7) với các khối Conv-BN-SiLU nhằm tăng cường luồng gradient; tích hợp module Spatial Pyramid Pooling - Fast (SPPF) ở Stage 4 để rút ngắn thời gian suy luận. Số lượng block trong các stage được tinh giản (3, 6, 6, 3) để giảm chi phí tính toán.
    • Neck: Sử dụng kiến trúc Feature Pyramid - Path Aggregation Network (FP-PAN) kết hợp đặc trưng đa tỉ lệ từ trên xuống dưới và từ dưới lên trên, loại bỏ các phép tính tích chập khi upsampling nhằm tăng tốc độ xử lý.
    • Head: Sử dụng cấu trúc tách rời (Decoupled Head) giữa nhánh phân loại (classification) và nhánh hồi quy (regression), loại bỏ nhánh objectness và chuyển sang phương pháp không dùng neo (anchor-free).
    • Hàm mất mát (Loss): Sử dụng cơ chế gán mẫu động Task Aligned Assigner (từ TOOD) dựa trên công thức điểm căn chỉnh: $$t = s^\alpha + u^\beta$$ Trong đó $s$ là điểm số dự đoán của lớp được gán nhãn, và $u$ là chỉ số giao diện trên diện tích hợp (IoU) giữa hộp dự đoán và hộp nhãn thực tế.
  • Thư viện MediaPipe: Giải pháp mã nguồn mở từ Google hỗ trợ phát hiện bàn tay theo thời gian thực gồm mô hình phát hiện lòng bàn tay (palm detection) và mô hình trích xuất 21 điểm mốc tọa độ bàn tay (hand landmarks) trong không gian ảnh 2D, lấy gốc tọa độ tại góc trên bên trái.
  • Nền tảng Google Firebase Realtime Database: Dịch vụ lưu trữ dữ liệu NoSQL trên đám mây, cho phép đồng bộ hóa dữ liệu thời gian thực giữa máy tính nhúng Raspberry Pi, vi điều khiển ESP32 và ứng dụng giao diện người dùng (GUI).
  • Nền tảng Roboflow: Hỗ trợ quản lý dữ liệu, gán nhãn bounding box, tăng cường dữ liệu (data augmentation) và xuất tập dữ liệu cho huấn luyện mô hình YOLOv8.

Phương pháp nghiên cứu thực nghiệm được áp dụng thông qua việc thiết kế phân tầng: tầng xử lý biên trên Raspberry Pi thực thi các thuật toán AI, tầng trung gian đồng bộ qua đám mây Firebase, và tầng điều khiển cục bộ trên vi điều khiển ESP32 kích hoạt các rơ-le chấp hành.

Thiết kế và triển khai

Hệ thống được thiết kế theo cấu trúc mô-đun hóa, phân tách rõ ràng giữa khối xử lý thị giác máy tính và khối điều khiển phần cứng.

Thành phần phần cứng Model / Thông số lựa chọn Lý do và vai trò kỹ thuật
Camera Logitech Webcam C270 HD (3 MP, 720p @ 30fps) Tiết kiệm chi phí (400.000 VNĐ), đảm bảo độ phân giải và tốc độ khung hình phục vụ nhận diện liên tục.
Máy tính xử lý biên Raspberry Pi 4 Model B (RAM 8GB, CPU Cortex-A72) Đáp ứng dung lượng bộ nhớ lớn cho các tác vụ xử lý ảnh và chạy mô hình YOLOv8/MediaPipe đa nhiệm.
Vi điều khiển điều khiển ESP32-WROOM-32 (Dual-core, Wi-Fi 2.4GHz & BLE) Tích hợp Wi-Fi, kết nối API Firebase, tiêu thụ năng lượng thấp và quản lý GPIO điều khiển rơ-le.
Cơ cấu đóng ngắt Module 4 Relay 5VDC (Kích mức High/Low) Cách ly điện áp điều khiển và tải tiêu thụ, điều khiển các thiết bị điện 5VDC.
Khóa cửa uxcell Mini Electromagnetic Solenoid Lock 5V 1A Khóa chốt điện từ kéo nhả 3mm, lực giữ 30g, thích hợp mô hình cửa kiểm soát ra vào.
Quạt làm mát Sunon Maglev/Vapo Bearing 5VDC 40mm Độ ồn thấp, độ bền cao, đại diện cho hệ thống thông gió gia dụng.
Đèn chiếu sáng LED 5mm Thiết bị tiêu thụ điện năng thấp đại diện cho hệ thống chiếu sáng.
Nguồn cấp Bộ chuyển đổi nguồn AC-DC 220V AC sang 5V DC Cung cấp nguồn điện ổn định 5V cho toàn bộ hệ thống nhúng và cơ cấu chấp hành.

Kiến trúc phần mềm và luồng dữ liệu của hệ thống được vận hành theo các bước:

  1. Khối cơ sở dữ liệu (Firebase Realtime Database): Cấu trúc cơ sở dữ liệu được định nghĩa dưới nút gốc /Devices với các cặp khóa - giá trị:

    • cam_detection: 0
    • door: 0
    • fan: 0
    • hand_detection: 0
    • led: 0 Tệp cấu hình kết nối Firebase API trên Raspberry Pi được thiết lập thông qua Firebase Admin SDK Python với các trường khóa bảo mật (private_key_id, private_key, auth_uri, token_uri).
  2. Luồng xử lý nhận diện khuôn mặt:

    • Luồng video từ Camera C270 được đưa vào mô hình YOLOv8 trên Raspberry Pi.
    • Khi phát hiện khuôn mặt, hệ thống ánh xạ Class ID sang tên người dùng. Nếu kết quả trùng khớp với thành viên được cấp quyền (ClassName == "Hai" hoặc ClassName == "Thu"), biến trạng thái State được gán bằng 1, ngược lại gán bằng 0.
    • Trạng thái này được đẩy lên nút door trên Firebase Realtime Database.
  3. Luồng xử lý nhận diện cử chỉ tay:

    • Thư viện MediaPipe trích xuất 21 điểm mốc bàn tay và xác định góc lệch/khoảng cách offset của các ngón tay (ngón cái - Thumb, ngón trỏ - Index, ngón giữa - Middle, ngón áp út - Ring, ngón út - Pinky).
    • Khi offset trùng khớp với bảng trạng thái quy định, State gán bằng 1 (hoặc 0 khi nhận cử chỉ tắt) và đẩy dữ liệu lên biến fan hoặc led trên Firebase.
  4. Khối điều khiển thiết bị (ESP32):

    • ESP32 liên tục lắng nghe thay đổi dữ liệu từ Firebase qua kết nối Wi-Fi.
    • Khi biến door, fan, hoặc led thay đổi giá trị, ESP32 xuất tín hiệu điều khiển ra các chân GPIO tương ứng để kích hoạt rơ-le, từ đó đóng/ngắt khóa solenoid, quạt hoặc đèn LED.
  5. Giao diện điều khiển từ xa (GUI App):

    • Ứng dụng giao diện đồ họa được triển khai trên Raspberry Pi, cho phép người quản trị theo dõi thông tin thành viên, giám sát trạng thái thiết bị và điều khiển đóng/mở cửa, bật/tắt quạt và đèn trực tiếp qua Internet.

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

Chapter 1. Introduction

Chương mở đầu trình bày tính cấp thiết của đề tài trong xu hướng phát triển nhà thông minh, phân tích tính mới khi tích hợp đồng thời hai công nghệ thị giác máy tính vào hệ thống IoT. Tác giả nêu rõ 5 mục tiêu nghiên cứu cụ thể, phạm vi ứng dụng (môi trường trong nhà, kết nối Wi-Fi, điều khiển quạt, đèn, khóa cửa), các hạn chế về điều kiện chiếu sáng và phần cứng. Đồng thời, chương này tổng thuật các công trình nghiên cứu tiêu biểu trong nước và quốc tế liên quan đến điều khiển thiết bị bằng cử chỉ, khóa cửa thông minh bằng xử lý ảnh và trợ lý ảo trên Raspberry Pi.

Chapter 2. Literature Review

Chương 2 cung cấp cơ sở lý thuyết chi tiết về các công nghệ và phần cứng nền tảng. Nội dung bao gồm nguyên lý hoạt động của IoT, chuẩn giao tiếp Wi-Fi, mạng nơ-ron CNN và tiến trình phát triển của mạng YOLO. Tác giả phân tích chuyên sâu cấu trúc YOLOv8 (Backbone CSP-C2f-SPPF, Neck FP-PAN, Decoupled Head, hàm mất mát Task Aligned Assigner), cấu trúc 21 điểm mốc của thư viện MediaPipe, nền tảng Google Firebase và quy trình chuẩn bị dữ liệu với Roboflow. Đồng thời, chương này đưa ra các bảng so sánh thông số kỹ thuật và giá thành để giải thích cơ sở lựa chọn Camera Logitech C270 HD, Raspberry Pi 4 Model B (8GB RAM), ESP32-WROOM-32, Module 4 Relay, khóa chốt điện từ, quạt Sunon và đèn LED.

Chapter 3. Design and Implementation

Chương 3 trình bày toàn diện thiết kế hệ thống từ yêu cầu chức năng, sơ đồ khối tổng thể, sơ đồ tuần tự (sequence diagram) đến nguyên lý vận hành chi tiết. Tác giả mô tả quy trình xây dựng cơ sở dữ liệu Firebase Realtime Database, cách thức cấu hình và triển khai API trên Raspberry Pi bằng Python và trên ESP32. Các lưu đồ thuật toán (flowchart) được xây dựng chi tiết cho quá trình nhận diện khuôn mặt (phân loại người dùng và cập nhật biến door), quá trình nhận diện cử chỉ tay (ánh xạ offset ngón tay và cập nhật biến fan/led), cũng như quá trình ESP32 nhận dữ liệu điều khiển rơ-le và thiết kế giao diện GUI.

Chapter 4. Result

Chương 4 công bố các kết quả thực nghiệm sau khi chế tạo và lắp ráp hệ thống phần cứng và phần mềm. Nội dung trình bày kết quả thiết kế vỏ ngoài và bố trí linh kiện bên trong mô hình; kết quả nhận diện khuôn mặt trên Raspberry Pi truyền dữ liệu mở khóa solenoid qua ESP32; kết quả nhận diện từng ngón tay (ngón trỏ, ngón cái để điều khiển quạt; ngón út, ngón áp út để điều khiển đèn LED); kết quả điều khiển thiết bị qua ứng dụng GUI. Chương này cũng thực hiện đánh giá thời gian xử lý trung bình của hệ thống trong hai điều kiện ánh sáng (ban ngày và ban đêm), đồng thời lập bảng so sánh hiệu năng giữa YOLOv5 và YOLOv8, giữa MediaPipe và Handtrack.

Chapter 5. Conclusions and Future Works

Chương cuối cùng tổng kết các mục tiêu đã hoàn thành của đồ án, khẳng định tính khả thi của mô hình nhà thông minh điều khiển kép qua khuôn mặt và cử chỉ tay, đồng thời chỉ rõ các định hướng cải tiến tiếp theo về thuật toán và khả năng thích ứng phần cứng trong tương lai.

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

Đồ án đã đạt được các kết quả kỹ thuật và đóng góp cụ thể:

  • Kết quả triển khai phần cứng và phần mềm:

    • Hoàn thiện mô hình nhà thông minh tích hợp gồm khối xử lý ảnh biên (Raspberry Pi 4, Camera C270) và khối điều khiển chấp hành (ESP32, Module 4 Relay, Solenoid Lock, Fan, LED).
    • Thu thập, gán nhãn dữ liệu qua Roboflow và huấn luyện thành công mô hình YOLOv8 trên Raspberry Pi, nhận diện chính xác các thành viên được cấp quyền ("Hai", "Thu") để kích hoạt mở khóa cửa tự động.
    • Ứng dụng thành công MediaPipe trích xuất 21 điểm mốc cử chỉ bàn tay, phân loại chính xác các thao tác ngón tay (ngón cái, ngón trỏ, ngón áp út, ngón út) để điều khiển bật/tắt quạt và đèn.
    • Xây dựng thành công cơ sở dữ liệu thời gian thực trên Firebase, đảm bảo tính đồng bộ trạng thái giữa Raspberry Pi, ESP32 và ứng dụng GUI.
    • Đánh giá thời gian xử lý trung bình của hệ thống trong điều kiện ánh sáng ban ngày (daylight) và ánh sáng ban đêm (nightlight), chứng minh khả năng đáp ứng điều khiển thiết bị trong môi trường thực tế.
    • Đưa ra bảng đánh giá, so sánh đối chuẩn giữa thuật toán YOLOv5 và YOLOv8, cũng như giữa MediaPipe và Handtrack trên phần cứng nhúng.
  • Đóng góp của đề tài:

    • Kết hợp thành công hai phương thức thị giác máy tính (nhận diện khuôn mặt để xác thực truy cập và cử chỉ tay để điều khiển thiết bị) trong một kiến trúc IoT thống nhất thay vì tách biệt.
    • Tối ưu hóa kiến trúc xử lý dữ liệu: xử lý cục bộ trên thiết bị biên (on-device processing) giúp bảo vệ dữ liệu riêng tư của người dùng, kết hợp truyền thông đám mây qua Firebase giúp giảm tải cho vi điều khiển ESP32.
    • Cung cấp tài liệu thiết kế hệ thống chi tiết từ sơ đồ khối, lưu đồ thuật toán, cấu trúc API JSON đến sơ đồ mạch điều khiển phần cứng cho các ứng dụng nhà thông minh chi phí thấp.

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

Dựa trên các nội dung được nhóm tác giả nêu rõ trong văn bản:

  • Hạn chế:

    • Quá trình phát hiện và nhận diện khuôn mặt cũng như cử chỉ tay chủ yếu đạt hiệu quả tối ưu dưới điều kiện chiếu sáng tốt.
    • Hệ thống demo mới chỉ được triển khai và thử nghiệm trong môi trường trong nhà (indoor), cần tránh ánh sáng mặt trời chiếu trực tiếp.
    • Tốc độ phát hiện đối tượng của camera khi chạy thuật toán trực tiếp trên phần cứng Raspberry Pi còn tương đối chậm.
    • Phần mềm hiển thị và giao diện điều khiển mới chỉ chạy dưới dạng tệp thực thi (execution file) cục bộ trên hệ điều hành của Raspberry Pi.
  • Hướng nghiên cứu tiếp:

    • Cải tiến và tối ưu hóa các mô hình nhận diện để cải thiện tốc độ suy luận (FPS) trên máy tính nhúng.
    • Mở rộng tập dữ liệu và tinh chỉnh thuật toán để nâng cao độ chính xác khi hoạt động trong điều kiện ánh sáng yếu hoặc môi trường ánh sáng phức tạp.
    • Phát triển ứng dụng điều khiển đa nền tảng (Web/Mobile độc lập) để nâng cao khả năng quản lý từ xa.

Giá trị tham khảo

Tài liệu đồ án tốt nghiệp này mang lại giá trị tham khảo hữu ích cho:

  • Sinh viên và giảng viên ngành Kỹ thuật Máy tính, Điện tử Viễn thông và Khoa học Máy tính: Tham khảo phương pháp xây dựng hệ thống nhúng IoT kết hợp mô hình thị giác máy tính hiện đại (YOLOv8, MediaPipe).
  • Người phát triển hệ thống Smart Home và IoT: Tham khảo cách thức phân chia tải xử lý giữa Raspberry Pi (xử lý hình ảnh biên) và ESP32 (điều khiển thiết bị ngoại vi qua rơ-le) thông qua cơ sở dữ liệu trung gian Google Firebase.
  • Phần đáng chú ý nhất: Quy trình cấu hình và triển khai API Firebase trên Python (Raspberry Pi) và ESP32; phương pháp trích xuất 21 điểm mốc bàn tay bằng MediaPipe để chuyển đổi thành lệnh điều khiển phần cứng thực tế.

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

1. Những thiết bị gia dụng nào được điều khiển trong mô hình và cơ chế kích hoạt là gì?
Hệ thống điều khiển 3 thiết bị ngoại vi gồm: khóa chốt điện từ (Solenoid Lock), quạt làm mát (Fan 5VDC Sunon) và đèn (LED 5mm). Khóa cửa được kích hoạt mở khi hệ thống nhận diện đúng khuôn mặt thành viên được cấp quyền. Quạt và đèn LED được kích hoạt bật/tắt khi hệ thống nhận diện các cử chỉ ngón tay tương ứng (ngón cái, ngón trỏ, ngón áp út, ngón út) qua camera hoặc thông qua nút bấm trên ứng dụng GUI.

2. Tại sao nhóm nghiên cứu lại chọn Raspberry Pi 4 Model B phiên bản 8GB RAM?
Dựa trên bảng so sánh các dòng máy tính nhúng, phiên bản Raspberry Pi 4 Model B với 8GB RAM được lựa chọn vì tác vụ xử lý ảnh và chạy mô hình học sâu (YOLOv8, MediaPipe) đòi hỏi dung lượng bộ nhớ RAM lớn. RAM 8GB giúp hệ thống xử lý mượt mà các tập dữ liệu hình ảnh độ phân giải cao, chạy đa nhiệm nhiều luồng xử lý mà không bị nghẽn bộ nhớ, đồng thời có chi phí hợp lý hơn so với NVIDIA Jetson Nano B01.

3. Cơ sở dữ liệu Firebase Realtime Database trong hệ thống quản lý những biến trạng thái nào?
Trong nút /Devices của cơ sở dữ liệu Firebase, hệ thống khởi tạo và quản lý 5 biến trạng thái: cam_detection (trạng thái phát hiện của camera), door (trạng thái đóng/mở của khóa cửa), fan (trạng thái bật/tắt quạt), hand_detection (trạng thái phát hiện cử chỉ tay) và led (trạng thái bật/tắt đèn chiếu sáng).

4. Mô hình YOLOv8 trên Raspberry Pi xử lý logic mở khóa cửa như thế nào?
Sau khi nhận diện khuôn mặt từ luồng camera, mô hình ánh xạ Class ID thành tên người dùng (Class Name). Nếu tên nhận diện trùng khớp với "Hai" hoặc "Thu", biến trạng thái State được đặt thành 1 (ngược lại là 0). Sau đó, hệ thống gửi giá trị State này lên biến door trên Firebase. ESP32 đọc giá trị door = 1 từ Firebase và kích hoạt rơ-le cấp điện để mở khóa solenoid.

5. Thư viện MediaPipe nhận diện cử chỉ bàn tay dựa trên nguyên lý nào?
MediaPipe sử dụng mô hình hai giai đoạn: đầu tiên phát hiện vùng lòng bàn tay (palm detection), sau đó trích xuất 21 điểm mốc tọa độ không gian (hand landmarks) đại diện cho các khớp và đầu ngón tay dựa trên tỷ lệ chiều rộng và chiều cao của khung hình (gốc tọa độ đặt tại góc trên bên trái). Bằng cách tính toán vị trí và độ lệch (offset) của các điểm mốc này, hệ thống phân biệt được các cử chỉ của từng ngón tay để chuyển thành lệnh điều khiển.

Kết luận

Đồ án tốt nghiệp "Facial Recognition And Hand Gestures To Control Home Appliances" đã nghiên cứu và triển khai thành công một hệ thống nhà thông minh tích hợp hoàn chỉnh, kết hợp giữa nhận diện khuôn mặt để kiểm soát cửa ra vào và nhận diện cử chỉ tay để điều khiển quạt và đèn chiếu sáng. Giải pháp sử dụng Raspberry Pi 4 làm khối xử lý hình ảnh biên với YOLOv8 và MediaPipe, kết nối đồng bộ qua Google Firebase Realtime Database đến vi điều khiển ESP32 để điều khiển các cơ cấu chấp hành. Mặc dù còn một số hạn chế về tốc độ xử lý biên và sự phụ thuộc vào điều kiện chiếu sáng, đồ án đã chứng minh tính thực tiễn cao, đảm bảo tính bảo mật dữ liệu và cung cấp tài liệu tham khảo kỹ thuật giá trị cho các ứng dụng IoT và thị giác máy tính trong đời sống.