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

Đồ án tốt nghiệp "Xây dựng hệ thống điểm danh nhận diện khuôn mặt" được thực hiện bởi nhóm sinh viên Hồ Anh Hòa (MSV: 205748020110041) và Nguyễn Hữu Nhật (MSV: 205748020110020) thuộc Nhóm 23, dưới sự hướng dẫn của TS. Cao Thanh Sơn, hoàn thành vào tháng 12/2023 tại Nghệ An.

Bối cảnh thực tiễn và lý do chọn đề tài

Khảo sát thực tế tại Trường Đại học Vinh cho thấy mô hình tổ chức đào tạo được phân chia theo các lớp học phần. Mỗi lớp học phần bao gồm một giảng viên phụ trách và quy mô từ 20 đến 80 sinh viên. Trong phương thức quản lý truyền thống, đầu hoặc cuối mỗi buổi học, giảng viên phải mở danh sách lớp và đọc tên từng sinh viên để ghi nhận sự có mặt. Quy trình thủ công này tồn tại các hạn chế:

  • Tiêu tốn từ 5 đến 10 phút của mỗi tiết học, làm giảm thời lượng giảng dạy và tương tác chuyên môn.
  • Dễ phát sinh sai sót trong quá trình ghi chép thủ công trên danh sách giấy.
  • Khó kiểm soát và phát hiện các trường hợp gian lận như điểm danh hộ hoặc đi học hộ.

Việc ứng dụng thị giác máy tính và trí tuệ nhân tạo để nhận diện khuôn mặt qua máy ảnh cho phép tự động hóa quy trình xác thực danh tính sinh viên, giảm thiểu thời gian thao tác và nâng cao tính minh bạch trong quản lý đào tạo.

Mục tiêu và nhiệm vụ nghiên cứu

Đồ án đặt ra các mục tiêu và nhiệm vụ cụ thể:

  1. Nghiên cứu tổng quan bài toán nhận diện khuôn mặt trong lĩnh vực thị giác máy tính và các giải pháp thương mại hiện có.
  2. Xây dựng quy trình nghiệp vụ điểm danh tự động gồm 8 giai đoạn: thu thập dữ liệu, tiền xử lý dữ liệu, trích chọn đặc trưng, huấn luyện mô hình, đánh giá mô hình, triển khai hệ thống, ghi nhận lịch sử và bảo mật dữ liệu.
  3. Phân tích, thiết kế hệ thống hướng đối tượng với 3 nhóm tác nhân (Quản trị viên, Giảng viên, Sinh viên) và xây dựng cơ sở dữ liệu quan hệ hoàn chỉnh.
  4. Triển khai ứng dụng web tích hợp mô hình nhận diện khuôn mặt, thực hiện kiểm thử chức năng và đánh giá kết quả thực tế.

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

  • Đối tượng nghiên cứu: Quy trình điểm danh sinh viên và các giải pháp trích chọn đặc trưng, nhận diện khuôn mặt phục vụ định danh tự động.
  • Phạm vi không gian: Áp dụng cho các lớp học phần tại Trường Đại học Vinh.
  • Phạm vi thời gian: Đồ án được triển khai và hoàn thành trong thời gian 10 tuần, nghiệm thu vào tháng 12/2023.

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

Khung lý thuyết và mô hình kỹ thuật

Bài toán nhận diện khuôn mặt được triển khai theo mô hình xử lý 3 bước tiêu chuẩn của thị giác máy tính:

  1. Phát hiện khuôn mặt: Xác định vị trí và giới hạn khuôn mặt người trong ảnh tĩnh hoặc khung hình từ luồng video.
  2. Tiền xử lý và trích chọn đặc trưng: Chuẩn hóa kích thước hình ảnh cắt từ video để giảm ảnh hưởng của sự biến đổi tỷ lệ; lọc nhiễu và tăng độ nét; áp dụng phương pháp LBPH (Local Binary Patterns Histogram) để mã hóa và trích xuất các vector đặc trưng khuôn mặt.
  3. So sánh và nhận diện: So khớp các vector đặc trưng vừa trích xuất với tập dữ liệu khuôn mặt đã được lưu trữ trong cơ sở dữ liệu để đưa ra kết luận về danh tính có độ trùng khớp cao nhất.

Khảo sát các giải pháp liên quan

Tác giả tiến hành khảo sát hai phần mềm điểm danh nhận diện khuôn mặt tiêu biểu tại Việt Nam:

Tiêu chí Phần mềm ACheckin Phần mềm VN Face School
Đơn vị phát triển Appota Group Nền tảng chuyên biệt cho giáo dục
Phần cứng / Công nghệ Hanet AI Camera tích hợp NPU, độ phân giải 2K, bộ nhớ 8GB/32GB/64GB Máy ảnh giám sát tiêu chuẩn kết hợp máy chủ nhận diện
Chức năng chính Chấm công, quản lý nhân sự, quản lý dự án, truyền thông nội bộ Điểm danh học sinh, quản lý đưa đón, kết nối phụ huynh và nhà trường
Độ chính xác & Tốc độ Xử lý trực tiếp trên camera AI, giảm tải hạ tầng Độ chính xác công bố đạt 99,99%, thời gian nhận diện < 1 giây

Ngoài ra, nhóm nghiên cứu đã khảo sát các nền tảng thương mại quốc tế gồm Kairos, Amazon Rekognition, Microsoft Azure để đối chiếu ưu - nhược điểm công nghệ.

Phương pháp nghiên cứu và quy trình phát triển

  • Phương pháp tiếp cận: Tra cứu tài liệu học thuật theo các từ khóa chuyên ngành (face recognition attendance system, facial recognition technology, facial biometrics); hồi cứu tài liệu; tham khảo ý kiến chuyên gia trên các diễn đàn công nghệ thông tin.
  • Quy trình phát triển phần mềm: Áp dụng mô hình Agile và khung làm việc Scrum, phân chia khối lượng công việc thành các sprint cụ thể, quản lý tiến độ qua công cụ trực quan.
  • Nguồn dữ liệu: Dữ liệu khuôn mặt thực tế của sinh viên thu thập trực tiếp thông qua máy ảnh trên giao diện web hoặc tệp hình ảnh/video do sinh viên tải lên hệ thống.

Thiết kế và triển khai

Môi trường và công cụ phát triển

  • Môi trường máy chủ: Laragon (cung cấp môi trường máy chủ cục bộ hỗ trợ Apache, Nginx, cơ sở dữ liệu MySQL/MariaDB và tích hợp sẵn Git).
  • Môi trường phát triển tích hợp (IDE): Visual Studio Code.
  • Quản lý công việc: Trello (tổ chức quy trình theo 3 bảng trạng thái: "Cần thực hiện", "Đang thực hiện", "Hoàn thành").
  • Quản lý mã nguồn: GitLab (kiểm soát phiên bản và lịch sử các lần đẩy mã nguồn theo nhiệm vụ phân công).
  • Bộ giao diện quản trị: Mẫu giao diện "NiceAdmin" của BootstrapMade (xây dựng trên nền tảng Bootstrap, tích hợp DataTables, TinyMCE, ECharts).

Thiết kế cơ sở dữ liệu quan hệ

Hệ thống sử dụng cơ sở dữ liệu quan hệ gồm 6 bảng chính để quản lý toàn bộ dữ liệu người dùng, cấu trúc lớp học và dữ liệu nhận diện:

STT Tên bảng Tên trường khóa chính / ngoại Mục đích lưu trữ
1 tbl_users PK: id Lưu trữ thông tin tài khoản người dùng, phân quyền (role), họ tên, ngày sinh, email, điện thoại, ảnh đại diện và trạng thái kích hoạt.
2 tbl_courses PK: id Lưu thông tin danh mục học phần (courseName), trạng thái và mô tả.
3 tbl_class PK: id, FK: courseID Quản lý các lớp học phần, sĩ số tối đa (peopleMax), ngày bắt đầu và kết thúc.
4 tbl_class_users PK: id, FK: classID, userID Ghi nhận danh sách người dùng (sinh viên, giảng viên) trực thuộc từng lớp học phần.
5 tbl_datasets PK: id, FK: userID Lưu trữ thông tin tập dữ liệu hình ảnh khuôn mặt đã huấn luyện và số lượng ảnh (quantity).
6 tbl_attendance_history PK: id, FK: userID, classID Lưu trữ lịch sử điểm danh chi tiết theo từng buổi học (Lessons), loại điểm danh (Type) và ghi chú.

Kết quả kiểm thử chức năng

Tác giả đã xây dựng và thực thi 10 kịch bản kiểm thử giao diện và kiểm thử ràng buộc dữ liệu (Validation), tất cả đều đạt kết quả "Vượt qua":

ID Nhóm chức năng kiểm thử Nội dung và ràng buộc kiểm tra Kết quả
1 Đăng nhập Kiểm tra bố cục giao diện; bắt lỗi bỏ trống ô nhập; bắt lỗi sai tài khoản/mật khẩu; điều hướng chính xác khi nhập đúng. Vượt qua
2 Đổi mật khẩu Bắt lỗi bỏ trống các trường; kiểm tra mật khẩu cũ; kiểm tra sự trùng khớp giữa mật khẩu mới và xác nhận mật khẩu. Vượt qua
3 Quản lý hồ sơ cá nhân Bắt lỗi sai định dạng email; bắt lỗi số điện thoại vượt quá 10 ký tự; cập nhật và xóa ảnh đại diện. Vượt qua
4 Quản lý người dùng Tìm kiếm người dùng; mở giao diện thêm mới; nhập người dùng từ tệp (Import); xem chi tiết và chỉnh sửa. Vượt qua
5 Thêm mới người dùng Kiểm tra bố cục khung nhập liệu; bắt lỗi dữ liệu sai định dạng; lưu thành công bản ghi mới. Vượt qua
6 Quản lý học phần Tìm kiếm học phần; tạo mới học phần; xem chi tiết, chỉnh sửa và xác nhận xóa học phần. Vượt qua
7 Quản lý lớp học Tìm kiếm lớp học; tạo lớp học mới; xem chi tiết, chỉnh sửa thông tin và phân trang dữ liệu. Vượt qua
8 Thêm thành viên lớp học Tìm kiếm thành viên; thêm thành viên vào lớp; hiển thị hộp thoại xác nhận xóa thành viên khỏi lớp; phân trang. Vượt qua
9 Cập nhật dữ liệu khuôn mặt Bắt lỗi tải video vượt quá dung lượng 100MB; bắt lỗi tải sai định dạng (tệp .mp3); kích hoạt máy ảnh và cập nhật dữ liệu. Vượt qua
10 Điểm danh sinh viên Bắt lỗi khi chưa chọn lớp/buổi học; bật camera nhận dạng tự động; thống kê vắng theo buổi; thống kê tổng số buổi vắng/muộn. Vượt qua

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

Mở đầu

Trình bày tổng quan về sự phát triển của công nghệ thông tin và vai trò của nhận diện khuôn mặt trong quản lý giáo dục. Đặt vấn đề chuyển đổi số quy trình điểm danh từ thủ công sang tự động nhằm tiết kiệm thời gian, tăng cường tính chính xác, ngăn chặn gian lận và nâng cao hiệu quả giảng dạy.

Chương 1. Mô tả bài toán điểm danh nhận diện khuôn mặt

Nội dung chương 1 tập trung phân tích bài toán điểm danh và khảo sát hiện trạng:

  • Bài toán nhận diện khuôn mặt: Phân tích bản chất bài toán thị giác máy tính khi biểu diễn các đặc trưng khuôn mặt trong không gian nhiều chiều để máy tính phân biệt từng cá nhân.
  • Khảo sát nghiệp vụ: Khảo sát quy mô lớp học phần tại Trường Đại học Vinh (20 - 80 sinh viên/lớp), chỉ ra nhược điểm của việc đọc tên điểm danh truyền thống (mất 5 - 10 phút, dễ sai sót và điểm danh hộ).
  • Quy trình nghiệp vụ 8 bước: Xác định các bước từ thu thập ảnh, tiền xử lý, trích xuất đặc trưng bằng LBPH, huấn luyện mô hình, kiểm tra hiệu suất, triển khai web, lưu vết điểm danh đến bảo mật cơ sở dữ liệu.
  • Khảo sát giải pháp tham chiếu: Phân tích kiến trúc phần cứng - phần mềm của hệ thống chấm công ACheckin và giải pháp trường học VN Face School.
  • Phương pháp tiếp cận: Xác định mục tiêu, chiến lược tra cứu tài liệu chuyên ngành và tìm hiểu giải pháp từ các nền tảng đám mây lớn (Kairos, Amazon Rekognition, Azure).

Chương 2. Phân tích và thiết kế hệ thống điểm danh nhận diện khuôn mặt

Chương 2 trình bày chi tiết các mô hình phân tích và thiết kế hệ thống hướng đối tượng:

  • Mô hình ca sử dụng (Use Case): Xác định 3 tác nhân chính:
    • Quản trị viên: Quản lý người dùng, quản lý học phần, quản lý lớp học phần, gán người dùng vào lớp và quản lý hồ sơ cá nhân.
    • Giảng viên: Quản lý lớp học phụ trách, điều khiển máy ảnh điểm danh sinh viên và xem báo cáo thống kê.
    • Sinh viên: Cập nhật dữ liệu khuôn mặt phục vụ nhận dạng và chỉnh sửa thông tin cá nhân.
  • Đặc tả ca sử dụng và biểu đồ tuần tự: Xây dựng bảng mô tả chi tiết điều kiện trước, các bước thực hiện, luồng sự kiện bổ sung và biểu đồ tuần tự cho 9 chức năng cốt lõi (Đăng nhập, Đổi mật khẩu, Quản lý hồ sơ, Quản lý người dùng, Quản lý học phần, Quản trị viên quản lý lớp, Giảng viên quản lý lớp, Điểm danh sinh viên, Cập nhật dữ liệu khuôn mặt).
  • Thiết kế cơ sở dữ liệu: Xây dựng biểu đồ phân lớp và định nghĩa cấu trúc chi tiết cho 6 bảng dữ liệu (tbl_users, tbl_courses, tbl_class, tbl_class_users, tbl_datasets, tbl_attendance_history) với đầy đủ kiểu dữ liệu, ràng buộc khóa chính (PK) và khóa ngoại (FK).

Chương 3. Triển khai hệ thống điểm danh nhận diện khuôn mặt

Chương 3 mô tả quá trình hiện thực hóa và kiểm thử phần mềm:

  • Hạ tầng công nghệ: Thiết lập môi trường máy chủ Laragon, viết mã nguồn trên Visual Studio Code, quản trị dự án theo Agile/Scrum qua Trello và lưu trữ kho mã nguồn trên GitLab. Ứng dụng mẫu giao diện NiceAdmin hỗ trợ tương thích đa thiết bị.
  • Xây dựng giao diện: Hiện thực hóa các màn hình chức năng gồm: đăng nhập, đổi mật khẩu, quản lý hồ sơ cá nhân, danh sách và thêm mới người dùng, quản lý học phần, quản lý lớp học, gán thành viên lớp học, giao diện cập nhật dữ liệu khuôn mặt (cho phép quay camera trực tiếp hoặc tải video), giao diện chọn buổi điểm danh và giao diện hiển thị khung camera nhận dạng sinh viên theo thời gian thực kèm tên nhận diện.
  • Kiểm thử phần mềm: Thiết kế và thực thi chi tiết 10 bảng kiểm thử chức năng (từ Bảng 3.1 đến Bảng 3.10), ghi nhận các trường hợp kiểm tra giao diện, kiểm tra ràng buộc dữ liệu đầu vào và kiểm tra logic nghiệp vụ.

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

Kết quả đạt được

  1. Hoàn thành ứng dụng phần mềm: Xây dựng hoàn chỉnh hệ thống điểm danh bằng nhận diện khuôn mặt trên nền tảng web, phân quyền đầy đủ cho 3 nhóm đối tượng: Quản trị viên, Giảng viên và Sinh viên.
  2. Quy trình quản lý dự án: Áp dụng thành công mô hình Agile và quy trình Scrum trong thời gian 10 tuần; phân chia công việc theo sprint thông qua công cụ Trello và quản lý mã nguồn trên GitLab.
  3. Tự động hóa nghiệp vụ điểm danh: Tích hợp phương pháp trích chọn đặc trưng LBPH để nhận diện khuôn mặt sinh viên qua camera, tự động ghi nhận dữ liệu vào bảng lịch sử điểm danh (tbl_attendance_history) và cung cấp công cụ thống kê vắng học theo từng buổi hoặc theo toàn bộ học phần.
  4. Kiểm thử toàn diện: Thực hiện 10 ca kiểm thử chức năng và giao diện với tỷ lệ đạt yêu cầu 100%, đảm bảo hệ thống bắt lỗi chính xác các trường hợp nhập sai định dạng, thiếu dữ liệu hoặc tải tệp vượt quá giới hạn (video > 100MB, file .mp3).

Đóng góp thực tiễn của đề tài

  • Cung cấp giải pháp phần mềm cụ thể nhằm giải quyết vấn đề mất thời gian (5 - 10 phút/buổi) và nguy cơ gian lận trong công tác điểm danh tại các lớp học phần từ 20 đến 80 sinh viên của Trường Đại học Vinh.
  • Hệ thống hóa tài liệu phân tích thiết kế hướng đối tượng (UML use case, biểu đồ tuần tự, biểu đồ phân lớp) và cấu trúc cơ sở dữ liệu quan hệ cho một bài toán ứng dụng trí tuệ nhân tạo trong môi trường đào tạo đại học.

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

Những tồn tại và hạn chế

Theo tự đánh giá của nhóm tác giả trong khóa luận:

  • Nhóm nghiên cứu chưa có nhiều kinh nghiệm trong việc xây dựng chương trình và quản lý dự án công nghệ thông tin ở quy mô lớn.
  • Hệ thống chưa đáp ứng tối ưu ở chế độ thời gian thực khi xuất hiện đồng thời quá nhiều khuôn mặt trong cùng một khung hình máy ảnh, có khả năng dẫn đến sai sót nhận dạng trong điều kiện mật độ khuôn mặt dày đặc.
  • Chương trình chưa được tối ưu hóa sâu để giảm thiểu thời gian truy xuất cơ sở dữ liệu và tối ưu dung lượng bộ nhớ sử dụng khi xử lý luồng dữ liệu hình ảnh.

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

  • Tiếp tục khảo sát, thu thập ý kiến đóng góp từ người dùng thực tế (giảng viên, sinh viên) để phát triển thêm các tính năng tiện ích mới phù hợp với nhu cầu quản lý đào tạo.
  • Tối ưu hóa thuật toán xử lý và mã nguồn chương trình nhằm tăng tốc độ nhận dạng, giảm mức tiêu hao bộ nhớ phần cứng xuống mức thấp nhất và nâng cao hiệu năng tổng thể của hệ thống.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo hữu ích cho các nhóm đối tượng:

  • Sinh viên ngành Công nghệ thông tin và Kỹ nghệ phần mềm: Có thể tham khảo phương pháp áp dụng mô hình Agile/Scrum, cách sử dụng công cụ Trello và GitLab trong phân chia sprint và quản lý mã nguồn đồ án tốt nghiệp.
  • Người nghiên cứu hệ thống nhận diện khuôn mặt ứng dụng: Cung cấp tài liệu tham khảo thực tế về quy trình 8 bước triển khai bài toán thị giác máy tính kết hợp ứng dụng web, phương pháp trích chọn đặc trưng LBPH và cấu trúc cơ sở dữ liệu 6 bảng phục vụ lưu vết điểm danh.
  • Phần đáng chú ý để tham khảo:
    • Hệ thống biểu đồ tuần tự và bảng đặc tả ca sử dụng chi tiết tại Chương 2.
    • Mẫu thiết kế bảng dữ liệu cơ sở dữ liệu quan hệ (tbl_users, tbl_datasets, tbl_attendance_history).
    • Ma trận các kịch bản kiểm thử giao diện và ràng buộc dữ liệu (Validation test cases) tại Chương 3.

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

1. Hệ thống sử dụng phương pháp nào để trích chọn đặc trưng khuôn mặt của sinh viên?

Theo quy trình nghiệp vụ được trình bày trong đồ án, hệ thống sử dụng phương pháp LBPH (Local Binary Patterns Histogram) để trích chọn các đặc trưng từ ảnh khuôn mặt đã qua tiền xử lý và thực hiện mã hóa các đặc trưng này trước khi đưa vào so khớp và nhận diện.

2. Cơ sở dữ liệu của hệ thống bao gồm những bảng nào?

Cơ sở dữ liệu của hệ thống gồm 6 bảng quan hệ: tbl_users (lưu trữ người dùng và phân quyền), tbl_courses (lưu thông tin học phần), tbl_class (lưu thông tin lớp học phần), tbl_class_users (lưu danh sách người dùng thuộc lớp), tbl_datasets (lưu trữ thông tin tập dữ liệu hình ảnh khuôn mặt đã huấn luyện), và tbl_attendance_history (lưu vết lịch sử điểm danh theo buổi).

3. Giảng viên thực hiện thao tác điểm danh trên hệ thống như thế nào?

Giảng viên đăng nhập tài khoản, truy cập mục "Điểm danh sinh viên", chọn lớp học phần và buổi học cần điểm danh, sau đó bấm nút "Bật camera". Hệ thống sẽ kích hoạt máy ảnh, tự động nhận diện khuôn mặt sinh viên, hiển thị tên trên khung hình và ghi nhận trạng thái có mặt vào danh sách điểm danh. Giảng viên cũng có thể bấm nút xem thống kê vắng theo buổi hoặc thống kê tổng số buổi vắng/muộn của lớp.

4. Quy định về dữ liệu khi sinh viên cập nhật ảnh nhận dạng là gì?

Sinh viên có thể bật máy ảnh để thu thập dữ liệu trực tiếp hoặc tải lên tệp video/hình ảnh. Hệ thống áp dụng các ràng buộc: tệp video tải lên có dung lượng tối đa không quá 100MB và phải đúng định dạng video (hệ thống sẽ báo lỗi nếu tải tệp sai định dạng như .mp3).

5. Khóa luận được hoàn thiện trong bao lâu và nhóm tác giả sử dụng các công cụ quản lý nào?

Đồ án được thực hiện và hoàn thành trong khoảng thời gian 10 tuần, áp dụng mô hình Agile và quy trình Scrum. Nhóm tác giả sử dụng phần mềm Trello để quản lý danh mục công việc qua 3 bảng trạng thái và hệ thống GitLab để quản lý mã nguồn và theo dõi lịch sử các lần đẩy mã nguồn.


Kết luận

Đồ án "Xây dựng hệ thống điểm danh nhận diện khuôn mặt" của nhóm sinh viên Hồ Anh Hòa và Nguyễn Hữu Nhật (Đại học Vinh) đã giải quyết trọn vẹn bài toán tự động hóa điểm danh cho các lớp học phần có quy mô từ 20 đến 80 sinh viên. Tác giả đã kết hợp thành công quy trình phân tích thiết kế phần mềm hướng đối tượng theo mô hình Agile/Scrum với phương pháp trích chọn đặc trưng LBPH trong thị giác máy tính. Toàn bộ 10 ca kiểm thử chức năng trên nền tảng web đều hoàn thành và đạt kết quả kiểm tra thực tế, tạo nền tảng vững chắc để tiếp tục tối ưu hóa hiệu năng nhận dạng đa khuôn mặt theo thời gian thực.