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

Trong công tác quản lý đào tạo tại các cơ sở giáo dục đại học, hoạt động điểm danh lớp học giữ vai trò quan trọng nhằm theo dõi mức độ chuyên cần và ý thức học tập của sinh viên. Tuy nhiên, phương thức điểm danh truyền thống (như giáo viên gọi tên từng sinh viên hoặc cho sinh viên ký vào danh sách giấy) bộc lộ nhiều điểm hạn chế, bao gồm việc tiêu tốn thời gian giảng dạy trên lớp, nguy cơ thất lạc dữ liệu và đặc biệt là tình trạng điểm danh hộ. Trước sự phát triển của công nghệ trí tuệ nhân tạo (AI), học máy và thị giác máy tính, việc ứng dụng các giải pháp nhận dạng sinh trắc học khuôn mặt vào trường học trở thành một hướng tiếp cận thực tiễn. Tác giả dẫn chứng các bước tiến thương mại tiêu biểu như công nghệ Face ID của tập đoàn Apple công bố tại sự kiện WWDC vào tháng 9 năm 2017, hay tính năng tự động gắn thẻ khuôn mặt bạn bè của Facebook với mức độ hiệu quả đạt khoảng 93%, qua đó khẳng định tính khả thi của các thuật toán xử lý ảnh khuôn mặt trong đời sống.

Xuất phát từ thực tế đó, đề tài "Hệ thống điểm danh sinh viên bằng nhận diện gương mặt" do nhóm sinh viên Khoa Điện tử, Trường Đại học Công nghiệp Hà Nội thực hiện (năm 2023) đặt ra các mục tiêu và nhiệm vụ nghiên cứu cụ thể:

Mục tiêu nghiên cứu:

  • Tận dụng công nghệ nhận diện khuôn mặt để xây dựng giải pháp tự động hóa và tiện lợi trong quản lý, kiểm soát quá trình điểm danh sinh viên.
  • Khắc phục triệt để các tồn tại của phương thức truyền thống như gian lận điểm danh hộ và mất mát dữ liệu, đồng thời nâng cao độ chính xác của cơ sở dữ liệu chuyên cần.
  • Tối ưu hóa thời gian và công sức của giảng viên khi quản lý lớp học.

Nhiệm vụ nghiên cứu (gồm 7 nội dung xác định theo văn bản):

  1. Xây dựng một dự án phần mềm ứng dụng nhận dạng khuôn mặt.
  2. Tìm hiểu và ứng dụng thư viện thị giác máy tính OpenCV.
  3. Nghiên cứu phương pháp trích chọn đặc trưng HOG (Histogram of Oriented Gradients).
  4. Tìm hiểu các phương pháp xác định khuôn mặt (Face Detection).
  5. Nghiên cứu phương pháp phát hiện và nhận diện gương mặt của thư viện face_recognition trên nền tảng Python.
  6. Tìm hiểu và thiết kế giao diện đồ họa người dùng (GUI) bằng thư viện Tkinter.
  7. Xây dựng cơ sở dữ liệu NoSQL với hệ quản trị MongoDB.

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

  • Đối tượng nghiên cứu: Thuật toán phát hiện, trích xuất đặc trưng và nhận diện khuôn mặt; quy trình thu nhận hình ảnh thời gian thực qua webcam và đối khớp dữ liệu điểm danh.
  • Phạm vi không gian: Nghiên cứu ứng dụng trong phạm vi quản lý giảng dạy và lớp học tại Khoa Điện tử, Trường Đại học Công nghiệp Hà Nội.
  • Phạm vi thời gian: Đề tài được triển khai thực hiện và hoàn thành báo cáo từ tháng 9 năm 2023 đến ngày 25 tháng 12 năm 2023.

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

Đồ án xây dựng trên nền tảng ngôn ngữ lập trình Python và hệ sinh thái thư viện mã nguồn mở chuyên dụng cho xử lý ảnh và học máy. Khung lý thuyết của bài toán nhận dạng khuôn mặt được tác giả chia tách thành 4 giai đoạn kỹ thuật rõ rệt:

  1. Phát hiện khuôn mặt (Face Detection): Ứng dụng phương pháp HOG (Histogram of Oriented Gradients) do Navneet Dalal và Bill Triggs đề xuất năm 2005. Quá trình xử lý bao gồm việc chuyển đổi ảnh đầu vào sang ảnh mức xám (đen trắng), tính toán hướng và độ lớn gradient chuyển màu của từng pixel xung quanh, chia ảnh thành các ô vuông kích thước 16x16 pixel để tổng hợp hướng vector lớn nhất, sau đó so sánh mẫu HOG trích xuất được với mẫu chuẩn thu được từ tập dữ liệu huấn luyện để định vị vùng khuôn mặt.
  2. Căn chỉnh vị trí khuôn mặt (Face Alignment): Nhằm xử lý hiện tượng khuôn mặt bị nghiêng hoặc quay góc, hệ thống áp dụng kỹ thuật xác định 68 điểm mốc sinh thái học (facial landmarks) trên mặt (dựa trên nghiên cứu của Brandon Amos từ Carnegie Mellon University trên OpenFace). 68 điểm mốc này bao phủ các vị trí cố định như đỉnh cằm, mép ngoài, mép trong của mắt, lông mày, mũi và môi. Dựa vào toạ độ của mắt và miệng, thuật toán tiến hành các phép biến đổi hình học (xoay, co giãn, cắt ảnh) để căn chỉnh khuôn mặt về góc nhìn chính diện trực tiếp trước máy ảnh.
  3. Trích xuất vector đặc trưng (Feature Extraction): Sử dụng mạng nơ-ron tích chập sâu (Deep Convolutional Neural Networks - DCNN). Mạng được huấn luyện thông qua việc so sánh ảnh của cùng một người và ảnh của người khác, từ đó ánh xạ vùng ảnh khuôn mặt thành một vector nhúng (embedding vector) gồm 128 giá trị số thực duy nhất đại diện cho các nét nhận diện đặc thù.
  4. Nhận diện và phân loại (Face Recognition): Thực hiện phép đo khoảng cách hình học giữa vector 128 chiều trích xuất từ khung hình webcam theo thời gian thực với các vector đặc trưng đã lưu sẵn trong cơ sở dữ liệu. Khi khoảng cách thỏa mãn ngưỡng tương đồng, hệ thống ghi nhận danh tính sinh viên tương ứng.

Công cụ và công nghệ sử dụng:

  • Ngôn ngữ lập trình: Python (ngôn ngữ bậc cao hướng đối tượng, tích hợp hơn 100 thư viện Machine Learning và Deep Learning).
  • OpenCV (Open Source Computer Vision): Ra đời năm 1999, thư viện tối ưu hóa bằng C/C++ với hơn 2.500 thuật toán xử lý ảnh và thị giác máy tính.
  • Dlib: Thư viện C++ cung cấp các thuật toán học máy, hỗ trợ triển khai HOG kết hợp máy vector hỗ trợ (SVM) và mạng CNN chạy thời gian thực.
  • Thư viện face_recognition: Xây dựng bởi Adam Geitgey dựa trên nền tảng Dlib, cung cấp API Python hỗ trợ phát hiện mốc và nhận diện vector 128 chiều.
  • Giao diện đồ họa: Thư viện chuẩn Tkinter của Python.
  • Hệ quản trị cơ sở dữ liệu: MongoDB (cơ sở dữ liệu NoSQL hướng tài liệu).

Phương pháp nghiên cứu thực tế:

  • Phương pháp phân tích và thiết kế hệ thống theo mô hình hướng đối tượng: Xây dựng sơ đồ phân rã chức năng, xác định tác nhân (Actor), lập 18 biểu đồ Use Case mô tả tương tác người dùng, thiết kế cấu trúc dữ liệu và phác thảo wireframe giao diện.
  • Phương pháp thực nghiệm: Thu thập dữ liệu hình ảnh trực tiếp qua webcam máy tính, mã hóa vector 128 đặc trưng và kiểm thử độ chính xác của các ca kiểm thử chức năng (test cases) trên giao diện desktop.

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

Hệ thống được thiết kế dưới dạng ứng dụng máy tính (desktop application) hoàn chỉnh, phân chia nhiệm vụ chặt chẽ giữa các thành phần logic, cơ sở dữ liệu và giao diện.

Phân quyền tác nhân (Actors)

Hệ thống phân định quyền hạn thao tác giữa hai nhóm đối tượng chính:

STT Tác nhân (Actor) Phạm vi quyền hạn và nhiệm vụ trong hệ thống
1 Admin (Quản trị viên) Tác nhân quản trị tối cao, kiểm soát toàn bộ hoạt động của hệ thống; thực hiện đăng nhập, thêm/sửa/xóa thông tin sinh viên, giáo viên, khoa, môn học, lớp học; phân công lớp học cho giáo viên và sinh viên; khởi chạy điểm danh và tra cứu danh sách.
2 Giáo viên Thực hiện đăng nhập bằng mã giáo viên và mật khẩu được cấp; truy cập phân hệ điểm danh bằng webcam; tra cứu và xem danh sách kết quả điểm danh theo ngày và theo lớp học; thực hiện các thao tác cập nhật sinh viên trong phạm vi được phân quyền.

Cấu trúc cơ sở dữ liệu MongoDB

Dữ liệu được tổ chức dưới dạng 6 collections (bảng tài liệu) NoSQL, lưu trữ thông tin nghiệp vụ và vector sinh trắc học:

Bảng dữ liệu Tên trường Kiểu dữ liệu Ý nghĩa chức năng
SinhVien _id
MaSV
TenSV
TenNganh
TenKhoa
LopHoc
data
ObjectID
String
String
String
String
Array
Array
Khóa chính tự sinh
Mã số sinh viên (định danh)
Họ và tên sinh viên
Tên ngành đào tạo
Tên khoa trực thuộc
Danh sách mã lớp học sinh viên đăng ký
Vector số thực 128 chiều mã hóa đặc trưng khuôn mặt
GiaoVien _id
MaGV
TenGV
TenKhoa
LopHoc
MatKhauApp
Admin
ObjectID
String
String
String
Array
String
Boolean
Khóa chính tự sinh
Mã số giáo viên (tên đăng nhập)
Họ và tên giáo viên
Khoa giảng dạy
Danh sách các mã lớp học được phân công
Mật khẩu truy cập phần mềm
Cờ xác định quyền quản trị (True: Admin, False: Giáo viên)
Khoa _id
MaKhoa
TenKhoa
TenNganh
ObjectID
String
String
Array
Khóa chính tự sinh
Mã định danh khoa
Tên đầy đủ của khoa
Mảng danh sách các ngành học thuộc khoa
MonHoc _id
MaMH
TenMH
LopHoc
ObjectID
String
String
Array
Khóa chính tự sinh
Mã môn học
Tên học phần môn học
Danh sách các mã lớp học mở cho môn học này
LopHoc _id
MaLH
TenMH
DSSinhVien
TGBatDau
TGKetThuc
ObjectID
String
String
Array
String
String
Khóa chính tự sinh
Mã lớp học phần
Tên môn học giảng dạy
Danh sách mã các sinh viên thuộc lớp
Khung giờ bắt đầu buổi học
Khung giờ kết thúc buổi học
DiemDanh _id
MaLH
MaSV
TenSV
TGVao
Ngay
ObjectID
String
String
String
String
String
Khóa chính tự sinh
Mã lớp học thực hiện điểm danh
Mã số của sinh viên có mặt
Họ tên sinh viên có mặt
Thời điểm hệ thống nhận diện thành công (giờ vào)
Ngày diễn ra phiên điểm danh

Quy trình nghiệp vụ nhận diện và điểm danh

Quy trình tự động hóa điểm danh diễn ra theo 4 bước tuần tự khép kín:

  1. Bước 1 - Thu nhận tín hiệu hình ảnh: Kích hoạt webcam máy tính thông qua OpenCV để quét liên tục các khung hình video đầu vào.
  2. Bước 2 - Phát hiện vùng mặt: Sử dụng HOG và Dlib phát hiện sự xuất hiện của các khuôn mặt trong khung hình, trích xuất 68 điểm mốc để căn chỉnh ảnh mặt.
  3. Bước 3 - Xử lý và đối khớp: Chuyển đổi vùng mặt thành vector 128 chiều bằng DCNN; hệ thống truy vấn cơ sở dữ liệu LopHoc để lấy danh sách DSSinhVien tương ứng với mã lớp đang chọn, tải vector trong trường data của những sinh viên này và so sánh; nếu khoảng cách đặc trưng trùng khớp, xác nhận sinh viên hợp lệ.
  4. Bước 4 - Ghi nhận điểm danh: Ghi bản ghi mới vào bảng DiemDanh gồm mã lớp, mã sinh viên, tên sinh viên, thời gian vào (TGVao) và ngày điểm danh (Ngay).

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

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

Chương 1 hệ thống hóa toàn bộ nền tảng lý thuyết và công nghệ được sử dụng trong đề tài:

  • Phân tích vai trò của ngôn ngữ Python trong các bài toán trí tuệ nhân tạo nhờ cấu trúc cú pháp tối giản, tính đa nền tảng (Windows, macOS, Linux) và sự hỗ trợ mạnh mẽ của cộng đồng mã nguồn mở.
  • Giới thiệu tổng quan về thư viện OpenCV (ra đời năm 1999) với khả năng xử lý hình ảnh thời gian thực, tích hợp OpenCL.
  • Phân tích kiến trúc thư viện Dlib và gói công cụ face_recognition của Adam Geitgey; làm rõ cơ chế phối hợp giữa thuật toán HOG và bộ phân loại SVM trong tác vụ dò tìm biên mặt.
  • Làm rõ bản chất toán học của bài toán nhận dạng khuôn mặt qua 4 bài toán con: thuật toán HOG chia khối 16x16 pixel loại bỏ ảnh hưởng của màu sắc; mô hình 68 facial landmarks của Brandon Amos định vị mắt, miệng nhằm chuẩn hóa hướng mặt; mô hình DCNN tối ưu khoảng cách vector để trích xuất 128 đặc trưng độc nhất.

Chương 2: Thiết kế hệ thống điểm danh sinh viên bằng nhận diện gương mặt

Chương 2 mô tả chi tiết toàn bộ quá trình mô hình hóa hệ thống từ yêu cầu đến kiến trúc phần mềm:

  • Xác định mục tiêu loại bỏ tình trạng điểm danh hộ và yêu cầu kiểm soát dữ liệu chặt chẽ theo lớp môn học.
  • Xây dựng 18 biểu đồ Use Case trực quan hóa tương tác: đăng nhập phân quyền; nhóm ca sử dụng quản lý sinh viên (thêm mới kèm chụp ảnh mã hóa vector nhúng, cập nhật thông tin và vector ảnh, xóa sinh viên); nhóm ca sử dụng quản lý giáo viên (thêm, sửa, xóa tài khoản và phân khoa); nhóm ca sử dụng quản lý lớp học (thêm/xóa môn học, thêm/xóa lớp học phần, gán/hủy lớp học cho giảng viên, đăng ký/hủy lớp học cho sinh viên); ca sử dụng điểm danh webcam và ca sử dụng xem/xuất dữ liệu điểm danh.
  • Chi tiết hóa cấu trúc 6 bảng cơ sở dữ liệu NoSQL trên MongoDB, đặc biệt là việc thiết lập các mảng (Array) chứa danh sách lớp, danh sách sinh viên và vector dữ liệu gương mặt.
  • Thiết kế bố cục giao diện Tkinter qua các bản phác thảo (wireframe) bao gồm các thành phần GUI: Frame, Label, Entry, Button, Combobox và Treeview bảng dữ liệu.

Chương 3: Kết quả đạt được

Chương 3 trình bày các sản phẩm phần mềm thực tế đã đóng gói và kết quả thử nghiệm chức năng:

  • Hiện thực hóa thành công các giao diện chương trình bằng Python Tkinter:
    • Giao diện đăng nhập: Kiểm tra tài khoản mã giáo viên và mật khẩu, thông báo lỗi màu đỏ khi sai thông tin và thông báo chuyển màn hình khi đăng nhập thành công.
    • Giao diện chính: Điều hướng linh hoạt đến các phân hệ quản lý sinh viên, giáo viên, lớp học và điểm danh.
    • Giao diện quản lý thông tin sinh viên, giáo viên, môn học và lớp học phần: Hỗ trợ nhập liệu form, hiển thị bảng Treeview, chụp ảnh webcam trực tiếp để mã hóa vector lưu vào MongoDB.
    • Giao diện điểm danh qua webcam: Tích hợp khung hiển thị video thời gian thực, chọn mã lớp học từ Combobox, nhận diện khuôn mặt và lập tức cập nhật trạng thái có mặt vào bảng điểm danh.
    • Giao diện danh sách điểm danh: Hỗ trợ lọc theo ngày và mã lớp, xóa bản ghi sai sót và xuất danh sách ra tệp tin định dạng Excel.
  • Kết quả kiểm thử chức năng: Thiết lập và thực thi các ca kiểm thử (test cases) theo kế hoạch trên các phân hệ: kiểm thử đăng nhập (đúng/sai tài khoản, để trống trường); kiểm thử thêm/cập nhật sinh viên (bắt lỗi thiếu ảnh, thiếu mã sinh viên); kiểm thử danh mục lớp học; kiểm thử nhận diện webcam đối chiếu dữ liệu lớp; kiểm thử truy xuất danh sách và xuất file.

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

Kết quả kỹ thuật đạt được:

  • Xây dựng hoàn chỉnh phần mềm ứng dụng desktop bằng Python (Tkinter) kết nối cơ sở dữ liệu MongoDB, tích hợp xử lý webcam thời gian thực qua OpenCV và face_recognition.
  • Thiết lập thành công cơ chế trích xuất và lưu trữ vector nhúng 128 chiều từ ảnh chụp webcam vào cơ sở dữ liệu NoSQL, phục vụ so khớp khuôn mặt mà không cần lưu trữ toàn bộ tệp ảnh thô dung lượng lớn.
  • Xây dựng cơ chế ràng buộc logic nghiêm ngặt: hệ thống chỉ tiến hành nhận diện và điểm danh đối với những sinh viên đã đăng ký trong danh sách của lớp học đang chọn; sinh viên không thuộc danh sách lớp hoặc chưa có dữ liệu vector gương mặt sẽ bị loại trừ, ngăn chặn triệt để tình trạng điểm danh hộ.
  • Cung cấp tính năng xem bảng tổng hợp chuyên cần theo ngày/mã lớp và xuất dữ liệu ra file Excel phục vụ lưu trữ nghiệp vụ.

Đóng góp thực tiễn theo tác giả:

  • Đề xuất một mô hình ứng dụng công nghệ trí tuệ nhân tạo mã nguồn mở với chi phí triển khai thấp, tận dụng webcam thông thường có sẵn trên máy tính phục vụ công tác quản lý đào tạo tại trường học.
  • Tự động hóa quy trình quản trị lớp học, giảm tải thời gian thao tác thủ công của giảng viên trong mỗi giờ giảng, nâng cao tính khách quan và tính trung thực trong việc đánh giá mức độ chuyên cần của người học.

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

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

  • Hệ thống mới được thiết kế và triển khai dưới dạng phần mềm máy tính cục bộ (desktop application) trên một máy trạm, chưa triển khai dưới dạng kiến trúc mạng Client-Server hoặc nền tảng Web tập trung.
  • Phạm vi kiểm thử thực tế tập trung vào môi trường kiểm nghiệm nhóm nhỏ; khả năng nhận diện thời gian thực có thể bị suy giảm hiệu năng khi điều kiện ánh sáng phòng học thay đổi mạnh hoặc góc quay khuôn mặt vượt quá giới hạn định vị của mô hình 68 điểm mốc.
  • Chưa tích hợp cơ chế chống gian lận nâng cao (như phát hiện chuyển động mắt, độ sâu 3D hoặc phát hiện ảnh chụp giả mạo - Liveness Detection) để chống lại việc sử dụng ảnh tĩnh thay thế mặt thật.

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

  • Nâng cấp phần mềm lên kiến trúc Web hoặc ứng dụng di động để giảng viên và sinh viên có thể tự tra cứu tình trạng chuyên cần trực tuyến.
  • Mở rộng thuật toán nhận diện khuôn mặt kết hợp mô hình học sâu kháng nhiễu ánh sáng và tích hợp mô-đun Liveness Detection nhằm phát hiện hình ảnh/video giả mạo trước webcam.
  • Tích hợp trực tiếp cơ sở dữ liệu điểm danh vào hệ thống cổng thông tin đào tạo tích hợp chung của nhà trường.

Giá trị tham khảo

Đồ án là tài liệu tham khảo hữu ích cho các đối tượng và định hướng nghiên cứu sau:

  • Sinh viên các ngành Kỹ thuật Điện tử, Công nghệ Kỹ thuật Máy tính, Công nghệ Thông tin: Đồ án cung cấp một tài liệu tham khảo hoàn chỉnh về cách thức kết hợp giữa xử lý ảnh thời gian thực (OpenCV, Dlib, face_recognition), cơ sở dữ liệu NoSQL (MongoDB) và giao diện người dùng (Tkinter) trên ngôn ngữ Python.
  • Người thực hiện các đề tài về thị giác máy tính và nhận dạng sinh trắc học: Toàn bộ quy trình từ định vị khuôn mặt bằng HOG (16x16 pixel), căn chỉnh 68 điểm mốc (landmarks), trích xuất vector nhúng 128 chiều bằng mạng DCNN cho đến thiết kế các ràng buộc lớp học trong đồ án mang tính mẫu mực, dễ dàng tái sử dụng trong các bài toán như chấm công nhân viên, kiểm soát cửa ra vào hoặc quản lý thư viện.
  • Phần đáng tham khảo nhất trong văn bản: Cấu trúc thiết kế 6 bảng cơ sở dữ liệu MongoDB và hệ thống biểu đồ Use Case mô tả chi tiết logic ràng buộc giữa sinh viên, giáo viên, môn học và lớp học phần.

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

1. Hệ thống sử dụng thuật toán nào để phát hiện vị trí khuôn mặt và trích xuất đặc trưng sinh trắc học?
Hệ thống sử dụng thuật toán HOG (Histogram of Oriented Gradients) phát minh năm 2005 bởi Navneet Dalal và Bill Triggs kết hợp thư viện Dlib để dò tìm vùng mặt theo các khối 16x16 pixel. Sau đó, hệ thống xác định 68 điểm mốc sinh học (facial landmarks) để căn chỉnh hướng mặt về chính diện, và áp dụng mạng nơ-ron tích chập sâu (DCNN) để trích xuất một vector nhúng gồm 128 giá trị số thực duy nhất đại diện cho các đặc trưng khuôn mặt.

2. Cơ sở dữ liệu của phần mềm được xây dựng trên hệ quản trị nào và gồm những cấu trúc bảng nào?
Hệ thống sử dụng hệ quản trị cơ sở dữ liệu NoSQL MongoDB, bao gồm 6 collections (bảng dữ liệu) chính: SinhVien (lưu trữ mã, tên, ngành, khoa, danh sách lớp và vector 128 đặc trưng), GiaoVien (lưu mã, tên, khoa, mật khẩu và quyền quản trị), Khoa, MonHoc, LopHoc (lưu mã lớp, môn, danh sách sinh viên, thời gian bắt đầu/kết thúc), và DiemDanh (lưu mã lớp, sinh viên, thời gian vào và ngày điểm danh).

3. Dữ liệu khuôn mặt của sinh viên được lưu trữ dưới định dạng nào trong cơ sở dữ liệu?
Dữ liệu khuôn mặt không lưu dưới dạng tệp hình ảnh nén thông thường (.jpg, .png) mà được mã hóa thành một mảng số thực cố định (vector nhúng 128 chiều) được lưu trong trường data (kiểu dữ liệu Array) của bảng SinhVien. Khi webcam quét hình ảnh mới, hệ thống chỉ cần tính toán và so sánh khoảng cách số học với vector đã lưu để xác thực danh tính.

4. Cơ chế kiểm soát của hệ thống ngăn chặn việc điểm danh nhầm hoặc điểm danh hộ như thế nào?
Khi kích hoạt tính năng điểm danh cho một lớp học cụ thể, hệ thống truy vấn bảng LopHoc để chỉ lấy danh sách các sinh viên đã được phân vào lớp đó (DSSinhVien). Quá trình đối khớp vector chỉ diễn ra giữa khuôn mặt trên webcam với dữ liệu vector của những sinh viên có tên trong danh sách lớp. Nếu một người không có tên trong lớp hoặc chưa có dữ liệu vector khuôn mặt trên hệ thống, webcam sẽ không thực hiện ghi nhận điểm danh.

5. Hệ thống phân chia quyền hạn giữa Admin và Giáo viên như thế nào?
Admin là tác nhân quản trị cao nhất, có toàn quyền cấu hình: thêm/sửa/xóa thông tin sinh viên, giáo viên, khoa, môn học, lớp học phần, gán lớp cho giáo viên/sinh viên và thực hiện điểm danh. Trong khi đó, tác nhân Giáo viên chỉ được đăng nhập vào hệ thống để thực hiện chức năng điểm danh bằng webcam, tra cứu danh sách điểm danh của lớp được phân công và xuất kết quả ra file Excel.

Kết luận

Đồ án chuyên ngành "Hệ thống điểm danh sinh viên bằng nhận diện gương mặt" của nhóm sinh viên Khoa Điện tử, Trường Đại học Công nghiệp Hà Nội đã hoàn thành việc thiết kế và xây dựng một phần mềm quản trị đào tạo tự động hóa trên nền tảng Python, Tkinter và MongoDB. Bằng việc kết hợp hiệu quả giữa thuật toán trích chọn HOG, căn chỉnh 68 điểm mốc và mạng nơ-ron tích chập sâu trích xuất 128 đặc trưng từ thư viện face_recognition, hệ thống giải quyết thành công bài toán điểm danh tự động theo từng lớp học phần với độ xác thực cao. Kết quả kiểm thử chức năng cho thấy phần mềm vận hành ổn định, ngăn chặn được hiện tượng điểm danh hộ và hỗ trợ xuất báo cáo định dạng Excel, tạo tiền đề thực tiễn vững chắc cho các nghiên cứu nâng cấp hệ thống giám sát lớp học thông minh trong tương lai.