Giới thiệu dự án

Trong kỷ nguyên số hóa quy trình quản trị doanh nghiệp và trường học, công tác điểm danh truyền thống (bằng giấy, thẻ từ RFID hoặc cảm biến vân tay) đang bộc lộ nhiều hạn chế nghiêm trọng. Theo các thống kê công nghiệp về quản trị nhân sự, phương pháp điểm danh bằng thẻ từ có tỷ lệ gian lận (điểm danh hộ - buddy punching) lên tới 16%, trong khi phương thức quét vân tay dễ gây tắc nghẽn giờ cao điểm và tiềm ẩn nguy cơ lây nhiễm vi khuẩn qua bề mặt tiếp xúc (đặc biệt trong bối cảnh dịch bệnh truyền nhiễm).

Khóa luận tốt nghiệp Kỹ sư Kỹ thuật Máy tính tại Trường Đại học Công nghệ Thông tin – ĐHQG-HCM (UIT) của nhóm tác giả Trần Nguyên Phong và Đạt Đèo Quốc (dưới sự hướng dẫn của ThS. Lê Hoài Nghĩa và TS. Đoàn Duy) đã nghiên cứu và phát triển thành công đề tài: "Nghiên Cứu Ứng Dụng Nhận Diện Khuôn Mặt Trong Điểm Danh Sử Dụng Mô Hình MobileFaceNet" (The Research of Applying Face Recognition for Attendance Using MobileFaceNet Model). Đề tài giải quyết bài toán tự động hóa nhận diện sinh thể không tiếp xúc trên các nền tảng phần cứng máy tính nhúng biên (Edge Computing).

+-----------------------------------------------------------------------------------+
|                                PROBLEM STATEMENT                                  |
|  - Gian lận điểm danh (Proxy attendance) & Sai sót ghi nhận thủ công              |
|  - Rủi ro vệ sinh/dịch bệnh khi dùng chung bề mặt cảm biến vân tay               |
|  - Độ trễ cao và chi phí server đắt đỏ khi đẩy toàn bộ luồng video lên Cloud      |
|  - Rào cản phần cứng: Các mô hình Deep Learning lớn (FaceNet >90MB) quá nặng     |
|    đối với thiết bị nhúng công suất thấp.                                         |
+-----------------------------------------------------------------------------------+

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

  1. Nghiên cứu và tối ưu hóa Pipeline thị giác máy tính: Xây dựng quy trình khép kín gồm thu nhận hình ảnh (Capture), phát hiện khuôn mặt (Face Detection), căn chỉnh hình học (Face Alignment), trích xuất đặc trưng (Face Representation/Embedding) và định danh (Classification).
  2. Triển khai mô hình siêu nhẹ (Lightweight Deep Learning): Kết hợp thuật toán Ultra-Light Fast Generic Face Detector (1MB) cho pha phát hiện và MobileFaceNet (<1 triệu tham số) cho pha trích xuất vector đặc trưng 128 chiều.
  3. Thực thi và đánh giá trên phần cứng máy tính nhúng: Đóng gói và tối ưu hóa hệ thống trên 2 nền tảng phần cứng biên: NVIDIA Jetson TX2 (Orbitty Carrier) và NVIDIA Jetson Nano, kết hợp camera HD Logitech C270.
  4. Xây dựng module điểm danh tự động: Nhận diện thời gian thực luồng video trực tiếp, phân loại định danh ID sinh viên/nhân viên và tự động ghi nhận vào cơ sở dữ liệu điểm danh.

Phạm vi và giới hạn đề tài

  • Tập dữ liệu thử nghiệm: Xây dựng tập dữ liệu gồm 10 đối tượng chuẩn hóa, mỗi đối tượng có video MP4 đa góc độ và hơn 200 ảnh khuôn mặt được trích xuất.
  • Điều kiện hoạt động: Hoạt động tối ưu trong điều kiện ánh sáng văn phòng/lớp học tiêu chuẩn, góc quay khuôn mặt trực diện hoặc nghiêng không quá $\pm 20^\circ$.
  • Chỉ số kỳ vọng: Tốc độ suy luận đạt ngưỡng thời gian thực ($\ge 15\text{ FPS}$) trên thiết bị nhúng với độ chính xác nhận diện tổng thể trên $75%$.

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

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

Tiêu chí so sánh Điểm danh thẻ từ RFID Cảm biến vân tay sinh trắc Nhận diện khuôn mặt Cloud AI Hệ thống Edge AI (MobileFaceNet trên Jetson)
Tính tiếp xúc (Contactless) Bán tiếp xúc (quẹt thẻ) Tiếp xúc trực tiếp bề mặt Không tiếp xúc Hoàn toàn không tiếp xúc
Khả năng chống gian lận Rất thấp (cho mượn thẻ) Cao Rất cao Rất cao (xác thực sinh thể trực tiếp)
Băng thông & Phụ thuộc mạng Thấp Thấp Rất cao (stream video liên tục) Không phụ thuộc mạng (Xử lý Offline tại biên)
Chi phí phần cứng/vận hành Thấp ban đầu, tốn bảo trì thẻ Trung bình Tốn phí Server/Cloud hàng tháng Chi phí một lần (Tối ưu TCO)
Tốc độ xử lý hàng loạt 1 người / lần 1 người / lần Phụ thuộc độ trễ mạng Xử lý đa khuôn mặt cùng khung hình

Ma trận phân loại yêu cầu hệ thống (MoSCoW)

  • Must Have (Bắt buộc): Nhận diện khuôn mặt real-time từ luồng video USB Camera; trích xuất bounding box chính xác; embedding 128 chiều; hiển thị bounding box kèm Tên/ID trên màn hình.
  • Should Have (Nên có): Tự động chuẩn hóa căn chỉnh khuôn mặt (5 landmarks alignment); lưu trữ lịch sử điểm danh với timestamp.
  • Could Have (Có thể mở rộng): Hỗ trợ nhận diện đồng thời nhiều người trong một khung hình; giao diện web quản trị danh sách.
  • Won't Have (Chưa thực hiện): Nhận diện góc nghiêng cực đại $>45^\circ$; nhận diện chống giả mạo 3D Liveness Detection chuyên sâu.

Thiết kế kiến trúc hệ thống

Hệ thống hoạt động theo mô hình kiến trúc pipeline đa tầng khép kín tại biên (On-device Edge Pipeline):

flowchart TD
    A["Logitech C270 Webcam (720p@30fps)"] --> B["Video Stream Ingestion (OpenCV VideoCapture)"]
    B --> C["Face Detection: Ultra-Light 1MB Detector (RFB/Slim)"]
    C -->|Bounding Box Coords| D["Face Alignment: 5 Facial Landmarks (SDM Method)"]
    D -->|Crop & Resize 112x112| E["Feature Extraction: MobileFaceNet (128-D Embedding)"]
    E --> F["Distance Metric: Euclidean / Cosine Distance vs Database"]
    F -->|Threshold Matching <= 0.6| G["ID/Name Label Assignment"]
    G --> H["Render UI Output (Bounding Box + Name Tag)"]
    G --> I[("Attendance Database Record (ID, Name, Timestamp)")]

Technology Stack và phiên bản cụ thể

  • Hệ điều hành nhúng: Linux Ubuntu 18.04 LTS (JetPack 4.4 SDK cho NVIDIA Jetson).
  • Nền tảng tính toán song song: NVIDIA CUDA Toolkit 10.x, cuDNN 8.x.
  • Thị giác máy tính: OpenCV 4.1.x (Build hỗ trợ CUDA backend).
  • Deep Learning Frameworks: TensorFlow $\ge 1.14.0$, Keras 2.2.x, PyTorch (phiên bản inference cho Ultra-Light).
  • Thư viện phụ trợ: NumPy, SciPy (==1.2.1), Matplotlib.
  • Phần cứng thu nhận & xử lý: NVIDIA Jetson TX2 (256 CUDA cores) / NVIDIA Jetson Nano (128 CUDA cores), Orbitty Carrier board, Logitech C270 (Fixed focus, 720p/30fps).

Implementation và kết quả

Development Process & Thuật toán cốt lõi

Quy trình phát triển hệ thống được thực hiện qua 4 giai đoạn kỹ thuật then chốt:

   (10 đối tượng,         (Crop khuôn mặt 112x112,          (MobileFaceNet 128-D,            (Ultra-Light + CUDA
    200 frames/người)       Supervised Descent Method)        Triplet Loss Optimization)      Embedding Classifier)

1. Thuật toán phát hiện khuôn mặt Ultra-Light Face Detector

Thay vì sử dụng MTCNN (gồm 3 mạng P-Net, R-Net, O-Net) vốn có độ phức tạp tính toán cao trên CPU/GPU nhúng, hệ thống tích hợp mô hình Ultra-Light-Fast-Generic-Face-Detector-1MB:

  • Dung lượng mô hình FP32: chỉ 1.1 MB; khi lượng tử hóa INT8 chỉ còn ~300 KB.
  • Khối lượng tính toán: chỉ 90 - 109 MFLOPs tại độ phân giải đầu vào $320 \times 240$, phù hợp tuyệt đối cho kiến trúc ARM và GPU công suất thấp (5W - 15W).
  • Tích hợp khối Receptive Field Block (RFB) nhằm tăng cường độ chính xác trích xuất đặc trưng vùng biên của khuôn mặt.

2. Căn chỉnh khuôn mặt (Face Alignment)

Sử dụng phương pháp Supervised Descent Method (SDM) để xác định 5 điểm đặc trưng (2 mắt, đỉnh mũi, 2 khóe miệng), thực hiện biến đổi Afin (Affine Transformation) xoay trục khuôn mặt về vị trí thẳng đứng chuẩn, cắt và resize cố định về kích thước $112 \times 112$ pixels (đối với MobileFaceNet) hoặc $160 \times 160$ pixels (đối với FaceNet).

3. Mô hình trích xuất đặc trưng MobileFaceNet & Triplet Loss

MobileFaceNet là mạng nơ-ron tích chập chuyên dụng với số lượng tham số dưới 1 triệu ($<1\text{M}$ params), sử dụng kiến trúc Depthwise Separable Convolutions kết hợp Global Depthwise Convolution thay thế cho Global Average Pooling truyền thống.

Mạng ánh xạ mỗi bức ảnh khuôn mặt thành một vector đặc trưng $f(x) \in \mathbb{R}^{128}$ trên không gian Euclid. Hàm mất mát Triplet Loss được áp dụng trong quá trình tối ưu hóa:

$$\mathcal{L}(A, P, N) = \max\left(0, |f(A) - f(P)|_2^2 - |f(A) - f(N)|_2^2 + \alpha\right)$$

Trong đó:

  • $A$ (Anchor): Ảnh khuôn mặt gốc của đối tượng cần học.
  • $P$ (Positive): Ảnh khuôn mặt khác của chính đối tượng đó.
  • $N$ (Negative): Ảnh khuôn mặt của người khác.
  • $\alpha$: Hệ số điều chỉnh khoảng cách tối thiểu (margin).
import numpy as np
import cv2

def verify_face(embedding_input, known_embeddings_dict, threshold=0.6):
    """
    Tính khoảng cách Euclid giữa vector nhúng đầu vào và cơ sở dữ liệu mẫu.
    embedding_input: vector 128 chiều trích xuất từ MobileFaceNet
    known_embeddings_dict: dict chứa {id_nguoi: vector_128d}
    """
    min_distance = float('inf')
    recognized_id = "Unknown"
    
    for person_id, db_embedding in known_embeddings_dict.items():
        # Tính khoảng cách L2 Norm (Euclidean Distance)
        distance = np.linalg.norm(embedding_input - db_embedding)
        
        if distance < min_distance:
            min_distance = distance
            if distance <= threshold:
                recognized_id = person_id
                
    return recognized_id, min_distance

Kiểm nghiệm thực nghiệm và Benchmarks

Hệ thống được tiến hành đo lường hiệu năng thực tế trên 2 bộ kit nhúng với camera Logitech C270 trong cùng điều kiện ánh sáng thực tế.

Bảng kết quả thực nghiệm hiệu năng trên Jetson TX2 và Jetson Nano

Phần cứng phần mềm thử nghiệm Thuật toán Face Detection Mô hình Face Recognition Độ trễ suy luận (Inference Latency) Tốc độ khung hình (FPS) Độ chính xác nhận diện (%) Mức tiêu thụ điện
NVIDIA Jetson Nano (4GB) Ultra-Light (1MB) MobileFaceNet ~42 ms 18 - 22 FPS 78.4% ~5W - 7W
NVIDIA Jetson Nano (4GB) MTCNN FaceNet (Inception-ResNet) ~185 ms 4 - 6 FPS 81.2% ~8W
NVIDIA Jetson TX2 (8GB) Ultra-Light (1MB) MobileFaceNet ~18 ms 30+ FPS (Real-time) 82.6% ~10W - 14W
NVIDIA Jetson TX2 (8GB) MTCNN FaceNet (Inception-ResNet) ~68 ms 12 - 14 FPS 84.5% ~15W

[!NOTE] Nhờ kích hoạt công nghệ tăng tốc phần cứng NVIDIA CUDA trên bộ xử lý đồ họa tích hợp của Jetson, tốc độ thực thi của thuật toán nhận diện khuôn mặt nhanh hơn 5.75 lần so với việc chỉ chạy thuần túy trên CPU ARM Cortex-A57.


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

  1. Kiến trúc Edge AI siêu tối ưu cho thiết bị tài nguyên giới hạn: Khác với các nghiên cứu truyền thống triển khai FaceNet nặng nề ($>90\text{ MB}$, yêu cầu GPU máy chủ đắt đỏ), công trình đã kết hợp thành công bộ đôi Ultra-Light Face Detector ($1.1\text{ MB}$) và MobileFaceNet ($<1\text{M}$ params), giảm dung lượng lưu trữ tới 95% và giảm phụ tải tính toán còn 109 MFLOPs.
  2. Cân bằng hoàn hảo giữa Tốc độ và Độ chính xác: Đạt tốc độ thực thi thời gian thực trên Jetson TX2 ($>30\text{ FPS}$) và Jetson Nano ($>18\text{ FPS}$) với độ chính xác đạt trên $78% - 82.6%$, đáp ứng toàn diện tiêu chuẩn điểm danh lớp học tự động không gây trễ dòng người di chuyển.
  3. Độc lập hạ tầng mạng (Offline Privacy-preserving Architecture): Toàn bộ quy trình từ thu thập, tính toán vector đặc trưng đến lưu trữ database đều diễn ra cục bộ tại biên, không truyền tải dữ liệu hình ảnh nhạy cảm lên Cloud, bảo vệ tối đa quyền riêng tư cá nhân theo các tiêu chuẩn bảo mật sinh trắc học hiện đại.
                    SO SÁNH MỨC ĐỘ TIÊU THỤ BỘ NHỚ VÀ FLOPs
  FaceNet (Inception-ResNet-v1) : ████████████████████ 95MB | ~1.6 GFLOPs
  MobileFaceNet (Đề tài áp dụng): █ 3.8MB               | ~0.1 GFLOPs  (Giảm ~94%)

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

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

  • Điểm danh giảng đường thông minh: Lắp đặt thiết bị tại cửa ra vào phòng học. Sinh viên bước qua cửa với vận tốc di chuyển tự nhiên, hệ thống nhận diện từ khoảng cách 1 - 2 mét, tự động ghi nhận mã số sinh viên vào hệ thống quản lý đào tạo (LMS) mà không cần dừng lại thao tác.
  • Kiểm soát vào/ra văn phòng (Access Control): Tích hợp đóng mở rơ-le khóa điện từ (Relay lock) thông qua các chân GPIO mở rộng của Jetson TX2 / Jetson Nano khi nhận diện đúng nhân sự được cấp quyền.
                        SƠ ĐỒ BỐ TRÍ THIẾT BỊ TẠI CỬA LỚP HỌC
               +---------------------------------------------------+
               |                    KHUNG CỬA VÀO                  |
               |                                                   |
               |       [ Camera C270 ] (Góc nghiêng 15 độ)         |
               |   [ Relay Khóa / Attendance DB ]                  |
               |                                                   |
               |      --> Sinh viên bước vào (1 - 2m) -->          |
               +---------------------------------------------------+

Phân tích hiệu quả kinh tế (ROI Analysis)

  • Chi phí đầu tư phần cứng (CAPEX): 01 Kit NVIDIA Jetson Nano + Camera C270 + Phụ kiện có tổng chi phí khoảng 3.500.000 - 4.500.000 VNĐ.
  • Chi phí vận hành (OPEX): Mức tiêu thụ điện cực thấp ($5\text{W} - 10\text{W}$), không phát sinh chi phí duy trì Server GPU Cloud đắt đỏ ($100 - 300\text{ USD/tháng}$).
  • Thời gian hoàn vốn (ROI): Tiết kiệm 100% chi phí in ấn thẻ từ hàng năm, loại bỏ hoàn toàn 5-10 phút thời gian điểm danh danh sách đầu mỗi buổi học của giảng viên.

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

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

  • Độ nhạy với góc quay khuôn mặt lớn: Độ chính xác nhận diện suy giảm rõ rệt khi đối tượng quay góc nghiêng vượt quá $30^\circ$ hoặc cúi/ngửa mặt biên độ lớn.
  • Điều kiện chiếu sáng khắc nghiệt: Trong môi trường ánh sáng ngược (backlight) hoặc thiếu sáng trầm trọng ($<15\text{ Lux}$), camera chuẩn fixed-focus như C270 bị nhiễu hạt (noise), làm suy giảm độ chính xác của bước Face Detection.
  • Chống giả mạo sinh thể (Anti-spoofing): Hệ thống chưa tích hợp cảm biến đo chiều sâu (RGB-D) nên vẫn tồn tại nguy cơ bị đánh lừa bởi ảnh in màu chất lượng cao 2D.

Hướng phát triển tiếp theo

  • Tích hợp mô hình ArcFace (Additive Angular Margin Loss): Thay thế loss function hiện tại để tối ưu hóa tính phân tách giữa các cụm vector đặc trưng, nâng độ chính xác lên trên $95%$.
  • Bổ sung module Liveness Detection: Tích hợp mạng nơ-ron nhận diện chớp mắt hoặc phân tích vi kết cấu bề mặt da (texture analysis) để ngăn chặn hành vi giả mạo bằng hình ảnh/video điện thoại.
  • Tối ưu hóa TensorRT & INT8 Quantization: Biên dịch mô hình MobileFaceNet qua công cụ NVIDIA TensorRT để đẩy tốc độ xử lý trên Jetson Nano lên trên $40\text{ FPS}$.

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

+---------------------------------------------------------------------------------------------+
|                                    ĐỐI TƯỢNG HƯỞNG LỢI                                      |
|  Sinh viên / Người học   | Tiếp cận mã nguồn mở, tài liệu kỹ thuật về quy trình chuẩn hóa   |
|                          | nhúng AI, hiểu sâu về Triplet Loss và phần cứng NVIDIA Jetson.   |
|  Kỹ sư / Developers      | Mô hình tham chiếu kiến trúc tối ưu Pipeline Computer Vision     |
|                          | tại biên, kinh nghiệm thực chiến với CUDA acceleration.          |
|  Nhà trường / Doanh nghiệp| Giải pháp điểm danh tự động chi phí thấp, triển khai nhanh,      |
|                          | bảo mật dữ liệu tuyệt đối và nâng cao tính chuyên nghiệp.        |
|  Nhà nghiên cứu khoa học | Cung cấp dữ liệu benchmark thực nghiệm giữa TX2 vs Nano đối với  |
|                          | các kiến trúc mạng nơ-ron thu gọn (MobileFaceNet, Ultra-Light).  |
+---------------------------------------------------------------------------------------------+

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

1. Yêu cầu kỹ thuật tối thiểu để triển khai hệ thống là gì?

Hệ thống yêu cầu tối thiểu một board máy tính nhúng NVIDIA Jetson Nano (bản 4GB RAM) cài đặt JetPack 4.4+, thẻ nhớ MicroSD tối thiểu 32GB (chuẩn Class 10/UHS-1), nguồn cấp $5\text{V}-4\text{A}$ qua chân DC Barrel Jack để đảm bảo cấp đủ công suất cho GPU khi chạy tải nặng, cùng 01 USB Webcam chuẩn UVC hỗ trợ độ phân giải tối thiểu 720p@30fps.

2. Giới hạn quy mô số lượng người dùng trong cơ sở dữ liệu là bao nhiêu?

Với mô hình vector đặc trưng 128 chiều (sử dụng kiểu dữ liệu float32, tức 512 bytes cho mỗi khuôn mặt), việc đối soát khoảng cách Euclid với cơ sở dữ liệu $1.000 - 5.000$ sinh viên chỉ mất dưới $2 - 5\text{ ms}$ trên bộ nhớ RAM của Jetson. Khi mở rộng lên trên $10.000$ người, hệ thống có thể kết hợp thư viện tìm kiếm vector siêu nhanh như FAISS (Facebook AI Similarity Search).

3. Hệ thống có thể tích hợp vào các phần mềm quản lý nhân sự/đào tạo hiện có không?

Hoàn toàn có thể. Sau khi phân loại ID thành công, module Python có thể đẩy dữ liệu điểm danh (gồm student_id, timestamp, confidence_score, device_id) về máy chủ cơ sở dữ liệu trung tâm thông qua các giao thức mạng chuẩn như RESTful API (HTTP POST JSON), MQTT hoặc WebSockets qua cổng Gigabit Ethernet sẵn có trên board Jetson.

4. Chi phí bảo trì và độ bền phần cứng nhúng ra sao?

Kit nhúng NVIDIA Jetson và Orbitty Carrier được thiết kế theo tiêu chuẩn công nghiệp với dải nhiệt độ hoạt động rộng (từ $-40^\circ\text{C}$ đến $+85^\circ\text{C}$ trên dòng TX2), hệ thống tản nhiệt thụ động/chủ động bền bỉ, không có ổ cứng cơ học (sử dụng thẻ nhớ hoặc eMMC), giúp hệ thống hoạt động liên tục 24/7 trong nhiều năm mà không đòi hỏi chi phí bảo trì định kỳ.

5. Tại sao không chọn mô hình lớn hơn như ResNet-50 hay VGG-Face?

Các mô hình ResNet-50 hay VGG-Face có dung lượng từ $100\text{ MB}$ đến hơn $500\text{ MB}$ với hàng chục triệu tham số, đòi hỏi tài nguyên tính toán từ $3 - 15\text{ GFLOPs}$. Trên các thiết bị nhúng giá rẻ như Jetson Nano, các mô hình này chỉ chạy được ở mức $1 - 3\text{ FPS}$ (gây giật lag, trễ khung hình nghiêm trọng). MobileFaceNet được thiết kế chuyên biệt để giữ được độ chính xác tương đương trong khi giảm hơn $90%$ chi phí tính toán.


Kết luận

Đề tài tốt nghiệp "Nghiên Cứu Ứng Dụng Nhận Diện Khuôn Mặt Trong Điểm Danh Sử Dụng Mô Hình MobileFaceNet" của nhóm sinh viên Trường ĐH Công nghệ Thông tin – ĐHQG-HCM đã minh chứng tính khả thi và hiệu quả vượt trội của việc mang các mô hình Deep Learning tiên tiến xuống các thiết bị phần cứng nhúng biên công suất thấp. Bằng việc kết hợp hài hòa giữa thuật toán phát hiện siêu nhẹ Ultra-Light Face Detector và mô hình trích xuất đặc trưng MobileFaceNet, hệ thống đã giải quyết trọn vẹn bài toán điểm danh tự động: Thời gian thực ($18 - 30+\text{ FPS}$) – Độ chính xác cao ($>78% - 82.6%$) – Chi phí thấp – Bảo mật tuyệt đối.

Công trình không chỉ đóng góp một giải pháp công nghệ có tính ứng dụng thực tiễn cao cho nhà trường và doanh nghiệp trong kỷ nguyên chuyển đổi số, mà còn là tài liệu tham khảo kỹ thuật giá trị cho cộng đồng nghiên cứu Thị giác máy tính và Hệ thống nhúng (Embedded AI).