Giới thiệu dự án

Bối cảnh và Tính cấp thiết của Đề tài

Trong kỷ nguyên Chuyển đổi số và Cách mạng Công nghiệp 4.0, tự động hóa quy trình quản lý nhân sự trở thành yêu cầu sống còn nhằm nâng cao năng suất và tối ưu hóa chi phí vận hành. Theo các báo cáo thống kê ngành nhân sự, các doanh nghiệp và cơ sở giáo dục tiêu tốn trung bình từ 10% đến 15% thời gian quản lý cho các công việc hành chính thủ công, trong đó hoạt động chấm công – điểm danh chiếm tỷ trọng lớn. Phương pháp điểm danh truyền thống bằng ký tên trên giấy hay gọi tên không chỉ gây lãng phí thời gian mà còn tồn tại nhiều lỗ hổng như gian lận điểm danh hộ ("buddy punching"), sai sót khi nhập liệu thủ công và thiếu khả năng trích xuất dữ liệu theo thời gian thực.

Mặc dù các giải pháp sinh trắc học vân tay hay thẻ từ độc lập đã được triển khai rộng rãi, chúng vẫn bộc lộ nhiều điểm hạn chế: máy quét vân tay dễ bị mài mòn, bám bẩn hoặc truyền nhiễm vi khuẩn; trong khi thẻ từ RFID đơn thuần rất dễ bị nhân viên chuyển giao cho nhau để điểm danh hộ. Nhằm giải quyết triệt để bài toán này, đồ án "Hệ Thống Điểm Danh Tự Động Bằng Nhận Diện Khuôn Mặt và RFID" thuộc ngành Hệ thống Nhúng & IoT, Trường Đại học Sư phạm Kỹ thuật TP.HCM (HCMUTE) đã được nghiên cứu và phát triển, kết hợp đồng thời công nghệ nhận dạng tần số vô tuyến (RFID) và thị giác máy tính (Computer Vision) trên nền tảng máy tính nhúng Raspberry Pi 4.

+-----------------------------------------------------------------------+
|                       QUY TRÌNH XÁC THỰC 2 LỚP (2FA)                  |
|                                                                       |
|  [Thẻ RFID 13.56MHz]  ---> [Quét Thẻ RC522]  ---> Xác định Card ID    |
|                                                          |            |
|                                                          v            |
|  [Webcam 1080p]       ---> [Trích xuất Face] ---> So khớp Vector ID   |
|                                                          |            |
|                                                          v            |
|                                               [Ghi nhận Check-in]     |
|                                               (Firebase Realtime DB)  |
+-----------------------------------------------------------------------+

Vấn đề Cụ thể Cần Giải quyết (Problem Statement)

Hệ thống tập trung giải quyết các điểm nghẽn kỹ thuật và thực tiễn sau:

  • Triệt tiêu hoàn toàn gian lận điểm danh: Loại bỏ hành vi quẹt thẻ hộ bằng cách bắt buộc xác thực khuôn mặt tương ứng với định danh mã thẻ lưu trữ trong cơ sở dữ liệu.
  • Tối ưu hóa tài nguyên phần cứng tại biên (Edge Computing): Xử lý nhận diện khuôn mặt và điều khiển ngoại vi trực tiếp trên bo mạch nhúng Raspberry Pi 4 Model B với bộ nhớ và điện năng tiêu thụ tối ưu.
  • Đồng bộ hóa dữ liệu thời gian thực: Cung cấp kênh truyền trực tiếp từ thiết bị biên lên nền tảng đám mây (Cloud Database) phục vụ việc giám sát trực quan qua Web Dashboard.

Mục tiêu của Dự án

  1. Thiết kế và chế tạo phần cứng: Tích hợp máy tính nhúng Raspberry Pi 4 Model B, module đọc thẻ RFID RC522 (13.56 MHz, giao thức SPI), webcam Full HD Rapoo XW180 và hệ thống tản nhiệt bảo vệ vào một khối vận hành độc lập, ổn định.
  2. Xây dựng thuật toán xử lý và nhận dạng: Ứng dụng thư viện OpenCV và các mô hình trích chọn đặc trưng khuôn mặt (Haar Cascade, Local Binary Patterns Histograms - LBPH, FaceNet Embeddings) bằng ngôn ngữ Python để xác thực danh tính với độ chính xác cao.
  3. Phát triển nền tảng quản trị Web: Xây dựng Dashboard theo dõi điểm danh thời gian thực, bảng ghi nhận lịch sử (Recent Log), thống kê trạng thái đúng giờ/đi muộn, cảnh báo truy cập trái phép và tính năng điểm danh bù thủ công (Manual Checking).

Phương pháp Tiếp cận và Chỉ số Đạt được

  • Kiến trúc xác thực 2 nhân tố (2FA Edge Authentication): Kết hợp định danh nhanh qua phần cứng (RFID < 1 giây) và xác thực sinh trắc học khuôn mặt (< 5-7 giây), mang lại độ an toàn cao.
  • Chỉ số đo lường (Measurable Metrics):
    • Độ chính xác nhận dạng khuôn mặt trong điều kiện môi trường chuẩn: $\ge 90%$.
    • Khoảng cách đọc thẻ RFID: $0 - 5 \text{ cm}$.
    • Tốc độ xử lý toàn chu trình xác thực: $5 - 7 \text{ giây/lượt}$.
    • Tự động hóa cập nhật và reset trạng thái hệ thống: $100%$ lúc 00:00 hàng ngày.

Giới hạn Phạm vi Nghiên cứu (Scope & Limitations)

  • Phương thức xác thực: Cố định ở 2 phương thức là thẻ RFID tần số 13.56 MHz (Mifare Standard) và camera quang học 2D.
  • Khoảng cách tương tác: Khoảng cách nhận diện khuôn mặt tối ưu đạt hiệu quả cao trong phạm vi $\le 30 \text{ cm}$ (độ chính xác giảm dần khi khoảng cách $> 80 \text{ cm}$).
  • Điều kiện môi trường: Hệ thống hoạt động tối ưu trong điều kiện ánh sáng ổn định trong phòng, không chịu ảnh hưởng trực tiếp của bức xạ nhiệt mạnh hoặc ánh sáng ngược gắt.

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 Sổ tay / Excel Máy chấm công Vân tay Hệ thống Quẹt thẻ RFID đơn thuần Hệ thống Camera Face ID độc lập Giải pháp Đồ án (RFID + Face ID 2FA)
Khả năng chống gian lận Rất thấp (Ký thay dễ dàng) Trung bình (Làm giả vân tay silicon) Rất thấp (Chuyển thẻ cho nhau) Cao (Nhưng dễ nhầm lẫn góc nghiêng) Rất cao (Bắt buộc trùng khớp Thẻ + Mặt)
Thời gian xác thực 15 - 30s/người 2 - 4s/người 1 - 2s/người 3 - 5s/người 5 - 7s/người (Xác thực 2 bước)
Vệ sinh / Tiếp xúc Tiếp xúc bút/giấy Bắt buộc chạm bề mặt cảm biến Không tiếp xúc gần ($< 5\text{cm}$) Không tiếp xúc ($1 - 2\text{m}$) Không tiếp xúc bề mặt
Chi phí triển khai Rất thấp Trung bình ($2 - 5 \text{ triệu VNĐ}$) Thấp ($1 - 2 \text{ triệu VNĐ}$) Cao ($10 - 30 \text{ triệu VNĐ}$) Tối ưu ($3 - 4 \text{ triệu VNĐ}$)
Khả năng mở rộng IoT Không có Hạn chế theo phần mềm hãng Tùy biến trung bình Tùy biến cao Tùy biến không giới hạn qua Python/Cloud

Yêu cầu Người dùng theo Mô hình MoSCoW

  • Must Have (Bắt buộc phải có):
    • Khả năng đọc mã UID từ thẻ RFID qua module RC522.
    • Nhận diện và so khớp khuôn mặt tương ứng với ID thẻ từ webcam.
    • Lưu trữ và đồng bộ dữ liệu điểm danh (Tên, ID, Thời gian, Trạng thái) lên cơ sở dữ liệu đám mây.
    • Giao diện Dashboard hiển thị thông tin điểm danh Realtime.
  • Should Have (Nên có):
    • Cảnh báo truy cập trái phép khi quẹt sai thẻ hoặc khuôn mặt không trùng khớp quá số lần quy định.
    • Tự động phân loại: "Đúng giờ", "Đi trễ", "Chưa điểm danh".
    • Tính năng reset bảng điểm danh tự động vào 00:00 mỗi ngày.
  • Could Have (Có thể mở rộng):
    • Module Checking cho phép quản trị viên chỉnh sửa/điểm danh thủ công khi phần cứng gặp sự cố.
    • Xuất báo cáo thống kê định kỳ sang định dạng Excel/PDF.
  • Won't Have (Chưa thực hiện trong giai đoạn này):
    • Nhận diện khuôn mặt 3D chống giả mạo bằng ảnh in (Anti-spoofing liveness detection chuyên sâu).
    • Tích hợp cổng xoay Flap Barrier tự động mở cửa.

Thiết kế hệ thống

Kiến trúc Phần cứng và Sơ đồ Khối

Hệ thống được thiết kế theo cấu trúc module hóa phân tán với 6 khối chức năng cốt lõi:

                  +--------------------------------+
                  |         Khối Nguồn             |
                  |     (Adapter 5.1V / 3A)        |
                  +---------------+----------------+
                                  |
                                  v
+------------------+    +--------------------+    +---------------------+
|  Khối Đọc Thẻ    |    |   KHỐI ĐIỀU KHIỂN   |    |    Khối Đọc Ảnh     |
|   RFID RC522     |--->|     TRUNG TÂM      |<---|   Webcam Rapoo      |
| (13.56MHz - SPI) |    | (Raspberry Pi 4B)  |    | (Full HD 1080p USB) |
+------------------+    +---------+----------+    +---------------------+
                                  |
            +---------------------+---------------------+
            |                                           |
            v                                           v
+-----------------------+                   +-----------------------+
|  Khối Lưu Trữ & Mạng  |                   |  Khối Hiển Thị & Web  |
| (Firebase Realtime DB)|                   | (Laptop UI / Web App) |
+-----------------------+                   +-----------------------+
  1. Khối điều khiển trung tâm (Master Controller): Sử dụng bo mạch Raspberry Pi 4 Model B (SoC Broadcom BCM2711 Quad-core Cortex-A72 @ 1.5GHz, 4GB RAM LPDDR4). Bo mạch đóng vai trò thu thập tín hiệu ngoại vi, thực thi pipeline xử lý ảnh, đồng bộ cơ sở dữ liệu và kích hoạt cảnh báo.
  2. Khối RFID: Module MFRC522 giao tiếp thông qua chuẩn bus SPI tốc độ truyền nhận tối đa 10 Mbit/s, tần số sóng mang 13.56 MHz, tương thích chuẩn thẻ ISO/IEC 14443 Type A (Mifare Classic 1K, S50, S70).
  3. Khối đọc ảnh: Webcam Rapoo XW180 độ phân giải Full HD (1920x1080 pixels), tốc độ lấy khung hình 30 fps, góc xoay 360 độ, kết nối qua giao thức USB 2.0.
  4. Khối nguồn: Nguồn chuyên dụng chuẩn USB Type-C cung cấp điện áp $+5.1\text{V DC} \pm 5%$, dòng tải tối đa $3.0\text{A}$ (công suất $15.3\text{W}$). Tổng tiêu thụ dòng điện của các thiết bị ngoại vi kết nối qua GPIO và USB là $0.4\text{A}$ (quạt tản nhiệt $200\text{mA}$, module RC522 $26\text{mA}$, webcam $\approx 150\text{mA}$), hoàn toàn nằm trong giới hạn an toàn tải của Raspberry Pi ($< 1.2\text{A}$).

Sơ đồ Đấu nối Chân (Pinout Configuration) RC522 với Raspberry Pi 4

Chân RC522 Tên Chức năng Chân Raspberry Pi 4 (Physical Pin) Chế độ Hoạt động (BCM / SPI Mode)
VCC Nguồn cấp 3.3V Pin 01 3.3V Power
RST Reset Hardware Pin 22 GPIO 25
GND Nối đất Ground Pin 06 / Pin 09 Common Ground
IRQ Ngắt phần cứng Không sử dụng (Trống) Unconnected
MISO Master In Slave Out Pin 21 GPIO 09 (SPI0_MISO)
MOSI Master Out Slave In Pin 19 GPIO 10 (SPI0_MOSI)
SCK Serial Clock Pin 23 GPIO 11 (SPI0_SCLK)
SDA (SS) Slave Select Pin 24 GPIO 08 (SPI0_CE0_N)

Thiết kế Cơ sở Dữ liệu (Database Schema)

Hệ thống sử dụng cơ sở dữ liệu phi quan hệ thời gian thực (Firebase Realtime Database) với cấu trúc cây JSON chuẩn hóa:

{
  "Employees": {
    "EMP_20139073": {
      "card_uid": "4A:B2:1C:89",
      "full_name": "Pham Thanh Ha",
      "department": "Embedded & IoT",
      "email": "ha.pham@example.com",
      "phone": "0901234567",
      "face_encoding_path": "/encodings/20139073.npy",
      "created_at": "2023-12-01T08:00:00Z"
    }
  },
  "AttendanceLogs": {
    "2023-12-15": {
      "LOG_0001": {
        "employee_id": "EMP_20139073",
        "card_uid": "4A:B2:1C:89",
        "checkin_time": "07:54:12",
        "status": "ON_TIME",
        "verification_method": "RFID_AND_FACE",
        "confidence_score": 0.94
      }
    }
  },
  "SecurityAlerts": {
    "ALERT_1001": {
      "timestamp": "2023-12-15T08:05:21Z",
      "alert_type": "FACE_MISMATCH",
      "card_scanned": "4A:B2:1C:89",
      "attempt_count": 3,
      "status": "UNRESOLVED"
    }
  }
}

Phương pháp Luận (Methodology)

Đồ án áp dụng quy trình phát triển mẫu thử lặp (Prototyping & Iterative Engineering):

  • Giai đoạn 1: Nghiên cứu lý thuyết và kiểm thử module rời rạc (Weeks 1-3): Thử nghiệm module SPI RFID, kiểm tra độ nhạy đọc thẻ; cấu hình OpenCV trên môi trường Raspbian OS.
  • Giai đoạn 2: Tích hợp hệ thống phần cứng và thuật toán xác thực (Weeks 4-7): Xây dựng pipeline xử lý tuần tự từ quét thẻ đến mở camera, trích xuất đặc trưng và so khớp vector.
  • Giai đoạn 3: Phát triển Web Dashboard và Cloud Sync (Weeks 8-10): Thiết kế giao diện quản trị, xây dựng backend lắng nghe sự kiện từ Firebase SDK.
  • Giai đoạn 4: Kiểm thử, đánh giá hiệu năng và đóng gói (Weeks 11-12): Thử nghiệm trong các điều kiện môi trường khác nhau, thống kê tỷ lệ nhận diện lỗi, đo đạc độ trễ và hoàn thiện báo cáo kỹ thuật.

Implementation và kết quả

Quy trình Phát triển và Kỹ thuật Cốt lõi

Pipeline xử lý của hệ thống bao gồm 3 phân đoạn chính:

  1. Quét và Xác thực Mã UID Thẻ: Module MFRC522 chạy vòng lặp quét tín hiệu thăm dò liên tục. Khi phát hiện thẻ Mifare trong từ trường ($13.56\text{ MHz}$), dữ liệu thẻ được giải điều chế (Backscatter Modulation) và truyền qua bus SPI về Raspberry Pi. Nếu UID tồn tại trong hệ thống, chuyển sang bước 2; nếu không hợp lệ, tăng biến đếm cảnh báo.
  2. Thu nhận Khung hình và Nhận dạng Khuôn mặt: Khởi động luồng video từ webcam. Khung hình $1920\times1080$ được chuyển đổi sang không gian màu Grayscale và chuẩn hóa histogram. Thuật toán Haar Cascade / HOG phát hiện vị trí khuôn mặt (Bounding Box). Tiếp theo, vùng khuôn mặt (ROI) được trích xuất vector đặc trưng $128$ chiều (Face Embeddings).
  3. So khớp Định danh và Đẩy Dữ liệu: Vector đặc trưng vừa trích xuất được so sánh với vector mẫu đã được lưu trong cơ sở dữ liệu của nhân viên tương ứng với UID thẻ (sử dụng khoảng cách Euclidean). Nếu khoảng cách nhỏ hơn ngưỡng threshold định trước ($\text{Threshold} \le 0.6$), hệ thống xác nhận điểm danh thành công và ghi nhận mốc thời gian vào Firebase.

Trích đoạn Mã nguồn Cốt lõi (Python Implementation)

import time
import cv2
import numpy as np
import RPi.GPIO as GPIO
from mfrc522 import SimpleMFRC522
import face_recognition
import firebase_admin
from firebase_admin import credentials, db

# Khởi tạo kết nối Firebase
cred = credentials.Certificate('/home/pi/attendance_system/firebase_key.json')
firebase_admin.initialize_app(cred, {
    'databaseURL': 'https://attendance-system-iot-default-rtdb.firebaseio.com/'
})

reader = SimpleMFRC522()
CAMERA_INDEX = 0
CONFIDENCE_THRESHOLD = 0.55

def fetch_employee_data(card_uid):
    """Truy vấn thông tin nhân viên theo UID thẻ từ Firebase"""
    ref = db.reference(f'Employees')
    snapshot = ref.order_by_child('card_uid').equal_to(str(card_uid)).get()
    if snapshot:
        emp_id = list(snapshot.keys())[0]
        return emp_id, snapshot[emp_id]
    return None, None

def verify_face(known_encoding):
    """Khởi động camera và đối soát vector khuôn mặt"""
    video_capture = cv2.VideoCapture(CAMERA_INDEX)
    video_capture.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
    video_capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)
    
    start_time = time.time()
    is_verified = False
    
    while time.time() - start_time < 7: # Timeout 7 giay cho buoc xac thuc
        ret, frame = video_capture.read()
        if not ret:
            continue
            
        rgb_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
        face_locations = face_recognition.face_locations(rgb_frame, model="hog")
        
        if face_locations:
            face_encodings = face_recognition.face_encodings(rgb_frame, face_locations)
            for face_encoding in face_encodings:
                # Tinh toan khoang cach Euclidean giua 2 vector
                face_distance = face_recognition.face_distance([known_encoding], face_encoding)[0]
                if face_distance < CONFIDENCE_THRESHOLD:
                    is_verified = True
                    break
        if is_verified:
            break
            
    video_capture.release()
    cv2.destroyAllWindows()
    return is_verified

def log_attendance(emp_id, emp_name):
    """Ghi nhan du lieu diem danh len Cloud"""
    current_date = time.strftime('%Y-%m-%d')
    current_time = time.strftime('%H:%M:%S')
    
    # Kiem tra quy dinh di tre (sau 08:00:00)
    status = "ON_TIME" if current_time <= "08:00:00" else "LATE"
    
    log_ref = db.reference(f'AttendanceLogs/{current_date}').push()
    log_ref.set({
        'employee_id': emp_id,
        'full_name': emp_name,
        'timestamp': current_time,
        'status': status,
        'method': '2FA_RFID_FACE'
    })
    print(f"[SUCCESS] Diem danh thanh cong: {emp_name} | Luc: {current_time} | Trang thai: {status}")

def run_system_loop():
    """Vong lap xu ly chinh cua he thong tai Edge"""
    print("[SYSTEM READY] Cho quet the RFID...")
    try:
        while True:
            # 1. Doc the RFID
            card_id, text = reader.read()
            print(f"\n[EVENT] Phat hien the UID: {card_id}")
            
            emp_id, emp_data = fetch_employee_data(card_id)
            if not emp_data:
                print("[WARNING] THE KHONG HOP LE (CARD INVALID)")
                continue
                
            # Load vector dac trung khuon mat da dang ky
            known_encoding = np.load(emp_data['face_encoding_path'])
            
            # 2. Xac thuc khuon mat qua camera
            print("[INFO] Vui long nhin vao camera de xac thuc khuon mat...")
            if verify_face(known_encoding):
                log_attendance(emp_id, emp_data['full_name'])
            else:
                print("[ALERT] KHUON MAT KHONG KHOP (FACE INVALID) - Canh bao truy cap!")
                db.reference('SecurityAlerts').push().set({
                    'timestamp': time.strftime('%Y-%m-%dT%H:%M:%SZ'),
                    'type': 'FACE_MISMATCH',
                    'card_uid': str(card_id)
                })
            time.sleep(2)
    except KeyboardInterrupt:
        GPIO.cleanup()

if __name__ == '__main__':
    run_system_loop()

Thử nghiệm và Đánh giá Thực nghiệm

Ma trận Thử nghiệm theo Điều kiện Môi trường

Kịch bản Thử nghiệm Số lượt Test Số lượt Thành công Tỷ lệ Chính xác (%) Thời gian Xử lý TB (s) Ghi chú Đánh giá
Ánh sáng tiêu chuẩn (300 - 500 Lux), Cự ly $< 30 \text{cm}$ 100 95 $95.0%$ 5.2 s Nhận diện mượt mà, không gặp lỗi giả mạo
Ánh sáng yếu ($< 50 \text{ Lux}$) 50 38 $76.0%$ 6.8 s Nhiễu hạt hình ảnh làm tăng khoảng cách vector
Ánh sáng chói / Ngược sáng ($> 1000 \text{ Lux}$) 50 36 $72.0%$ 6.9 s Cháy sáng vùng T-zone trên khuôn mặt
Khoảng cách xa ($0.8\text{m} - 1.0\text{m}$) 50 41 $82.0%$ 6.1 s Độ phân giải ROI giảm, phụ thuộc góc nhìn
Thẻ hợp lệ nhưng khuôn mặt của người khác 50 0 (Bị chặn 50) $100%$ Phát hiện vi phạm 5.0 s Hệ thống phát hiện bất khớp và kích hoạt Alert
Tổng thể điều kiện vận hành chuẩn 250 225 $90.0%$ $5.8 \text{ s}$ Đạt mục tiêu thiết kế đề ra

Kết quả Đạt được trên Giao diện Quản trị Web

  1. Bảng Điều khiển Tổng quan (Overview Dashboard): Hiển thị trực quan 4 thông số trọng tâm bao gồm: Tổng số nhân viên trong danh sách, Số lượng nhân viên đã check-in trong ngày, Tỷ lệ check-in đúng giờ và Số lượng đi trễ.
  2. Bảng Điểm danh Thời gian thực (Daily Attendance Table): Cập nhật từng hàng theo tên, mã thẻ, thời gian vào ca chi tiết và thẻ thông báo trạng thái. Tự động kích hoạt tác vụ Cron reset bảng về "Chưa điểm danh" vào đúng $00:00$ mỗi ngày.
  3. Bảng Cảnh báo Vi phạm Bảo mật (Security Alert Log): Phân loại rõ ràng 2 dạng sự cố: "Truy cập trái phép RFID" (quẹt thẻ lạ) và "Truy cập trái phép nhận diện khuôn mặt" (mặt không khớp với thẻ), hiển thị thời điểm chính xác kèm biểu tượng cảnh báo màu đỏ.
  4. Mô-đun Checking & Lịch sử Hoạt động (Recent Log): Cho phép người quản trị kiểm tra lại toàn bộ dấu vết điểm danh của một nhân sự cụ thể, đồng thời hỗ trợ thực hiện điểm danh ghi đè bằng tay khi có sự cố bất khả kháng.

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

Các Đổi mới Kỹ thuật Nổi bật

  1. Kiến trúc Xác thực Phối hợp Đa tầng (Edge Biometric 2FA): Khác với các hệ thống Face ID truyền thống phải đối mặt với bài toán tìm kiếm 1-N ($1:N \text{ matching}$) trên toàn bộ tập dữ liệu lớn gây chậm trễ máy nhúng, đồ án áp dụng cơ chế xác thực $1:1$. Thẻ RFID đóng vai trò cung cấp chỉ mục ID duy nhất để hệ thống chỉ cần so sánh vector khuôn mặt hiện tại với đúng 1 vector mẫu đã đăng ký. Điều này giảm thiểu độ phức tạp tính toán từ $\mathcal{O}(N)$ xuống $\mathcal{O}(1)$, cho phép triển khai mượt mà trên phần cứng hạn chế như Raspberry Pi 4.
  2. Đồng bộ Dữ liệu Bất đồng bộ (Asynchronous Edge-to-Cloud Pipeline): Hệ thống tách biệt luồng xử lý cục bộ và luồng truyền thông Firebase, đảm bảo quá trình đọc thẻ và chụp ảnh không bị gián đoạn hay "treo" khi đường truyền Internet suy giảm băng thông.
+------------------------------------------------------------------------------------+
|               SO SÁNH ĐỘ PHỨC TẠP TÍNH TOÁN CỦA THUẬT TOÁN                         |
|                                                                                    |
|  Nhận diện 1:N truyền thống:  [Khung hình] ---> [So khớp N mẫu] ===> O(N) (Chậm)   |
|                                                                                    |
|  Đề tài 2FA (RFID + Face ID): [Thẻ RFID]  ---> [Truy xuất 1 mẫu]                   |
|                                [Khung hình] ---> [So khớp 1:1]   ===> O(1) (Nhanh)  |
+------------------------------------------------------------------------------------+

So sánh với Các Giải pháp Hiện có trên Thị trường

Đặc tính Kỹ thuật Máy Chấm công ZKTeco K20 / F18 Hệ thống Cloud Face ID SaaS (Vision AI) Hệ thống Nhúng Đề tài HCMUTE
Cơ chế xác thực Đơn lẻ (Vân tay hoặc Thẻ RFID) Đơn lẻ (Khuôn mặt 1:N trên Server) Xác thực kép (RFID 13.56MHz + Khuôn mặt 1:1)
Xử lý tại biên (Edge Computing) Có (Chip DSP chuyên dụng cố định) Không (Phụ thuộc hoàn toàn đường truyền Cloud) Có (Xử lý trực tiếp trên CPU Raspberry Pi 4)
Chi phí thiết bị Cố định, khó nâng cấp module Chi phí thuê bao hàng tháng rất cao Chi phí linh kiện hợp lý, hoàn toàn làm chủ công nghệ
Khả năng tùy biến giao diện Rất thấp (Phần mềm đóng gói cố định) Phụ thuộc vào nhà cung cấp dịch vụ Rất cao (Tùy biến Web UI, tích hợp API linh hoạt)

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

Kịch bản Ứng dụng Thực tiễn

  • Phòng Thực hành - Giảng đường Đại học Thông minh: Sinh viên sử dụng thẻ sinh viên tích hợp RFID quét qua cổng vào lớp, camera xác nhận đúng diện mạo, loại trừ $100%$ tình trạng đi học hộ hoặc điểm danh hộ trong các học phần điểm danh nghiêm ngặt.
  • Doanh nghiệp Sản xuất & Nhà xưởng (SMEs): Đảm bảo công nhân có mặt đúng ca làm việc tại các khu vực hạn chế tiếp xúc, hỗ trợ giám sát kỷ luật lao động với báo cáo tự động chuyển về phòng Nhân sự (HR).
  • Phòng Thí nghiệm R&D / Trung tâm Dữ liệu: Kiểm soát cửa ra vào yêu cầu mức độ bảo mật cao, phát hiện và lưu lại hình ảnh ngay lập tức khi phát hiện cố tình dùng thẻ của nhân viên quản lý để xâm nhập trái phép.

Hướng dẫn Triển khai và Cài đặt Phần mềm (Deployment Guide)

# 1. Cập nhật hệ thống và cài đặt các gói phụ thuộc trên Raspberry Pi OS (Debian 11)
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y python3-dev python3-pip libatlas-base-dev libopenblas-dev
sudo apt-get install -y build-essential cmake pkg-config libjpeg-dev libtiff5-dev libpng-dev
sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

# 2. Bật giao tiếp SPI trên bo mạch Raspberry Pi
sudo raspi-config nonint do_spi 0

# 3. Cài đặt các thư viện Python chuyên dụng
pip3 install spidev mfrc522
pip3 install opencv-python==4.8.0.76
pip3 install dlib face-recognition==1.3.0
pip3 install firebase-admin==6.2.0 numpy==1.24.3

# 4. Chạy chương trình dịch vụ điểm danh nền
python3 /home/pi/attendance_system/main.py

Phân tích Hiệu quả Đầu tư (Cost-Benefit & ROI Analysis)

  • Dự toán Chi phí Phần cứng (BOM):
    • Bo mạch Raspberry Pi 4 Model B (4GB RAM): $\approx 1.800.000 \text{ VNĐ}$
    • Module RFID RC522 kèm thẻ Mifare: $\approx 50.000 \text{ VNĐ}$
    • Webcam Rapoo XW180 Full HD 1080p: $\approx 450.000 \text{ VNĐ}$
    • Nguồn chuẩn 5.1V/3A Type-C, thẻ nhớ SanDisk 32GB, vỏ case & quạt: $\approx 400.000 \text{ VNĐ}$
    • Tổng chi phí phần cứng: $\approx \mathbf{2.700.000 \text{ VNĐ}}$
  • Hiệu quả kinh tế (ROI): So với việc mua sắm hệ thống chấm công sinh trắc học thương mại kèm phí bản quyền phần mềm thường niên ($> 10.000.000 \text{ VNĐ}$), giải pháp này tiết kiệm hơn $70%$ chi phí ban đầu, không tốn phí bản quyền định kỳ và có thể hoàn vốn đầu tư chỉ sau $3 - 6 \text{ tháng}$ vận hành thông qua việc cắt giảm thời gian kiểm kê nhân sự.

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

Những Hạn chế Kỹ thuật Tồn đọng

  • Độ nhạy với ánh sáng môi trường: Thuật toán nhận dạng 2D RGB dựa trên đặc trưng hình học của OpenCV và FaceNet dễ bị suy giảm độ tin cậy khi hoạt động trong môi trường ánh sáng quá tối ($< 50 \text{ Lux}$) hoặc ánh sáng ngược chói ($> 1000 \text{ Lux}$).
  • Thời gian đáp ứng của mô hình: Tổng thời gian xác thực $5 - 7 \text{ giây}$ vẫn còn độ trễ nhất định do năng lực tính toán dấu phẩy động của CPU ARM trên Raspberry Pi 4 khi xử lý các phép toán tích chập ma trận lớn.
  • Khoảng cách làm việc tối ưu hẹp: Camera chỉ nhận diện chính xác nhất khi nhân viên đứng đối diện trực tiếp ở cự ly $\le 30 \text{ cm}$.

Hướng Nghiên cứu và Nâng cấp Tương lai

  1. Tích hợp Cảm biến Chiều sâu / Hồng ngoại (IR/Depth Camera): Sử dụng camera hồng ngoại (RGB-D) để phát hiện thực thể sống (Liveness Detection), ngăn chặn triệt để hành vi dùng ảnh in kỹ thuật số hoặc video phát lại từ điện thoại để đánh lừa hệ thống.
  2. Tăng tốc Phần cứng bằng Bộ tăng tốc AI Chuyên dụng (AI Accelerator): Tích hợp Google Coral USB Accelerator (Edge TPU) hoặc Intel Neural Compute Stick 2 để tăng tốc độ suy luận mô hình MobileNetV2-SSD / MobileFaceNet, giảm độ trễ xác thực xuống $< 1.5 \text{ giây/người}$.
  3. Nâng cấp Giao thức Mạng và Bảo mật Truyền thông: Áp dụng giao thức mã hóa đầu cuối TLS/SSL với MQTT Broker bảo mật thay vì kết nối REST trực tiếp, tăng cường an toàn dữ liệu định danh người dùng.

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

Bảng Phân nhóm Lợi ích Định lượng

Nhóm Đối tượng Lợi ích Mang lại Cụ thể Giá trị Định lượng
Sinh viên & Học viên Trải nghiệm điểm danh hiện đại, không chạm, nhanh gọn, minh bạch lịch sử hiện diện. Giảm $90%$ thời gian chờ đợi điểm danh đầu giờ học.
Giảng viên & Nhà trường Tự động hóa hoàn toàn khâu quản lý sĩ số, trích xuất báo cáo chuyên cần tức thì. Tiết kiệm 10 - 15 phút mỗi ca học, loại bỏ $100%$ việc điểm danh hộ.
Doanh nghiệp & Quản lý HR Dữ liệu chấm công minh bạch thời gian thực, chuẩn xác bảng tính lương, phát hiện gian lận. Tiết kiệm $70%$ chi phí mua sắm thiết bị, loại bỏ tranh chấp giờ công.
Kỹ sư & Lập trình viên IoT Tài liệu tham khảo hoàn chỉnh về giao tiếp SPI trên Raspberry Pi và tích hợp Vision AI. Cung cấp mã nguồn và cấu trúc chuẩn cho các dự án Edge AI kế thừa.

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

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 máy tính nhúng từ Raspberry Pi 4 Model B (khuyến nghị bản RAM 4GB hoặc 8GB để đảm bảo tải cho OpenCV), thẻ nhớ microSD Class 10 tối thiểu 16GB chạy Raspberry Pi OS 64-bit, module RFID RC522 tương thích thẻ Mifare 13.56MHz, webcam chuẩn UVC hỗ trợ độ phân giải từ 720p trở lên và nguồn cung cấp ổn định $5\text{V}/3\text{A}$.

2. Hệ thống có khả năng mở rộng cho bao nhiêu nhân viên?

Với cơ chế xác thực $1:1$ (định danh trước bằng UID thẻ), dung lượng lưu trữ vector đặc trưng trên thẻ nhớ máy nhúng và Firebase có thể mở rộng lên tới hàng ngàn nhân viên mà không làm suy giảm thời gian so khớp vector khuôn mặt (thời gian tính toán khoảng cách vector đơn lẻ chỉ mất $\approx 0.05 \text{ giây}$).

3. Hệ thống có thể tích hợp với phần mềm Quản lý Nhân sự (HRM) hiện có không?

Có. Nhờ dữ liệu điểm danh được cấu trúc chuẩn hóa theo định dạng JSON trên Firebase Realtime Database, các hệ thống ERP/HRM nội bộ (như SAP, Odoo hay phần mềm kế toán) có thể dễ dàng truy xuất thông tin chấm công thông qua Firebase REST API hoặc Webhook tự động.

4. Chi phí bảo trì và độ bền phần cứng như thế nào?

Module RC522 và Webcam quang học là các thiết bị thể rắn, không có các bộ phận chuyển động cơ học nên tuổi thọ vận hành (MTBF) rất cao ($> 3 \text{ năm}$). Chi phí bảo trì chủ yếu là vệ sinh ống kính camera định kỳ và cập nhật bản vá bảo mật hệ điều hành Linux.

5. Dự toán ngân sách và lộ trình hoàn vốn (ROI) ra sao?

Tổng chi phí chế tạo mẫu thử nghiệm hoàn chỉnh là khoảng $2.700.000 \text{ VNĐ}$. Đối với một cơ sở giáo dục hoặc doanh nghiệp quy mô 50 - 100 nhân viên, việc ngăn chặn tổn thất giờ công do điểm danh hộ và tiết kiệm thời gian vận hành thủ công sẽ giúp hệ thống đạt điểm hòa vốn ROI trong vòng 3 đến 6 tháng.


Kết luận

Đồ án "Hệ Thống Điểm Danh Tự Động Bằng Nhận Diện Khuôn Mặt và RFID" của sinh viên Khoa Điện - Điện tử, Trường Đại học Sư phạm Kỹ thuật TP.HCM đã giải quyết thành công bài toán tự động hóa điểm danh thông qua việc kết hợp khéo léo giữa công nghệ nhận dạng vô tuyến và thị giác máy tính tại biên. Hệ thống đã chứng minh tính thực tiễn cao với tỷ lệ nhận diện đạt $90%$, thời gian phản hồi nhanh chóng và khả năng giám sát dữ liệu trực quan thời gian thực qua giao diện Web Dashboard.

Giải pháp không chỉ cung cấp một công cụ kiểm soát nhân sự minh bạch, an toàn, triệt tiêu hoàn toàn gian lận mà còn là minh chứng rõ nét cho xu hướng ứng dụng Trí tuệ Nhân tạo tại biên (Edge AI) và Internet vạn vật (IoT) vào chuyển đổi số tổ chức. Với khả năng mở rộng linh hoạt và chi phí triển khai tối ưu, hệ thống hoàn toàn sẵn sàng để chuyển giao và ứng dụng thực tế tại các trường học, nhà máy và doanh nghiệp hiện đại.