Giới thiệu dự án
Trong bối cảnh chuyển đổi số và yêu cầu cấp thiết về an toàn vệ sinh dịch tễ tại nơi làm việc sau đại dịch Covid-19, việc hạn chế tiếp xúc vật lý với các thiết bị dùng chung đã trở thành ưu tiên hàng đầu của các doanh nghiệp. Theo các khảo sát công nghệ sinh trắc học doanh nghiệp, hơn 65% văn phòng hiện đại đang dần thay thế máy chấm công vân tay quang học và đầu đọc thẻ từ truyền thống do nguy cơ lây nhiễm mầm bệnh, rủi ro gian lận chấm công hộ (buddy punching) và chi phí hao mòn thiết bị vật lý.
Khóa luận tốt nghiệp chuyên ngành Khoa học Máy tính tại Trường Đại học Công nghiệp TP.HCM (IUH), do sinh viên Trần Quang Trung và Hồ Duy Quang thực hiện dưới sự hướng dẫn của ThS. Hồ Đắc Quán (06/2021), đã giải quyết triệt để bài toán này thông qua đề tài: "Ứng dụng chấm công bằng nhận dạng khuôn mặt sử dụng Deep Learning".
+------------------------+
| Camera Input (Video) |
+-----------+------------+
|
v
+------------------------------------+
| MediaPipe BlazeFace Face Detection |
| (0.2s/frame, 6 Facial Landmarks) |
+-----------------+------------------+
|
v
+------------------------------------+
| Siamese Network Feature Extractor |
| (Modified VGG16 / FaceNet Model) |
+-----------------+------------------+
|
v
+------------------------------------+
| 128-D Euclidean Distance Matching |
| d(fx, fy) <= Threshold (tau) |
+-----------------+------------------+
|
+-------------+-------------+
| |
v v
[Match: Valid Check-in] [Mismatch: Unknown]
Vấn đề thực tiễn (Problem Statement)
Hệ thống chấm công truyền thống bộc lộ nhiều điểm nghẽn nghiêm trọng trong quản trị nhân sự:
- Nguy cơ lây nhiễm chéo: Hàng trăm nhân viên tiếp xúc trực tiếp lên cùng một mắt đọc cảm biến vân tay mỗi ngày.
- Gian lận thẻ từ: Tình trạng quẹt thẻ hộ giữa các nhân viên làm sai lệch bảng lương và giảm tính kỷ luật.
- Thời gian đáp ứng và chi phí bảo trì: Thẻ từ dễ gãy rách, đầu đọc vân tay bị trầy xước, giảm độ nhạy sau thời gian dài sử dụng gây ùn tắc tại cửa ra vào vào giờ cao điểm.
- Thách thức bài toán Open-Set trong Deep Learning: Khi công ty tiếp nhận nhân viên mới hoặc nhân viên nghỉ việc, các mô hình phân loại CNN (Softmax Classifier) truyền thống bắt buộc phải cấu hình lại lớp đầu ra và huấn luyện lại toàn bộ mô hình (retrain), gây tốn kém tài nguyên tính toán.
Mục tiêu dự án
- Nghiên cứu và làm chủ các kỹ thuật thị giác máy tính tiên tiến: Triển khai mạng tích chập (Convolutional Neural Networks - CNNs), kiến trúc Siamese Neural Network, hàm mất mát Triplet Loss và cơ chế One-Shot Learning.
- Tích hợp mô hình phát hiện khuôn mặt tốc độ cao: Ứng dụng Google MediaPipe Face Detection dựa trên kiến trúc BlazeFace nhằm định vị và cắt vùng khuôn mặt theo thời gian thực (Real-time).
- Xây dựng và đánh giá mô hình nhúng vector đặc trưng (Embedding): Thử nghiệm huấn luyện mô hình dựa trên mạng VGG16 tùy biến trên tập dữ liệu người Việt Nam (VN-Celeb) và so sánh hiệu năng đối chuẩn với mô hình FaceNet pre-trained.
- Phát triển phần mềm hoàn chỉnh: Xây dựng ứng dụng Desktop hoàn chỉnh bằng Python và Tkinter với đầy đủ các phân hệ quản lý nhân viên, đăng ký dữ liệu khuôn mặt, nhận diện check-in/check-out và xuất báo cáo chấm công.
Phương pháp tiếp cận và kết quả kỳ vọng
- Phương pháp giải quyết: Chuyển đổi bài toán từ Phân loại đa lớp (Multi-class Classification) sang Đo lường độ tương đồng (Learning Similarity) trong không gian Euclide $N$ chiều. Nhờ đó, việc thêm nhân viên mới chỉ cần trích xuất một hoặc một vài vector đặc trưng $\mathbf{F}(x)$ và lưu vào cơ sở dữ liệu mà không cần tái huấn luyện mô hình.
- Chỉ số đo lường mục tiêu: Thời gian phát hiện và trích xuất khuôn mặt dưới 1 giây/lần; độ trễ xử lý khung hình của MediaPipe $\le 0.2$ giây; độ chính xác nhận diện trên tập kiểm thử đạt mức khả thi cho môi trường nội bộ doanh nghiệp.
Phạm vi và giới hạn
- Phạm vi: Ứng dụng triển khai nội bộ tại các văn phòng, doanh nghiệp vừa và nhỏ, camera cố định tại khu vực quầy lễ tân hoặc cửa kiểm soát ra vào.
- Giới hạn kỹ thuật: Hệ thống nhạy cảm với điều kiện góc quay nghiêng quá $35^\circ$, ánh sáng quá yếu hoặc các phụ kiện che khuất phần lớn khuôn mặt (kính râm, khẩu trang kín toàn phần).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Phương pháp chấm công |
Ưu điểm |
Nhược điểm |
Đánh giá an toàn Covid-19 |
| Máy chấm công vân tay |
Độ chính xác cao, chi phí thiết bị trung bình. |
Cảm biến dễ mòn trầy, nhân viên tay ướt/mờ vân khó nhận diện. |
Nguy cơ lây nhiễm cao do tiếp xúc bề mặt. |
| Thẻ từ / Mã vạch RFID |
Tốc độ quét nhanh, chi phí đầu tư thấp. |
Dễ quên thẻ, mất thẻ, tình trạng chấm công hộ phổ biến. |
Trung bình (vẫn chạm vào đầu đọc hoặc tiếp xúc gần). |
| Nhận diện khuôn mặt Deep Learning |
Không chạm (Contactless), tốc độ $<1$s, chống gian lận tuyệt đối, tự động hóa cao. |
Cần camera độ phân giải ổn định, phụ thuộc điều kiện ánh sáng. |
Tối ưu tuyệt đối (100% không chạm). |
Ma trận ưu tiên yêu cầu người dùng (MoSCoW)
- Must have (Bắt buộc có): Đăng nhập hệ thống, phát hiện khuôn mặt tự động qua Webcam/Camera, trích xuất đặc trưng và nhận diện Check-in/Check-out, ghi nhận thời gian thực vào cơ sở dữ liệu, quản lý hồ sơ nhân viên (CRUD).
- Should have (Nên có): Bộ lọc danh sách chấm công theo ngày/tháng, giao diện Dashboard hiển thị số lượng nhân sự điểm danh trong ngày, chức năng xem trước dữ liệu ảnh khuôn mặt đã huấn luyện.
- Could have (Có thể mở rộng): Tự động gửi email thông báo chấm công cho nhân viên, hỗ trợ chống giả mạo bằng ảnh in (Liveness Detection).
- Won't have (Chưa thực hiện trong phiên bản này): Đồng bộ hóa đa chi nhánh qua điện toán đám mây phân tán, nhận diện đồng thời hàng chục khuôn mặt ở khoảng cách xa $>5$ mét.
Thiết kế hệ thống
graph TD
A[Camera / Webcam Module] -->|Video Stream| B[MediaPipe Face Detector]
B -->|Cropped Face ROI| C[Siamese Feature Extractor]
C -->|128-D Embedding Vector F_y| D[Similarity Comparator]
E[(Database / Vectors F_x)] -->|Stored Embeddings| D
D -->|Calculate d F_x, F_y| F{d <= Threshold?}
F -->|Yes: Min Distance| G[Identify Employee ID]
F -->|No| H[Mark as Unknown]
G --> I[Timekeeping Logger]
I --> J[(SQLite Attendance DB)]
K[Admin GUI: Tkinter] -->|Manage| E
K -->|View Logs| J
Ngăn xếp công nghệ (Technology Stack)
- Ngôn ngữ lập trình chính: Python v3.8.x
- Thư viện thị giác máy tính & Xử lý ảnh: Google MediaPipe v0.8.x (BlazeFace framework), OpenCV (cv2) v4.5.x
- Nền tảng Deep Learning & Huấn luyện: Keras / TensorFlow v2.4+, Google Colaboratory GPU Environment
- Giao diện người dùng (GUI): Python Tkinter Native Desktop GUI Framework
- Môi trường phát triển tích hợp (IDE): Visual Studio Code, Anaconda Virtual Environment
Thiết kế cấu trúc dữ liệu & Cơ chế bảo mật
Hệ thống lưu trữ thông tin nhân viên và các vector biểu diễn đặc trưng khuôn mặt (Face Embeddings) dưới dạng mảng số thực:
tbl_Employees: [EmpID (PK), FullName, Department, Position, CreatedDate]
tbl_FaceEmbeddings: [EmbeddingID (PK), EmpID (FK), VectorData (Blob/Array), ImagePath]
tbl_Attendance: [LogID (PK), EmpID (FK), CheckInTime, CheckOutTime, Date, Status]
Yêu cầu an toàn & bảo mật:
Dữ liệu khuôn mặt không lưu trữ dạng ảnh thô trực tiếp cho việc so khớp mà mã hóa thành vector không gian đa chiều. Mọi tương tác chỉnh sửa dữ liệu chấm công bắt buộc phải thông qua tài khoản Administrator có phân quyền xác thực.
Phương pháp luận phát triển (Methodology)
Dự án áp dụng mô hình phát triển phần mềm Agile/Iterative Prototype kết hợp quy trình R&D chuẩn cho các bài toán Trí tuệ nhân tạo:
- Giai đoạn 1 (Tuần 1 - 3): Thu thập tài liệu, khảo sát các kiến trúc CNN, One-shot Learning và cơ chế Triplet Loss.
- Giai đoạn 2 (Tuần 4 - 7): Tiền xử lý tập dữ liệu VN-Celeb, thiết kế kiến trúc mạng VGG16 tùy biến, thực hiện huấn luyện và tinh chỉnh siêu tham số trên Google Colab.
- Giai đoạn 3 (Tuần 8 - 11): Thử nghiệm MediaPipe Face Detection, tích hợp pipeline nhận diện, đo kiểm độ chính xác đối chuẩn với FaceNet.
- Giai đoạn 4 (Tuần 12 - 14): Thiết kế giao diện Tkinter, kết nối cơ sở dữ liệu, kiểm thử tích hợp (Integration Test) và đóng gói ứng dụng.
Implementation và kết quả
Chi tiết thuật toán và cấu trúc code
1. Phát hiện khuôn mặt thời gian thực với MediaPipe
MediaPipe Face Detection sử dụng mạng nơ-ron BlazeFace siêu nhẹ, trích xuất 6 điểm mốc giải phẫu (mắt phải, mắt trái, chóp mũi, tâm miệng, bi tai trái, bi tai phải) và trả về bounding box chuẩn hóa $[x_{min}, y_{min}, width, height]$.
import cv2
import mediapipe as mp
# Khởi tạo module MediaPipe Face Detection
mp_face_detection = mp.solutions.face_detection
mp_drawing = mp.solutions.drawing_utils
def detect_and_crop_face(frame, min_detection_confidence=0.7):
with mp_face_detection.FaceDetection(
model_selection=0, min_detection_confidence=min_detection_confidence
) as face_detection:
image_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
results = face_detection.process(image_rgb)
cropped_faces = []
if results.detections:
h, w, _ = frame.shape
for detection in results.detections:
bboxC = detection.location_data.relative_bounding_box
xmin = int(bboxC.xmin * w)
ymin = int(bboxC.ymin * h)
box_w = int(bboxC.width * w)
box_h = int(bboxC.height * h)
# Mở rộng vùng biên lấy thêm phần trán/tóc phục vụ trích xuất đặc trưng
ymin_adj = max(0, ymin - int(box_h * 0.15))
face_roi = frame[ymin_adj:ymin + box_h, max(0, xmin):xmin + box_w]
if face_roi.size > 0:
cropped_faces.append(face_roi)
return cropped_faces
2. Mạng Siamese Network & Hàm mất mát Triplet Loss
Thay vì dự đoán nhãn lớp cụ thể, mô hình ánh xạ ảnh đầu vào $x$ thành vector đặc trưng $\mathbf{f}(x) \in \mathbb{R}^d$ trong không gian Euclide. Khoảng cách giữa 2 bức ảnh được tính bằng công thức khoảng cách Euclide:
$$d(img_1, img_2) = |\mathbf{f}(img_1) - \mathbf{f}(img_2)|_2$$
Quy tắc quyết định phân lớp nhị phân:
$$\begin{cases} d(img_1, img_2) \le \tau & \implies \text{Cùng một người (Same)} \ d(img_1, img_2) > \tau & \implies \text{Khác người (Difference)} \end{cases}$$
Hàm mất mát Triplet Loss tối ưu hóa trên bộ 3 ảnh: Anchor ($A$), Positive ($P$) (cùng danh tính với $A$), và Negative ($N$) (khác danh tính với $A$). Mục tiêu ràng buộc là:
$$d(A, P) + \alpha \le d(A, N)$$
Hàm mất mát tổng thể trên toàn bộ batch huấn luyện:
$$\mathcal{L}(A, P, N) = \sum_{i=1}^{n} \max\left( |\mathbf{f}(A_i) - \mathbf{f}(P_i)|_2^2 - |\mathbf{f}(A_i) - \mathbf{f}(N_i)|_2^2 + \alpha, 0 \right)$$
Trong đó, $\alpha$ là hệ số biên an toàn (margin), giúp đẩy cụm vector của người khác ra xa khỏi cụm vector của người mẫu.
Triplet Loss Optimization:
Before: [ P ] <--- d(A,P) ---> [ A ] <--- d(A,N) ---> [ N ]
|
(Triplet Loss Step)
v
After: [ P ][ A ] <------------- d(A,N) -------------> [ N ]
(Pulled Closer) (Pushed Away)
3. Kiến trúc VGG16 tùy biến
Nhóm tác giả giữ lại 15 lớp đầu tiên của mạng chuẩn VGG16 (bao gồm 13 lớp Convolution với kernel kích thước $3 \times 3$, hàm kích hoạt ReLU, xen kẽ 4 lớp Max-Pooling kích thước $2 \times 2$, stride = 2), loại bỏ các lớp Fully Connected gốc và bổ sung lớp Global Average Pooling cùng Dense Layer để xuất ra vector nhúng đặc trưng rút gọn.
import tensorflow as tf
from tensorflow.keras.applications import VGG16
from tensorflow.keras.layers import Dense, Flatten, Lambda, GlobalAveragePooling2D, Input
from tensorflow.keras.models import Model
from tensorflow.keras import backend as K
def build_embedding_network(input_shape=(224, 224, 3), embedding_dim=128):
base_vgg = VGG16(weights='imagenet', include_top=False, input_shape=input_shape)
# Đóng băng 10 lớp đầu tiên, huấn luyện tinh chỉnh từ lớp 11 đến 15
for layer in base_vgg.layers[:10]:
layer.trainable = False
x = base_vgg.layers[15].output # Trích xuất đầu ra từ lớp Conv cuối
x = GlobalAveragePooling2D()(x)
x = Dense(512, activation='relu')(x)
x = Dense(embedding_dim, activation=None)(x)
# L2 Normalization để đưa vector về mặt cầu đơn vị
normalized_embeddings = Lambda(lambda v: K.l2_normalize(v, axis=1))(x)
return Model(inputs=base_vgg.input, outputs=normalized_embeddings, name="Embedding_Model")
Kiểm thử và Đánh giá hiệu năng
Tập dữ liệu huấn luyện (Dataset)
- Sử dụng bộ dữ liệu VN-Celeb ban đầu gồm hơn 23.000 ảnh của hơn 1.000 người nổi tiếng Việt Nam.
- Do giới hạn phần cứng RAM và VRAM trên môi trường Google Colab, nhóm trích xuất tập con gồm 451 người có số lượng ảnh $\ge 20$ tấm/người, đạt tổng cộng 15.490 tấm ảnh.
Kết quả thực nghiệm mô hình
- Quá trình huấn luyện: Mô hình VGG16 tùy biến chạy qua 450 epochs trong thời gian hơn 20 giờ liên tục trên GPU của Google Colaboratory. Giá trị hàm mất mát Triplet Loss giảm đều và hội tụ ổn định sau epoch thứ 380.
Triplet Loss Convergence over 450 Epochs (Google Colab GPU)
Loss
1.2 |---*
1.0 | \
0.8 | \
0.6 | *---*
0.4 | \
0.2 | *-----------------* (Converged at ~0.08)
0.0 +---|-----|-----|-----|-----|-----|----->
0 50 150 250 350 400 450 Epochs
- Đánh giá kiểm thử độ chính xác (Confusion Matrix):
- Tập kiểm thử 2 người: Độ chính xác đạt 89.9%.
- Tập kiểm thử 3 người: Độ chính xác đạt 67.2%.
- Độ chính xác trung bình trên tập mở rộng: Dao động từ 65% - 75% tùy thuộc vào mức độ ổn định ánh sáng và góc chụp.
- Đối chuẩn với mô hình Pre-trained FaceNet:
- Mô hình FaceNet (huấn luyện trên tập dữ liệu 100 - 200 triệu ảnh của 8 triệu người từ Google) cho độ chính xác trên tập dữ liệu LFW đạt 99.63% $\pm$ 0.15%. Khi thử nghiệm thực tế trên hệ thống chấm công, FaceNet duy trì độ nhận diện chính xác tuyệt đối $>98%$ trên tập nhân viên thử nghiệm.
- Đo lường tài nguyên phát hiện khuôn mặt MediaPipe:
- Thời gian xử lý trung bình: 0.2 giây/khung hình (5 FPS real-time) trên CPU tiêu chuẩn.
- Tải CPU tiêu thụ: Xấp xỉ 10%.
- Dung lượng RAM tiêu thụ thêm: Không đáng kể ($<50$ MB).
Đổi mới và đóng góp
Các điểm cải tiến kỹ thuật nổi bật
- Loại bỏ sự phụ thuộc vào quá trình Retrain: Ứng dụng thành công cơ chế One-Shot Learning kết hợp Siamese Network. Khi công ty có thêm 100 nhân viên mới, quản trị viên chỉ cần đăng ký hình ảnh 1 lần; hệ thống tự động lưu vector embedding $\mathbf{F}(x)$ mà không tốn dù chỉ 1 giây để train lại mạng nơ-ron.
- Tối ưu hóa Pipeline nhận diện 2 tầng (Two-stage Pipeline): Tầng 1 sử dụng MediaPipe (BlazeFace) siêu nhanh để loại bỏ các vùng ảnh thừa, chỉ giữ lại vùng đặc trưng mặt người; Tầng 2 chỉ kích hoạt mạng trích xuất đặc trưng khi đã xác định có khuôn mặt hợp lệ, giúp giảm tải CPU/GPU đến 70% so với việc quét CNN toàn khung hình.
- Thích ứng đặc thù dữ liệu người Việt: Việc thử nghiệm huấn luyện trên tập dữ liệu VN-Celeb mang lại những đánh giá khách quan về biểu diễn đặc trưng khuôn mặt của người Việt Nam so với các tập dữ liệu phương Tây chuẩn quốc tế.
So sánh với các giải pháp hiện hành
| Tiêu chí |
Máy chấm công Vân tay quang học |
Hệ thống Softmax CNN cổ điển |
Hệ thống Siamese FaceNet (Đồ án) |
| Cơ chế hoạt động |
Tiếp xúc chạm cảm biến |
Nhận diện mặt qua phân loại đa lớp |
Nhận diện mặt qua đo khoảng cách vector |
| Vấn đề thêm nhân viên mới |
Quét vân tay tại chỗ |
Bắt buộc retrain toàn bộ mạng CNN |
Chỉ trích xuất vector (One-Shot Learning) |
| Thời gian đáp ứng |
$1.5 - 3.0$ giây |
$0.8 - 1.5$ giây |
$< 0.5 - 1.0$ giây |
| Tính an toàn vệ sinh |
Thấp (chạm trực tiếp) |
Tuyệt đối (không chạm) |
Tuyệt đối (không chạm) |
| Khả năng gian lận |
Thấp (nhưng có thể làm giả vân tay) |
Rất thấp |
Rất thấp (nhận diện danh tính sinh trắc học) |
Ứng dụng thực tế và triển khai
Kịch bản sử dụng thực tế (Real-world Use Cases)
- Chấm công nhân viên công sở: Nhân viên bước vào sảnh lễ tân, camera tự động phát hiện khuôn mặt trong vòng 0.5 mét đến 1.5 mét, hiển thị thông tin Check-in thành công kèm thời gian thực mà không cần dừng lại quẹt thẻ.
- Kiểm soát ra vào phân xưởng/phòng máy chủ: Tích hợp cùng khóa cửa điện tử (Relay/Trigger); chỉ mở cửa khi vector khuôn mặt khớp với danh sách nhân sự được cấp quyền.
+--------------------+ +--------------------+
| Admin Dashboard | | Timekeeping Screen |
+---------+----------+ +---------+----------+
| |
| (Manage Staff) | (Camera Live Stream)
v v
+--------------------+ +--------------------+
| Add/Edit Employee | | Check-in/Check-out |
| Capture Face Data | | Instant Logging |
+--------------------+ +--------------------+
Yêu cầu phần cứng và triển khai hệ thống
- Cấu hình máy trạm tối thiểu (Client/Edge Device):
- CPU: Intel Core i3 thế hệ 6 trở lên hoặc AMD Ryzen 3 tương đương.
- RAM: 4 GB DDR4.
- Camera: HD 720p (30fps) tích hợp cổng USB hoặc IP Camera chuẩn RTSP.
- Hệ điều hành: Windows 10/11 64-bit hoặc Ubuntu Linux 18.04+.
- Cấu hình khuyến nghị khi huấn luyện lại (Training Server):
- GPU: NVIDIA GTX 1660 / RTX 2060 (hoặc Google Colab Tesla T4 miễn phí).
- VRAM: Tối thiểu 6 GB.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Mô hình VGG16 tự huấn luyện từ đầu trên tập 451 người cho độ chính xác chưa cao (67.2% trên tập 3 người), còn phụ thuộc nhiều vào chất lượng ảnh mẫu. Do đó, trong môi trường sản xuất thực tế, việc sử dụng các backbone tiền huấn luyện lớn như FaceNet, ArcFace hay InsightFace là giải pháp bắt buộc.
- Chưa tích hợp thuật toán phát hiện giả mạo khuôn mặt (Anti-Spoofing / Liveness Detection), hệ thống có nguy cơ bị đánh lừa bởi ảnh in chất lượng cao hoặc màn hình điện thoại.
- Khoảng cách phát hiện của MediaPipe bị giảm hiệu quả khi camera đặt quá xa ($>3$ mét) hoặc góc quay lệch quá $35^\circ$.
Hướng phát triển tiếp theo
- Bổ sung mô hình Anti-Spoofing: Tích hợp kiểm tra chớp mắt tự nhiên, phân tích kết cấu da (Texture Analysis) hoặc bản đồ độ sâu (Depth Map) để chống gian lận bằng ảnh chụp.
- Nâng cấp kiến trúc mạng Backbone: Ứng dụng ArcFace với hàm mất mát Additive Angular Margin Loss để tối đa hóa khoảng cách phân tách góc giữa các danh tính.
- Chuyển đổi đa nền tảng: Đóng gói hệ thống dưới dạng Web Application (Backend FastAPI/Flask, Frontend React) hoặc ứng dụng nhúng trên các bo mạch biên như Raspberry Pi 4, NVIDIA Jetson Nano.
Đối tượng hưởng lợi
- Sinh viên & Học viên ngành CNTT/Khoa học Máy tính: Tài liệu học tập trực quan, bao quát toàn bộ quy trình xây dựng bài toán nhận dạng từ lý thuyết toán học (CNN, Triplet Loss, One-Shot Learning) đến sản phẩm phần mềm thực tế.
- Lập trình viên & Kỹ sư AI: Cung cấp pattern mẫu về tích hợp MediaPipe BlazeFace với pipeline nhúng vector đặc trưng và xây dựng giao diện ứng dụng nghiệp vụ Desktop.
- Doanh nghiệp vừa và nhỏ (SMEs): Giải pháp chấm công chi phí 0 đồng tiền bản quyền, tái tận dụng hệ thống máy tính và webcam sẵn có, giải quyết bài toán an toàn dịch bệnh và nâng cao hiệu quả quản trị nhân sự.
- Nhà nghiên cứu thị giác máy tính: Nguồn tham khảo về việc xử lý và đánh giá độ chính xác của mạng Siamese trên tập dữ liệu đặc thù người Việt Nam (VN-Celeb).
Câu hỏi thường gặp
1. Hệ thống có thể hoạt động ngoại tuyến (Offline) không?
Có. Toàn bộ quá trình phát hiện khuôn mặt bằng MediaPipe, trích xuất vector đặc trưng bằng mạng nơ-ron và so khớp khoảng cách Euclide đều được thực thi cục bộ trên máy tính trạm mà không cần kết nối Internet.
2. Sự khác biệt cốt lõi giữa phương pháp phân loại Softmax thông thường và mạng Siamese trong bài toán này là gì?
Mạng Softmax cố định số lượng đầu ra theo số nhân viên hiện có; mỗi khi thêm hoặc xóa nhân viên, mô hình phải thay đổi kiến trúc và huấn luyện lại. Ngược lại, mạng Siamese đóng vai trò là một bộ trích xuất đặc trưng hình học cố định (Feature Extractor), chỉ biến đổi ảnh thành vector tọa độ và so sánh khoảng cách, cho phép mở rộng quy mô nhân sự không giới hạn mà không cần huấn luyện lại.
3. Ngưỡng khoảng cách Euclide ($\tau$) được xác định như thế nào?
Ngưỡng $\tau$ được xác định thông qua thực nghiệm trên tập xác thực (Validation Set). Bằng cách quét dải giá trị từ 0.4 đến 1.2, nhóm nghiên cứu chọn giá trị $\tau$ tối ưu hóa điểm cân bằng giữa tỷ lệ chấp nhận sai (FAR - False Acceptance Rate) và tỷ lệ từ chối sai (FRR - False Rejection Rate).
4. Hệ thống xử lý thế nào khi có nhân viên mới gia nhập công ty?
Quản trị viên mở màn hình "Thêm nhân viên", nhập thông tin cá nhân và chụp từ 5 - 10 góc mặt của nhân viên mới qua webcam. Hệ thống tự động chuyển đổi thành các vector trung bình và lưu vào cơ sở dữ liệu. Toàn bộ quy trình diễn ra trong chưa đầy 30 giây.
5. Chi phí triển khai hệ thống so với máy chấm công chuyên dụng là bao nhiêu?
Hệ thống tận dụng trực tiếp máy tính quản lý sẵn có của doanh nghiệp cùng một webcam chuẩn HD trị giá khoảng 300.000 - 600.000 VNĐ, giúp tiết kiệm từ 70% - 90% chi phí so với việc đầu tư các bộ máy chấm công nhận diện khuôn mặt chuyên dụng trên thị trường (thường có giá từ 4.000.000 - 15.000.000 VNĐ).
Kết luận
Đồ án tốt nghiệp "Ứng dụng chấm công bằng nhận dạng khuôn mặt sử dụng Deep Learning" của sinh viên Trần Quang Trung và Hồ Duy Quang đã 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. Đề tài không chỉ làm sáng tỏ các nền tảng lý thuyết chuyên sâu về Mạng nơ-ron tích chập (CNN), One-Shot Learning, kiến trúc mạng Siamese Network và hàm mất mát Triplet Loss, mà còn hiện thực hóa thành công một sản phẩm phần mềm Desktop hoàn chỉnh, đáp ứng trọn vẹn nghiệp vụ quản lý chấm công trong môi trường doanh nghiệp. Với khả năng nhận diện không tiếp xúc, tốc độ xử lý nhanh dưới 1 giây và loại bỏ hoàn toàn gánh nặng huấn luyện lại mô hình khi biến động nhân sự, nghiên cứu đã mở ra hướng ứng dụng công nghệ thị giác máy tính hiệu quả, góp phần hiện đại hóa công tác quản trị và bảo vệ sức khỏe người lao động trong kỷ nguyên số.