Bối cảnh và vấn đề nghiên cứu

Khóa luận tốt nghiệp với đề tài "Nghiên cứu, phát triển hệ thống điểm danh cho lớp học thông minh sử dụng công nghệ Bluetooth năng lượng thấp và nhận diện gương mặt" được thực hiện bởi sinh viên Vũ Quốc An và Nguyễn Phúc Bảo, dưới sự hướng dẫn của PGS. Lê Trung Quân và ThS. Nguyễn Khánh Thuật tại Khoa Mạng máy tính và Truyền thông, Trường Đại học Công nghệ Thông tin – Đại học Quốc gia Thành phố Hồ Chí Minh (năm 2024).

Trong giáo dục đại học, tính chuyên cần của sinh viên là cơ sở để tiếp thu kiến thức và giúp giảng viên đánh giá kết quả học tập. Tuy nhiên, bốn hình thức điểm danh truyền thống đang áp dụng phổ biến gồm:

  1. Gọi tên và hồi đáp: Tốn một phần thời lượng đáng kể của buổi học, không kiểm soát được trường hợp sinh viên rời lớp ngay sau khi phản hồi.
  2. Ký tên vào danh sách: Tiêu tốn thời gian chuyển danh sách, dễ xuất hiện tình trạng ký thay cho sinh viên vắng mặt.
  3. Điền thông tin trực tuyến: Khó kiểm soát việc chia sẻ liên kết điểm danh cho người không có mặt trong phòng học.
  4. Quét thẻ RFID (Radio Frequency Identification): Sinh viên có thể nhờ người khác mang thẻ quẹt hộ và chỉ ghi nhận sự hiện diện tại một thời điểm duy nhất.

Trước các bất cập trên, nhóm tác giả đề xuất xây dựng hệ thống điểm danh lớp học thông minh đáp ứng ba tiêu chí: hạn chế thao tác thủ công, bảo đảm tính minh bạch và đánh giá sự có mặt dựa trên toàn bộ thời lượng buổi học.

Mục tiêu nghiên cứu được xác định theo 5 nhiệm vụ cụ thể:

  1. Thiết lập và cấu hình các thiết bị IoT trong phòng học.
  2. Chuẩn bị dataset phù hợp và huấn luyện mô hình nhận diện khuôn mặt hoạt động tốt trong môi trường triển khai.
  3. Triển khai và cấu hình nền tảng Apache Kafka phục vụ xử lý luồng dữ liệu lớn và phân tán.
  4. Đề xuất phương pháp tính toán để đánh giá trạng thái hiện diện của sinh viên trong lớp dựa trên dữ liệu thu thập.
  5. Xây dựng ứng dụng web cho phép giảng viên quản lý, lập lịch các phiên điểm danh và hỗ trợ tra cứu kết quả.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Máy tính nhúng Raspberry Pi 4 Model B, NVIDIA Jetson Nano; module camera và trạm thu BLE (Bluetooth Low Energy); tập dữ liệu công cộng FDDB (Face Detection Dataset and Benchmark) cùng tập dữ liệu tự thu thập; các mô hình YOLO, FaceNet, SVM; nền tảng truyền thông Apache Kafka và MQTT.
  • Phạm vi nghiên cứu: Thử nghiệm thực tế tại phòng Lab E3.1 thuộc Trường Đại học Công nghệ Thông tin. Hệ thống tập trung vào việc giám sát liên tục trạng thái hiện diện của sinh viên trong suốt buổi học thông qua hai luồng dữ liệu (khuôn mặt và sóng Bluetooth từ điện thoại cá nhân), sau đó tổng hợp kết quả lên cơ sở dữ liệu để tra cứu qua giao diện phần mềm.

Cơ sở lý thuyết và phương pháp

Khóa luận xây dựng trên các nền tảng lý thuyết và công nghệ chuyên ngành thuộc lĩnh vực Thị giác máy tính (Computer Vision), Mạng không dây và Hệ thống phân tán:

  • Quy trình nhận diện gương mặt: Gồm 3 giai đoạn: Phát hiện khuôn mặt (Face Detection), Trích xuất đặc trưng (Feature Extraction) và Phân loại (Classification).
  • Mô hình phát hiện đối tượng đơn giai đoạn (Single-shot Detection): Sử dụng thuật toán YOLO (phiên bản YOLOv5 phát triển bởi Ultralytics trên PyTorch, đồng thời so sánh với YOLOv8). Khác với các mô hình hai giai đoạn như R-CNN hoặc Faster R-CNN vốn có chi phí tính toán cao, YOLOv5 chia ảnh thành lưới ô vuông và dự đoán trực tiếp tọa độ hộp giới hạn (bounding box) cùng độ tin cậy trong một lần duyệt, cho phép xử lý thời gian thực trên phần cứng nhúng. Các chỉ số đánh giá gồm IoU (Intersection over Union), Precision, Recall, AP (Average Precision) và mAP (Mean Average Precision).
  • Mô hình trích xuất đặc trưng FaceNet: Sử dụng mạng nơ-ron tích chập sâu ánh xạ khuôn mặt thành vector đặc trưng (embedding) 128 chiều hoặc 512 chiều, tối ưu hóa qua hàm mất mát Triplet Loss. Khoảng cách Euclidean giữa các vector phản ánh mức độ tương đồng giữa các khuôn mặt.
  • Mô hình phân loại Support Vector Machine (SVM): Tìm kiếm siêu phẳng tối ưu nhằm phân tách các lớp trong không gian nhiều chiều. SVM hoạt động ổn định trên tập dữ liệu quy mô nhỏ đến trung bình và hạn chế hiện tượng quá khớp (overfitting) nhờ sử dụng các vector hỗ trợ (support vectors).

Bảng so sánh độ chính xác của các phương pháp trên tập dữ liệu chuẩn LFW (Labeled Faces in the Wild) được tổng hợp trong phần khảo cứu của khóa luận:

Phương pháp trích xuất Phương pháp phân loại Độ chính xác trên LFW Đặc điểm kỹ thuật
Eigenfaces (PCA) Ngưỡng khoảng cách / SVM 85% – 90% Nhạy cảm với biến thể ánh sáng và góc chụp
Fisherfaces (LDA) Ngưỡng khoảng cách / SVM 90% – 95% Phân biệt lớp tốt hơn PCA nhưng hạn chế khi hình dạng biến đổi lớn
Local Binary Patterns (LBP) SVM Khoảng 95% Hiệu quả với ánh sáng đổi nhưng kém với chi tiết nhỏ
HOG SVM Khoảng 93% Nắm bắt hình dạng tổng quát, hạn chế góc nghiêng
FaceNet SVM (SVC) Đạt 99.63% (trích xuất) / 97% (kết hợp phân loại) Vector embedding bất biến cao với góc mặt, biểu cảm và ánh sáng
  • Hạ tầng truyền thông và xử lý luồng:
    • Bluetooth Low Energy (BLE): Sử dụng băng tần ISM 2.4 GHz, hoạt động theo cơ chế quét (scanning) và quảng bá (advertising) gói tin để thu thập địa chỉ MAC từ smartphone của sinh viên với mức tiêu thụ năng lượng thấp.
    • Giao thức MQTT: Giao thức truyền thông Machine to Machine (M2M) gọn nhẹ theo mô hình Publisher/Broker/Subscriber, truyền tải dữ liệu địa chỉ BLE dạng JSON từ trạm thu về máy chủ.
    • Apache Kafka: Nền tảng phân tán tiếp nhận và truyền phát dữ liệu hình ảnh liên tục theo thời gian thực, quản lý qua các Topic, Partition, Broker và Consumer Group.
    • Hạ tầng Backend và Ứng dụng: API server phát triển trên nền Java Spring Boot (sử dụng Spring Security và JWT Filter); hệ quản trị cơ sở dữ liệu PostgreSQL (hỗ trợ kiểu JSON, JSONB, ARRAY); giao diện người dùng xây dựng bằng Flutter cho cả ứng dụng di động sinh viên và ứng dụng web quản trị.

Phương pháp nghiên cứu kết hợp giữa khảo sát lý thuyết, thực nghiệm huấn luyện mô hình máy học (sử dụng thư viện PyTorch và tối ưu hóa suy luận bằng NVIDIA TensorRT), thiết kế kiến trúc hệ thống IoT biên - đám mây và thử nghiệm thực địa trong phòng học mô phỏng.

Thiết kế và triển khai hệ thống

Hệ thống được thiết kế theo mô hình kết hợp giữa tính toán biên (Edge Computing) và máy chủ phân tán (Cloud/Server):

[Camera USB + Raspberry Pi 4] ---> (Hình ảnh khuôn mặt) ---> [Kafka Broker] ---> [Tiến trình 1: FaceNet + SVM]
                                                                                               |
                                                                                               v
                                                                                   [Tổng hợp kết quả điểm danh]
                                                                                               ^
                                                                                               |
[BLE Station + Jetson Nano]   ---> (Địa chỉ MAC BLE)   ---> [MQTT Broker]  ---> [Tiến trình 2: Đối chiếu MAC]
  1. Thiết kế phần cứng và bố trí tại phòng học:

    • Khối thu nhận hình ảnh: Raspberry Pi 4 Model B kết nối USB camera góc rộng, lắp đặt ở vị trí trên cao chính giữa phòng học và xuôi theo hướng bảng để ghi nhận trực diện khuôn mặt sinh viên khi nghe giảng.
    • Khối thu nhận tín hiệu BLE: Máy tính nhúng NVIDIA Jetson Nano kết nối module BLE station, bố trí ở độ cao thích hợp để hạn chế vật cản (bàn, ghế) làm suy giảm chỉ số RSSI. Mô hình phát hiện khuôn mặt trên Jetson Nano được biên dịch sang định dạng TensorRT engine để khai thác bộ tăng tốc phần cứng DLA (Deep Learning Accelerator).
    • Cơ chế tự động kích hoạt phiên điểm danh thông qua việc lập lịch bằng lệnh Crontab và shell script trên thiết bị biên.
  2. Luồng truyền thông và xử lý dữ liệu:

    • Thiết bị biên đọc frame ảnh từ camera, đưa qua mô hình YOLO để phát hiện và cắt riêng từng khuôn mặt, sau đó gửi payload chứa ảnh khuôn mặt kèm nhãn thời gian (timestamp) đến Apache Kafka Broker.
    • Trạm BLE quét các địa chỉ Bluetooth MAC phát ra từ điện thoại của sinh viên trong phòng, đóng gói định dạng JSON và publish lên MQTT Broker.
    • Cấu trúc Apache Kafka được đề xuất: Mỗi buổi học tương ứng một Topic độc lập (tồn tại trong thời gian diễn ra buổi học) và một Consumer Group riêng biệt; mỗi camera trong phòng học truyền dữ liệu vào một Partition tương ứng.
  3. Xử lý tập trung tại máy chủ Backend:

    • Chương trình xử lý trung tâm (viết bằng Python) khởi tạo tiến trình chính (Main Process) kết nối đến Kafka Broker, MQTT Broker và truy vấn Spring Boot API Server để tải danh sách sinh viên cùng thời gian biểu lớp học.
    • Process 1: Đọc ảnh khuôn mặt từ Kafka Consumer, chuyển đổi qua FaceNet lấy vector embedding và sử dụng mô hình SVM đã huấn luyện để phân loại danh tính sinh viên.
    • Process 2: Đọc dữ liệu địa chỉ MAC từ MQTT Consumer, kiểm tra sự tồn tại của thiết bị trong danh sách thành viên lớp học.
    • Thuật toán đánh giá đa nguồn: Dữ liệu nhận diện khuôn mặt đóng vai trò xác thực chính; tín hiệu BLE đóng vai trò xác thực bổ trợ tại các khoảng thời gian khuôn mặt bị che khuất hoặc sinh viên quay góc mặt khỏi camera. Hệ thống ghi nhận trạng thái theo từng mốc thời gian liên tục trong suốt buổi học.
  4. Triển khai ứng dụng và cơ sở dữ liệu:

    • Hạ tầng máy chủ triển khai trên các máy ảo VPS (web01, compute01) đóng gói bằng Docker Compose.
    • Cơ sở dữ liệu PostgreSQL lưu trữ bảng thành viên, tài khoản, lớp học, buổi học và lịch sử điểm danh chi tiết.
    • Spring Boot API Server triển khai kiến trúc đa tầng (Layered Architecture), xác thực phân quyền qua JWT.
    • Ứng dụng di động sinh viên (Flutter): Cung cấp các chức năng đăng nhập, cập nhật địa chỉ Bluetooth vật lý của điện thoại cá nhân (có cơ chế giới hạn thời gian đổi MAC để tránh gian lận), xem lịch học và tra cứu lịch sử điểm danh.
    • Ứng dụng web quản trị (Flutter Web): Cung cấp các giao diện quản lý buổi học (chọn ngày, giờ, thêm/xóa thành viên) và quản lý tài khoản người dùng.

Nội dung chính theo từng chương

Chương 1: Mở đầu

Chương 1 phân tích tính cấp thiết của công tác quản lý chuyên cần tại bậc đại học và chỉ rõ hạn chế của bốn phương thức điểm danh hiện nay. Tác giả khảo sát các công trình liên quan trong và ngoài nước: mô hình của nhóm [1] trên Raspberry Pi 3 dùng MTCNN và FaceNet kết hợp gửi SMS qua Twilio; nghiên cứu [2] so sánh Faster R-CNN, ResNet, SSD để giảm tỷ lệ nhận diện sai; công trình [3] dùng Jetson Nano chạy SSD đạt trên 20 FPS; các nghiên cứu [4], [5] ứng dụng mạng sinh đối kháng CGAN/SRGAN nâng cao độ phân giải ảnh; hệ thống [6] tinh chỉnh AlexNet trên MATLAB; giải pháp web Flask dùng YOLO và Dlib của [7]; các phương pháp định vị trong nhà qua RSSI và mạng nơ-ron nhân tạo ANN [10], [11]. Từ đó, chương xác lập mục tiêu, đối tượng, phạm vi nghiên cứu tại Lab E3.1 và cấu trúc 5 chương của khóa luận.

Chương 2: Cơ sở lý thuyết

Chương 2 trình bày có hệ thống các khái niệm thị giác máy tính và công thức đánh giá IoU, đường cong Precision-Recall, AP, mAP. Trình bày chi tiết cấu trúc mạng nơ-ron tích chập (CNN), sự khác biệt giữa mô hình hai giai đoạn (R-CNN, Fast R-CNN, Faster R-CNN) và đơn giai đoạn (SSD, YOLO). Đi sâu phân tích kiến trúc YOLOv5 với các khối cấu tạo Backbone (CBS, C3, SPPF), Neck kết hợp feature map ba kích thước (P3: 80x80, P4: 40x40, P5: 20x20) cùng giải thuật loại trừ bất cực đại NMS (Non-maximum suppression). Trình bày cơ chế trích xuất vector đặc trưng FaceNet thông qua hàm mất mát Triplet Loss và thuật toán phân loại SVM dựa trên siêu phẳng phân tách tối ưu. Giới thiệu tổng quan về framework PyTorch, thư viện tăng tốc NVIDIA TensorRT, giao thức truyền thông không dây BLE, giao thức mạng nhẹ MQTT, kiến trúc hàng đợi phân tán Apache Kafka (Producer, Consumer, Broker, Topic, Partition, ZooKeeper), framework Spring Boot, hệ quản trị PostgreSQL và nền tảng giao diện Flutter.

Chương 3: Phương pháp thực hiện

Chương 3 mô tả chi tiết phương pháp triển khai hệ thống điểm danh thông minh. Trình bày sơ đồ bố trí camera trên cao và vị trí lắp đặt BLE station tại phòng học; quy trình hoạt động 5 bước từ lúc bắt đầu lớp học, thu thập dữ liệu song song (khuôn mặt và BLE), truyền phát qua Kafka/MQTT, xử lý phân loại tại server đến khi kết xuất báo cáo cuối buổi. Thiết kế chi tiết cấu trúc topic Kafka và luồng xử lý đa tiến trình tại server (Main Process quản lý Process 1 xử lý ảnh và Process 2 xử lý BLE). Trình bày quá trình thu thập dataset khuôn mặt (kết hợp tập chuẩn FDDB và ảnh tự chụp), quy trình huấn luyện và đánh giá mô hình phát hiện khuôn mặt YOLOv5 so với YOLOv8, trích xuất đặc trưng bằng FaceNet và phân loại danh tính bằng SVC. Trình bày các bước cấu hình thiết bị phần cứng nhúng (Raspberry Pi, Jetson Nano chuyển đổi mô hình sang TensorRT), lập lịch chạy bằng Crontab, cấu hình Docker Compose trên các máy ảo VPS, xây dựng cấu trúc cơ sở dữ liệu PostgreSQL, các lớp điều khiển API Spring Boot (JWT Authentication) và phát triển giao diện phần mềm Flutter (Mobile App sinh viên và Web App giảng viên).

Chương 4: Thực nghiệm, đánh giá và thảo luận

Chương 4 thực hiện các bài đo kiểm tra và đánh giá hệ thống:

  • Đo lường mức tiêu thụ tài nguyên phần cứng (tỷ lệ sử dụng CPU, dung lượng bộ nhớ RAM, tốc độ xử lý khung hình FPS) của luồng nhận diện khuôn mặt.
  • Khảo sát hiệu năng và độ chính xác của mô hình nhận diện khuôn mặt ở các khoảng cách khác nhau tính từ camera đến vị trí ngồi của sinh viên.
  • Kiểm tra tính ổn định trong vận hành của BLE station khi quét và nhận diện địa chỉ MAC từ ứng dụng di động.
  • Đánh giá khả năng nhận diện gương mặt qua nhiều kịch bản: góc mặt quay nghiêng, thay đổi cường độ ánh sáng, che khuất một phần khuôn mặt.
  • Thử nghiệm hệ thống trong một buổi học mô phỏng thực tế tại phòng Lab E3.1: theo dõi các đối tượng sinh viên tham gia đầy đủ, vào trễ hoặc ra sớm; ghi nhận nhật ký (log) xử lý tại Process 1, Process 2 và Main Process; kết xuất bảng dữ liệu điểm danh hoàn chỉnh thể hiện tỷ lệ thời gian tham gia lớp học của từng cá nhân (trong đó có trường hợp kiểm chứng đối tượng đạt tỷ lệ tham gia từ 50% đến 80%).

Chương 5: Kết luận và hướng phát triển

Chương 5 tóm tắt các kết quả đạt được về việc hoàn thiện mô hình IoT tích hợp công nghệ thị giác máy tính và sóng không dây tầm ngắn phục vụ điểm danh tự động. Đồng thời, chương chỉ rõ các điểm còn tồn tại và đề xuất định hướng nghiên cứu tiếp theo nhằm nâng cấp hệ thống.

Kết quả và đóng góp

Khóa luận đạt được các kết quả kỹ thuật cụ thể:

  • Huấn luyện và tích hợp thành công mô hình phát hiện khuôn mặt YOLOv5 tối ưu hóa qua NVIDIA TensorRT, kết hợp trích xuất đặc trưng FaceNet và phân loại SVM, chạy ổn định trên nền tảng máy tính nhúng và máy chủ.
  • Xây dựng cơ chế xác minh kép kết hợp dữ liệu thị giác máy tính từ camera (yếu tố định danh chính) và tín hiệu BLE từ điện thoại thông minh (yếu tố bổ trợ khi góc quay bị khuất), khắc phục tình trạng điểm danh hộ.
  • Thiết lập thành công đường truyền streaming phân tán sử dụng Apache Kafka cho dữ liệu hình ảnh dung lượng lớn và MQTT cho dữ liệu gói tin BLE nhẹ, bảo đảm thứ tự thời gian và giảm độ trễ xử lý.
  • Xây dựng thuật toán theo dõi xuyên suốt buổi học, tính toán chính xác tổng thời lượng có mặt thực tế và phân loại sinh viên theo tỷ lệ phần trăm tham gia (chẳng hạn mức 50% – 80% trong thực nghiệm mô phỏng), thay thế hoàn toàn phương pháp điểm danh một lần duy nhất.
  • Hoàn thiện hệ sinh thái phần mềm gồm ứng dụng di động cho sinh viên cập nhật BLE MAC/tra cứu lịch sử và ứng dụng web cho giảng viên quản lý buổi học/xuất dữ liệu, vận hành đồng bộ với API Spring Boot và cơ sở dữ liệu PostgreSQL.

So với các nghiên cứu trước đây:

  • Khắc phục nhược điểm của các hệ thống điểm danh một lần (chỉ chụp ảnh hoặc quẹt thẻ ở đầu/cuối buổi học) bằng cơ chế giám sát liên tục theo chu kỳ thời gian.
  • Khắc phục hạn chế góc quay và điểm mù của camera đơn lẻ bằng việc bổ sung lớp dữ liệu sóng BLE từ thiết bị cá nhân.
  • Khắc phục tình trạng gian lận vị trí của các hệ thống chỉ dùng BLE bằng kênh xác thực sinh trắc học khuôn mặt.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của đề tài được ghi nhận trong văn bản:

  • Do quy mô giới hạn về thiết bị phần cứng thử nghiệm và nhân lực, hệ thống mới chỉ triển khai ở mức 1 Topic (chứa 1 Partition) và 1 Consumer Group (gồm 1 Consumer) trên cụm Apache Kafka tại môi trường phòng Lab E3.1.
  • Hiệu năng nhận diện khuôn mặt suy giảm khi khoảng cách từ sinh viên đến camera vượt quá phạm vi tối ưu, hoặc khi sinh viên quay mặt lệch góc quá lớn so với hướng bảng giảng dạy.
  • Kênh xác thực phụ thuộc vào việc sinh viên duy trì kích hoạt kết nối Bluetooth trên điện thoại di động suốt buổi học.

Hướng nghiên cứu tiếp theo:

  • Mở rộng kiến trúc Apache Kafka với nhiều Partition và Consumer Group để xử lý đồng thời luồng dữ liệu từ nhiều camera tại nhiều phòng học trên toàn trường.
  • Thử nghiệm các kiến trúc phát hiện khuôn mặt mới hơn (như YOLOv8, YOLOv9) và tích hợp các mạng sinh đối kháng (như SRGAN đã khảo cứu) nhằm tăng độ phân giải cho các khuôn mặt ở cự ly xa.
  • Nghiên cứu thuật toán ước lượng vị trí dựa trên giá trị RSSI và phương pháp Fingerprint kết hợp mạng nơ-ron để xác định chính xác hơn phạm vi sinh viên ngồi trong phòng học.

Giá trị tham khảo

Tài liệu khóa luận có giá trị tham khảo chuyên môn cho:

  • Sinh viên, học viên chuyên ngành Mạng máy tính và Truyền thông dữ liệu, Khoa học máy tính, Kỹ thuật dữ liệu, Công nghệ thông tin và Hệ thống nhúng/IoT.
  • Các nhóm nghiên cứu đang xây dựng hệ thống giám sát lớp học thông minh, kiểm soát ra vào tự động hoặc bài toán nhận diện sinh trắc học thời gian thực.
  • Kỹ sư phát triển phần mềm muốn tham khảo mô hình kiến trúc kết hợp giữa thiết bị biên (Raspberry Pi, Jetson Nano), streaming dữ liệu lớn (Apache Kafka, MQTT), backend dịch vụ doanh nghiệp (Spring Boot, PostgreSQL) và giao diện đa nền tảng (Flutter).

Nội dung đáng tham khảo nhất trong khóa luận là thiết kế luồng xử lý dữ liệu đa tiến trình tại máy chủ (Chương 3), cách cấu hình phân vùng Kafka kết hợp MQTT để gom dữ liệu đa nguồn, và quy trình chuyển đổi tối ưu mô hình thị giác sang TensorRT trên phần cứng nhúng.

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

1. Tại sao nhóm tác giả lại kết hợp nhận diện khuôn mặt với công nghệ Bluetooth Low Energy (BLE) thay vì chỉ sử dụng một trong hai?
Nếu chỉ dùng camera, hệ thống sẽ gặp điểm mù khi sinh viên quay đầu sang hướng khác, cúi mặt viết bài hoặc bị người ngồi trước che khuất. Nếu chỉ dùng BLE, sinh viên có thể gian lận bằng cách đưa điện thoại cho bạn cùng lớp mang vào phòng hộ. Việc kết hợp nhận diện khuôn mặt làm kênh định danh chính và BLE làm kênh bổ trợ giúp xác minh sự hiện diện liên tục và bảo đảm tính minh bạch.

2. Hệ thống tổ chức Topic và Partition trong Apache Kafka như thế nào?
Mỗi buổi học được đại diện bởi một Topic riêng biệt và được xử lý bởi một Consumer Group tương ứng trên server. Bên trong mỗi Topic, hệ thống phân chia các Partition riêng để tiếp nhận dữ liệu từ từng camera lắp đặt trong phòng học. Trong khuôn khổ thử nghiệm giới hạn của đồ án, hệ thống vận hành với cấu hình 1 Topic (1 Partition) và 1 Consumer Group (1 Consumer).

3. Mô hình nhận diện khuôn mặt được triển khai gồm những thành phần nào và tại sao lại chọn SVM làm bộ phân loại?
Hệ thống sử dụng mô hình YOLOv5 (tối ưu hóa qua TensorRT) để phát hiện và cắt vùng mặt, sau đó dùng FaceNet trích xuất vector đặc trưng 128 chiều hoặc 512 chiều. SVM được chọn làm bộ phân loại danh tính thay vì mạng nơ-ron sâu vì SVM tìm siêu phẳng tối ưu rất hiệu quả trong không gian đặc trưng nhiều chiều, hạn chế tối đa hiện tượng quá khớp (overfitting) trên tập dữ liệu kích thước nhỏ đến trung bình và tiêu tốn ít tài nguyên tính toán hơn.

4. Kết quả điểm danh cuối cùng của sinh viên được tính toán như thế nào sau buổi học?
Khác với phương pháp truyền thống chỉ ghi nhận tại một thời điểm, hệ thống liên tục ghi nhận dữ liệu có mặt theo từng mốc thời gian từ Process 1 (camera) và Process 2 (BLE). Khi buổi học kết thúc, hệ thống đối soát dữ liệu của cả hai kênh trong toàn bộ buổi học, tính toán tổng thời lượng sinh viên thực sự có mặt trong lớp để đưa ra tỷ lệ phần trăm tham gia (như mức 50% – 80% trong kịch bản kiểm thử) và lưu vào cơ sở dữ liệu PostgreSQL.

5. Ứng dụng di động dành cho sinh viên được xây dựng bằng công nghệ gì và có chức năng chính nào?
Ứng dụng di động được xây dựng bằng framework Flutter (ngôn ngữ Dart). Ứng dụng cung cấp các chức năng: đăng nhập tài khoản, cập nhật địa chỉ Bluetooth vật lý (MAC) của điện thoại cá nhân (có cơ chế khóa thời gian sau mỗi lần đổi để chống gian lận), xem danh sách các lớp học và tra cứu lịch sử điểm danh của từng buổi học.

Kết luận

Khóa luận tốt nghiệp của sinh viên Vũ Quốc An và Nguyễn Phúc Bảo đã nghiên cứu và phát triển hoàn chỉnh giải pháp điểm danh thông minh cho lớp học dựa trên sự kết hợp giữa thị giác máy tính và công nghệ Bluetooth năng lượng thấp. Hệ thống vận hành trên kiến trúc tính toán biên phối hợp máy chủ phân tán (sử dụng Raspberry Pi 4, Jetson Nano, Apache Kafka, MQTT, Spring Boot và Flutter), giải quyết hiệu quả bài toán tự động hóa điểm danh và theo dõi chuyên cần liên tục trong suốt buổi học. Kết quả kiểm thử thực tế tại phòng Lab E3.1 chứng minh tính khả thi của giải pháp trong việc nâng cao tính minh bạch, tiết kiệm thời gian giảng dạy và hướng tới xây dựng mô hình phòng học thông minh tại các trường đại học.