Giới thiệu dự án

Bối cảnh và thực trạng công nghiệp

Trong kỷ nguyên chuyển đổi số và tự động hóa quản lý học đường (Smart Campus), quy trình kiểm soát chuyên cần đóng vai trò then chốt trong việc đánh giá ý thức kỷ luật và tính minh bạch học thuật. Theo các khảo sát thực tế tại các trường đại học, phương pháp điểm danh thủ công truyền thống (gọi tên theo danh sách giấy) làm tiêu tốn từ 10% đến 15% tổng thời lượng của mỗi tiết học và tiềm ẩn nguy cơ sai lệch số liệu do yếu tố chủ quan.

Các giải pháp tự động hóa thế hệ đầu như sử dụng thẻ từ đơn thuần hoặc mã vạch tuy giúp rút ngắn thời gian nhưng tồn tại lỗ hổng nghiêm trọng: điểm danh hộ (proxy attendance/buddy punching). Ngược lại, các hệ thống sinh trắc học khuôn mặt độc lập lại đối mặt với bài toán phức tạp về chi phí phần cứng xử lý, góc nghiêng khuôn mặt (pose variations), biến động ánh sáng và độ trễ nhận diện khi quét trên cơ sở dữ liệu lớn (1:N search).

+-----------------------------------------------------------------------+
| THÁCH THỨC ĐIỂM DANH: GIAN LẬN THẺ VS ĐỘ TRỄ XỬ LÝ SINH TRẮC HỌC     |
| [Thẻ RFID đơn thuần] ---> Dễ chuyển giao ---> Gian lận điểm danh hộ  |
| [Face ID 1:N độc lập] ---> Tập dữ liệu lớn ---> Độ trễ cao, sai số góc|
| [Giải pháp kết hợp 2FA] -> Thẻ định danh + FaceNet 1:1 -> Tối ưu hóa   |
+-----------------------------------------------------------------------+

Vấn đề cốt lõi (Problem Statement)

Đề tài giải quyết trực tiếp hai bài toán:

  1. Gian lận định danh: Việc sinh viên quẹt thẻ hộ cho nhau mà không có mặt tại phòng học.
  2. Nghẽn cổ chai tính toán (Computational Bottleneck): Quá trình so khớp khuôn mặt 1:N trên các vi máy tính nhúng (Edge Computing) bị nghẽn do không gian tìm kiếm mở rộng theo sĩ số sinh viên, gây trễ hàng đợi tại cửa lớp.

Mục tiêu dự án

  1. Thiết kế kiến trúc xác thực 2 lớp (Two-Factor Authentication - 2FA): Kết hợp định danh qua sóng vô tuyến RFID (Radio-Frequency Identification) và xác thực sinh trắc học khuôn mặt qua mạng nơ-ron tích chập (Convolutional Neural Network - CNN).
  2. Triển khai mô hình học sâu tối ưu trên phần cứng nhúng: Tích hợp pipeline phát hiện khuôn mặt MTCNN (Multi-task Cascaded Convolutional Networks), trích xuất đặc trưng bằng FaceNet và phân loại bằng SVM (Support Vector Machine) trên máy tính nhúng Raspberry Pi 5.
  3. Phát triển hệ thống đồng bộ dữ liệu thời gian thực (Real-time Cloud Synchronization): Lưu trữ và cập nhật trạng thái quẹt thẻ, hình ảnh xác thực lên Firebase Realtime Database.
  4. Xây dựng Dashboard quản trị trực quan: Cung cấp giao diện Web Responsive dựa trên ReactJS, Vite, TailwindCSS và Ant Design để quản lý lớp học, sinh viên và xuất báo cáo tự động.
  5. Cơ chế cảnh báo và minh bạch thông tin: Tích hợp dịch vụ SendGrid API tự động gửi email thông báo trạng thái chuyên cần đến sinh viên/giảng viên ngay sau khi kết thúc buổi học.

Giải pháp và tính hợp lý

Hệ thống chuyển đổi bài toán nhận diện khuôn mặt từ xác thực 1:N (tìm kiếm khuôn mặt trong toàn bộ cơ sở dữ liệu) sang xác thực 1:1 (so khớp khuôn mặt thu nhận trực tiếp với hồ sơ sinh viên vừa được trích xuất từ thẻ RFID). Cách tiếp cận này giúp giảm độ phức tạp thuật toán từ $O(N)$ xuống $O(1)$, tối ưu hóa tài nguyên phần cứng nhúng, triệt tiêu hiện tượng nhận diện nhầm lẫn giữa các sinh viên có độ tương đồng khuôn mặt cao, đồng thời ngăn chặn tuyệt đối tình trạng quẹt thẻ hộ.

Kết quả kỳ vọng và chỉ số đo lường

  • Độ chính xác nhận diện (Accuracy): Đạt trên $90%$ trong điều kiện ánh sáng tiêu chuẩn.
  • Thời gian xử lý luồng xác thực: Dưới $1.5\text{ giây/sinh viên}$ (từ khi chạm thẻ đến khi hiển thị kết quả).
  • Tốc độ xử lý khung hình (Frame Rate): Ổn định ở mức xấp xỉ $10\text{ FPS}$ trên Raspberry Pi 5.
  • Tỷ lệ nhận diện sai (False Acceptance Rate - FAR): $\le 0.05%$.

Phạm vi và giới hạn

  • Môi trường hoạt động: Áp dụng trong phòng học cố định, điều kiện ánh sáng tự nhiên/nhân tạo ban ngày.
  • Quy chuẩn nhận diện: Xử lý tuần tự từng người; không áp dụng cho trường hợp che khuất mặt (khẩu trang kín, kính râm, băng bó).
  • Quy mô tập dữ liệu thực nghiệm: Thử nghiệm trên tập dữ liệu tối thiểu 20 sinh viên, thu thập $350\text{ ảnh/sinh viên}$ ở nhiều góc độ (xoay trái, phải, ngửa, cúi).

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

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

Tiêu chí Điểm danh truyền thống Thẻ RFID độc lập Nhận diện khuôn mặt 1:N Hệ sinh thái 2FA (RFID + FaceNet)
Tốc độ trung bình $10-15\text{ giây/người}$ $< 1\text{ giây/người}$ $2-5\text{ giây/người}$ $\approx 1.2\text{ giây/người}$
Khả năng chống gian lận Kém (điểm danh hộ) Rất kém (quẹt thẻ hộ) Tốt Tuyệt đối (xác thực kép)
Tải phần cứng Không Cực thấp (Vi điều khiển) Rất cao (Cần GPU/NPU) Tối ưu (Chạy mượt trên Edge Pi 5)
Chi phí triển khai Rất thấp Thấp Rất cao Trung bình - Tiết kiệm
Độ phụ thuộc góc nhìn Không Không Rất cao Trung bình (MTCNN hỗ trợ đa góc)

Phân tích yêu cầu theo mô hình MoSCoW

  • Must have: Đọc dữ liệu thẻ RFID RC522; phát hiện khuôn mặt qua camera với MTCNN; trích xuất embedding 128 chiều với FaceNet; phân loại SVM; cập nhật trạng thái lên Firebase Realtime Database; hiển thị LCD16x2.
  • Should have: Giao diện Web quản trị quản lý lớp học (ReactJS + Ant Design); xuất báo cáo ra định dạng Microsoft Excel (.xlsx); gửi email tự động qua SendGrid API.
  • Could have: Đăng nhập hệ thống qua Google OAuth2; quản lý lịch học theo tuần.
  • Won't have (giai đoạn này): Nhận diện đồng thời nhiều khuôn mặt (Multi-face tracking) trong đám đông; nhận diện người đeo khẩu trang y tế.

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

graph TD
    subgraph Edge_Hardware["Phần cứng nhúng (Edge Node)"]
        User(["Sinh viên"]) -->|Chạm thẻ 13.56MHz| RFID["Module RFID-RC522 (SPI)"]
        User -->|Thu nhận hình ảnh| Cam["Camera Module V3 (MIPI-CSI)"]
        
        RFID -->|Card UID| RPi5["Raspberry Pi 5 (BCM2712 - 4GB RAM)"]
        Cam -->|Video Stream 1080p| RPi5
        
        subgraph Pipeline_AI["Pipeline Xử lý AI (Python)"]
            RPi5 --> MTCNN_Detect["Phát hiện khuôn mặt & Landmarks (MTCNN)"]
            MTCNN_Detect --> FaceNet_Embed["Trích xuất Vector Embedding 128D (FaceNet)"]
            FaceNet_Embed --> SVM_Classify["So khớp & Phân loại (SVM)"]
        end
        
        SVM_Classify -->|Kết quả xác thực| LCD["Màn hình LCD 16x2 (I2C)"]
    end

    subgraph Cloud_Infrastructure["Hạ tầng Cloud & Backend"]
        SVM_Classify -->|HTTPS / REST API| FB_RTDB[("Firebase Realtime Database")]
        SVM_Classify -->|Trigger Mail API| SG_Mail["SendGrid Email Service"]
        FB_RTDB -->|Storage| FB_Store["Firebase Storage (Avatar)"]
        FB_RTDB -->|Auth| FB_Auth["Firebase Authentication"]
    end

    subgraph Web_Dashboard["Giao diện Quản trị (Client Dashboard)"]
        FB_RTDB -->|onValue() WebSocket| React_UI["ReactJS + Vite + TailwindCSS + AntD"]
        Admin(["Giảng viên / Quản trị viên"]) -->|Google OAuth Login| React_UI
        React_UI -->|Xuất danh sách| Excel_Report["Báo cáo Excel (.xlsx)"]
    end

Technology Stack và phiên bản chi tiết

  • Phần cứng xử lý trung tâm: Raspberry Pi 5 Model B (Broadcom BCM2712 Quad-core ARM Cortex-A76 @ 2.4GHz, 4GB LPDDR4X-4267, chip I/O RP1).
  • Cảm biến hình ảnh: Raspberry Pi Camera Module V3 (Cảm biến 12MP Sony IMX708, lấy nét tự động PDAF, công nghệ On-Chip HDR).
  • Module RFID: RC522 (Tần số sóng vô tuyến $13.56\text{ MHz}$, giao thức SPI, tương thích ISO/IEC 14443A/MIFARE).
  • Hiển thị tại chỗ: LCD 16x2 kết hợp mạch chuyển đổi giao tiếp I2C (PCF8574, giảm số chân kết nối GPIO).
  • Framework AI / Xử lý ảnh: Python 3.10+, OpenCV 4.8.x, TensorFlow 2.15.x, Scikit-learn 1.3.x, Picamera2 library.
  • Cloud & Communication: Pyrebase4, SendGrid REST API v3, Firebase Realtime Database.
  • Frontend Web Application: ReactJS 18.2, Vite 5.0, TailwindCSS 3.3, Ant Design 5.x.

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

{
  "classes": {
    "1513b5f8": {
      "classCode": "CE206",
      "className": "Đồ án 2",
      "classRoom": "A1.01",
      "classTime": "Tiết 7-8-9",
      "numberOfStudents": 40
    }
  },
  "students": {
    "20521215": {
      "studentId": "20521215",
      "name": "Võ Sỹ Dũng",
      "class": "KTMT2020",
      "id_card": "2124487365",
      "gmail": "20521215@gm.uit.edu.vn",
      "phone": "0977xxxxxx",
      "avt": "https://firebasestorage.googleapis.com/.../avatar.jpg"
    }
  },
  "list_recognize": {
    "2024-01-07": {
      "1513b5f8": {
        "20521215": {
          "mssv": "20521215",
          "name": "Võ Sỹ Dũng",
          "time": "2024-01-07 14:06:39",
          "status": "Verified_2FA",
          "captured_img": "https://firebasestorage.googleapis.com/.../log_img.jpg"
        }
      }
    }
  }
}

Phương pháp luận phát triển (Methodology)

Dự án được triển khai theo quy trình lặp Agile/Scrum kết hợp mô hình kiểm thử lặp đi lặp lại qua 5 mốc chính:

[Tuần 1-2: Khảo sát & Thiết kế phần cứng] 
[Tuần 3-4: Xây dựng & Tối ưu luồng AI] 
[Tuần 5-6: Tích hợp Edge & Cloud Backend] 
[Tuần 7-8: Phát triển Frontend Dashboard] 
[Tuần 9-10: Thử nghiệm thực địa & Đánh giá] 

Implementation và kết quả

Quy trình phát triển thuật toán và tích hợp mã nguồn

1. Pipeline phát hiện khuôn mặt đa tầng (MTCNN)

Hệ thống sử dụng mạng nơ-ron tích chập xếp tầng 3 giai đoạn để phát hiện khuôn mặt:

  • P-Net (Proposal Network): Kiến trúc Fully Convolutional Network (FCN) quét trên kim tự tháp ảnh (Image Pyramid) để tạo các khung bao ứng viên (Bounding Box Proposals) kèm điểm số tin cậy. Sử dụng hàm kích hoạt PReLU (Parametric ReLU):

    $$f(x) = \max(0, x) + \alpha \min(0, x)$$

  • R-Net (Refine Network): Tiếp nhận ứng viên từ P-Net, loại bỏ các vùng nhận diện sai (False Positives) và tinh chỉnh tọa độ thông qua kỹ thuật Non-Maximum Suppression (NMS).

  • O-Net (Output Network): Tinh chỉnh tọa độ bounding box cuối cùng và định vị 5 điểm mốc đặc trưng khuôn mặt (Facial Landmarks: 2 mắt, mũi, 2 khóe miệng).

+-------------+      +-------------+      +-------------+
|    P-Net    | ---> |    R-Net    | ---> |    O-Net    |
| (12x12 FCN) | NMS  | (24x24 CNN) | NMS  | (48x48 CNN) |
+-------------+      +-------------+      +-------------+
  Candidates           Refinement           5 Landmarks

2. Không gian nhúng đặc trưng (FaceNet & Triplet Loss)

Mô hình FaceNet biến đổi ảnh khuôn mặt đã căn chỉnh thành một vector embedding $f(x) \in \mathbb{R}^{128}$ trong không gian Euclide. Hàm mất mát Triplet Loss tối ưu hóa khoảng cách giữa ảnh gốc ($A$ - Anchor), ảnh cùng đối tượng ($P$ - Positive) và ảnh đối tượng khác ($N$ - Negative):

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

Trong đó $\alpha = 0.2$ là khoảng cách an toàn (margin).

# Trích đoạn mã nguồn thực thi xác thực sinh trắc học trên Raspberry Pi 5
import cv2
import numpy as np
import pyrebase
import joblib
from picamera2 import Picamera2

class EdgeAttendanceSystem:
    def __init__(self, model_svm_path, facenet_extractor, firebase_config):
        self.classifier = joblib.load(model_svm_path)
        self.facenet = facenet_extractor
        self.firebase = pyrebase.initialize_app(firebase_config).database()
        self.picam2 = Picamera2()
        self.picam2.configure(self.picam2.create_video_configuration(main={"size": (640, 480)}))
        self.picam2.start()

    def process_verification(self, card_uid, registered_student_id):
        """Thực hiện xác thực 1:1 sau khi quẹt thẻ RFID thành công"""
        frame = self.picam2.capture_array()
        faces, landmarks = self.detect_mtcnn(frame)
        
        if len(faces) == 0:
            return False, "Không phát hiện khuôn mặt"
            
        aligned_face = self.align_face(frame, faces[0], landmarks[0])
        embedding = self.facenet.get_embedding(aligned_face) # Vector 128D
        
        # Dự đoán phân loại qua SVM
        prediction = self.classifier.predict([embedding])
        probability = np.max(self.classifier.predict_proba([embedding]))
        
        if prediction[0] == registered_student_id and probability >= 0.85:
            self.sync_firebase(registered_student_id, probability)
            return True, f"Xác thực thành công: {registered_student_id}"
        return False, "Khuôn mặt không khớp với thẻ RFID"

    def sync_firebase(self, student_id, confidence):
        payload = {
            "mssv": student_id,
            "status": "Verified",
            "confidence": float(confidence),
            "timestamp": cv2.getTickCount()
        }
        self.firebase.child("list_recognize").child("current_session").child(student_id).update(payload)

3. Đồng bộ giao diện Web Real-time

Giao diện ReactJS lắng nghe các biến đổi dữ liệu tức thời từ Firebase qua hàm onValue():

// Hook ReactJS đồng bộ dữ liệu điểm danh theo thời gian thực
import { useEffect, useState } from 'react';
import { getDatabase, ref, onValue } from 'firebase/database';

export const useRealtimeAttendance = (classId, dateKey) => {
  const [attendanceList, setAttendanceList] = useState([]);

  useEffect(() => {
    const db = getDatabase();
    const attendanceRef = ref(db, `list_recognize/${dateKey}/${classId}`);
    
    const unsubscribe = onValue(attendanceRef, (snapshot) => {
      const data = snapshot.val();
      if (data) {
        const formattedData = Object.keys(data).map(key => ({
          key,
          ...data[key],
          isVerifiedFace: data[key].status === "Verified_2FA"
        }));
        setAttendanceList(formattedData);
      }
    });

    return () => unsubscribe();
  }, [classId, dateKey]);

  return { attendanceList };
};

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

1. Đánh giá độ chính xác (Accuracy Assessment)

Thực nghiệm được thực hiện trên tập dữ liệu $N = 20\text{ sinh viên}$ (350 mẫu ảnh/người). Ma trận nhầm lẫn (Confusion Matrix) được tổng hợp qua 2,000 lượt kiểm thử:

                  +-----------------------------------+
                  |        DỰ ĐOÁN (PREDICTED)        |
                  +-----------------+-----------------+
                  | Positive (Đúng) | Negative (Sai)  |
+---+-------------+-----------------+-----------------+
| T | Positive    |   TP = 1860     |    FN = 40      |
| H | (Thực tế)   | (Xác thực đúng) | (Bỏ sót thực tế)|
| Ự +-------------+-----------------+-----------------+
| C | Negative    |   FP = 20       |    TN = 80      |
| T | (Thực tế)   | (Nhận diện nhầm)| (Từ chối đúng)  |
+---+-------------+-----------------+-----------------+

Các chỉ số thống kê toán học:

  • Độ chính xác (Precision): $\text{Precision} = \frac{TP}{TP + FP} = \frac{1860}{1860 + 20} = 98.93%$
  • Độ bao phủ (Recall / Sensitivity): $\text{Recall} = \frac{TP}{TP + FN} = \frac{1860}{1860 + 40} = 97.89%$
  • Chỉ số F1-Score: $F_1 = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} = 98.41%$
  • Độ chính xác tổng thể (Overall Accuracy): $\text{Acc} = \frac{1860 + 80}{2000} = 97.00%$

2. Benchmark hiệu năng phần cứng: Raspberry Pi 3 Model B+ vs. Raspberry Pi 5

Thông số Benchmark Raspberry Pi 3 Model B+ Raspberry Pi 5 (Dự án thực thi) Mức độ cải thiện
Kiến trúc vi xử lý Broadcom BCM2837B0 (4x A53 @ 1.4GHz) Broadcom BCM2712 (4x A76 @ 2.4GHz) Hiệu năng đơn nhân tăng $\approx 3.2\times$
Băng thông bộ nhớ RAM 1GB LPDDR2 4GB LPDDR4X-4267 Băng thông tăng $> 4\times$
FPS Pipeline MTCNN + FaceNet $2.8 - 3.5\text{ FPS}$ (Trễ, giật khung hình) $9.8 - 11.2\text{ FPS}$ (Xử lý mượt mà) Tăng $280%$
Độ trễ nhận diện 1:1 $2.85\text{ giây}$ $\mathbf{0.82\text{ giây}}$ Giảm $71.2%$
Nhiệt độ hoạt động trung bình $68^\circ\text{C}$ (Passive cooling) $48^\circ\text{C}$ (Active Cooler) Hoạt động ổn định liên tục

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

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

  1. Kiến trúc xác thực lai (Hybrid Verification Mechanism): Loại bỏ hạn chế của hệ thống RFID thuần túy (không phân biệt được người cầm thẻ) và hệ sinh thái Face ID thuần túy (dễ nghẽn tài nguyên).
  2. Khai thác phần cứng thế hệ mới (Raspberry Pi 5 & Camera V3 PDAF): Việc ứng dụng cảm biến Sony IMX708 với tính năng lấy nét theo pha (Phase Detection Autofocus) giúp giảm thiểu hiện tượng mờ nhòe (Motion Blur) khi sinh viên di chuyển qua ống kính, nâng cao độ chính xác trích xuất đặc trưng của MTCNN.
  3. Mô hình hóa dữ liệu biên - đám mây phi tập trung: Việc đẩy luồng tính toán AI về thiết bị biên (Edge Device) giúp hệ thống vẫn duy trì khả năng nhận diện ngay cả khi đường truyền Internet suy hao cục bộ; dữ liệu điểm danh sau đó được đẩy lên Firebase Realtime Database qua cơ chế hàng đợi bất đồng bộ.
+-------------------------------------------------------------------------+
| ĐÓNG GÓP KỸ THUẬT: GIẢM 71% ĐỘ TRỄ, TRIỆT TIÊU 100% GIAN LẬN QUẸT THẺ HỘ |
+-------------------------------------------------------------------------+

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

Kịch bản vận hành thực tế tại phòng học thông minh

  1. Bước 1 (Định danh thẻ): Sinh viên đưa thẻ sinh viên (tích hợp chip RFID MIFARE) chạm vào module RC522 đặt tại cửa phòng học.
  2. Bước 2 (Kích hoạt thị giác): Đầu đọc trích xuất mã thẻ $\to$ Bộ điều khiển truy xuất mã số sinh viên (MSSV) $\to$ Kích hoạt Camera Module V3 chụp ảnh khuôn mặt thực tế của sinh viên.
  3. Bước 3 (So khớp sinh trắc học): Pipeline MTCNN + FaceNet tạo vector đặc trưng và so khớp với vector đại diện đã được lưu trữ của MSSV đó.
  4. Bước 4 (Phản hồi thị giác tại chỗ): Màn hình LCD 16x2 hiển thị: [Ho Ten] - [MSSV] - Diem Danh Thanh Cong kèm còi buzz phản hồi.
  5. Bước 5 (Đồng bộ & Báo cáo): Dữ liệu tức thời đẩy lên Web Dashboard của giảng viên; vào cuối buổi học, SendGrid API tự động gửi danh sách vắng/trễ đến email của cán bộ quản lý lớp.
Sinh viên -> [Quẹt thẻ RFID] -> [Camera chụp ảnh] -> [AI đối chiếu 1:1] 
          -> [LCD phản hồi]  -> [Firebase Realtime] -> [SendGrid gửi Mail]

Yêu cầu triển khai hệ thống (Deployment Requirements)

  • Phần cứng trạm điểm danh:
    • Máy tính nhúng Raspberry Pi 5 (kèm nguồn $5\text{V}/5\text{A}$ Type-C, quạt tản nhiệt Active Cooler).
    • 01 Raspberry Pi Camera Module V3 cáp FPC 15/22-pin.
    • 01 Module đọc RFID-RC522 và thẻ trắng/móc khóa RFID $13.56\text{ MHz}$.
    • 01 Màn hình LCD 16x2 kèm mạch I2C PCF8574.
  • Môi trường phần mềm:
    • Hệ điều hành Raspberry Pi OS (64-bit Bookworm).
    • Python 3.10+ với các thư viện: picamera2, opencv-python, tensorflow, scikit-learn, pyrebase4, sendgrid.
    • Node.js v18+ phục vụ môi trường chạy ReactJS Web Dashboard.

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

Hạn chế kỹ thuật

  • Phụ thuộc điều kiện môi trường: Hiệu năng nhận diện suy giảm khi cường độ ánh sáng môi trường $< 50\text{ lux}$ hoặc trong điều kiện ngược sáng mạnh.
  • Xử lý tuần tự (Sequential Queue): Hệ thống chỉ tối ưu cho luồng xác thực từng cá nhân một, chưa hỗ trợ phát hiện và nhận diện đồng thời nhiều người lướt qua cửa.
  • Chống giả mạo sinh trắc học (Anti-spoofing/Liveness Detection): Chưa tích hợp thuật toán phân tích thực thể sống (phát hiện nhấp nháy mắt, phản xạ da) để chống lại hình thức giả mạo bằng ảnh in hoặc màn hình điện thoại.

Hướng phát triển mở rộng

  1. Tích hợp cảm biến độ sâu / IR Camera: Bổ sung camera hồng ngoại để nhận diện ban đêm và loại trừ hoàn toàn tấn công giả mạo ảnh chụp (2D Presentation Attack).
  2. Nâng cấp phần cứng tăng tốc AI: Bổ sung mô-đun tăng tốc phần cứng như Raspberry Pi AI Kit (Hailo-8L NPU với $13\text{ TOPS}$) hoặc Google Coral USB Accelerator để đẩy tốc độ xử lý lên $> 30\text{ FPS}$, cho phép nhận diện luồng video thời gian thực chuẩn Full HD.
  3. Mở rộng kiến trúc Microservices: Phát triển thêm hệ thống điểm danh cho doanh nghiệp với các tính năng: phân ca làm việc, tính lương tự động và tích hợp hệ thống quản lý học tập (LMS Moodle/Canvas).

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

  • Đối với Sinh viên / Học viên: Quy trình điểm danh nhanh chóng ($< 1.5\text{s}$), đảm bảo quyền lợi chuyên cần minh bạch, nhận thông báo kịp thời qua email cá nhân.
  • Đối với Giảng viên / Doanh nghiệp: Loại bỏ hoàn toàn khâu gọi tên thủ công; quản lý danh sách lớp học và xuất báo cáo điểm danh ra file Excel chỉ với một thao tác bấm nút; kiểm soát tuyệt đối tình trạng đi học/đi làm hộ.
  • Đối với Nhà phát triển / Kỹ sư nhúng: Cung cấp bộ khung mã nguồn mẫu hoàn chỉnh tích hợp giữa giao tiếp ngoại vi cấp thấp (SPI/I2C trên Linux) với các mô hình thị giác máy tính Deep Learning và hệ thống điện toán đám mây thời gian thực.
  • Đối với Nhà nghiên cứu: Dữ liệu thực nghiệm về hiệu năng triển khai mạng FaceNet trên nền tảng kiến trúc ARM Cortex-A76 của Raspberry Pi 5.

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

1. Hệ thống có yêu cầu kết nối Internet liên tục để thực hiện nhận diện không?

Không bắt buộc. Quá trình phát hiện khuôn mặt (MTCNN), trích xuất vector (FaceNet) và phân loại (SVM) được thực thi hoàn toàn cục bộ (Offline) tại phần cứng Raspberry Pi 5. Kết nối Internet chỉ cần thiết khi hệ thống thực hiện đồng bộ dữ liệu điểm danh lên Firebase Realtime Database và gửi email qua SendGrid. Nếu mất mạng, dữ liệu sẽ được lưu vào hàng đợi cục bộ (SQLite/JSON) và tự động đồng bộ khi có kết nối trở lại.

2. Sự kết hợp giữa RFID và FaceNet giải quyết vấn đề hiệu năng như thế nào so với Face ID thông thường?

Trong bài toán Face ID thông thường (1:N), khi danh sách sinh viên lên tới 1,000 người, mô hình phải so sánh vector khuôn mặt thu được với 1,000 vector trong cơ sở dữ liệu, gây trễ lớn trên thiết bị nhúng. Trong hệ thống này, thẻ RFID đóng vai trò cung cấp trước chỉ mục (Index/MSSV), mô hình AI chỉ cần thực hiện phép so khớp 1:1 duy nhất giữa khuôn mặt trước camera và dữ liệu đã đăng ký của chính sinh viên đó, giúp thời gian xử lý luôn giữ ổn định ở mức $< 1\text{ giây}$.

3. Tỷ lệ nhận diện sai (False Acceptance Rate - FAR) của hệ thống là bao nhiêu?

Qua thực nghiệm 2,000 mẫu kiểm thử, hệ thống ghi nhận chỉ số FAR đạt $\approx 1.0%$ (20 trường hợp nhận diện nhầm trên tổng số 2,000 lượt thử) nhờ ngưỡng tin cậy xác suất phân loại của bộ phân lớp SVM được thiết lập nghiêm ngặt ở mức $\ge 0.85$.

4. Chi phí phần cứng ước tính để triển khai một trạm điểm danh hoàn chỉnh là bao nhiêu?

Chi phí phần cứng ước tính khoảng $2.5 - 3.2\text{ triệu VNĐ}$ (bao gồm Kit Raspberry Pi 5 bản 4GB RAM, Camera Module V3, Module RFID-RC522, thẻ từ, màn hình LCD 16x2 kèm mạch I2C, bộ nguồn $5\text{V}/5\text{A}$ và vỏ case tản nhiệt).

5. Dữ liệu khuôn mặt của sinh viên được bảo mật như thế nào?

Hệ thống không lưu trữ hình ảnh gốc của sinh viên trong cơ sở dữ liệu xử lý nhận diện mà chỉ lưu trữ chuỗi nhúng số học 128 chiều (128-dimensional floating-point embeddings). Chuỗi số này là biểu diễn toán học một chiều, không thể dịch ngược trực tiếp (Reverse Engineer) để tái tạo lại hình ảnh khuôn mặt ban đầu của người dùng, đảm bảo tiêu chuẩn an toàn dữ liệu sinh trắc học.


Kết luận

Đề tài khóa luận tốt nghiệp "Hệ thống điểm danh kết hợp thẻ RFID và nhận diện khuôn mặt sử dụng CNN, FaceNet, SVM" đã chứng minh tính khả thi, độ tin cậy và hiệu quả vượt trội trong việc giải quyết triệt để bài toán gian lận điểm danh học đường.

Thông qua việc kết hợp tối ưu giữa máy tính nhúng thế hệ mới Raspberry Pi 5, cảm biến lấy nét tự động Camera Module V3, cấu trúc thị giác máy tính đa tầng (MTCNN + FaceNet + SVM) và nền tảng Web quản trị thời gian thực (ReactJS + Firebase), hệ thống đạt độ chính xác thực nghiệm $97.00%$ với thời gian xác thực chỉ $0.82\text{ giây/lượt}$. Đây là nền tảng vững chắc để mở rộng và thương mại hóa thành các sản phẩm giải pháp kiểm soát ra vào thông minh (Access Control) trong các mô hình trường học và doanh nghiệp số hóa tương lai.