Giới thiệu dự án

Trong bối cảnh bùng nổ của cuộc Cách mạng Công nghiệp 4.0 và xu hướng tự động hóa nhà thông minh (Smart Home), nhu cầu về các giải pháp kiểm soát truy cập không tiếp xúc (contactless access control) ngày càng gia tăng. Theo các báo cáo thị trường IoT (Internet of Things) toàn cầu, hệ thống an ninh sinh trắc học đang dần thay thế các phương thức truyền thống như chìa khóa cơ, thẻ từ RFID (Radio Frequency Identification) hay mã số PIN nhờ tính tiện lợi và khả năng ngăn ngừa rủi ro sao chép.

Tuy nhiên, các hệ thống khóa cửa thông minh ứng dụng nhận dạng khuôn mặt thương mại hiện nay (như Xiaomi, Häfele, Samsung) có giá thành dao động từ 300 đến hơn 800 USD, tạo rào cản tài chính lớn đối với người tiêu dùng phổ thông. Mặt khác, các nghiên cứu học thuật tiếp cận bài toán bằng mô hình Học sâu (Deep Learning) như MTCNN (Multi-task Cascaded Convolutional Networks), FaceNet hay Faster R-CNN thường yêu cầu phần cứng hiệu năng cao có hỗ trợ GPU (Graphics Processing Unit) chuyên dụng như NVIDIA Jetson Nano, dẫn đến chi phí linh kiện đắt đỏ và mức tiêu thụ điện năng lớn. Khi triển khai trên các máy tính nhúng giá rẻ như Raspberry Pi, các mô hình Deep Learning này thường gặp hiện tượng nghẽn cổ chai tính toán, sụt giảm tốc độ khung hình (chỉ đạt 1–3 FPS) hoặc gây độ trễ phản hồi lên tới vài giây.

Đồ án khóa luận "Ứng dụng nhận dạng khuôn mặt vào đóng mở cửa tự động cho nhà thông minh" do sinh viên Nguyễn Thành Nhân và Phạm Tân Nhật thực hiện dưới sự hướng dẫn của TS. Phạm Quốc Hùng tại Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM (UIT) giải quyết trực tiếp bài toán tối ưu hóa chi phí – hiệu năng – độ trễ trên hệ thống nhúng cục bộ.

                                          (Landmark Mask)        (Affine Rotate)
  (L298N + IR)          (Pipeline)        (Tuned RBF/Lin)       (Eigenspace Projection)

Mục tiêu kỹ thuật cụ thể:

  1. Xây dựng mô hình thị giác máy tính kết hợp Haar Cascade cho phát hiện khuôn mặt (Face Detection), mạng điểm mốc Dlib cho tiền xử lý chuẩn hóa, cùng Principal Components Analysis (PCA) và Support Vector Machine (SVM) cho nhận dạng khuôn mặt (Face Recognition).
  2. Tối ưu hóa pipeline xử lý thời gian thực bằng kiến trúc đa luồng (Multi-Threading), đạt tốc độ xử lý từ 7 đến 13 FPS trên máy tính nhúng cấu hình giới hạn.
  3. Đảm bảo độ chính xác phân loại danh tính đạt $\ge 90%$ trên tập dữ liệu người dùng thực tế đã được chuẩn hóa góc nhìn và nền ảnh.
  4. Tích hợp và điều khiển phần cứng ngoại vi thông qua module cầu H L298N, cảm biến hồng ngoại (IR Sensor), công tắc hành trình và mạch chia áp, duy trì tổng công suất tiêu thụ toàn hệ thống $\le 25\text{W}$.

Phạm vi và giới hạn nghiên cứu:

  • Phạm vi: Tập trung vào nhận dạng người dùng đơn lẻ tiếp cận vùng mở cửa trực diện, kiểm soát đóng/mở cửa trượt tự động hai chiều và giao diện quản trị Admin trên hệ điều hành Linux nhúng.
  • Giới hạn: Hệ thống hoạt động tối ưu trong điều kiện ánh sáng trong nhà tiêu chuẩn; chưa tích hợp module chống giả mạo chuyên sâu (Liveness Detection 3D) và bỏ qua việc tối ưu năng lượng sâu ở chế độ ngủ (Deep Sleep).

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

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

Thị trường và các đề tài học thuật trước đây tồn tại khoảng cách rõ rệt giữa chi phí triển khai và hiệu năng xử lý:

Tiêu chí Khóa cửa thương mại cao cấp (Xiaomi/Samsung) Hệ thống Deep Learning Edge (NVIDIA Jetson Nano) Hệ thống Machine Learning đề xuất (Raspberry Pi 4)
Phần cứng xử lý Chip ASIC / NPU chuyên dụng bảo mật ARM Cortex-A57 + 128-core Maxwell GPU ARM Cortex-A72 4-core @ 1.5GHz (Không GPU rời)
Chi phí phần cứng Rất cao ($300 – $800+) Cao ($150 – $250 cho riêng board) Thấp – Trung bình (~$60 – $80)
Thuật toán nhận dạng CNN độc quyền + Cảm biến 3D ToF MTCNN + FaceNet / MobileFaceNet Haar Cascade + Dlib Landmark + PCA + SVM
Tốc độ khung hình (FPS) 15 – 30 FPS 6 – 9 FPS (Jetson Nano) 7 – 13 FPS (Đạt mức Real-time)
Độ mở mã nguồn Đóng hoàn toàn, không thể tùy biến Mã nguồn mở, yêu cầu cấu hình phức tạp Hoàn toàn mở, dễ tinh chỉnh và mở rộng IoT

Bảng phân loại yêu cầu hệ thống theo mô hình MoSCoW:

  • Must Have (Bắt buộc): Phát hiện và xác thực khuôn mặt trong $<1.5\text{s}$; điều khiển motor quay thuận/nghịch đóng mở cửa; cơ chế an toàn chống kẹp người bằng cảm biến IR.
  • Should Have (Nên có): Tiền xử lý xoay khuôn mặt (Face Alignment) dựa trên trục mắt; trích xuất viền mặt loại bỏ tóc/nền (Landmark Masking); kiến trúc Multi-threading tách biệt camera và inference.
  • Could Have (Có thể có): Giao diện GUI chuyển đổi linh hoạt giữa các bộ phân loại SVM (Linear, RBF, Sigmoid) và MobileNetV2/V3; module thu thập dữ liệu người dùng mới trực tiếp.
  • Won't Have (Chưa thực hiện): Nhận diện khuôn mặt từ xa ngoài $2\text{m}$; tích hợp camera nhiệt; đồng bộ dữ liệu đa điểm qua điện toán đám mây.

Thiết kế hệ thống

Kiến trúc hệ thống bao gồm hai khối cốt lõi: Khối xử lý trung tâm (Phần mềm máy học) và Khối giao tiếp ngoại vi (Phần cứng điều khiển).

+-----------------------------------------------------------------------------------+
|                              RASPBERRY PI 4 (4GB RAM)                             |
|                                                                                   |
|  +--------------------+   +---------------------+   +--------------------------+  |
|  | Thread 1: Capture  |-->| Thread 2: Preprocess|-->| Thread 3: Predict (SVM)  |  |
|  +--------------------+   +---------------------+   +--------------------------+  |
|            ^                         |                           |                |
|            |                         v                           v                |
|  [ CSI/USB Camera ]         [ 27-Point Landmark ]       [ Identity Decision ]     |
|                                                                  |                |
|  +---------------------------------------------------------------+                |
|  | Main Thread: Tkinter / PyQt GUI + GPIO Controller Engine                       |
|  +---------------------------------------------------------------+                |
|            |                                           |                          |
|            v (3.3V Logic)                              v (PWM / Direction)        |
|     [ GPIO Outputs ]                           [ Dual H-Bridge L298N ]            |
+------------|-------------------------------------------|--------------------------+
             |                                           |
             v                                           v
    [ Status LCD / LED ]                        [ DC Geared Motor 12V ]
             ^                                           |
             | (3.3V via Divider)                        v
    [ IR Sensors 1 & 2 ] <=== (5V Signal)       [ Limit Switches 1 & 2 ]

Chi tiết Tech Stack và công nghệ sử dụng:

  • Bộ vi xử lý trung tâm: Raspberry Pi 4 Model B (Broadcom BCM2711, Quad-core Cortex-A72 ARMv8 64-bit @ 1.5GHz, 4GB LPDDR4).
  • Môi trường & Ngôn ngữ: Python 3.8, OpenCV 4.5.x, Scikit-learn 0.24.x, Dlib C++ Library (Python binding).
  • Mạch công suất: Driver động cơ L298N (H-Bridge kép, dòng đỉnh $2\text{A}$, điện áp hoạt động $5\text{V} – 35\text{V}$).
  • Cảm biến & Ngoại vi: 02 Cảm biến tiệm cận hồng ngoại IR Sensor (Active Low/High, nguồn nuôi 5V); 02 Công tắc hành trình (Mechanical Limit Switch); Camera HD 720p USB/CSI.

Thiết kế mạch phối hợp trở kháng (Voltage Divider):

Các cảm biến hồng ngoại hoạt động tại mức logic $V_{in} = 5\text{V}$, trong khi chân GPIO của Raspberry Pi chỉ chấp nhận điện áp đầu vào tối đa $3.3\text{V}$. Để chống quá áp gây hỏng vi điều khiển, mạch chia điện áp được áp dụng:

$$V_{out} = V_{in} \times \frac{R_2}{R_1 + R_2}$$

Chọn $R_1 = 1\text{k}\Omega$ và $R_2 = 2\text{k}\Omega$:

$$V_{out} = 5\text{V} \times \frac{2000}{1000 + 2000} = 5\text{V} \times 0.667 = 3.33\text{V} \quad (\text{Thỏa mãn an toàn GPIO})$$

Methodology

Quy trình nghiên cứu áp dụng mô hình lai giữa Waterfall và Agile:

  1. Giai đoạn 1 (Thu thập & Chuẩn hóa): Xây dựng Dataset bao gồm 31 đối tượng, mỗi đối tượng gồm hàng chục góc biểu cảm; thiết lập module Haar Cascade trích xuất vùng ROI (Region of Interest).
  2. Giai đoạn 2 (Xử lý ảnh & Tối ưu hóa Toán học): Ứng dụng Dlib 68-landmark trích xuất 27 điểm viền, xoay chuẩn hóa góc mặt (Face Alignment) qua vị trí tâm hai mắt (landmarks 37, 40, 43, 46) và gốc mũi (landmark 34).
  3. Giai đoạn 3 (Giảm chiều & Phân lớp): Tính ma trận hiệp phương sai trích xuất $K$ Eigenspaces qua PCA; tinh chỉnh siêu tham số SVM bằng GridSearchCV.
  4. Giai đoạn 4 (Triển khai nhúng & Đa luồng): Lập trình bất đồng bộ hóa pipeline bằng threading.Thread, tích hợp điều khiển chân GPIO qua bảng logic an toàn.

Implementation và kết quả

Development process

Quá trình cài đặt thuật toán tập trung vào việc giải quyết tình trạng thắt nút cổ chai CPU trên phần cứng nhúng.

1. Thuật toán phát hiện và Ảnh tích phân (Integral Image)

Haar Cascade tính toán chênh lệch mật độ sáng pixel thông qua cấu trúc ảnh tích phân $ii(x, y)$, cho phép tính tổng pixel của vùng chữ nhật bất kỳ chỉ bằng 4 phép truy xuất mảng:

$$ii(x, y) = \sum_{x' \le x, y' \le y} i(x', y')$$

$$\text{Sum}(D) = ii(x_4, y_4) + ii(x_1, y_1) - ii(x_2, y_2) - ii(x_3, y_3)$$

2. Giảm chiều dữ liệu bằng Principal Components Analysis (PCA)

Giả sử tập dữ liệu ảnh đã tiền xử lý là ma trận $X \in \mathbb{R}^{d \times N}$ với $N$ mẫu ảnh kích thước $d$ chiều:

  1. Tính vector kỳ vọng trung bình: $\mu = \frac{1}{N} \sum_{n=1}^N x_n$
  2. Chuẩn hóa dữ liệu: $\hat{x}_n = x_n - \mu$
  3. Tính ma trận hiệp phương sai (Covariance Matrix): $S = \frac{1}{N} \sum_{n=1}^N \hat{x}_n \hat{x}_n^T$
  4. Giải bài toán trị riêng và vector riêng: $S u_k = \lambda_k u_k$
  5. Chọn $K$ eigenvectors tương ứng với $K$ eigenvalues lớn nhất để tạo ma trận chiếu $U_K \in \mathbb{R}^{d \times K}$. Vector đặc trưng mới trong không gian con: $y = U_K^T (x - \mu)$ với $K \ll d$.

3. Tinh chỉnh siêu tham số SVM (Hyperparameter Tuning)

Nhóm triển khai mã nguồn quét không gian siêu tham số sử dụng thư viện scikit-learn:

import numpy as np
from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
from sklearn.decomposition import PCA
from sklearn.pipeline import Pipeline

# Thiết lập pipeline tích hợp PCA và SVM
pipeline = Pipeline([
    ('pca', PCA(n_components=150, whiten=True, random_state=42)),
    ('svm', SVC(class_weight='balanced'))
])

# Định nghĩa không gian siêu tham số
param_grid = {
    'svm__C': [0.1, 1, 10, 100, 1000],
    'svm__gamma': ['scale', 'auto', 0.0001, 0.001, 0.01, 0.1],
    'svm__kernel': ['linear', 'rbf', 'sigmoid']
}

# Tiến hành Grid Search với 5-Fold Cross Validation
grid_search = GridSearchCV(
    estimator=pipeline,
    param_grid=param_grid,
    cv=5,
    n_jobs=-1,
    scoring='accuracy',
    verbose=1
)
grid_search.fit(X_train, y_train)

print(f"Cặp tham số tối ưu: {grid_search.best_params_}")
print(f"Độ chính xác Cross-Validation cao nhất: {grid_search.best_score_ * 100:.2f}%")

4. Thiết kế hệ thống Đa luồng (Multi-Threading Pipeline)

Thay vì xử lý tuần tự (Synchronous Blocking), hệ thống chia tách thành 3 luồng độc lập:

  • Thread 1 (Frame Grabber): Đọc liên tục khung hình mới nhất từ Camera Buffer, ghi đè khung hình cũ để tránh trễ bộ đệm.
  • Thread 2 (Preprocessor): Thực hiện chuyển đổi GrayScale, chạy Haar Cascade, lấy 27 điểm Landmark Dlib tạo mặt nạ đen loại bỏ tạp biến xung quanh, xoay cân bằng góc mặt và chiếu PCA.
  • Thread 3 (Classifier Inference): Đưa vector đặc trưng vào mô hình SVM dự đoán danh tính. Nếu Thread 3 đang bận, Thread 2 tự động hủy khung hình trung gian để đảm bảo dữ liệu xử lý tiếp theo luôn ở thời gian thực.
  • Main Thread: Duy trì vòng lặp hiển thị giao diện đồ họa (GUI Loop) và điều khiển chân tín hiệu GPIO.
import threading
import time

class VideoRecognitionPipeline:
    def __init__(self):
        self.frame = None
        self.processed_data = None
        self.identity = "Unknown"
        self.confidence = 0.0
        self.is_running = True
        self.lock = threading.Lock()
        
    def thread_capture(self, cap):
        while self.is_running:
            ret, frame = cap.read()
            if ret:
                with self.lock:
                    self.frame = frame.copy()
            time.sleep(0.01)

    def thread_preprocess(self):
        while self.is_running:
            if self.frame is not None:
                # Thực hiện Landmark + Face Alignment + PCA Transformation
                current_frame = self.frame
                aligned_face = self.align_and_mask(current_frame)
                if aligned_face is not None:
                    with self.lock:
                        self.processed_data = self.pca.transform([aligned_face])
            time.sleep(0.02)

    def thread_inference(self):
        while self.is_running:
            if self.processed_data is not None:
                # Dự đoán với mô hình SVM tối ưu
                data_to_predict = self.processed_data
                self.processed_data = None  # Reset buffer
                pred = self.svm_model.predict(data_to_predict)
                prob = np.max(self.svm_model.predict_proba(data_to_predict))
                with self.lock:
                    self.identity = pred[0]
                    self.confidence = prob
            time.sleep(0.03)

Testing và validation

Hệ thống được kiểm thử thực nghiệm trên tập dữ liệu 31 đối tượng với các điều kiện cấu hình phần cứng khác nhau:

[ FPS Comparison ]
Đơn luồng (Single-Thread) : === 3.4 FPS
Đa luồng (Multi-Threading): ============= 11.2 FPS  (+229% Improvement)

[ CPU Core Utilization ]
Đơn luồng (1 Core Max)    : [====                ] 25.8% Total CPU
Đa luồng (Load Balanced)  : [===============     ] 68.4% Total CPU (Mượt mà, không treo GUI)
Cấu hình thuật toán Độ chính xác (Accuracy %) Tốc độ xử lý (FPS) Thời gian huấn luyện (31 lớp)
Haar + PCA + SVM (Linear Kernel) 91.2% 11.8 FPS 4.2 giây
Haar + PCA + SVM (RBF Kernel - Best Params) 94.6% 10.5 FPS 6.8 giây
Haar + PCA + SVM (Sigmoid Kernel) 84.3% 10.1 FPS 5.9 giây
MobileNetV2 (Transfer Learning, Input 96x96) 93.8% 4.8 FPS 18 phút (Training PC)
MobileNetV3 (Input 224x224) 95.1% 2.6 FPS 32 phút (Training PC)

Kết quả đạt được

  1. Hiệu năng nhận dạng: Mô hình PCA kết hợp SVM (RBF Kernel, tối ưu qua GridSearch) đạt độ chính xác 94.6% trên tập dữ liệu kiểm thử, vượt mục tiêu đề ra ($\ge 90%$).
  2. Khả năng đáp ứng thời gian thực: Nhờ Multi-Threading, tốc độ xử lý tăng từ 3.4 FPS lên trung bình 10.5 – 11.8 FPS, giảm độ trễ phản hồi đóng mở cửa xuống dưới 0.8 giây kể từ khi đối tượng bước vào vùng quét của cảm biến hồng ngoại.
  3. Tiêu thụ năng lượng:
    • Raspberry Pi 4 + Camera khi hoạt động toàn tải (Inference): $6.2\text{W} – 7.8\text{W}$ ($5\text{V} - 1.56\text{A}$).
    • Động cơ DC và mạch công suất L298N khi kéo cửa: $8.4\text{W}$ ($12\text{V} - 0.7\text{A}$).
    • Tổng công suất đỉnh toàn hệ thống đo đạc thực tế: $16.2\text{W} \le 25\text{W}$ (Đạt chỉ tiêu an toàn năng lượng).

Đổi mới và đóng góp

  • Pipeline tiền xử lý 2 giai đoạn (Dlib 27-Point Masking & Landmark Alignment): Thay vì đưa toàn bộ khung ảnh thô chứa tóc, tai và phông nền phía sau vào PCA (dễ làm sai lệch các vector trực giao), giải pháp sử dụng 27 điểm Dlib để cắt gọn và phủ nền đen toàn bộ ngoại cảnh. Kết hợp cân bằng góc nghiêng qua sống mũi và trục mắt, độ chính xác nhận dạng tăng 12.4% so với việc chỉ dùng Haar Cascade nguyên bản.
  • Tối ưu hóa tài nguyên cho thiết bị biên cấu hình thấp: Chứng minh rằng mô hình Học máy truyền thống (PCA + SVM) được tối ưu hóa toán học đúng cách có thể vượt trội các mạng Học sâu (MobileNetV2/V3) về mặt thông lượng (Throughput đạt gấp 2.4 đến 4 lần) trên chip ARM không có nhân tăng tốc Tensor/CUDA.
  • So sánh định lượng với các công trình tiền nhiệm:
Đề tài tham chiếu Phần cứng triển khai Mô hình thuật toán Độ chính xác Tốc độ đáp ứng / FPS Chi phí ước tính
Vũ Bá Tấn Đạt et al. (2016) Intel Galileo Gen 2 Eigenfaces / PCA ~82.0% Độ trễ ~5.0 giây ~$110
Nguyễn Tấn Phát et al. (2021) NVIDIA Jetson Nano Deep Learning (CNN) 92.5% 6.0 – 9.0 FPS ~$220
Đồ án này (2022) Raspberry Pi 4 (4GB) Haar + PCA + SVM + Threads 94.6% 10.5 – 11.8 FPS ~$95

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

Kịch bản vận hành thực tế (Use Cases):

  • Cửa ra vào căn hộ Smart Home: Nhận diện chủ nhà từ khoảng cách $0.5\text{m} – 1.2\text{m}$, tự động kích hoạt motor trượt mở cửa mà không cần chạm tay hay dừng lại thao tác mã khóa.
  • Văn phòng / Phòng thí nghiệm bảo mật: Quản lý truy cập nội bộ theo danh sách ủy quyền, có phân quyền quản trị (Admin) đổi mật khẩu, đăng ký khuôn mặt mới trực tiếp trên màn hình cảm ứng LCD nhúng.
                              BẢNG ĐIỀU KHIỂN LOGIC ĐÓNG/MỞ CỬA
+-----------------------+---------------------+-----------------------+------------------------+
| Cảm biến ngoài (IR 1) | Cảm biến trong (IR 2)| Xác thực khuôn mặt    | Hành vi động cơ (L298N)|
+-----------------------+---------------------+-----------------------+------------------------+
| 1 (Có người ngoài)    | 0                   | THÀNH CÔNG (Conf>90%) | Quay thuận (Mở cửa)    |
| 1 (Có người ngoài)    | 0                   | THẤT BẠI / Không rõ   | Giữ nguyên (Khóa)      |
| X                     | 1 (Có người trong)  | Không yêu cầu         | Quay thuận (Mở cửa ra) |
| 0                     | 0                   | X                     | Quay nghịch (Đóng cửa) |
| 1 hoặc 1              | 1 hoặc 1            | Đang đóng cửa dở dang | Dừng ngay / Đảo chiều  |
+-----------------------+---------------------+-----------------------+------------------------+

Bảng dự toán chi phí phần cứng (Bill of Materials):

Linh kiện Thông số kỹ thuật Số lượng Đơn giá ước tính (VND)
Raspberry Pi 4 Model B 4GB RAM, Quad-Core 1.5GHz 1 1.650.000
Camera Module HD 5MP Wide-Angle CSI / USB 1 250.000
Driver Động cơ L298N Dual H-Bridge 2A 1 45.000
Động cơ giảm tốc DC 12V Động cơ kèm cơ cấu ray trượt 1 220.000
Cảm biến hồng ngoại IR Module dò vật cản 5V 2 30.000
Công tắc hành trình & Trở Limit switch cơ + Điện trở phân áp 1 bộ 35.000
Nguồn Adapter tổ ong Dual output 12V-2A & 5V-3A 1 120.000
TỔNG CỘNG ~2.350.000 VND (~$98 USD)

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

Hạn chế kỹ thuật:

  1. Phụ thuộc điều kiện chiếu sáng: Thuật toán trích xuất đặc trưng Haar-like và PCA nhạy cảm với sự thay đổi cường độ ánh sáng đột ngột hoặc môi trường ngược sáng mạnh, có thể làm giảm tỷ lệ nhận dạng đúng xuống dưới 80% trong bóng tối.
  2. Khả năng chống giả mạo (Anti-Spoofing): Hệ thống camera 2D RGB chưa phân biệt được khuôn mặt thực với hình ảnh in độ phân giải cao hoặc video phát lại trên màn hình điện thoại.
  3. Cơ cấu cơ khí: Cơ chế truyền động thanh răng - bánh răng dùng cho mô hình cửa trượt cần bổ sung phanh điện từ để giữ cố định cửa khi mất điện đột ngột.

Hướng phát triển:

  • Tích hợp Camera hồng ngoại / 3D ToF: Sử dụng cảm biến ảnh hồng ngoại chuyên dụng (Active IR Illumination) giúp nhận dạng ổn định ban đêm và trích xuất bản đồ chiều sâu chống giả mạo sinh trắc học.
  • Chuyển đổi sang kiến trúc TinyML / MobileFaceNet INT8: Áp dụng lượng tử hóa mô hình (Model Quantization) sang định dạng TensorFlow Lite INT8 để chạy các mạng Deep Learning siêu nhẹ với tốc độ $>15\text{FPS}$ trên CPU nhúng.
  • Mở rộng kết nối mạng IoT: Bổ sung giao thức MQTT/Home Assistant để đồng bộ thông báo mở cửa tức thời về smartphone của gia chủ kèm ảnh chụp lịch sử truy cập.

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

  • Sinh viên ngành Kỹ thuật Máy tính, Điện tử & CNTT: Tài liệu mẫu hoàn chỉnh về cách kết hợp giữa xử lý ảnh thị giác máy tính, học máy thống kê và lập trình điều khiển phần cứng nhúng bare-metal/Linux.
  • Kỹ sư phát triển hệ thống nhúng (Embedded Developers): Mẫu kiến trúc đa luồng (Multi-Threading Pipeline) xử lý triệt để bài toán đồng bộ I/O camera và Inference, tránh nghẽn luồng trên các dòng vi xử lý ARM.
  • Doanh nghiệp Smart Home & Startup IoT: Khung thiết kế tham chiếu (Reference Architecture) chi phí cực thấp ($<100\text{USD}$) để thương mại hóa các dòng sản phẩm khóa thông minh nội địa hóa.
  • Nhà nghiên cứu học thuật: Cung cấp dữ liệu thực nghiệm so sánh định lượng trực tiếp giữa Machine Learning cổ điển và Deep Learning trên nền tảng biên giới hạn tài nguyên.

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

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

Hệ thống yêu cầu máy tính nhúng từ Raspberry Pi 3B+ trở lên (khuyến nghị Pi 4 4GB để đảm bảo bộ nhớ đệm), thẻ nhớ microSD tối thiểu 16GB Class 10 (tốc độ đọc $>80\text{MB/s}$), hệ điều hành Raspberry Pi OS (Debian-based), cùng các thư viện mã nguồn mở OpenCV, Dlib và Scikit-Learn.

2. Giới hạn số lượng người dùng có thể lưu trữ trong hệ thống là bao nhiêu?

Với thuật toán PCA trích xuất 150 chiều đặc trưng kết hợp SVM, hệ thống có thể quản lý ổn định dữ liệu từ 50 đến 100 người dùng (mỗi người 20–30 mẫu ảnh) mà không làm suy giảm đáng kể tốc độ dự đoán (thời gian suy diễn SVM trên không gian PCA $K=150$ chỉ mất $<15\text{ms}$ mỗi frame).

3. Tại sao không sử dụng trực tiếp cảm biến PIR mà lại chọn cảm biến khoảng cách IR chủ động?

Cảm biến PIR (Passive Infrared) phát hiện chuyển động dựa trên biến thiên bức xạ nhiệt nên có độ trễ kích hoạt và thời gian phục hồi tín hiệu (cooldown time) khá lớn (từ 2 đến 5 giây). Trong khi đó, cảm biến IR chủ động (Active Infrared) phản hồi gần như tức thì ($<10\text{ms}$), giúp phát hiện chính xác vật thể đang tiến sát trước cửa.

4. Hệ thống cần bảo trì định kỳ những hạng mục nào?

Cần vệ sinh ống kính Camera và bề mặt mắt phát/thu IR định kỳ hàng tháng để tránh bụi bẩn làm tán xạ tia; kiểm tra độ căng dây đai/thanh trượt cơ khí của motor; và cập nhật huấn luyện lại mô hình (Re-training) khi người dùng có sự thay đổi lớn về ngoại hình (ví dụ: đổi kiểu tóc, đeo kính mới).

5. Chi phí bảo trì và thời gian hoàn vốn đầu tư (ROI) ước tính ra sao?

Tổng chi phí chế tạo hệ thống chỉ xấp xỉ 2.35 triệu VND, thấp hơn 60–70% so với khóa khuôn mặt thương mại nhập khẩu. Với độ bền linh kiện nhúng công nghiệp hoạt động liên tục 3–5 năm, chi phí khấu hao vận hành điện năng chỉ khoảng 15.000 – 20.000 VND/tháng, mang lại điểm hòa vốn đầu tư (ROI) ngay trong năm đầu tiên sử dụng.


Kết luận

Đề tài khóa luận tốt nghiệp của sinh viên Nguyễn Thành Nhân và Phạm Tân Nhật đã hiện thực hóa thành công một hệ thống cửa tự động nhận dạng khuôn mặt hoàn chỉnh, cân bằng tối ưu giữa ba yếu tố cốt lõi: độ chính xác nhận dạng ($94.6%$), tốc độ phản hồi thời gian thực ($10.5 – 11.8\text{ FPS}$)chi phí phần cứng thấp ($<100\text{ USD}$).

Bằng việc kết hợp sáng tạo giữa bộ phát hiện Haar Cascade, kỹ thuật chuẩn hóa hình học khuôn mặt qua Dlib Landmark, giảm chiều dữ liệu PCA và phân lớp SVM tối ưu trên kiến trúc đa luồng, nghiên cứu đã chứng minh tính khả thi vượt trội của các thuật toán Học máy tối ưu trên thiết bị điện toán biên cấu hình hạn chế. Đây là bước đệm kỹ thuật vững chắc để tiếp tục mở rộng tích hợp các module bảo mật 3D, IoT không dây và hướng tới thương mại hóa sản phẩm Smart Home Make-in-Vietnam.