Giới thiệu dự án

Trong kỷ nguyên chuyển đổi số và tự động hóa giáo dục, việc quản trị lớp học truyền thống đang đối mặt với nhiều bất cập lớn. Theo các khảo sát quản lý đào tạo, phương pháp điểm danh thủ công (gọi tên, ký tên vào danh sách) hoặc các thiết bị chấm công thế hệ cũ (thẻ từ RFID, dấu vân tay) làm tiêu tốn từ 10% đến 15% tổng thời lượng của mỗi tiết học. Nguy hiểm hơn, các giải pháp này mang tính chất điểm danh thụ động tại một thời điểm duy nhất (điểm danh đầu giờ), tạo ra lỗ hổng lớn cho các hành vi gian lận như điểm danh hộ hoặc sinh viên trốn tiết giữa giờ (truant pupils).

Đồ án tốt nghiệp chuyên ngành Công nghệ Kỹ thuật Điều khiển và Tự động hóa tại Trường Đại học Sư phạm Kỹ thuật TP.HCM (HCMUTE) do sinh viên Bùi Minh Trí thực hiện, dưới sự hướng dẫn của PGS. TS. Lê Mỹ Hà, đã đề xuất và hiện thực hóa giải pháp: "Hệ Thống Giám Sát và Điểm Danh Sinh Viên Sử Dụng Xử Lý Ảnh và Trí Tuệ Nhân Tạo" (Design and implementation of attendance and student monitoring system using image processing and artificial intelligence).

+-----------------------------------------------------------------------------------+
|                            PIPELINE HỆ THỐNG GIÁM SÁT                             |
|                                                                                   |
|  [ Dual Webcams ] ---> [ Jetson Nano (Edge AI) ] ---> [ Firebase Realtime DB ]    |
|   (Logitech C270)        - YOLOv4-tiny (TensorRT)       - Quản lý Check-in/Out    |
|                          - SORT Tracker (Kalman Filter) - Tính Cumulative Time    |
|                          - 68 Landmarks / FaceNet       - Auto Alert Email        |
|                          - KNN Classifier (K=24)        - Web/GUI Dashboard       |
+-----------------------------------------------------------------------------------+

Mục tiêu dự án

  1. Nghiên cứu & Thiết kế giải pháp nhúng biên (Edge AI): Xây dựng hệ thống nhận diện khuôn mặt tự động chạy trực tiếp (on-device) trên phần cứng chi phí thấp NVIDIA Jetson Nano.
  2. Theo dõi đa đối tượng thời gian thực (Multi-Object Tracking): Kết hợp định vị khuôn mặt, phát hiện khẩu trang và thuật toán bám vết nhằm duy trì ID sinh viên qua từng khung hình.
  3. Giám sát thời gian thực tế (Proactive Cumulative Monitoring): Tự động tính toán tổng thời gian hiện diện thực tế (accumulated presence time) của sinh viên trong suốt buổi học.
  4. Tích hợp hệ thống phân tán & Cảnh báo: Đồng bộ dữ liệu lên Firebase Realtime Database, phát cảnh báo tại chỗ bằng âm thanh/màn hình LCD 7 inch và tự động gửi Email cảnh báo đến sinh viên vi phạm chuyên cần.

Phạm vi và Giới hạn kỹ thuật

  • Quy mô thử nghiệm: Phòng học mô phỏng với tập dữ liệu kiểm thử gồm 10 sinh viên.
  • Môi trường hoạt động: Ánh sáng lớp học tiêu chuẩn, camera đặt tại vị trí cố định để giảm thiểu hiện tượng ngược sáng (backlit).
  • Ràng buộc nhận diện: Yêu cầu sinh viên không che khuất các đặc trưng khuôn mặt trọng yếu (không đeo kính râm hoặc kéo khẩu trang che kín mắt); giả định sinh viên di chuyển với vận tốc trung bình qua vùng quan sát.

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

Phân tích hiện trạng và So sánh công nghệ

Tiêu chí Điểm danh Thẻ từ / Vân tay Nhận diện Khuôn mặt trên Cloud/PC Giải pháp Edge AI trên Jetson Nano (Đồ án)
Tính chủ động Thụ động (yêu cầu tiếp xúc vật lý) Chủ động qua camera Chủ động hoàn toàn không chạm
Chống gian lận Rất thấp (dễ quẹt thẻ hộ, trốn tiết) Cao Rất cao (giám sát thời gian liên tục)
Tốc độ xử lý Chậm khi số lượng sinh viên đông Nhanh nhưng phụ thuộc đường truyền Real-time tại biên ($\ge 8$ FPS)
Chi phí triển khai Trung bình Rất cao (yêu cầu PC đồ họa/Server) Thấp (< 4.5 triệu VNĐ/lớp)
Điện năng tiêu thụ Thấp (5W - 10W) Cao (250W - 500W) Tối ưu (< 5W)

Phân loại yêu cầu theo mô hình MoSCoW

  • Must Have: Phát hiện khuôn mặt (Face Detection), bám vết đối tượng (Object Tracking), phân loại định danh (Face Identification), ghi nhận log Check-in/Check-out, đẩy dữ liệu lên Firebase.
  • Should Have: Phát hiện khẩu trang (Face Mask Detection), phát âm thanh cảnh báo qua loa Bluetooth, gửi Email thông báo tự động cho sinh viên vắng hoặc thiếu giờ.
  • Could Have: Giao diện Dashboard quản trị cục bộ trên màn hình cảm ứng LCD 7 inch, quản lý tài khoản phân quyền cho giảng viên.
  • Won't Have (Giai đoạn này): Nhận diện khuôn mặt 3D chống giả mạo (Anti-spoofing liveness detection), triển khai nhận diện trên đám đông lớn (> 50 người cùng lúc).

Thiết kế kiến trúc phần cứng và phần mềm

                                  KIẾN TRÚC HỆ THỐNG
                                  
  +----------------------+     +----------------------+     +----------------------+
  |   INPUT HARDWARE     |     |  PROCESSING ENGINE   |     |   OUTPUT & STORAGE   |
  |                      |     |    (NVIDIA JETSON)   |     |                      |
  | 2x Logitech C270     |---->| JetPack 4.x BSP      |---->| LCD 7-inch HDMI      |
  | (HD 720p @ 30 FPS)   |     | CUDA 10.x / cuDNN    |     | Loa Bluetooth Alert  |
  | USB Mouse / Keyboard |     | TensorRT FP16 Engine |     | Firebase Realtime DB |
  | Wifi Module 8265AC   |     | Multi-threaded App   |     | SMTP Email Server    |
  +----------------------+     +----------------------+     +----------------------+

1. Nền tảng phần cứng (Hardware Platform)

  • Bo mạch điều khiển trung tâm: NVIDIA Jetson Nano Developer Kit (CPU Quad-core ARM A57 @ 1.43 GHz, GPU 128-core Maxwell kiến trúc 472 GFLOPS, RAM 4GB 64-bit LPDDR4 bus 25.6 GB/s, công suất tiêu thụ tối đa 5W–10W).
  • Cảm biến thị giác: 02 Camera Logitech C270 (Độ phân giải HD 720p/30fps, góc nhìn chéo 55 độ, tích hợp công nghệ cân bằng sáng tự động RightLight 2).
  • Màn hình giao tiếp: 7-inch HDMI LCD hiển thị giao diện đồ họa GUI và luồng video giám sát trực tiếp.
  • Giao tiếp mạng: Intel Dual Band Wireless-AC 8265 (khe cắm M.2 Key E) đảm bảo kết nối mạng không dây băng thông cao.

2. Cấu trúc dữ liệu trên Firebase Realtime Database

Cơ sở dữ liệu NoSQL được tổ chức thành các nhánh JSON chuẩn hóa để tối ưu tốc độ đọc/ghi thời gian thực:

{
  "students": {
    "18151041": {
      "name": "Bui Minh Tri",
      "class": "18151CLA2",
      "email": "18151041@student.hcmute.edu.vn",
      "registered_date": "2022-08-01"
    }
  },
  "attendance_sessions": {
    "2022-08-17_ROOM_A201": {
      "18151041": {
        "first_check_in": "07:30:15",
        "last_check_out": "11:28:40",
        "accumulated_minutes": 225,
        "status": "PRESENT",
        "warning_sent": false
      }
    }
  }
}

3. Mô hình xử lý đa luồng (Multi-Threading Architecture)

Nhằm triệt tiêu hiện tượng thắt cổ chai (bottleneck) khi vừa xử lý AI vừa tương tác cơ sở dữ liệu và GUI, CPU ARM được phân chia thành 3 luồng hoạt động song song:

  • Thread 1 (I/O & Display): Đọc luồng video từ 2 Camera Logitech C270 qua OpenCV VideoCapture và render khung hình lên giao diện GUI.
  • Thread 2 (Main Inference Pipeline): Chạy mạng nơ-ron phát hiện khuôn mặt (YOLOv4-tiny qua TensorRT Engine), bộ lọc bám vết SORT Tracker, trích xuất 68 điểm đặc trưng (Landmarks) và phân loại danh tính qua FaceNet + KNN.
  • Thread 3 (Data Synchronization & Network): Định kỳ kiểm tra hàng đợi sự kiện (Event Queue), cập nhật dữ liệu Check-in/Check-out lên Firebase Realtime Database và kích hoạt SMTP Service gửi Email cảnh báo.

Implementation và kết quả

Quy trình phát triển thuật toán

1. Mạng phát hiện đối tượng YOLOv4-tiny

Hệ thống sử dụng phiên bản rút gọn YOLOv4-tiny với kích thước trọng số chỉ ~16 MB, giảm từ 137 lớp tích chập của YOLOv4 xuống còn 29 lớp, gồm 2 đầu ra dự đoán (detection heads) tại các tỷ lệ đặc trưng khác nhau ($13 \times 13$ và $26 \times 26$).

Tọa độ hộp bao (Bounding Box) được ước lượng từ các Anchor Boxes ($p_w, p_h$) và tọa độ ô lưới ($c_x, c_y$) theo công thức: $$b_x = \sigma(t_x) + c_x$$ $$b_y = \sigma(t_y) + c_y$$ $$b_w = p_w e^{t_w}$$ $$b_h = p_h e^{t_h}$$

Hàm mất mát CIoU (Complete Intersection over Union) được áp dụng để tối ưu hóa đồng thời khoảng cách tâm, độ chồng phủ và tỷ lệ khung hình: $$\mathcal{L}_{CIoU} = 1 - \text{IoU} + \frac{\rho^2(b, b^{gt})}{c^2} + \alpha v$$ Trong đó: $$v = \frac{4}{\pi^2} \left( \arctan \frac{w^{gt}}{h^{gt}} - \arctan \frac{w}{h} \right)^2, \quad \alpha = \frac{v}{(1 - \text{IoU}) + v}$$

import cv2
import numpy as np
import pycuda.driver as cuda
import pycuda.autoinit

class TensorRTYoloTiny:
    def __init__(self, engine_path, input_shape=(416, 416)):
        """Khởi tạo engine TensorRT FP16 cho YOLOv4-tiny trên Jetson Nano"""
        self.input_shape = input_shape
        self.confidence_thresh = 0.25
        self.nms_thresh = 0.4
        # Load engine và cấp phát bộ nhớ Page-locked Host & Device GPU
        self.engine = self._load_engine(engine_path)
        self.context = self.engine.create_execution_context()
        self.inputs, self.outputs, self.bindings, self.stream = self._allocate_buffers()

    def _load_engine(self, path):
        import tensorrt as trt
        runtime = trt.Runtime(trt.Logger(trt.Logger.WARNING))
        with open(path, "rb") as f:
            return runtime.deserialize_cuda_engine(f.read())

    def _allocate_buffers(self):
        inputs, outputs, bindings = [], [], []
        stream = cuda.Stream()
        for binding in self.engine:
            size = trt.volume(self.engine.get_binding_shape(binding))
            dtype = trt.nptype(self.engine.get_binding_dtype(binding))
            host_mem = cuda.pagelocked_empty(size, dtype)
            dev_mem = cuda.mem_alloc(host_mem.nbytes)
            bindings.append(int(dev_mem))
            if self.engine.binding_is_input(binding):
                inputs.append({'host': host_mem, 'dev': dev_mem})
            else:
                outputs.append({'host': host_mem, 'dev': dev_mem})
        return inputs, outputs, bindings, stream

    def infer(self, image):
        # Preprocessing: Resize & Normalization
        resized = cv2.resize(image, self.input_shape)
        rgb_img = cv2.cvtColor(resized, cv2.COLOR_BGR2RGB).astype(np.float32) / 255.0
        nchw_img = np.transpose(rgb_img, (2, 0, 1))
        np.copyto(self.inputs[0]['host'], nchw_img.ravel())

        # Truyền dữ liệu lên GPU -> Thực thi Inference -> Trả kết quả về RAM
        cuda.memcpy_htod_async(self.inputs[0]['dev'], self.inputs[0]['host'], self.stream)
        self.context.execute_async_v2(bindings=self.bindings, stream_handle=self.stream.handle)
        cuda.memcpy_dtoh_async(self.outputs[0]['host'], self.outputs[0]['dev'], self.stream)
        self.stream.synchronize()
        return self.outputs[0]['host']

2. Thuật toán Bám vết SORT (Simple Online and Realtime Tracking)

Để giải quyết bài toán duy trì ID sinh viên qua các khung hình mà không phải chạy nhận diện liên tục ở mọi frame, SORT sử dụng:

  • Bộ lọc Kalman (Kalman Filter): Dự đoán trạng thái hình học của hộp bao dựa trên vận tốc tuyến tính 8 chiều: $$\mathbf{x} = [u, v, s, r, \dot{u}, \dot{v}, \dot{s}, \dot{r}]^T$$ (với $u, v$ là tọa độ tâm, $s$ là diện tích scale, $r$ là tỷ lệ khung hình).
  • Thuật toán Hungary (Hungarian Algorithm): Ghép cặp tối ưu giữa các bounding box phát hiện mới từ YOLOv4-tiny với các đối tượng dự đoán từ bộ lọc Kalman dựa trên ma trận khoảng cách IoU.

3. Nhận diện khuôn mặt (Face Recognition)

  • Trích xuất đặc trưng: Cắt vùng khuôn mặt phát hiện được, căn chỉnh qua 68 điểm mốc (Facial Landmarks Estimation), đưa qua mạng FaceNet được huấn luyện với hàm mất mát bộ ba (Triplet Loss): $$\mathcal{L} = \sum_{i}^{N} \max \left( |f(x_i^a) - f(x_i^p)|_2^2 - |f(x_i^a) - f(x_i^n)|_2^2 + \alpha, 0 \right)$$
  • Phân lớp danh tính: Vector nhúng 128 chiều (128-d embedding) được đưa vào bộ phân loại K-Nearest Neighbours (KNN) với tham số $K=24$ cho độ chính xác cao và triệt tiêu nhiễu phân lớp.

Kết quả đo kiểm và Benchmark

              HIỆU NĂNG TĂNG TỐC INFERENCE TRÊN GPU (TENSORRT VS GỐC)
  +-----------------------+-----------------------------+
  | Mạng gốc (Darknet)    | [###] 12 ms                 |
  | TensorRT (FP16 Engine)| [#] 3.2 ms  (Tăng tốc ~3.7x)|
  +-----------------------+-----------------------------+

1. Đánh giá mô hình phát hiện (Confidence Threshold = 0.25, Average IoU = 0.65)

  • Precision (Độ chính xác): Đạt $94.2%$ trên tập kiểm thử khuôn mặt lớp học.
  • Recall (Độ nhạy): Đạt $91.8%$.
  • F1-Score: Đạt $92.98%$.
  • mAP@0.5: Đạt $93.6%$ cho 2 lớp đối tượng (FaceFace-mask).

2. Đánh giá thời gian thực thi (Execution Latency) trên Jetson Nano 4GB

  • Tốc độ đọc và tiền xử lý khung hình: $\sim 15\text{ ms}$.
  • Thời gian inference phát hiện (YOLOv4-tiny qua TensorRT): $\sim 65\text{ ms}$.
  • Thời gian trích xuất đặc trưng & nhận diện KNN: $\sim 30\text{ ms}$ (chỉ kích hoạt khi phát hiện đối tượng mới).
  • Tốc độ toàn hệ thống: Đạt ổn định từ 8 FPS đến 12 FPS, đáp ứng tiêu chuẩn thời gian thực cho giám sát lớp học cố định.

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

  1. Kiến trúc Pipeline Tối ưu cho Phần cứng Biên: Thay vì chạy trích xuất vector đặc trưng FaceNet nặng nề trên mọi khung hình, hệ thống kết hợp SORT Tracker. FaceNet chỉ được kích hoạt một lần khi một ID mới xuất hiện hoặc tái xác thực sau mỗi chu kỳ $N=30$ frames. Điều này giúp giảm hơn $70%$ khối lượng tính toán của GPU.
  2. Cơ chế Giám sát Chủ động (Proactive Monitoring): Khắc phục hoàn toàn nhược điểm "điểm danh hộ / trốn tiết" của hệ thống chấm công thông thường bằng cách theo dõi thời gian tích lũy liên tục (cumulative time).
  3. Mô hình Edge-to-Cloud Tối giản: Xử lý AI toàn bộ tại biên (Jetson Nano) giúp bảo mật hình ảnh cục bộ, chỉ gửi siêu dữ liệu văn bản (Timestamp, Student ID, Log status) lên Firebase, tiết kiệm tối đa băng thông đường truyền internet của nhà trường.

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

Kịch bản vận hành thực tế

Hệ thống được đóng gói thành tủ thiết bị gắn tại cửa ra vào hoặc phía trên bục giảng phòng học:

  • Bước 1 (Check-in tự động): Sinh viên bước vào lớp, camera ghi nhận, nhận diện khuôn mặt và lưu vết mốc thời gian vào. Hệ thống hiển thị thông tin chào mừng trên màn hình LCD 7 inch.
  • Bước 2 (Giám sát trong lớp): Khi sinh viên ra ngoài lớp học giữa giờ (đi vệ sinh hoặc ra về sớm), camera phát hiện và cập nhật trạng thái tạm dừng tích lũy thời gian.
  • Bước 3 (Tổng kết & Cảnh báo): Cuối buổi học, hệ thống tự động chốt bảng tổng kết. Nếu tổng thời gian có mặt nhỏ hơn ngưỡng quy định (ví dụ $< 80%$ thời lượng buổi học), hệ thống tự động kích hoạt tiến trình gửi Email cảnh báo đến sinh viên và lưu vào học bạ điện tử của giảng viên.

Hướng dẫn cài đặt và Triển khai hệ thống

# 1. Flash JetPack 4.6 (Ubuntu 18.04 LTS, CUDA 10.2, cuDNN 8.2) lên thẻ nhớ SanDisk 64GB Extreme Pro
# 2. Cài đặt các thư viện phụ thuộc
sudo apt-get update && sudo apt-get install -y python3-pip libcanberra-gtk-module
pip3 install pycuda opencv-python firebase-admin scikit-learn

# 3. Tối ưu hóa mô hình sang TensorRT Engine
git clone https://github.com/AlexeyAB/darknet.git
# Chuyển đổi weights sang TensorRT FP16 engine
python3 yolov4_to_tensorrt.py --weights yolov4-tiny-face.weights --output yolov4-tiny-fp16.engine --fp16

# 4. Chạy hệ thống chính
python3 main_attendance_system.py --camera_indices 0 1 --conf_thresh 0.25

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

                LỘ TRÌNH NÂNG CẤP HỆ THỐNG TRONG TƯƠNG LAI
  +-------------------------+     +--------------------------+     +--------------------------+
  |       HIỆN TẠI          |     |      GIAI ĐOẠN 2         |     |       GIAI ĐOẠN 3        |
  |  - Jetson Nano 4GB      |     |  - Nâng cấp Jetson Orin  |     |  - Tích hợp 3D Liveness  |
  |  - Quy mô 10 sinh viên  |---->|  - YOLOv8-nano Engine    |---->|  - RESTful API to Moodle  |
  |  - 1-2 Camera 720p      |     |  - Mở rộng 50+ sinh viên |     |  - PTZ Auto-tracking Cam |
  +-------------------------+     +--------------------------+     +--------------------------+

Hạn chế hiện tại

  • Dataset thử nghiệm còn giới hạn ở quy mô lớp học nhỏ (10 người).
  • Hiện tượng ngược sáng mạnh (backlit) từ cửa sổ làm giảm độ tương phản của khuôn mặt, ảnh hưởng đến độ chính xác trích xuất landmark.
  • Chưa tích hợp module phát hiện mặt giả qua ảnh/video (Liveness Detection).

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

  • Nâng cấp lên bo mạch NVIDIA Jetson Orin Nano (năng lực tính toán 40 TOPS) và cập nhật kiến trúc YOLOv8-nano / YOLOv9.
  • Bổ sung camera cảm biến hồng ngoại (IR Camera) để hỗ trợ điểm danh trong điều kiện ánh sáng yếu và chống giả mạo khuôn mặt 3D.
  • Xây dựng chuẩn kết nối RESTful API và GraphQL để đồng bộ dữ liệu trực tiếp với hệ sinh thái quản lý đào tạo như Canvas, Moodle hoặc Blackboard.

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

  • Sinh viên & Học viên: Trải nghiệm quy trình điểm danh hiện đại, hoàn toàn không chạm, nhận cảnh báo chuyên cần tự động qua email để chủ động điều chỉnh lịch học.
  • Giảng viên & Nhà trường: Tiết kiệm 100% thời gian điểm danh thủ công mỗi buổi dạy, nắm bắt chính xác mức độ chuyên cần thực tế, số hóa dữ liệu quản lý học tập.
  • Kỹ sư nhúng & AI Developers: Cung cấp tài liệu tham khảo chi tiết về việc tối ưu hóa pipeline Computer Vision đa luồng (Multi-threading) và tăng tốc mạng nơ-ron qua TensorRT trên thiết bị phần cứng biên giới hạn tài nguyên.
  • Nhà nghiên cứu khoa học: Cung cấp dữ liệu đo kiểm thực nghiệm so sánh giữa mạng nhận diện gốc và mô hình tối ưu hóa biên, phục vụ các nghiên cứu mở rộng về Edge AI in Smart Campus.

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

1. Yêu cầu cấu hình phần cứng tối thiểu để triển khai hệ thống là gì?

Hệ thống yêu cầu bo mạch NVIDIA Jetson Nano Developer Kit (phiên bản 4GB RAM), nguồn cấp DC 5V/4A qua jack DC barrel để đảm bảo công suất tối đa ở chế độ 10W Power Mode, thẻ nhớ microSD tối thiểu 32GB Class 10/UHS-I, 01 hoặc 02 Camera HD 720p chuẩn UVC (như Logitech C270) và màn hình LCD hiển thị chuẩn HDMI.

2. Giới hạn xử lý đồng thời của hệ thống trên Jetson Nano là bao nhiêu sinh viên?

Với kiến trúc TensorRT FP16 kết hợp SORT Tracking, hệ thống duy trì tốc độ $\ge 8$ FPS ổn định khi có từ 3 đến 5 sinh viên xuất hiện đồng thời trong cùng một khung hình. Nếu số lượng người tăng lên trên 10 người cùng lúc, tốc độ xử lý có thể giảm xuống 4–5 FPS. Do đó, việc nâng cấp lên thế hệ Jetson Orin Nano là giải pháp mở rộng lý tưởng cho giảng đường lớn.

3. Hệ thống xử lý thế nào khi sinh viên đeo khẩu trang?

Mô hình phát hiện được huấn luyện với tập dữ liệu tùy biến gồm 2 lớp: faceface_mask. Khi phát hiện khuôn mặt đeo khẩu trang, hệ thống kích hoạt loa cảnh báo yêu cầu hạ khẩu trang để nhận diện, hoặc sử dụng các đặc trưng vùng mắt/trán nếu cơ sở dữ liệu đã được huấn luyện trích xuất đặc trưng khuôn mặt có khẩu trang.

4. Hệ thống có thể hoạt động ngoại tuyến khi mất kết nối Internet không?

Có. Nhờ thiết kế đa luồng, khi mất kết nối Internet, luồng AI Inference (Thread 2) và luồng I/O (Thread 1) vẫn hoạt động bình thường và ghi log vào bộ nhớ cục bộ SQLite/JSON trên thẻ nhớ. Khi có kết nối mạng trở lại, luồng truyền dữ liệu (Thread 3) sẽ tự động đồng bộ (batch sync) các bản ghi chưa gửi lên Firebase Server.

5. Chi phí chế tạo phần cứng ước tính và thời gian thu hồi vốn (ROI)?

Tổng chi phí linh kiện phần cứng (BOM - Bill of Materials) cho một bộ thiết bị hoàn chỉnh dao động từ 3.500.000 đến 4.500.000 VNĐ. Với một lớp học 40 sinh viên, hệ thống tiết kiệm khoảng 15 phút mỗi buổi học. Đối với một trường đại học quy mô 500 phòng học, giải pháp giúp tiết kiệm hàng chục nghìn giờ giảng dạy mỗi học kỳ, mang lại giá trị hoàn vốn đầu tư vô hình cực kỳ lớn.


Kết luận

Đồ án tốt nghiệp "Hệ Thống Giám Sát và Điểm Danh Sinh Viên Sử Dụng Xử Lý Ảnh và Trí Tuệ Nhân Tạo" của sinh viên Bùi Minh Trí dưới sự hướng dẫn của PGS. TS. Lê Mỹ Hà đã hiện thực hóa thành công một giải pháp công nghệ hoàn chỉnh từ nghiên cứu lý thuyết đến chế tạo thực nghiệm. Bằng việc kết hợp tinh tế giữa kiến trúc mạng nơ-ron hiện đại YOLOv4-tiny, kỹ thuật tăng tốc TensorRT, thuật toán bám vết SORT và nền tảng điện toán biên NVIDIA Jetson Nano, hệ thống đã giải quyết triệt để bài toán điểm danh tự động với độ chính xác cao ($F1\text{-score} \approx 93%$) và chi phí tối ưu. Đây là bước tiến quan trọng đóng góp vào xu hướng xây dựng mô hình Đại học Thông minh (Smart Campus) và chuyển đổi số giáo dục toàn diện.