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

Trong bối cảnh khoa học và công nghệ phát triển nhanh chóng, sự phổ cập của các thiết bị thông minh (smartphone) đã tạo ra một khối lượng dữ liệu hình ảnh khổng lồ trong đời sống xã hội. Lĩnh vực xử lý ảnh và thị giác máy tính theo đó trở thành một hướng nghiên cứu mũi nhọn, không chỉ dừng lại ở các tác vụ cơ bản như nâng cao chất lượng hay chỉnh sửa ảnh, mà mở rộng sang các bài toán nhận dạng phức tạp như nhận dạng chữ viết, dấu vân tay và nhận dạng khuôn mặt (Face Recognition). Khuôn mặt là phương tiện giao tiếp mang lượng thông tin đặc trưng phong phú về giới tính, độ tuổi, cảm xúc và danh tính, đóng vai trò then chốt trong các hệ thống an ninh, kiểm soát vào - ra và giám sát tự động.

Tại nhiều cơ quan, doanh nghiệp và nhà xưởng, hoạt động điểm danh và chấm công công nhân hiện nay vẫn phụ thuộc nhiều vào các hình thức truyền thống như điểm danh thủ công qua sổ sách, quét thẻ từ hoặc quét vân tay. Các phương pháp này bộc lộ nhiều điểm bất cập trong công tác quản lý:

  • Điểm danh bằng gọi tên thủ công: Tốn kém thời gian, dễ nhầm lẫn và tiềm ẩn rủi ro thất thoát dữ liệu sổ sách.
  • Điểm danh bằng thẻ từ: Khó bảo trì, dễ xảy ra tình trạng chấm công hộ hoặc quên mang thẻ.
  • Chấm công bằng vân tay: Thiết bị dễ bị bám bẩn, khó bảo dưỡng linh kiện và tiềm ẩn nguy cơ lây lan các bệnh truyền nhiễm qua tiếp xúc bề mặt.

Để giải quyết những hạn chế trên, đề tài "Xây dựng hệ thống chấm công bằng nhận diện khuôn mặt" được thực hiện nhằm cung cấp một giải pháp tự động hóa hoàn toàn quy trình chấm công thông qua camera, hướng đến mục tiêu minh bạch, chính xác và giảm thiểu thao tác thủ công.

Nhiệm vụ nghiên cứu cụ thể của đề tài bao gồm:

  1. Tìm hiểu và khảo sát nền tảng lập trình Python cùng bộ thư viện xử lý ảnh nguồn mở OpenCV (Open Source Computer Vision).
  2. Nghiên cứu các phương pháp và mô hình phát hiện khuôn mặt (Face Detection), đặc biệt là kỹ thuật trích chọn đặc trưng Haar Cascade.
  3. Nghiên cứu giải pháp phân loại và nhận dạng khuôn mặt dựa trên thuật toán LBPH (Local Binary Patterns Histograms).
  4. Thiết kế và cài đặt chương trình ứng dụng hoàn chỉnh, có giao diện quản lý, thực hiện thu thập dữ liệu khuôn mặt, huấn luyện mô hình, nhận dạng và tự động xuất dữ liệu chấm công ra tập tin CSV.

Đối tượng và phạm vi nghiên cứu của đề tài được xác định như sau:

  • Đối tượng nghiên cứu: Các thuật toán, mô hình trích xuất đặc trưng và phân lớp hình ảnh (Haar-like features, thuật toán tăng cường AdaBoost, cấu trúc tầng Cascade Classifier, thuật toán LBPH) và thư viện thị giác máy tính OpenCV.
  • Phạm vi nghiên cứu:
    • Đề tài tập trung vào việc hiện thực hóa quy trình nhận dạng khuôn mặt (Face Recognition) ứng dụng cho bài toán chấm công công nhân.
    • Điều kiện dữ liệu thử nghiệm: Xử lý hình ảnh khuôn mặt chất lượng cao trong các điều kiện chiếu sáng bình thường, ngược sáng và ánh sáng đèn điện nhân tạo; góc chụp khuôn mặt trực diện (frontal) hoặc hơi nghiêng; không bị che khuất (no occlusion).

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

Khung lý thuyết về xử lý ảnh số

Ảnh số (Digital Image) trong không gian hai chiều được định nghĩa là một hàm hai biến $f(x, y)$, trong đó $x$ và $y$ là tọa độ không gian, còn biên độ $f$ tại mỗi điểm thể hiện mức xám (Gray level) hoặc cường độ sáng của điểm ảnh (Pixel - Picture Element). Một hệ thống xử lý ảnh cơ bản trải qua 5 giai đoạn cốt lõi: Thu nhận ảnh (Image Acquisition), Tiền xử lý (Image Processing), Phân đoạn ảnh (Segmentation), Biểu diễn và trích chọn đặc trưng (Representation and Feature Selection), Nhận dạng và nội suy ảnh (Image Recognition and Interpretation).

Các hướng tiếp cận bài toán phát hiện khuôn mặt

Trong lý thuyết thị giác máy tính, việc xác định vị trí khuôn mặt trong một bức ảnh bất kỳ được chia thành 4 nhóm phương pháp tiếp cận chính:

Hướng tiếp cận Nguyên lý thực hiện Ưu điểm Hạn chế Nghiên cứu tiêu biểu
Dựa trên tri thức (Knowledge-based) Xây dựng các tập luật mô tả hình học khuôn mặt từ trên xuống (top-down) như tính đối xứng của mắt, mũi, miệng. Dễ hiểu, phản ánh đúng quan sát trực quan của con người. Khó chuyển hóa tri thức thành quy tắc chuẩn xác; dễ bỏ sót hoặc nhận nhầm khi tư thế thay đổi. Kanade (1973), Yang (1994), Kotropoulos (1997).
Dựa trên đặc trưng không đổi (Feature invariant) Tìm kiếm các thuộc tính cấu trúc bất biến từ dưới lên (bottom-up) như cạnh, lông mày, đường viền tóc, màu da. Khả năng thích ứng với các điều kiện thay đổi góc nhìn nhất định. Dễ bị nhiễu và ảnh hưởng bởi bóng đổ trên khuôn mặt, gây tạo cạnh giả. Yow & Cipolla (1997), Leung (1995).
Đối sánh mẫu (Template matching) Sử dụng các mẫu khuôn mặt chuẩn (cố định hoặc biến dạng) để tính toán hệ số tương quan với vùng ảnh cần xét. Cài đặt đơn giản, phù hợp với ảnh chuẩn trực diện. Không hiệu quả khi tỷ lệ, kích thước hoặc biểu cảm biến đổi phức tạp. Craw (1992), Lanitis (1995).
Dựa trên diện mạo (Appearance-based) Áp dụng các mô hình học máy để học đặc trưng từ tập dữ liệu mẫu huấn luyện (positive và negative). Độ chính xác cao, khả năng tổng quát hóa tốt trên tập dữ liệu lớn. Đòi hỏi tập mẫu huấn luyện đa dạng và thời gian tính toán lớn. Turk & Pentland (1991), Viola & Jones (2001).

Đồ án lựa chọn hướng tiếp cận dựa trên diện mạo thông qua phương pháp Haar Cascade kết hợp AdaBoost để phát hiện khuôn mặt và thuật toán LBPH để nhận dạng.

Thuật toán Haar-like và Bộ phân loại AdaBoost

Phương pháp Haar-like do Paul Viola và Michael Jones đề xuất (2001) dựa trên nguyên lý sóng Haar-wavelet. Giá trị của một đặc trưng Haar là độ chênh lệch giữa tổng giá trị độ xám trong các vùng hình chữ nhật đen và trắng: $$f(x) = \sum \text{Pixel}{\text{vùng trắng}} - \sum \text{Pixel}{\text{vùng đen}}$$

Để tối ưu hóa tốc độ xử lý theo thời gian thực, kỹ thuật Tích phân ảnh (Integral Image) được sử dụng. Bảng tổng tích lũy $CS(x, y)$ cho phép tính tổng mức xám của một vùng chữ nhật $ABCD$ bất kỳ chỉ với 4 phép truy xuất: $$S[ABCD] = CS[C] - CS[B] - CS[D] + CS[A]$$

Thuật toán AdaBoost (Freund & Schapire, 1995) thực hiện huấn luyện và kết hợp các bộ phân loại yếu $h_j(x)$ thành bộ phân loại mạnh $H(x)$: $$H(x) = \text{sign}\left(\sum_{j=1}^{T} \alpha_j h_j(x)\right)$$

Các bộ phân loại mạnh được tổ chức thành cấu trúc tầng (Cascade of Boosted Classifiers). Một vùng ảnh ứng viên sẽ bị loại bỏ ngay lập tức nếu không vượt qua được một tầng phân loại, giúp loại trừ nhanh các vùng nền (background) và chỉ giữ lại các vùng có khả năng là khuôn mặt để phân tích sâu hơn.

Thuật toán nhận dạng LBPH (Local Binary Patterns Histograms)

Thuật toán LBPH trích xuất đặc trưng kết cấu cục bộ của khuôn mặt. Tại mỗi điểm ảnh $(x_c, y_c)$ có mức xám $g_c$, ma trận $3 \times 3$ chứa 8 điểm ảnh lân cận $g_n$ sẽ được so sánh theo ngưỡng $g_c$. Giá trị nhị phân được gán là 1 nếu $g_n \ge g_c$ và 0 nếu ngược lại, sau đó chuyển đổi thành một giá trị thập phân: $$\text{LBP}(x_c, y_c) = \sum_{n=0}^{7} s(g_n - g_c) 2^n \quad \text{với} \quad s(x) = \begin{cases} 1 & \text{khi } x \ge 0 \ 0 & \text{khi } x < 0 \end{cases}$$

Ảnh kết quả sau khi tính LBP được chia thành các lưới nhỏ ($Grid X \times Grid Y$). Biểu đồ phân bố tần suất (Histogram) của từng lưới được nối lại thành một vectơ đặc trưng tổng hợp. Quá trình nhận dạng được thực hiện bằng cách tính khoảng cách Euclid (Euclidean distance) giữa biểu đồ của ảnh đầu vào và biểu đồ trong cơ sở dữ liệu: $$D = \sqrt{\sum_{i=1}^{N} (\text{hist1}_i - \text{hist2}_i)^2}$$

Hệ sinh thái công nghệ sử dụng

  • Ngôn ngữ lập trình: Python.
  • Môi trường phát triển tích hợp (IDE): JetBrains PyCharm.
  • Các thư viện bổ trợ: OpenCV (xử lý luồng hình ảnh, phát hiện đối tượng với tệp haarcascade_frontalface_default.xml), NumPy (xử lý ma trận dữ liệu mảng), Pandas (thao tác và xuất dữ liệu dạng bảng), Pillow (xử lý ảnh số cơ bản), TensorFlow và Keras (mô hình học máy), Matplotlib (trực quan hóa đồ thị).

Thiết kế và triển khai

Kiến trúc và luồng hoạt động của hệ thống

Hệ thống chấm công bằng nhận dạng khuôn mặt được thiết kế theo quy trình khép kín gồm 4 bước chính:

[Webcam / Thu nhận ảnh] 
[Chuyển đổi sang ảnh xám (Grayscale)]
[Phát hiện khuôn mặt: Haar Cascade Classifier (detectMultiScale)]
[Tiền xử lý & Cắt vùng khuôn mặt]
[Trích xuất đặc trưng & Huấn luyện / Đối sánh bằng LBPH]
[Hiển thị kết quả & Tự động ghi nhận log điểm danh vào tệp CSV]

Triển khai các phân hệ chức năng

  1. Phân hệ quản lý thông tin và thu thập mẫu: Người quản lý nhập mã định danh (ID) và Tên của công nhân trên giao diện. Hệ thống kích hoạt webcam máy tính để chụp liên tiếp khoảng 20 ảnh mẫu ở các góc chụp khác nhau cho mỗi đối tượng nhằm đa dạng hóa tập mẫu huấn luyện.
  2. Phân hệ tiền xử lý và lưu trữ: Các bức ảnh chụp được tự động chuẩn hóa sang định dạng thang độ xám (Gray level), xác định vùng khuôn mặt thông qua cấu trúc Haar Cascade và lưu trữ vào thư mục dữ liệu kèm nhãn ID tương ứng.
  3. Phân hệ huấn luyện mô hình (Training): Bộ huấn luyện LBPH Face Recognizer đọc toàn bộ tập ảnh khuôn mặt cùng nhãn định danh, thực hiện trích xuất các biểu đồ đặc trưng kết cấu cục bộ và lưu trữ trọng số mô hình đã học.
  4. Phân hệ nhận dạng và chấm công: Khi đối tượng xuất hiện trước camera, hệ thống phát hiện khuôn mặt trong thời gian thực bằng hàm detectMultiScale với các tham số tối ưu (như scaleFactor = 1.1, minNeighbors = 5). Vùng ảnh khuôn mặt được đưa qua bộ nhận dạng LBPH để so khớp khoảng cách Euclid; nếu khoảng cách nhỏ hơn ngưỡng tin cậy, thông tin ID, Tên và mốc thời gian (timestamp) hiện tại sẽ được tự động ghi nhận vào tệp diemdanh.csv.

Môi trường thực nghiệm

  • Phần cứng: Máy tính xách tay chạy hệ điều hành Windows 10 Pro, vi xử lý Intel Core i5-8265U, bộ nhớ trong (RAM) 8GB.
  • Phần mềm: Python 3, PyCharm IDE, OpenCV library.

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

CHƯƠNG 1: TỔNG QUAN VỀ CƠ SỞ LÝ THUYẾT

Chương 1 tập trung trình bày các kiến thức nền tảng về ngôn ngữ lập trình Python, môi trường phát triển PyCharm, tổng quan về xử lý ảnh số và các thư viện mã nguồn mở chuyên dụng. Tác giả phân tích chi tiết cấu trúc ma trận của ảnh số, khái niệm điểm ảnh (Pixel), độ phân giải (Resolution), các thang mức xám từ 0 đến 255 (biểu diễn bởi 8-bit), cùng mô hình không gian màu RGB 3 kênh ($2^{24} \approx 16,7$ triệu màu).

Chương này cũng phân tích cấu trúc tổng quan 5 thành phần của thư viện OpenCV gồm: CV (xử lý ảnh và thị giác máy tính), MLL (các thuật toán học máy), HighGUI (giao diện đồ họa và thủ tục đọc/ghi tệp ảnh/video), Cxcore (cấu trúc dữ liệu nền tảng và hỗ trợ XML), và IPP (tối ưu hóa cho phần cứng Intel). Ngoài ra, các thư viện hỗ trợ như NumPy, Pandas, Pillow, TensorFlow, Keras và Matplotlib được hệ thống hóa rõ ràng về tính năng.

CHƯƠNG 2: XÂY DỰNG HỆ THỐNG ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT

Chương 2 là trọng tâm lý thuyết và phương pháp luận của đồ án. Tác giả khảo sát chi tiết 4 hướng tiếp cận phát hiện khuôn mặt trong ảnh kỹ thuật số (tri thức, đặc trưng không đổi, đối sánh mẫu, diện mạo) và so sánh các ưu - nhược điểm của các hình thức điểm danh truyền thống với nhận diện khuôn mặt tự động.

Nội dung đi sâu vào cơ chế toán học của bộ phát hiện khuôn mặt Viola-Jones:

  • Trích xuất đặc trưng Haar-like cơ bản (đặc trưng cạnh, đường, tâm) và các dạng mở rộng (quay $45^\circ$, hình bình hành).
  • Cách sử dụng mảng tích phân ảnh (Integral Image) để tính tổng mức xám vùng chữ nhật qua 4 phép truy xuất mảng.
  • Cơ chế huấn luyện và điều chỉnh trọng số của thuật toán AdaBoost, kết hợp các phân lớp yếu thành phân lớp mạnh và ghép nối thành cấu trúc tầng (Cascade tree) nhằm loại bỏ nhanh các vùng không chứa khuôn mặt (non-face).
  • Chi tiết toán học của bộ nhận dạng LBPH (Local Binary Patterns Histograms): cấu trúc toán tử lân cận bán kính $R=1$, số điểm lân cận $P=8$, phép gán nhị phân theo ngưỡng tâm $g_c$, trích xuất biểu đồ đa lưới và đo độ tương đồng bằng khoảng cách Euclid.

CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH

Chương 3 trình bày chi tiết quá trình thiết kế, cài đặt mã nguồn và hiện thực hóa các giao diện của ứng dụng chấm công. Các bước thiết lập thực nghiệm bao gồm: thu thập tập mẫu gồm 20 ảnh/công nhân qua webcam; xây dựng giao diện người dùng hiển thị trực quan khung hình camera; cấu hình các hàm xử lý ảnh từ thư viện OpenCV (cv2.CascadeClassifier, cv2.face.LBPHFaceRecognizer_create); và lưu trữ kết quả nhận dạng theo thời gian thực vào bảng dữ liệu CSV. Tác giả minh họa trực quan các màn hình chức năng của phần mềm từ giai đoạn nhập thông tin, chụp ảnh, huấn luyện cho đến giai đoạn nhận dạng và ghi nhận công.


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

Kết quả thực nghiệm

Tác giả đã triển khai thử nghiệm hệ thống nhận dạng trên tập dữ liệu ảnh tĩnh độc lập gồm 30 ảnh mẫu định dạng JPG và JPEG với nhiều kích thước khác nhau. Kết quả đánh giá định lượng cho thấy:

  • Hệ thống đạt tỷ lệ nhận dạng chính xác xấp xỉ 92,6% trên tập dữ liệu thử nghiệm trong điều kiện môi trường tiêu chuẩn.
  • Các chức năng phát hiện khuôn mặt, trích xuất đặc trưng, huấn luyện mô hình và tự động xuất dữ liệu điểm danh ra tệp CSV hoạt động ổn định và đồng bộ.
Tiêu chí thử nghiệm Giá trị / Trạng thái thực tế
Dung lượng tập dữ liệu thử nghiệm 30 bức ảnh tĩnh (định dạng JPG, JPEG)
Dung lượng tập huấn luyện mỗi người Khoảng 20 bức ảnh/công nhân (chụp từ máy tính)
Độ chính xác nhận dạng trung bình 92,6%
Phần cứng thực nghiệm Laptop Intel Core i5-8265U, 8GB RAM, Windows 10 Pro
Định dạng dữ liệu đầu ra Tệp tin bảng tính .csv (ID, Tên, Thời gian)

Đóng góp của đề tài

  1. Về mặt kỹ thuật: Hiện thực hóa thành công chuỗi xử lý kết hợp giữa bộ phân loại tầng Haar Cascade (phát hiện khuôn mặt nhanh) và thuật toán LBPH (trích xuất đặc trưng kết cấu cục bộ để phân loại), tạo nên một hệ thống nhận dạng hoàn chỉnh trên nền tảng Python và OpenCV.
  2. Về mặt ứng dụng: Xây dựng một giải pháp phần mềm có giao diện người dùng thân thiện, giải quyết bài toán điểm danh tự động hóa tại các cơ sở sản xuất và xưởng làm việc, loại bỏ hoàn toàn các sai sót và rủi ro thất thoát của việc chấm công thủ công bằng giấy tờ.

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

Hạn chế của đề tài

Dựa trên các phân tích đánh giá trong báo cáo, đề tài còn tồn tại một số hạn chế:

  • Phương thức nhập liệu: Hệ thống mới chỉ thực hiện chấm công thông qua việc tải lên hoặc chụp các tệp ảnh tĩnh của công nhân, chưa hỗ trợ xử lý trực tiếp trên luồng video liên tục từ camera công nghiệp.
  • Không gian nhận dạng: Chưa xử lý được nhận dạng khuôn mặt trong không gian 3 chiều (3D), dẫn đến độ chính xác suy giảm khi công nhân quay đầu ở các góc nghiêng lớn.
  • Độ nhạy môi trường: Hiệu quả nhận diện bị ảnh hưởng đáng kể bởi các yếu tố ngoại cảnh như cường độ ánh sáng yếu, ngược sáng mạnh, khoảng cách từ người đến camera quá xa, hoặc khuôn mặt bị che khuất một phần (khẩu trang, kính râm).
  • Yêu cầu tài nguyên: Chương trình đòi hỏi cấu hình phần cứng máy tính tương đối cao để duy trì tốc độ tính toán ổn định.

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

  • Nghiên cứu và tích hợp mô hình điểm danh tự động trực tiếp trên luồng camera thời gian thực (Real-time video streaming) lắp đặt tại cửa ra vào nhà xưởng.
  • Mở rộng các thuật toán nhận dạng khuôn mặt 3D để tăng cường độ chính xác khi góc nhìn thay đổi.
  • Tối ưu hóa mã nguồn và cấu trúc mô hình nhằm giảm tải tiêu thụ tài nguyên phần cứng, cho phép triển khai trên các thiết bị nhúng hoặc máy tính có cấu hình phổ thông.

Giá trị tham khảo

Đồ án tốt nghiệp là tài liệu tham khảo hữu ích cho:

  • Sinh viên ngành Công nghệ thông tin, Khoa học máy tính và Kỹ thuật phần mềm: Cung cấp tài liệu mẫu mực về quy trình triển khai một ứng dụng thị giác máy tính thực tế, từ nền tảng lý thuyết toán học (Tích phân ảnh, Haar, AdaBoost, LBP) đến kỹ năng lập trình với Python và OpenCV.
  • Người nghiên cứu các hệ thống nhúng và điểm danh tự động: Cung cấp hướng dẫn chi tiết về cấu trúc các thành phần của OpenCV, cách xây dựng cơ sở dữ liệu khuôn mặt tự động và phương pháp tổ chức lưu trữ dữ liệu điểm danh ra định dạng bảng tính CSV.

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

1. Đồ án sử dụng thuật toán nào để phát hiện vị trí khuôn mặt và thuật toán nào để nhận dạng danh tính?

Đồ án sử dụng thuật toán Haar-like kết hợp bộ phân loại tầng AdaBoost (Cascade Classifier) thông qua mô hình huấn luyện sẵn haarcascade_frontalface_default.xml để phát hiện vị trí khuôn mặt trong ảnh. Sau đó, tác giả sử dụng thuật toán LBPH (Local Binary Patterns Histograms) để trích xuất đặc trưng kết cấu cục bộ và so khớp danh tính đối tượng.

2. Nguyên lý hoạt động của mảng tích phân ảnh (Integral Image) trong việc tính toán đặc trưng Haar là gì?

Mảng tích phân ảnh $CS(x, y)$ lưu trữ tổng mức xám tích lũy của tất cả các điểm ảnh nằm phía trên và bên trái của tọa độ $(x, y)$. Nhờ cấu trúc này, tổng mức xám của bất kỳ vùng hình chữ nhật nào trong ảnh đều được tính toán nhanh chóng chỉ bằng 4 phép truy xuất giá trị mảng tại 4 đỉnh của hình chữ nhật, giúp giảm thiểu tối đa chi phí tính toán lặp lại theo tỷ lệ ảnh.

3. Tập dữ liệu huấn luyện và tập dữ liệu thử nghiệm của phần mềm được thu thập và đánh giá ra sao?

  • Tập huấn luyện: Thu thập khoảng 20 bức ảnh khuôn mặt cho mỗi công nhân bằng webcam máy tính ở các điều kiện ánh sáng tốt và góc nhìn thẳng/nghiêng nhẹ.
  • Tập thử nghiệm: Thực hiện đánh giá trên tập ảnh tĩnh gồm 30 ảnh độc lập định dạng JPG/JPEG với nhiều kích thước khác nhau, đạt độ chính xác nhận dạng trung bình là 92,6%.

4. Kết quả điểm danh của hệ thống được lưu trữ như thế nào và chứa các trường thông tin gì?

Sau khi hệ thống phát hiện và nhận dạng thành công một đối tượng hợp lệ, toàn bộ dữ liệu điểm danh sẽ được tự động ghi nhận và lưu trữ vào 01 tệp tin định dạng CSV (.csv), bao gồm các thông tin: Mã định danh công nhân (ID), Tên công nhân và Mốc thời gian ra/vào xưởng.

5. Những yếu tố nào trong môi trường thực tế làm suy giảm hiệu năng của hệ thống?

Hiệu năng nhận diện của hệ thống bị suy giảm khi hoạt động trong môi trường có ánh sáng yếu hoặc bị ngược sáng mạnh, công nhân đứng ở khoảng cách quá xa so với camera, khuôn mặt bị che khuất (bởi khẩu trang, vật cản) hoặc góc quay của khuôn mặt quá nghiêng so với trục ống kính.


Kết luận

Đồ án tốt nghiệp "Xây dựng hệ thống chấm công bằng nhận diện khuôn mặt" của tác giả Bùi Quang Huy đã hoàn thành việc nghiên cứu và ứng dụng thành công các thuật toán thị giác máy tính cổ điển gồm Haar Cascade, AdaBoost và LBPH trên nền tảng ngôn ngữ Python kết hợp thư viện OpenCV. Hệ thống đã hiện thực hóa trọn vẹn quy trình điểm danh tự động từ bước thu thập mẫu ảnh, huấn luyện dữ liệu, nhận dạng người dùng cho đến xuất báo cáo ra tệp CSV, đạt độ chính xác thực nghiệm 92,6% trên tập ảnh tĩnh. Mặc dù vẫn còn những giới hạn về khả năng xử lý luồng video trực tiếp và tính nhạy cảm với điều kiện môi trường ánh sáng phức tạp, công trình đã xây dựng được một khung giải pháp kỹ thuật có tính ứng dụng cao và tạo tiền đề vững chắc cho các nghiên cứu mở rộng trong tương lai.