Giới thiệu dự án

Thị trường nhà thông minh (Smart Home) toàn cầu đang chứng kiến sự tăng trưởng vượt bậc với tỷ lệ tăng trưởng kép hàng năm (CAGR) vượt 12.5%, định hình xu hướng số hóa trong quản lý và tự động hóa không gian sống. Tuy nhiên, phần lớn các giải pháp nhà thông minh hiện nay vẫn phụ thuộc chủ yếu vào các thiết bị tương tác vật lý (như công tắc cơ, phím bấm cảm ứng, thẻ từ RFID) hoặc giao diện ứng dụng điện thoại (Smartphone GUI). Phương thức tương tác này bộc lộ nhiều điểm hạn chế: bất tiện đối với người cao tuổi và người khuyết tật, nguy cơ lây nhiễm chéo vi khuẩn qua tiếp xúc bề mặt, và rủi ro bảo mật từ việc thất lạc chìa khóa hay lộ mật khẩu.

Đồ án tốt nghiệp ngành Công nghệ Kỹ thuật Máy tính tại Trường Đại học Sư phạm Kỹ thuật TP.HCM (HCMUTE) với đề tài "Nhận diện khuôn mặt và cử chỉ tay để điều khiển thiết bị" (Facial Recognition And Hand Gestures To Control Home Appliances) được thực hiện bởi nhóm tác giả Lê Thị Thanh Thư (MSSV: 18119044) và Nguyễn Trọng Hải (MSSV: 19119028) dưới sự hướng dẫn của TS. Đỗ Duy Tân. Dự án giải quyết triệt để bài toán điều khiển không tiếp xúc (Touchless Human-Machine Interface - HMI) bằng cách kết hợp thị giác máy tính (Computer Vision) và mạng nơ-ron tích chập (Convolutional Neural Networks - CNN) trên nền tảng vi điều khiển và máy tính nhúng IoT.

+-----------------------------------------------------------------------------+
|                              HỆ THỐNG SMART HOME                             |
|                                                                             |
|  +-------------------+       +--------------------+       +--------------+  |
|  | Nhận diện         |       |   Xử lý biên &     |       | Chấp hành    |  |
|  | Khuôn mặt         | ----> |   Đồng bộ Cloud    | ----> | Khóa cửa     |  |
|  | (YOLOv8)          |       |  (RPi 4 + Firebase)|       | (Solenoid)   |  |
|  +-------------------+       +--------------------+       +--------------+  |
|                                        |                                    |
|  +-------------------+                 |                  +--------------+  |
|  | Nhận diện         |                 v                  | Bật / Tắt    |  |
|  | Cử chỉ tay        | ----> +--------------------+ ----> | Đèn LED,     |  |
|  | (MediaPipe)       |       | Điều khiển thiết bị|       | Quạt làm mát |  |
|  +-------------------+       |      (ESP32)       |       +--------------+  |
|                              +--------------------+                         |
+-----------------------------------------------------------------------------+

Mục tiêu dự án

  1. Thu thập dữ liệu thực tế và xây dựng Custom Dataset: Chuẩn hóa tập dữ liệu nhận diện khuôn mặt người dùng gia đình thông qua nền tảng Roboflow, phục vụ quá trình huấn luyện mô hình học sâu.
  2. Triển khai mô hình AI thị giác tại biên (Edge AI): Nhúng mô hình nhận diện khuôn mặt YOLOv8 và trích xuất đặc trưng 21 điểm mốc bàn tay (21 Hand Landmarks) của Google MediaPipe trực tiếp trên Raspberry Pi 4 (8GB RAM).
  3. Thiết kế kiến trúc truyền thông phân tán: Tối ưu hóa chu trình truyền nhận trạng thái theo thời gian thực (Real-time synchronization) giữa Raspberry Pi 4, Google Firebase Realtime Database và vi điều khiển ESP32-WROOM-32 qua giao thức Wi-Fi 802.11 b/g/n.
  4. Tích hợp khối chấp hành phần cứng: Điều khiển đóng ngắt an toàn hệ thống rơ-le 4 kênh (4-Channel 5VDC Relay) kết nối với khóa điện từ Solenoid Lock 5V, quạt tản nhiệt Sunon Maglev 5VDC và hệ thống đèn LED chiếu sáng.
  5. Xây dựng giao diện điều khiển đa phương thức: Phát triển ứng dụng GUI hỗ trợ giám sát trạng thái thiết bị và cho phép chuyển đổi linh hoạt giữa các chế độ nhận diện tự động hoặc điều khiển thủ công từ xa.

Phạm vi và giới hạn hệ thống

  • Phạm vi triển khai: Hệ thống kiểm soát ra vào và quản lý thiết bị gia dụng trong môi trường trong nhà (Indoor environment), hoạt động ổn định trong điều kiện ánh sáng tiêu chuẩn.
  • Giới hạn kỹ thuật: Góc quét camera cố định (Logitech C270 720p), hiệu năng suy luận mô hình phụ thuộc vào năng lực tản nhiệt và tính toán của chip ARM Cortex-A72 trên Raspberry Pi 4; chưa tích hợp cảm biến đo chiều sâu chống giả mạo khuôn mặt 3D (3D Anti-spoofing).

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tiêu chí Công tắc / Khóa vật lý Ứng dụng di động (Mobile App) Trợ lý giọng nói (Voice AI) Giải pháp AI Thị giác & Cử chỉ (Đề tài)
Tính tiện dụng Thấp (phải di chuyển lại gần) Trung bình (cần cầm điện thoại) Khá (cần môi trường yên tĩnh) Rất cao (hoàn toàn rảnh tay)
Bảo mật truy cập Dễ sao chép chìa/thẻ từ Phụ thuộc bảo mật tài khoản Dễ bị giả mạo giọng nói Rất cao (sinh trắc học khuôn mặt)
Độ trễ phản hồi Tức thì (< 10ms) 200ms - 800ms 1000ms - 2500ms (xử lý Cloud) 150ms - 450ms (Edge Processing)
Khả năng tiếp cận Hạn chế với người tàn tật Khó dùng cho người già Khó dùng cho người khiếm thính/nói ngọng Rất tốt cho người hạn chế vận động
Yêu cầu kết nối Không cần Bắt buộc Internet Bắt buộc Internet băng thông cao Hoạt động mạng nội bộ / Cloud sync

Hệ thống được thiết kế theo mô hình MoSCoW:

  • Must-have (Bắt buộc): Nhận diện khuôn mặt chính xác các thành viên gia đình được cấp quyền; phân loại chính xác 5 trạng thái ngón tay (Thumb, Index, Middle, Ring, Pinky); đóng ngắt relay qua Firebase.
  • Should-have (Nên có): Giao diện GUI trực quan trên Raspberry Pi; tự động đồng bộ hóa trạng thái real-time khi mất kết nối mạng tạm thời.
  • Could-have (Có thể có): Chế độ tiết kiệm năng lượng cho ESP32 khi không có tín hiệu điều khiển.
  • Won't-have (Chưa thực hiện): Tích hợp camera hồng ngoại chuyên dụng cho điều khiển trong bóng tối tuyệt đối.

Thiết kế hệ thống

Kiến trúc hệ thống bao gồm hai khối phần cứng chính giao tiếp thông qua Cloud Database:

flowchart TD
    subgraph "Khối Xử Lý Ảnh (Image Processing Block)"
        CAM["Logitech C270 HD (720p@30fps)"] -->|USB Video Stream| RPI["Raspberry Pi 4 (8GB RAM / Quad-core Cortex-A72)"]
        RPI -->|Inference| YOLO["YOLOv8 Face Detection & Recognition"]
        RPI -->|Inference| MP["MediaPipe 21 Hand Landmarks"]
        GUI["Python GUI Dashboard"] <-->|Local Display / Control| RPI
    end

    subgraph "Hạ Tầng Điện Toán Đám Mây"
        RPI -->|HTTPS / REST API / Admin SDK| FB[("Google Firebase Realtime Database")]
    end

    subgraph "Khối Chấp Hành & Điều Khiển (Control Block)"
        FB -->|Wi-Fi Stream / Polling| ESP["ESP32-WROOM-32 Microcontroller"]
        ESP -->|GPIO Control Signals| RELAY["Module 4-Channel 5V Relay H/L Trigger"]
        RELAY -->|Relay Ch 1| LOCK["Solenoid Lock 5V (Khóa Cửa)"]
        RELAY -->|Relay Ch 2| FAN["Sunon Maglev 5VDC Fan (Quạt)"]
        RELAY -->|Relay Ch 3| LED["5mm High-brightness LED (Đèn)"]
    end

Ngăn xếp công nghệ (Technology Stack)

  • Edge AI Computer: Raspberry Pi 4 Model B (Broadcom BCM2711, Quad-core Cortex-A72 64-bit SoC @ 1.5GHz, 8GB LPDDR4-3200 SDRAM).
  • Embedded Controller: ESP32-WROOM-32 (Dual-core Xtensa 32-bit LX6 @ 240MHz, 520KB SRAM, 2.4 GHz Wi-Fi + Bluetooth v4.2 BR/EDR).
  • Vision Models: Ultralytics YOLOv8n (Anchor-free, C2f modules, SPPF neck) & Google MediaPipe Hand Tracking Module (21 landmark coordinate detection).
  • Cloud Infrastructure: Google Firebase Realtime Database (JSON Tree format).
  • Firmware & Software: Python 3.9+, OpenCV 4.x, Firebase Admin Python SDK, C++ Arduino IDE with FirebaseESP32 client library.

Thiết kế cấu trúc cơ sở dữ liệu Firebase

Cơ sở dữ liệu được tổ chức dưới dạng cấu trúc JSON phân cấp tối giản để đảm bảo tốc độ đọc ghi nhanh nhất:

{
  "Devices": {
    "cam_detection": 1,
    "door": 0,
    "fan": 1,
    "hand_detection": 1,
    "led": 0
  }
}
+------------------+---------+-------------------------------------------------------+
| Trường Dữ Liệu   | Kiểu    | Ý Nghĩa Chức Năng                                     |
+------------------+---------+-------------------------------------------------------+
| cam_detection    | integer | 0: Tắt camera / 1: Kích hoạt chế độ nhận diện         |
| door             | integer | 0: Khóa cửa đóng / 1: Mở khóa Solenoid Lock           |
| fan              | integer | 0: Tắt quạt làm mát / 1: Bật quạt Sunon 5V            |
| hand_detection   | integer | 0: Chế độ nhận diện mặt / 1: Nhận diện cử chỉ tay     |
| led              | integer | 0: Tắt đèn LED / 1: Bật đèn chiếu sáng               |
+------------------+---------+-------------------------------------------------------+

Phương pháp nghiên cứu và phát triển (Methodology)

Quy trình phát triển tuân theo mô hình lặp kết hợp kiểm thử liên tục (Iterative Agile Prototyping) với 4 mốc quan trọng:

  1. Giai đoạn 1 (Tuần 1 - 3): Thu thập dữ liệu hình ảnh thành viên (500+ mẫu/người), gán nhãn Bounding Box trên Roboflow, huấn luyện mô hình YOLOv8n trên GPU Google Colab và tối ưu hóa trọng số.
  2. Giai đoạn 2 (Tuần 4 - 6): Cấu hình môi trường Linux trên Raspberry Pi 4, tích hợp MediaPipe Hand Tracker, xây dựng logic giải mã vị trí khớp ngón tay.
  3. Giai đoạn 3 (Tuần 7 - 9): Thiết lập Firebase Realtime Database, viết API điều khiển hai chiều bằng Python trên Pi và C++ trên ESP32; đấu nối phần cứng mạch công suất Relay.
  4. Giai đoạn 4 (Tuần 10 - 12): Kiểm thử tích hợp toàn diện (System Integration Test), đánh giá hiệu năng nhận diện trong các điều kiện môi trường khác nhau và tối ưu hóa độ trễ phản hồi.

Triển khai thực nghiệm và Kết quả

Quy trình phát triển và thuật toán cốt lõi

1. Huấn luyện mô hình YOLOv8 nhận diện khuôn mặt

YOLOv8 loại bỏ cấu trúc Anchor Box truyền thống và chuyển sang cơ chế Anchor-Free, giúp giảm đáng kể độ phức tạp tính toán khi nội suy tọa độ khuôn mặt. Kiến trúc sử dụng khối C2f (Cross Stage Partial with 2 Convolutions) thay thế cho khối C3 của YOLOv5, tăng cường khả năng học luồng gradient mà không làm tăng kích thước tham số.

Hàm mất mát phân loại và hồi quy sử dụng cơ chế Task Aligned Assigner (TOOD): $$t = s^\alpha \times u^\beta$$ Trong đó: $s$ là điểm số tin cậy của phân lớp dự đoán, $u$ là chỉ số IoU (Intersection over Union) giữa Bounding Box dự đoán và Ground Truth, $\alpha$ và $\beta$ là các trọng số căn chỉnh $(\alpha = 0.5, \beta = 6.0)$.

# Code snippet: Pipeline suy luận khuôn mặt và đẩy trạng thái Firebase trên Raspberry Pi 4
import cv2
from ultralytics import YOLO
import firebase_admin
from firebase_admin import credentials, db

# Khởi tạo kết nối Firebase
cred = credentials.Certificate('/home/pi/smart_home/firebase_key.json')
firebase_admin.initialize_app(cred, {
    'databaseURL': 'https://smarthome-ai-iot-default-rtdb.firebaseio.com/'
})
ref_devices = db.reference('Devices')

# Tải mô hình YOLOv8 đã tinh chỉnh
model = YOLO('/home/pi/smart_home/weights/best_face_yolov8.pt')
cap = cv2.VideoCapture(0) # Logitech C270

while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break
    
    results = model.predict(source=frame, conf=0.75, verbose=False)
    authenticated = False
    
    for r in results:
        for box in r.boxes:
            class_id = int(box.cls[0])
            class_name = model.names[class_id]
            
            # Kiểm tra phân quyền thành viên
            if class_name in ["Hai", "Thu"]:
                authenticated = True
                break
                
    if authenticated:
        ref_devices.update({'door': 1})
        cv2.putText(frame, "Access Granted", (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
    else:
        ref_devices.update({'door': 0})
        
    cv2.imshow("Facial Access Control", frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

2. Nhận diện cử chỉ tay với 21 điểm mốc MediaPipe

Hệ thống sử dụng MediaPipe Hands để trích xuất tọa độ không gian 3 chiều $(x, y, z)$ của 21 điểm mốc xương bàn tay. Trạng thái duỗi/gập của các ngón tay được xác định thông qua việc so sánh khoảng cách tọa độ trục Y giữa đỉnh ngón tay (Tip Landmark) và khớp gian ngón gần (PIP Landmark).

        MediaPipe 21 Hand Landmarks
                 [8] TIP (Index)
                  |
                 [7] DIP
                  |
                 [6] PIP
                  |
    [4] TIP ---- [5] MCP (Gốc trỏ)
       \          |
       [3] IP     |       [12]   [16]   [20] (Tips: Middle, Ring, Pinky)
         \        |        |      |      |
         [2] MCP  +--------+------+------+
           \               |
           [1] CMC       [0] WRIST (Cổ tay)
+-------------------+---------------------+---------------------------+-----------------------------------+
| Ngón Tay          | Landmark Đỉnh (Tip) | Khớp Tham Chiếu (PIP/MCP) | Thiết Bị / Hành Động Điều Khiển   |
+-------------------+---------------------+---------------------------+-----------------------------------+
| Ngón Cái (Thumb)  | Landmark ID 4       | Landmark ID 2 (MCP)       | Tắt toàn bộ thiết bị (All Off)    |
| Ngón Trỏ (Index)  | Landmark ID 8       | Landmark ID 6 (PIP)       | Bật / Tắt Quạt (Toggle Fan)       |
| Ngón Giữa (Middle)| Landmark ID 12      | Landmark ID 10 (PIP)      | Tăng / Giảm công suất quạt        |
| Ngón Áp Út (Ring) | Landmark ID 16      | Landmark ID 14 (PIP)      | Bật / Tắt Đèn chiếu sáng (LED)    |
| Ngón Út (Pinky)   | Landmark ID 20      | Landmark ID 18 (PIP)      | Chế độ khẩn cấp / Khóa bảo vệ     |
+-------------------+---------------------+---------------------------+-----------------------------------+

3. Tiếp nhận dữ liệu và điều khiển thiết bị trên ESP32

// Code snippet: Xử lý cập nhật Firebase và kích hoạt Relay trên ESP32
#include <WiFi.h>
#include <FirebaseESP32.h>

#define WIFI_SSID "SMART_HOME_AP"
#define WIFI_PASSWORD "IoT_Secured_2024"
#define FIREBASE_HOST "smarthome-ai-iot-default-rtdb.firebaseio.com"
#define FIREBASE_AUTH "AIzaSyD...SecretToken"

#define PIN_RELAY_DOOR 25
#define PIN_RELAY_FAN  26
#define PIN_RELAY_LED  27

FirebaseData fbData;
FirebaseAuth auth;
FirebaseConfig config;

void setup() {
  Serial.begin(115200);
  pinMode(PIN_RELAY_DOOR, OUTPUT);
  pinMode(PIN_RELAY_FAN, OUTPUT);
  pinMode(PIN_RELAY_LED, OUTPUT);
  
  // Mặc định ngắt Relay (Active LOW logic)
  digitalWrite(PIN_RELAY_DOOR, HIGH);
  digitalWrite(PIN_RELAY_FAN, HIGH);
  digitalWrite(PIN_RELAY_LED, HIGH);

  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  while (WiFi.status() != WL_CONNECTED) {
    delay(300);
    Serial.print(".");
  }

  config.host = FIREBASE_HOST;
  config.signer.tokens.legacy_token = FIREBASE_AUTH;
  Firebase.begin(&config, &auth);
  Firebase.reconnectWiFi(true);
}

void loop() {
  if (Firebase.getInt(fbData, "/Devices/door")) {
    int doorState = fbData.intData();
    digitalWrite(PIN_RELAY_DOOR, doorState == 1 ? LOW : HIGH); // LOW = Kích hoạt Solenoid
  }
  
  if (Firebase.getInt(fbData, "/Devices/fan")) {
    int fanState = fbData.intData();
    digitalWrite(PIN_RELAY_FAN, fanState == 1 ? LOW : HIGH);
  }

  if (Firebase.getInt(fbData, "/Devices/led")) {
    int ledState = fbData.intData();
    digitalWrite(PIN_RELAY_LED, ledState == 1 ? LOW : HIGH);
  }
  
  delay(100); // Chu kỳ cập nhật trạng thái 100ms
}

Đánh giá và kiểm thử hiệu năng

Hệ thống được thử nghiệm thực tế qua 200 lượt nhận diện khuôn mặt và cử chỉ tay trong hai điều kiện chiếu sáng: Ánh sáng ban ngày (Daylight - 300 to 500 Lux) và Ánh sáng đèn ban đêm (Nightlight - 50 to 100 Lux).

Điều Kiện Môi Trường Tác Vụ Nhận Diện Tỷ Lệ Nhận Diện Chính Xác (%) Thời Gian Xử Lý AI (ms) Độ Trễ Mạng Firebase (ms) Tổng Độ Trễ Hệ Thống (ms)
Ban ngày (Daylight) Khuôn mặt (YOLOv8) 98.5% 115 ms 120 ms 235 ms
Ban ngày (Daylight) Cử chỉ tay (MediaPipe) 97.2% 45 ms 118 ms 163 ms
Ban đêm (Nightlight) Khuôn mặt (YOLOv8) 91.0% 128 ms 125 ms 253 ms
Ban đêm (Nightlight) Cử chỉ tay (MediaPipe) 88.5% 52 ms 122 ms 174 ms
+-----------------------------------------------------------------------------+
|              TỔNG ĐỘ TRỄ HỆ THỐNG TRONG ĐIỀU KIỆN BAN NGÀY (ms)              |
|                                                                             |
|  Xử lý AI (MediaPipe): [ 45ms ]                                             |
|  Xử lý AI (YOLOv8):    [       115ms       ]                                |
|  Đồng bộ Firebase:     [       120ms       ]                                |
|  Toàn trình Cử chỉ:    [========== 163ms ==========]                        |
|  Toàn trình Khuôn mặt: [================= 235ms =================]          |
|                                                                             |
|  0ms                  50ms                100ms               150ms   250ms |
+-----------------------------------------------------------------------------+

Kết quả đạt được so với mục tiêu ban đầu

+------------------------------------+-----------------------+---------------------+-------------------+
| Hạng Mục Tính Năng                 | Chỉ Tiêu Thiết Kế     | Kết Quả Đạt Được    | Tỷ Lệ Hoàn Thành  |
+------------------------------------+-----------------------+---------------------+-------------------+
| Tốc độ khung hình xử lý (FPS)      | >= 15 FPS             | 22 - 28 FPS         | 100% (Vượt mức)   |
| Độ chính xác nhận diện khuôn mặt   | >= 90%                | 94.75% (Trung bình) | 100%              |
| Độ chính xác nhận diện cử chỉ tay  | >= 85%                | 92.85% (Trung bình) | 100%              |
| Thời gian phản hồi đóng ngắt Relay | < 500 ms              | 163 - 253 ms        | 100%              |
| Giao diện người dùng (GUI)         | Điều khiển 3 thiết bị | Quản trị toàn diện  | 100%              |
+------------------------------------+-----------------------+---------------------+-------------------+

Đổi mới và đóng góp khoa học

Cải tiến kỹ thuật nổi bật

  1. Kiến trúc phân tầng tính toán Edge-to-Cloud-to-Actuator: Giải phóng toàn bộ tác vụ tính toán thị giác nặng nề cho Raspberry Pi 4, trong khi vi điều khiển ESP32 chỉ tập trung vào việc duy trì kết nối mạng ổn định và điều khiển tín hiệu xung kích Relay. Thiết kế này triệt tiêu hoàn toàn hiện tượng quá nhiệt hay nghẽn CPU trên vi điều khiển.
  2. Tối ưu hóa mô hình YOLOv8 trên tài nguyên nhúng: Nhờ sử dụng cấu trúc Anchor-free kết hợp cùng module C2f và module tạo đặc trưng đa tỷ lệ SPPF (Spatial Pyramid Pooling - Fast), kích thước mô hình giảm 34% và tốc độ suy luận nhanh hơn 18% so với YOLOv5s trên cùng phần cứng Broadcom BCM2711.
  3. Thuật toán giải mã cử chỉ tay tối ưu: Tận dụng 21 điểm mốc không gian 3D của MediaPipe với phương pháp tính toán sai lệch tọa độ chuẩn hóa (Offset Distance Mapping), giúp hệ thống nhận biết cử chỉ chỉ sau 45ms mà không cần huấn luyện mô hình mạng nơ-ron phức tạp cho cử chỉ tĩnh.

So sánh với các giải pháp hiện hành

+----------------------------+-----------------------+-------------------------+-------------------------------+
| Đặc Tính Kỹ Thuật          | Giải Pháp Smart-Home  | Giải Pháp Nhận Diện     | Đề Tài Nghiên Cứu             |
|                            | LoRa / Zigbee [24]    | Face Recognition [25]   | (HCMUTE 2024)                 |
+----------------------------+-----------------------+-------------------------+-------------------------------+
| **Phương thức kích hoạt**  | Nút bấm / Cảm biến RF | Khuôn mặt đơn lẻ        | Đa phương thức (Face + Hand)  |
| **Mô hình AI thị giác**    | Không có AI           | Haar Cascade / LBPH     | YOLOv8n + MediaPipe 21 Points |
| **Tốc độ xử lý hình ảnh**  | N/A                   | 8 - 12 FPS (Chậm)       | 22 - 28 FPS (Mượt mà)         |
| **Khả năng mở rộng**       | Giới hạn phần cứng    | Khó tích hợp thiết bị   | Dễ dàng mở rộng qua Firebase  |
| **Chi phí triển khai**     | Cao (Cần Hub mạng)    | Trung bình              | Thấp (~3.500.000 VNĐ toàn bộ) |
+----------------------------+-----------------------+-------------------------+-------------------------------+

Ứng dụng thực tế và triển khai

Kịch bản sử dụng thực tế (Use Cases)

  • Kiểm soát ra vào thông minh không chạm: Khi chủ hộ đứng trước cửa ở khoảng cách 0.5m - 1.5m, camera tự động phát hiện và nhận diện khuôn mặt; sau 235ms, khóa chốt điện từ Solenoid mở chốt tự động mà không cần chạm vào tay nắm cửa hay nhập mã PIN.
  • Hỗ trợ người cao tuổi và người suy giảm khả năng vận động: Người dùng ngồi trên giường hoặc xe lăn chỉ cần giơ ngón trỏ để bật quạt mát, giơ ngón áp út để bật đèn phòng khách mà không cần với tới công tắc tường hay tìm kiếm remote.
  • Môi trường y tế và phòng thí nghiệm vô trùng: Bác sĩ hoặc kỹ thuật viên có thể bật/tắt thiết bị phụ trợ trong phòng mổ mà không vi phạm quy tắc khử khuẩn bàn tay.
+-----------------------------------------------------------------------------+
|                                HƯỚNG DẪN TRIỂN KHAI                          |
|                                                                             |
|  [BƯỚC 1] Cài đặt Dependencies trên Raspberry Pi 4:                         |
|  $ sudo apt update && sudo apt install -y python3-opencv python3-pip        |
|  $ pip3 install ultralytics mediapipe firebase-admin                        |
|                                                                             |
|  [BƯỚC 2] Thiết lập Firebase SDK & Tải mã nguồn:                            |
|  $ git clone https://github.com/hcmute-ce/smart-home-face-gesture.git       |
|  $ cd smart-home-face-gesture && python3 main_edge_processing.py            |
|                                                                             |
|  [BƯỚC 3] Nạp Firmware điều khiển cho ESP32 qua Arduino IDE:                |
|  Cài đặt thư viện: Firebase ESP32 Client by Mobizt                          |
|  Biên dịch và nạp file: esp32_relay_controller.ino                         |
+-----------------------------------------------------------------------------+

Phân tích chi phí và hiệu quả đầu tư (Cost-Benefit Analysis)

+-----------------------------------------------------+---------------+---------------+
| Hạng Mục Linh Kiện Phần Cứng                        | Số Lượng      | Chi Phí (VNĐ) |
+-----------------------------------------------------+---------------+---------------+
| Bo mạch Raspberry Pi 4 Model B (8GB RAM)            | 01            | 2.800.000     |
| Vi điều khiển ESP32-WROOM-32 Wi-Fi/Bluetooth        | 01            | 120.000       |
| Webcam Logitech C270 HD (720p 30fps)                | 01            | 400.000       |
| Khóa điện từ Solenoid Lock 5V / 1A                  | 01            | 85.000        |
| Quạt tản nhiệt Sunon Maglev 5VDC (#ME40100V1)       | 01            | 65.000        |
| Mạch đóng ngắt Module 4-Channel 5V Relay H/L        | 01            | 45.000        |
| Nguồn tổ ong hạ áp AC-DC (220VAC sang 5VDC / 5A)    | 01            | 95.000        |
| Linh kiện phụ trợ (Dây cắm, LED, điện trở, vỏ hộp)  | 01 bộ         | 70.000        |
+-----------------------------------------------------+---------------+---------------+
| **TỔNG CHI PHÍ PHẦN CỨNG**                          |               | **3.680.000** |
+-----------------------------------------------------+---------------+---------------+

So với các hệ thống Smart Home thương mại cao cấp có chức năng nhận diện khuôn mặt (giá dao động từ 12.000.000 đến 25.000.000 VNĐ), giải pháp tự phát triển giúp tiết kiệm hơn 70% chi phí đầu tư ban đầu trong khi hoàn toàn làm chủ mã nguồn và dữ liệu riêng tư.


Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Phụ thuộc vào cường độ ánh sáng: Khi độ rọi môi trường giảm xuống dưới 30 Lux, tỷ lệ nhận diện đúng của mô hình YOLOv8 và MediaPipe giảm xuống dưới 80% do nhiễu hạt cảm biến hình ảnh CMOS của Logitech C270.
  • Rủi ro giả mạo 2D (Anti-Spoofing): Hệ thống chưa tích hợp thuật toán đo chiều sâu quang học (Liveness Detection) để phân biệt giữa khuôn mặt thật và hình ảnh hiển thị qua màn hình điện thoại.
  • Độ trễ phụ thuộc đường truyền Internet: Cơ chế đồng bộ hóa trạng thái qua máy chủ đám mây Firebase Cloud có thể bị gián đoạn nếu mạng Wi-Fi cục bộ mất kết nối Internet ra ngoài.

Hướng phát triển trong tương lai

  • Tích hợp bộ tăng tốc phần cứng AI chuyên dụng: Bổ sung thanh tăng tốc thần kinh Google Coral USB Accelerator (Edge TPU) hoặc nâng cấp lên bo mạch NVIDIA Jetson Nano/Orin để tăng tốc độ suy luận mô hình lên mức 60+ FPS với độ phân giải Full HD (1080p).
  • Phát triển thuật toán Liveness Detection 3D: Kết hợp camera cảm biến chiều sâu (RealSense Depth Camera) hoặc thuật toán phân tích chớp mắt/cử động đầu tự nhiên để nâng cao cấp độ an ninh chống giả mạo khuôn mặt.
  • Kiến trúc chuyển mạch cục bộ (Local Fallback MQTT): Thiết lập máy chủ MQTT Broker (Mosquitto) chạy trực tiếp trên Raspberry Pi để duy trì việc đóng ngắt thiết bị trong mạng LAN ngay cả khi đường truyền cáp quang quốc tế gặp sự cố.

Đối tượng hưởng lợi

+-----------------------------------------------------------------------------+
|                            ĐỐI TƯỢNG HƯỞNG LỢI                              |
|                                                                             |
|  [ SINH VIÊN KỸ THUẬT ]                                                     |
|  - Tài liệu tham khảo đồ án chuẩn mực về tích hợp Vision AI + IoT           |
|  - Nắm vững quy trình huấn luyện YOLOv8 và trích xuất Landmark MediaPipe    |
|                                                                             |
|  [ KỸ SƯ PHẦN MỀM NHÚNG & AI ]                                              |
|  - Mã nguồn thực thi kết nối Firebase Admin Python với ESP32 C++            |
|  - Kinh nghiệm tối ưu hóa luồng suy luận Deep Learning trên SoC ARM         |
|                                                                             |
|  [ DOANH NGHIỆP SMART HOME ]                                                |
|  - Kiến trúc tham chiếu chi phí thấp cho các dòng sản phẩm Smart Lock       |
|  - Khả năng thương mại hóa thiết bị điều khiển rảnh tay trong công nghiệp   |
|                                                                             |
|  [ NHÀ NGHIÊN CỨU THỊ GIÁC MÁY TÍNH ]                                       |
|  - Dữ liệu đối sánh hiệu năng giữa YOLOv5 vs YOLOv8, MediaPipe vs Handtrack |
+-----------------------------------------------------------------------------+

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

1. Yêu cầu phần cứng tối thiểu để triển khai giải pháp này là gì?

Hệ thống yêu cầu tối thiểu một bo mạch nhúng có năng lực tính toán tốt như Raspberry Pi 4 (khuyến nghị phiên bản 4GB hoặc 8GB RAM để xử lý luồng video trơn tru), một vi điều khiển có Wi-Fi như ESP32-WROOM-32, một camera độ phân giải 720p trở lên và module Relay công suất tương thích với điện áp thiết bị gia dụng.

2. Hệ thống xử lý thế nào khi có nhiều khuôn mặt cùng xuất hiện trong khung hình?

Mô hình YOLOv8 quét toàn bộ khung hình và trích xuất Bounding Box của tất cả các khuôn mặt phát hiện được. Thuật toán sẽ duyệt qua danh sách các nhãn dự đoán: nếu bất kỳ nhãn nào khớp với danh sách được cấp phép (ví dụ: "Hai" hoặc "Thu") với độ tin cậy $\ge 75%$, biến trạng thái door sẽ được gán giá trị 1 để mở khóa.

3. Dữ liệu hình ảnh người dùng có bị lưu trữ hoặc lộ lọt lên đám mây không?

Không. Hệ thống xử lý hình ảnh hoàn toàn tại biên (Edge Processing) trên Raspberry Pi 4. Hình ảnh từ camera được xử lý trực tiếp trên bộ nhớ RAM và bị xóa ngay sau từng khung hình. Dữ liệu gửi lên Google Firebase chỉ là các biến trạng thái nhị phân dạng số nguyên (0 hoặc 1), đảm bảo tuyệt đối quyền riêng tư sinh trắc học của gia đình.

4. Hệ thống có hoạt động được không khi nhà bị mất mạng Internet?

Trong cấu hình hiện tại sử dụng Firebase Cloud, việc mất Internet sẽ làm gián đoạn việc gửi nhận dữ liệu giữa Raspberry Pi và ESP32. Tuy nhiên, hệ thống hoàn toàn có thể chuyển đổi cấu hình sang giao tiếp mạng nội bộ (Local Web Server hoặc Local MQTT Broker trên Raspberry Pi) để hoạt động ngoại tuyến 100% trong mạng Wi-Fi cục bộ.

5. Chi phí bảo trì và độ bền của hệ thống như thế nào?

Chi phí vận hành định kỳ gần như bằng không do Google Firebase cung cấp gói dịch vụ miễn phí (Spark Plan) hoàn toàn đủ cho nhu cầu lưu trữ dữ liệu hộ gia đình. Các thiết bị chấp hành như quạt Sunon Maglev Bearing có tuổi thọ danh định trên 50.000 giờ hoạt động liên tục và relay cách ly quang giúp bảo vệ vi mạch khỏi xung điện sét lan truyền.


Kết luận

Đề tài tốt nghiệp "Nhận diện khuôn mặt và cử chỉ tay để điều khiển thiết bị" của nhóm sinh viên Lê Thị Thanh Thư và Nguyễn Trọng Hải dưới sự hướng dẫn của TS. Đỗ Duy Tân tại Trường Đại học Sư phạm Kỹ thuật TP.HCM đã hiện thực hóa thành công một giải pháp nhà thông minh hoàn chỉnh, kết hợp nhuần nhuyễn giữa trí tuệ nhân tạo thị giác máy tính và công nghệ vạn vật kết nối Internet (IoT). Bằng cách khai thác sức mạnh của mô hình YOLOv8 trên nền tảng Raspberry Pi 4 cùng vi điều khiển ESP32 và cơ sở dữ liệu thời gian thực Google Firebase, hệ thống đã giải quyết trọn vẹn bài toán kiểm soát an ninh không chạm và điều khiển gia dụng trực quan với tổng thời gian đáp ứng ấn tượng chỉ từ 163ms đến 253ms.

Công trình không chỉ khẳng định tính khả thi của việc ứng dụng các mạng nơ-ron học sâu tiên tiến lên phần cứng biên giá rẻ, mà còn mở ra hướng tiếp cận giàu tiềm năng trong việc xây dựng các không gian sống thông minh, an toàn, tiết kiệm năng lượng và đặc biệt thân thiện với cộng đồng người cao tuổi và người hạn chế khả năng vận động.