Giới thiệu dự án
Trong bối cảnh chuyển đổi số giáo dục và tự động hóa quản lý học đường, công tác điểm danh truyền thống đang bộc lộ nhiều bất cập lớn. Theo các khảo sát quản trị giáo dục, phương pháp gọi tên thủ công hoặc ký tên trên giấy làm tiêu tốn từ 10% đến 15% tổng thời lượng của một tiết học 45–60 phút. Đối với giảng đường đại học quy mô 80–150 sinh viên, quá trình này có thể kéo dài tới 15–20 phút, đồng thời tạo ra kẽ hở cho tình trạng điểm danh hộ, gian lận học đường và gây khó khăn trong việc tổng hợp dữ liệu học vụ theo thời gian thực. Các giải pháp điểm danh bằng thẻ từ (RFID) hay mã vạch tuy nhanh hơn nhưng vẫn tồn tại nguy cơ quẹt thẻ hộ, quên thẻ hoặc thất lạc.
Hệ thống điểm danh tự động ứng dụng thị giác máy tính và trí tuệ nhân tạo (AI) trên thiết bị nhúng là hướng tiếp cận đột phá. Đề tài "Hệ thống điểm danh sử dụng Raspberry Pi để nhận diện khuôn mặt" do sinh viên Đoàn Gia Hân và Nguyễn Huỳnh Hưng thực hiện dưới sự hướng dẫn của PGS.TS Trương Ngọc Sơn (Trường Đại học Sư phạm Kỹ thuật TP.HCM) giải quyết bài toán quản lý sinh viên thông qua nền tảng phần cứng nhỏ gọn, chi phí thấp và vận hành độc lập tại biên (Edge Computing).
+------------------+ +--------------------+ +--------------------+
| Camera Microdia | ---> | Raspberry Pi 3B | ---> | Màn hình LCD 3.5" |
| (Thu nhận ảnh) | | (Xử lý Haar & LBPH)| | (Giao diện Tkinter)|
+------------------+ +--------------------+ +--------------------+
|
v
+--------------------+
| MySQL Database & |
| Excel Export Log |
+--------------------+
Mục tiêu đề tài
- Nghiên cứu và triển khai thuật toán phát hiện khuôn mặt Haar-like kết hợp bộ phân loại tầng AdaBoost, trích xuất đặc trưng và nhận diện bằng Local Binary Pattern Histograms (LBPH) thông qua thư viện OpenCV.
- Thiết kế và tích hợp phần cứng nhúng hoàn chỉnh trên nền tảng Raspberry Pi 3 Model B, kết nối module Camera Microdia và màn hình cảm ứng điện trở LCD 3.5 inch qua giao tiếp SPI.
- Xây dựng phần mềm quản lý với giao diện đồ họa trực quan (GUI bằng Tkinter), tự động hóa quy trình thu thập tập dữ liệu (dataset), huấn luyện mô hình (training) và ghi nhận kết quả điểm danh.
- Đồng bộ hóa và lưu trữ dữ liệu vào hệ quản trị cơ sở dữ liệu MySQL, tự động kết xuất báo cáo điểm danh theo thời gian thực ra định dạng bảng tính Excel (
FaceId_Data.xlsx).
Phương pháp tiếp cận và kết quả kỳ vọng
- Phương pháp tiếp cận: Sử dụng kiến trúc tính toán biên cục bộ (Local Edge Inference) không phụ thuộc máy chủ đám mây (Cloud) để giảm độ trễ xử lý, bảo mật dữ liệu sinh trắc học và tiết kiệm chi phí băng thông.
- Chỉ số đo lường kỳ vọng:
- Tốc độ nhận diện: $< 200\text{ ms}$ cho một lần quét khuôn mặt.
- Độ chính xác nhận diện: Đạt trên $90%$ trong điều kiện ánh sáng phòng học tiêu chuẩn ($300\text{--}500\text{ lux}$).
- Dung lượng mẫu: Thu thập 200 ảnh khuôn mặt đa góc độ cho mỗi đối tượng để tối ưu hóa vector đặc trưng LBPH.
Phạm vi và giới hạn đề tài
- Phạm vi: Ứng dụng điểm danh cho sinh viên trong lớp học, phòng thực hành hoặc nhân viên văn phòng.
- Giới hạn kỹ thuật:
- Hệ thống xử lý đơn đối tượng ($1$ người/lần quét) tại khoảng cách tối ưu $0.8\text{ m} - 1.0\text{ m}$.
- Độ chính xác suy giảm khi điều kiện ánh sáng quá yếu ($< 50\text{ lux}$) hoặc khi đối tượng bị che khuất khuôn mặt (đeo khẩu trang kín, kính râm).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Phương pháp điểm danh |
Ưu điểm |
Nhược điểm |
Chi phí triển khai |
Tính xác thực |
| Điểm danh thủ công (Giấy/Gọi tên) |
Không yêu cầu công nghệ, dễ thực hiện |
Tốn 15–20% thời lượng học, dễ sai sót, dễ điểm danh hộ |
Rất thấp |
Thấp |
| Thẻ từ RFID / Mã QR |
Tốc độ quét nhanh (1–2s/người) |
Dễ quẹt hộ, mất thẻ, quên thẻ, hỏng chip thẻ |
Trung bình |
Trung bình |
| Vân tay sinh trắc học |
Tính định danh cao, không thể điểm danh hộ |
Dễ lây nhiễm vi khuẩn qua bề mặt tiếp xúc, tắc nghẽn giờ cao điểm |
Trung bình – Cao |
Cao |
| Khuôn mặt nhúng (Đề tài đề xuất) |
Không tiếp xúc, tự động hóa cao, chống gian lận, triển khai độc lập |
Yêu cầu ánh sáng ổn định, cấu hình phần cứng tối ưu |
Thấp (~1.5–2 triệu VNĐ) |
Rất cao |
Phân loại yêu cầu hệ thống (MoSCoW)
- Must have (Bắt buộc): Chức năng thu thập 200 mẫu ảnh/sinh viên; Thuật toán phát hiện khuôn mặt Haar Cascade; Huấn luyện trích xuất đặc trưng LBPH; Cơ sở dữ liệu MySQL lưu thông tin sinh viên; Xuất báo cáo Excel.
- Should have (Nên có): Giao diện cảm ứng Tkinter 3.5 inch; Hướng dẫn người dùng xoay các góc mặt trên màn hình khi lấy mẫu; Cảnh báo đối tượng chưa xác định (Unknown).
- Could have (Có thể có): Quản lý thông tin môn học, giảng viên, thời gian bắt đầu lớp học linh hoạt ngay trên GUI.
- Won't have (Chưa hỗ trợ phiên bản này): Nhận diện đa khuôn mặt đồng thời (Crowd Face Recognition), nhận diện khi đeo khẩu trang kín.
Thiết kế hệ thống
Kiến trúc phần cứng
- Bộ xử lý trung tâm: Raspberry Pi 3 Model B trang bị vi xử lý Broadcom BCM2837 64-bit Quad-Core ARM Cortex-A53 xung nhịp 1.2 GHz, bộ nhớ 1 GB LPDDR2 RAM, tích hợp Wi-Fi 802.11n, Bluetooth 4.1 và 4 cổng USB 2.0.
- Khối thu nhận hình ảnh: Webcam Microdia kết nối chuẩn USB 2.0, độ phân giải HD 720p/1080p, chiều dài cáp 150 cm, tốc độ khung hình 30 FPS.
- Khối hiển thị & giao tiếp: Màn hình LCD cảm ứng điện trở 3.5 inch, độ phân giải $480 \times 320\text{ pixels}$, kết nối trực tiếp qua hàng chân GPIO (sử dụng giao thức SPI: chân MOSI
TP_SI, MISO TP_SO, SCK TP_SCK, CS TP_CS và ngắt cảm ứng TP_IRQ).
+-----------------------------------------------------------------------------+
| RASPBERRY PI 3 MODEL B |
| |
| +--------------------+ +--------------------+ +-------------------+ |
| | Camera Module | | Broadcom BCM2837 | | GPIO Header | |
| | (USB 2.0 Video) |--->| ARM Cortex-A53 |--->| (SPI Protocol) | |
| +--------------------+ | Quad-Core 1.2 GHz | +-------------------+ |
| +--------------------+ | |
+--------------------------------------|-------------------------|------------+
| v
v +------------------+
+------------------+ | Màn hình LCD 3.5"|
| 1GB LPDDR2 RAM | | Cảm ứng điện trở |
| (Bộ nhớ đệm ảnh) | +------------------+
+------------------+
Công nghệ và thư viện phần mềm
- Hệ điều hành: Raspbian OS (Debian-based Linux Kernel).
- Ngôn ngữ lập trình: Python 3.x.
- Thư viện thị giác máy tính: OpenCV (
opencv-contrib-python v4.5+) hỗ trợ module cv2.face.
- Hệ quản trị CSDL: MySQL Server kết nối qua
mysql-connector-python.
- Giao diện người dùng: Python Tkinter GUI Framework.
- Xử lý dữ liệu: Pandas, NumPy, OpenPyXL.
Thiết kế cơ sở dữ liệu (Database Schema)
Hệ thống sử dụng hệ quản trị CSDL quan hệ MySQL với 3 bảng chính:
CREATE DATABASE AttendanceSystem;
USE AttendanceSystem;
CREATE TABLE students (
id INT PRIMARY KEY AUTO_INCREMENT,
student_code VARCHAR(20) UNIQUE NOT NULL,
full_name VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE courses (
course_id INT PRIMARY KEY AUTO_INCREMENT,
course_name VARCHAR(100) NOT NULL,
lecturer_name VARCHAR(100) NOT NULL,
start_time TIME NOT NULL
);
CREATE TABLE attendance_logs (
log_id INT PRIMARY KEY AUTO_INCREMENT,
student_code VARCHAR(20),
course_id INT,
attendance_date DATE,
attendance_time TIME,
status VARCHAR(20) DEFAULT 'Present',
FOREIGN KEY (student_code) REFERENCES students(student_code),
FOREIGN KEY (course_id) REFERENCES courses(course_id)
);
Methodology
Quy trình phát triển đề tài được tổ chức theo mô hình Agile rút gọn với 4 giai đoạn chính kéo dài trong 16 tuần:
[Tuần 1-3] Phân tích lý thuyết (Haar, AdaBoost, LBP)
│
▼
[Tuần 4-7] Thiết kế phần cứng & Cấu hình Raspberry Pi 3B
│
▼
[Tuần 8-12] Xây dựng phần mềm (Thu thập, Training, Điểm danh GUI)
│
▼
[Tuần 13-16] Thử nghiệm thực tế, Tối ưu hóa & Đánh giá mô hình
Ma trận đánh giá rủi ro và giải pháp khắc phục
- Rủi ro quá nhiệt và nghẽn CPU trên Raspberry Pi 3B: Xử lý ảnh kích thước gốc có thể gây tụt FPS. Giải pháp: Hạ độ phân giải khung hình xử lý xuống $320 \times 240$ khi phát hiện và chuyển đổi sang ảnh xám (Grayscale) trước khi trích xuất đặc trưng.
- Rủi ro dữ liệu mẫu bị nhiễu do rung lắc: Giải pháp: Thiết lập thuật toán chỉ lưu mẫu khi bộ phân loại Haar Cascade nhận diện chính xác vùng ROI (Region of Interest) với kích thước khuôn mặt tối thiểu $100 \times 100\text{ pixels}$.
Implementation và kết quả
Development process
Quá trình phát triển hệ thống gồm 3 module phần mềm cốt lõi tương ứng với 3 chức năng chính trên giao diện:
1. Module thu thập dữ liệu (capture_images)
Khi người dùng nhập Mã số sinh viên (MSSV) và Họ tên, hệ thống kích hoạt webcam, tự động cắt vùng khuôn mặt và lưu 200 bức ảnh theo chuẩn định dạng User.<MSSV>.<SampleNumber>.jpg vào thư mục data_face/. Quy trình thu thập đưa ra các chỉ dẫn tuần tự trên màn hình:
- Nhìn thẳng vào camera (50 ảnh).
- Quay mặt sang phải góc $\approx 15^\circ - 30^\circ$ (50 ảnh).
- Quay mặt sang trái góc $\approx 15^\circ - 30^\circ$ (50 ảnh).
- Ngước mặt lên trên góc $\approx 15^\circ$ (50 ảnh).
2. Module trích xuất đặc trưng và huấn luyện (TrainData)
Sử dụng thuật toán Local Binary Patterns Histograms (LBPH). Thuật toán chia ảnh khuôn mặt xám thành các ô nhỏ (cells), so sánh mức xám của từng pixel trung tâm $g_c$ với $P$ pixel lân cận trong bán kính $R$:
$$LBP_{P, R} = \sum_{p=0}^{P-1} s(g_p - g_c) \cdot 2^p, \quad \text{với } s(x) = \begin{cases} 1 & \text{nếu } x \ge 0 \ 0 & \text{nếu } x < 0 \end{cases}$$
Sau khi trích xuất biểu đồ tần suất (histogram) đặc trưng cho từng vùng, mô hình gộp thành vector đại diện và lưu trữ vào tệp cấu hình trainer/trainningData.yml.
Trích đoạn mã nguồn xử lý và huấn luyện:
import cv2
import os
import numpy as np
from PIL import Image
def TrainData():
recognizer = cv2.face.LBPHFaceRecognizer_create()
detector = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
imagePaths = [os.path.join("data_face", f) for f in os.listdir("data_face")]
faceSamples = []
ids = []
for imagePath in imagePaths:
if not imagePath.endswith(".jpg"):
continue
PIL_img = Image.open(imagePath).convert('L') # Chuyển sang ảnh xám
img_numpy = np.array(PIL_img, 'uint8')
# Trích xuất ID từ tên file: User.<ID>.<SampleNum>.jpg
id_user = int(os.path.split(imagePath)[-1].split(".")[1])
faces = detector.detectMultiScale(img_numpy)
for (x, y, w, h) in faces:
faceSamples.append(img_numpy[y:y+h, x:x+w])
ids.append(id_user)
recognizer.train(faceSamples, np.array(ids))
if not os.path.exists('trainer'):
os.makedirs('trainer')
recognizer.save('trainer/trainningData.yml')
cv2.destroyAllWindows()
3. Module nhận diện và ghi nhận điểm danh (AttendentData)
Hệ thống tải tệp trainningData.yml, quét liên tục khung hình từ camera, trích xuất khuôn mặt và thực hiện hàm recognizer.predict(gray_face). Hàm trả về hai tham số: ID và confidence (khoảng cách Euclidean giữa vector kiểm tra và vector mẫu).
# Điều kiện xác định danh tính sinh viên
id_predicted, confidence = recognizer.predict(gray_face)
if confidence < 60:
# Nhận diện chính xác sinh viên
student_info = get_student_by_id(id_predicted)
display_name = student_info['full_name']
log_attendance_to_mysql_and_excel(student_info)
else:
# Không thể xác định danh tính
display_name = "Unknown"
Testing và validation
Hệ thống được kiểm thử thực tế với 20 sinh viên thuộc khoa Điện - Điện tử (lớp 20119CL4B) tại Trường ĐH Sư phạm Kỹ thuật TP.HCM trong các điều kiện môi trường khác nhau.
Bảng kết quả thử nghiệm nhận diện thực tế
| Điều kiện môi trường |
Số lần quét thử nghiệm |
Số lần nhận diện đúng |
Tỷ lệ chính xác (%) |
Thời gian phản hồi trung bình (ms) |
| Ánh sáng tiêu chuẩn ($300\text{--}500\text{ lux}$), nhìn thẳng |
100 |
97 |
97.0% |
145 ms |
| Nghiêng góc mặt ($15^\circ\text{--}30^\circ$), ánh sáng tốt |
100 |
92 |
92.0% |
158 ms |
| Ngước mặt / Cúi mặt ($15^\circ$), ánh sáng tốt |
100 |
90 |
90.0% |
162 ms |
| Ánh sáng yếu ($< 50\text{ lux}$) |
100 |
78 |
78.0% |
185 ms |
| Đeo kính trắng trong suốt |
50 |
46 |
92.0% |
150 ms |
| Khoảng cách ngoài tầm ($> 1.5\text{ m}$) |
50 |
32 |
64.0% |
210 ms |
Đánh giá hiệu năng phần cứng Raspberry Pi 3B:
- Tải CPU: Dao động ở mức $45% - 65%$ khi ở chế độ quét liên tục.
- Sử dụng RAM: ~280 MB / 1 GB RAM (rất nhẹ, đảm bảo không xảy ra tràn bộ nhớ).
- Tốc độ khung hình (FPS): Đạt ổn định $12 - 15\text{ FPS}$ ở độ phân giải $640 \times 480$, đáp ứng hoàn hảo tiêu chí thời gian thực.
Kết quả đạt được
- Giao diện điều khiển hoàn chỉnh: Tích hợp trực quan trên màn hình cảm ứng 3.5 inch với 3 nút chức năng: "Lấy Dữ Liệu", "Xử Lý Dữ Liệu" và "Điểm Danh".
- Quản lý học vụ động: Cho phép nhập môn học, giảng viên phụ trách, ca học và cập nhật ngay trên màn hình.
- Độ chính xác và tính toàn vẹn dữ liệu: Tỷ lệ nhận diện đạt trung bình 94.5% trong điều kiện phòng học; Dữ liệu điểm danh được ghi đồng thời vào bảng
attendance_logs trong MySQL và tệp FaceId_Data.xlsx chứa đầy đủ thông tin: Mã sinh viên, Họ tên, Tên môn học, Giảng viên, Ngày điểm danh, Giờ vào lớp chính xác tới từng giây.
Đổi mới và đóng góp
Đổi mới công nghệ
- Tối ưu hóa pipeline xử lý trên phần cứng giới hạn: Thay vì sử dụng các mạng nơ-ron tích chập sâu (Deep CNN) đòi hỏi GPU rời hoặc tăng tốc phần cứng đắt tiền, nhóm tác giả đã tối ưu hóa sự kết hợp giữa Haar-Cascade và LBPH. Giải pháp này đảm bảo tính gọn nhẹ, tiêu thụ điện năng cực thấp ($< 5\text{W}$) nhưng vẫn giữ được độ chính xác cao đối với bài toán nhận diện sinh trắc học cục bộ.
- Quy trình lấy mẫu 4 chiều tự động: Hướng dẫn người dùng xoay 4 hướng trực tiếp trên giao diện camera giúp tập dữ liệu bao quát được các biến thể góc nhìn thực tế, loại bỏ sự cần thiết của các bước Data Augmentation phức tạp.
So sánh với các giải pháp hiện nay
| Tiêu chí |
Giải pháp Cloud AI (AWS Rekognition / Face++) |
Giải pháp Deep Learning cục bộ (Jetson Nano + ResNet) |
Hệ thống Raspberry Pi + LBPH (Đề tài) |
| Chi phí phần cứng |
Thấp (chỉ cần camera IP) |
Rất cao (~5–8 triệu VNĐ) |
Rất thấp (~1.8 triệu VNĐ) |
| Chi phí vận hành |
Tốn phí API theo lượt gọi |
Không |
Hoàn toàn miễn phí |
| Phụ thuộc Internet |
$100%$ bắt buộc |
Không |
Không (Hoạt động Offline 100%) |
| Bảo mật sinh trắc học |
Rủi ro truyền tải ảnh lên đám mây |
Lưu trữ cục bộ |
Lưu trữ cục bộ, an toàn tuyệt đối |
| Điện năng tiêu thụ |
Phụ thuộc Server |
10–15W |
Chỉ 3–5W (Cấp nguồn qua cổng Micro USB) |
Đóng góp thực tiễn
- Cung cấp mô hình mẫu hoàn chỉnh về ứng dụng IoT và Trí tuệ nhân tạo biên trong quản lý giáo dục.
- Giúp giảm 90% thời gian điểm danh tại mỗi buổi học (từ 15 phút xuống còn dưới 1.5 phút cho toàn bộ lớp học 40–50 sinh viên).
Ứng dụng thực tế và triển khai
Kịch bản triển khai thực tế
+-------------------------------------------------------------+
| MÔ HÌNH TRIỂN KHAI LỚP HỌC |
| |
| +----------------------------------+ |
| | Hộp thiết bị điểm danh đặt tại | |
| | cửa ra vào hoặc bàn giảng viên | |
| +----------------------------------+ |
| | |
| +--------------------+--------------------+ |
| | | |
| v v |
| [Sinh viên bước vào] [Giảng viên] |
| - Đứng trước camera 0.8-1m - Xem sĩ số |
| - Màn hình hiện tên & MSSV - Xuất file |
| - Ghi nhận thành công (<2s) Excel cuối giờ|
+-------------------------------------------------------------+
- Giảng đường đại học & Trường phổ thông: Đặt thiết bị tại cửa lớp học hoặc bàn giảng viên. Sinh viên vào lớp chỉ cần nhìn vào thiết bị 1–2 giây để hoàn tất ghi danh.
- Văn phòng doanh nghiệp vừa và nhỏ (SMEs): Thay thế máy chấm công vân tay truyền thống, đảm bảo vệ sinh dịch tễ và tránh tình trạng gian lận chấm công.
- Kiểm soát ra vào phòng máy, phòng thí nghiệm: Tự động mở khóa cửa (thông qua tích hợp Relay với chân GPIO của Raspberry Pi) khi nhận diện đúng nhân sự được cấp quyền.
Hướng dẫn triển khai và dự toán kinh phí
Dự toán chi phí phần cứng (BOM - Bill of Materials)
- Bo mạch Raspberry Pi 3 Model B (chính hãng): ~950,000 VNĐ.
- Màn hình LCD cảm ứng 3.5 inch SPI: ~250,000 VNĐ.
- Camera Webcam Microdia HD: ~200,000 VNĐ.
- Thẻ nhớ MicroSD 32GB Class 10 SanDisk: ~120,000 VNĐ.
- Nguồn Adapter 5V-2.5A & Vỏ case mica: ~100,000 VNĐ.
- Tổng chi phí phần cứng: $\approx 1,620,000\text{ VNĐ}$ / thiết bị (tiết kiệm hơn 70% so với máy chấm công khuôn mặt thương mại).
Hướng dẫn cài đặt hệ thống (Deployment Steps)
- Flash hệ điều hành: Cài đặt Raspbian OS lên thẻ nhớ bằng Raspberry Pi Imager.
- Cài đặt thư viện phụ thuộc:
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install python3-opencv python3-pip libatlas-base-dev
pip3 install mysql-connector-python pandas openpyxl pillow
- Cấu hình màn hình LCD 3.5" qua giao tiếp SPI: Tải driver LCD-show và chạy script
./LCD35-show để định tuyến hiển thị lên màn hình cảm ứng.
- Khởi chạy ứng dụng: Cấu hình file
main.py tự động chạy khi khởi động hệ điều hành thông qua tệp ~/.config/autostart/attendance.desktop.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Phụ thuộc vào cường độ ánh sáng: Trong môi trường tối ($< 50\text{ lux}$), tỷ lệ nhận diện giảm xuống $78%$ do cảm biến webcam thông thường bị nhiễu hạt (noise).
- Chưa hỗ trợ che khuất một phần (Occlusion): Khi sinh viên đeo khẩu trang y tế hoặc kính râm to bản, các đặc trưng hình học LBP quanh mũi và miệng bị mất, dẫn đến không nhận diện được.
- Nhận diện đơn luồng: Hệ thống mới chỉ xử lý tuần tự từng người, chưa hỗ trợ phát hiện và nhận diện đồng thời nhiều người trong một khung hình đông đúc.
Hướng phát triển trong tương lai
- Nâng cấp phần cứng: Chuyển dịch sang Raspberry Pi 4 Model B (4GB/8GB RAM) hoặc Raspberry Pi 5 kết hợp cùng bộ tăng tốc AI Raspberry Pi AI Kit (M.2 HAT+ với chip Hailo-8L đạt 13 TOPS).
- Cải tiến thuật toán: Tích hợp mô hình Deep Learning dạng nhẹ như MobileNetV2-SSD cho phát hiện khuôn mặt và FaceNet / MobileFaceNet cho trích xuất vector nhúng 128 chiều để nhận diện chính xác ngay cả khi đeo khẩu trang.
- Bổ sung tính năng Liveness Detection (Chống giả mạo): Tích hợp camera hồng ngoại (IR Camera) hoặc giải thuật phân tích nhấp nháy mắt để ngăn chặn hành vi sử dụng ảnh chụp/video điện thoại để đánh lừa hệ thống.
- Điện toán đám mây & Web Dashboard: Đồng bộ hóa dữ liệu về hệ thống quản lý học tập (LMS/ERP) qua RESTful API, cho phép sinh viên và phụ huynh tra cứu chuyên cần trên ứng dụng di động.
Đối tượng hưởng lợi
+-----------------------------------------+
| HỆ THỐNG ĐIỂM DANH FACE ID |
+-----------------------------------------+
|
+-----------------+------------+------------+-----------------+
| | | |
v v v v
+------------+ +--------------+ +--------------+ +---------------+
| Sinh viên | | Giảng viên | | Nhà trường / | | Lập trình viên|
| & Học sinh| | & Nhà trường| | Doanh nghiệp| | & Nghiên cứu |
+------------+ +--------------+ +--------------+ +---------------+
| Tác phong | | Tiết kiệm | | Chuẩn hóa CSDL| | Mã nguồn mở |
| hiện đại, | | 90% thời gian| | học đường, | | tham khảo cho |
| minh bạch | | ghi nhận | | quản trị số | | đồ án IoT/AI |
+------------+ +--------------+ +--------------+ +---------------+
- Sinh viên & Học sinh: Trải nghiệm quy trình điểm danh không chạm, nhanh chóng, minh bạch; rèn luyện tác phong chuyên cần khi bước vào lớp học.
- Giảng viên & Cán bộ quản lý: Tiết kiệm hàng trăm giờ điểm danh mỗi học kỳ; loại bỏ áp lực quản lý lớp học; tự động kết xuất dữ liệu báo cáo chuyên cần chính xác gửi phòng đào tạo.
- Doanh nghiệp & Trường học: Tiết kiệm chi phí đầu tư ban đầu với hệ thống nhúng tự phát triển; dễ dàng bảo trì, nâng cấp phần mềm theo nhu cầu riêng biệt.
- Cộng đồng lập trình viên & Sinh viên nghiên cứu: Cung cấp tài liệu tham khảo chi tiết về kiến trúc tích hợp hệ thống phần cứng Raspberry Pi, màn hình SPI, thư viện OpenCV và hệ quản trị CSDL MySQL.
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 Raspberry Pi 3 Model B trở lên (tối thiểu 1GB RAM), thẻ nhớ MicroSD dung lượng từ 16GB (Class 10 tốc độ đọc $\ge 80\text{MB/s}$), nguồn điện 5V/2.5A ổn định, Webcam cổng USB hỗ trợ độ phân giải tối thiểu HD 720p và màn hình LCD cảm ứng hỗ trợ giao tiếp GPIO/SPI hoặc cổng HDMI.
2. Hệ thống xử lý thế nào khi có sinh viên chưa đăng ký trong cơ sở dữ liệu?
Khi một người lạ hoặc sinh viên chưa có dữ liệu trong tệp trainningData.yml đứng trước camera, bộ phân loại LBPH sẽ trả về giá trị khoảng cách confidence cao ($\ge 60$). Khi đó, hệ thống sẽ gán nhãn "Unknown" trên màn hình camera và tuyệt đối không ghi nhận dữ liệu điểm danh vào cơ sở dữ liệu.
3. Hệ thống có thể tích hợp vào cơ sở dữ liệu quản lý sinh viên có sẵn của nhà trường không?
Hoàn toàn có thể. Do hệ thống sử dụng MySQL làm CSDL trung gian, bạn có thể dễ dàng thay đổi chuỗi kết nối (Connection String) trong hàm connectdatabase() để trỏ trực tiếp đến máy chủ CSDL tập trung của nhà trường hoặc cấu hình đồng bộ định kỳ qua các API chuyên dụng.
4. Chi phí vận hành và bảo trì hàng tháng của hệ thống là bao nhiêu?
Chi phí vận hành gần như bằng 0. Hệ thống chạy hoàn toàn Offline trên thiết bị nhúng với công suất tiêu thụ điện chỉ khoảng $3\text{--}5\text{W}$ (tương đương vài nghìn đồng tiền điện mỗi tháng), không tốn phí bản quyền hay phí duy trì dịch vụ điện toán đám mây.
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ữ trực tiếp các ảnh chụp thô lên mạng Internet. Sau quá trình huấn luyện, các đặc trưng khuôn mặt được mã hóa thành các vector biểu đồ tần suất nhị phân trong tệp trainningData.yml. Kẻ xấu không thể tái tạo lại khuôn mặt gốc từ tệp cấu hình này, đảm bảo tuân thủ các nguyên tắc bảo mật thông tin sinh trắc học.
Kết luận
Đề tài "Hệ thống điểm danh sử dụng Raspberry Pi để nhận diện khuôn mặt" của nhóm sinh viên Đoàn Gia Hân và Nguyễn Huỳnh Hưng dưới sự hướng dẫn của PGS.TS Trương Ngọc Sơn đã hoàn thành xuất sắc các mục tiêu nghiên cứu và ứng dụng thực tiễn. Bằng việc kết hợp hài hòa giữa phần cứng nhúng giá rẻ Raspberry Pi 3 Model B, màn hình cảm ứng 3.5 inch và thuật toán thị giác máy tính cổ điển nhưng hiệu quả cao (Haar-Cascade + LBPH), hệ thống đã chứng minh tính khả thi vượt trội trong việc tự động hóa công tác quản lý sinh viên.
Với tốc độ nhận diện nhanh ($< 200\text{ ms}$), độ chính xác ấn tượng ($94.5%$) cùng khả năng đồng bộ dữ liệu đa nền tảng (MySQL và Excel), giải pháp không chỉ giải quyết triệt để các hạn chế của phương pháp điểm danh truyền thống mà còn mở ra hướng đi bền vững cho các ứng dụng Edge AI trong môi trường học đường và doanh nghiệp thông minh. Các bạn sinh viên, kỹ sư nhúng và nhà phát triển có thể kế thừa kiến trúc mã nguồn và sơ đồ nguyên lý của đề tài này để tiếp tục mở rộng các tính năng nhận diện nâng cao trong tương lai.