Bối cảnh và vấn đề nghiên cứu
Trong xu thế chuyển đổi số giáo dục, các hệ thống quản lý học tập (LMS - Learning Management System) đã trở thành công cụ nền tảng tại nhiều cơ sở đào tạo nhằm số hóa quy trình giảng dạy và quản trị đào tạo. Tuy nhiên, qua khảo sát thực tế của nhóm tác giả tại Học viện Công nghệ Bưu chính Viễn thông trong khuôn khổ bài tập lớn môn Lập trình Python (năm 2024), nhiều nền tảng LMS hiện hành vẫn bộc lộ những hạn chế đáng kể:
- Giao diện người dùng còn phức tạp, thiếu tính cá nhân hóa trong trải nghiệm học tập.
- Chưa khai thác triệt để năng lực của Trí tuệ nhân tạo (AI) và Thị giác máy tính (Computer Vision) để giảm tải các thao tác thủ công của giảng viên.
- Khâu quản lý dữ liệu, tổ chức kiểm tra đánh giá và điểm danh sinh viên trên lớp còn tiêu tốn nhiều thời gian và dễ xảy ra sai sót.
Đề tài "Hệ thống quản lí sinh viên hỗ trợ giảng viên tích hợp AI" do nhóm sinh viên gồm Nguyễn Thành Chung, Nguyễn Thu Hà, Mai Thị Phượng và Nguyễn Ngọc Quang thực hiện dưới sự hướng dẫn của ThS. Vũ Minh Mạnh, tập trung giải quyết bài toán tự động hóa hai nhiệm vụ trọng tâm: chấm điểm phiếu thi trắc nghiệm trên giấy và điểm danh sinh viên tự động qua nhận diện khuôn mặt.
Mục tiêu cụ thể của dự án được xác định gồm ba nhóm nhiệm vụ:
- Hỗ trợ giảng viên trong quản lý và giảng dạy: Tự động hóa các quy trình quản lý thông tin sinh viên và theo dõi tiến độ học tập; tối ưu hóa việc phân phối bài giảng và đánh giá kết quả học tập.
- Cải thiện trải nghiệm học tập của sinh viên: Cung cấp công cụ hỗ trợ tự học thông qua hệ thống bài tập tự động chấm điểm, tăng cường tính chủ động của người học.
- Tối ưu hóa quản trị hệ thống: Đảm bảo độ chính xác, an toàn dữ liệu và kết xuất các báo cáo trực quan về kết quả học tập của cá nhân và lớp học.
Đối tượng thụ hưởng và sử dụng chính của hệ thống là giảng viên và sinh viên. Phạm vi nghiên cứu tập trung vào việc thiết kế ứng dụng web LMS bằng ngôn ngữ Python (Django Framework) kết hợp xây dựng các module xử lý ảnh với OpenCV và Deep Learning.
Cơ sở lý thuyết và phương pháp
Nghiên cứu kết hợp cơ sở lý thuyết về phát triển phần mềm web phân tán và các thuật toán xử lý ảnh số, học máy, học sâu:
1. Kỹ thuật nhận dạng dấu quang học (Optical Mark Recognition - OMR)
OMR được ứng dụng để phân tích và trích xuất dữ liệu từ các phiếu trả lời trắc nghiệm chuẩn hóa. Cơ sở lý thuyết dựa trên các phép biến đổi hình thái học, phát hiện biên Canny (Canny Edge Detection), xấp xỉ đa giác để định vị khung phiếu thi (cv2.approxPolyDP), phép biến đổi phối cảnh (Perspective Transform - căn chỉnh mắt chim) và phân tích ngưỡng sáng nhị phân để xác định mật độ điểm ảnh tối (pixel có giá trị bằng 0) tại từng ô khoanh tròn.
2. Mạng nơ-ron tích chập và Mạng Siamese (Siamese Neural Network)
Đối với bài toán xác thực khuôn mặt cá nhân, nghiên cứu sử dụng kiến trúc Siamese Network kết hợp Mạng nơ-ron tích chập (CNN). Mô hình tiếp nhận cặp ảnh đầu vào (kích thước chuẩn hóa $100 \times 100 \times 3$), trích xuất đặc trưng qua các lớp ẩn (Hidden Layers) sử dụng hàm kích hoạt ReLU, sau đó làm phẳng (Flatten) và đưa qua hàm Sigmoid để tính khoảng cách vector đặc trưng ($L_1$ Distance / Cosine Similarity).
3. Bộ phân loại Haar Cascade và thuật toán LBPH
Để giải quyết bài toán nhận diện thời gian thực trên các thiết bị có phần cứng giới hạn, nghiên cứu áp dụng thuật toán phát hiện khuôn mặt Haar Cascade (dựa trên 4 bước: lựa chọn đặc trưng Haar, tạo ảnh tích phân, huấn luyện AdaBoost, phân loại tầng Cascade) kết hợp bộ nhận diện mẫu nhị phân cục bộ (Local Binary Patterns Histograms - LBPHFaceRecognizer).
4. Nguồn dữ liệu sử dụng
- Dữ liệu bài thi trắc nghiệm: Tập ảnh chụp phiếu trả lời trắc nghiệm lưu trữ tại thư mục
Test_Pictures.
- Dữ liệu khuôn mặt mẫu âm (Negative): Trích xuất từ tập dữ liệu chuẩn quốc tế Labeled Faces in the Wild (LFW) tại địa chỉ
https://vis-www.cs.umass.edu/lfw/.
- Dữ liệu khuôn mặt mẫu dương (Anchor/Positive): Thu thập trực tiếp qua webcam máy tính bằng OpenCV, tự động đánh chỉ mục ngẫu nhiên bằng thư viện
uuid.
- Dữ liệu huấn luyện mô hình LBPH: Tập dữ liệu gồm 1.200 ảnh xám (Grayscale) trên mỗi đối tượng sinh viên.
Thiết kế và triển khai
1. Kiến trúc hệ thống và môi trường phát triển
Hệ thống được phát triển theo mô hình phân tầng của Django Framework, chia tách thành các ứng dụng (Django apps) độc lập:
| Tên ứng dụng |
Chức năng chính |
Home |
Quản lý giao diện trang chủ, điều hướng hệ thống và điều phối phiên làm việc. |
Users |
Quản trị tài khoản, xác thực người dùng, mã hóa mật khẩu và phân quyền (Giảng viên, Học sinh, Quản trị viên). |
Courses |
Quản lý vòng đời khóa học (tiêu đề, mô tả, ảnh bìa, ngày bắt đầu/kết thúc, danh sách sinh viên ghi danh). |
Lessons |
Quản lý bài học, video bài giảng, tài liệu đính kèm và trạng thái (Đang học, Hết hạn, Sắp tới). |
Assignments |
Tạo lập bài tập, tiếp nhận bài nộp trực tuyến, hỗ trợ giảng viên chấm điểm và phản hồi nhận xét. |
Exams |
Quản trị ngân hàng đề thi trắc nghiệm/tự luận, tích hợp module chấm OMR tự động. |
- Hệ điều hành hỗ trợ: Windows / macOS.
- Ngôn ngữ & Thư viện cốt lõi: Python (Django), JavaScript, HTML/CSS (Tailwind CSS, Bootstrap).
- Thư viện AI & CV: OpenCV (
cv2), TensorFlow (tensorflow.keras), NumPy, Matplotlib, PIL, OS, UUID.
- Cơ sở dữ liệu: SQLite / MySQL / PostgreSQL.
- Môi trường phát triển tích hợp (IDE): PyCharm, Visual Studio Code.
2. Triển khai Module chấm trắc nghiệm bằng OMR
Quy trình quét và chấm bài tự động gồm các bước:
- Tiền xử lý ảnh: Chuyển đổi ảnh chụp sang ảnh xám (
imgGray), làm mờ khử nhiễu (imgBlur), tìm biên cạnh bằng giải thuật Canny (Canny Edge Detection).
- Xác định vùng quan tâm (ROI): Sử dụng
cv2.approxPolyDP để tìm các đường viền có 4 đỉnh (len(approx) == 4), sắp xếp diện tích để trích xuất 4 khối chữ nhật: vùng trả lời câu hỏi 1 và 2 (ScoreContour 1, 2), vùng Số báo danh (IdStudentContour) và vùng Mã đề (IdExamContour).
- Căn chỉnh phối cảnh & Phân ngưỡng: Áp dụng phép biến đổi góc nhìn (Bird-eye view) về dạng phẳng chuẩn, sau đó nhị phân hóa độ sáng.
- Nhận dạng ô tô: Cắt ma trận các ô tròn theo hàng (đối với phần đáp án) hoặc theo cột (đối với Mã sinh viên và Mã đề). Thuật toán đếm số pixel màu tối (giá trị 0) của từng ô; ô có mật độ pixel tối lớn nhất sẽ được chọn là ô sinh viên đã đánh dấu.
- So khớp & Xuất dữ liệu: Lớp
main_scanner so sánh chỉ số lựa chọn với đáp án chuẩn, tính tổng điểm, trích xuất mã sinh viên, mã đề và lưu kết quả vào file Test_Scanner.csv để nạp vào cơ sở dữ liệu SQL.
3. Triển khai Module nhận diện khuôn mặt
Nhóm nghiên cứu triển khai thực nghiệm hai hướng tiếp cận nhận diện khuôn mặt:
| Tiêu chí |
Mô hình 1: Deep Learning (Siamese + CNN) |
Mô hình 2: Machine Learning (Haar Cascade + LBPH) |
| Kiến trúc |
Mạng tích chập kết hợp lớp nhúng Siamese, tính khoảng cách vector đặc trưng. |
Bộ phân loại tầng Haar Cascade kết hợp trích xuất lược đồ mẫu nhị phân cục bộ. |
| Hàm mất mát / Tối ưu |
Binary Cross-Entropy Loss, Adam Optimizer. |
Đào tạo qua AdaBoost và thuật toán lân cận LBPH. |
| Kích thước đầu vào |
Cặp ảnh $100 \times 100 \times 3$ (Anchor - Positive / Anchor - Negative). |
Ảnh đơn đơn kênh (Grayscale) kích thước tùy biến từ webcam. |
| Dung lượng & Tài nguyên |
Kích thước mô hình lớn (model.h5), đòi hỏi GPU khi huấn luyện và suy luận. |
Kích thước gọn nhẹ (trainer.yml), thực thi nhanh trên CPU thông thường. |
| Cơ chế xác thực |
So sánh khoảng cách tính toán (detection_threshold) với ngưỡng thiết lập (verification_threshold). |
Dự đoán định danh ID dựa trên độ tin cậy (confidence < 50 là hợp lệ, ngược lại gán Unknown). |
Nội dung chính theo từng chương
Giới thiệu chung và Đặt vấn đề
Chương mở đầu phân tích bối cảnh bùng nổ của CNTT và AI trong giáo dục, nêu bật sự cần thiết của việc xây dựng hệ thống LMS thế hệ mới. Tác giả chỉ ra các điểm nghẽn của quản lý lớp học truyền thống: giảng viên mất nhiều thời gian kiểm tra sĩ số và chấm hàng trăm bài thi trắc nghiệm bằng tay. Đề tài đặt mục tiêu tự động hóa các khâu này nhằm tối ưu hóa hiệu suất giảng dạy và nâng cao tính minh bạch.
Thiết kế hệ thống và Cơ sở dữ liệu
Nội dung chương trình bày kiến trúc phân rã chức năng của hệ thống web LMS thành 6 phân hệ độc lập. Thiết kế cơ sở dữ liệu quan hệ được xây dựng để liên kết chặt chẽ thông tin người dùng, quyền hạn truy cập, cấu trúc khóa học, bài học đa phương tiện, kho bài tập và bảng điểm kỳ thi. Giao diện người dùng được tối ưu hóa khả năng tương thích thông qua Bootstrap và Tailwind CSS.
Xây dựng thuật toán chấm thi trắc nghiệm OMR
Chương này mô tả chi tiết pipeline xử lý ảnh tĩnh từ tập tin chụp bài thi đến khâu kết xuất điểm số. Trọng tâm là giải thuật phân đoạn hình học để tách biệt độc lập vùng tô mã sinh viên, mã đề thi và các khối đáp án. Cơ chế đếm điểm ảnh tối theo ma trận hàng/cột được kiểm chứng cho kết quả chính xác khi phiếu thi được đặt phẳng và đủ sáng.
Nghiên cứu và Thực nghiệm mô hình Nhận diện khuôn mặt
Chương thực nghiệm trình bày chi tiết hai giải pháp công nghệ:
- Mô hình Siamese CNN: Phân tích quá trình tạo tập dữ liệu 3 thành phần (Anchor, Positive, Negative), cấu hình 50 epochs huấn luyện với checkpoint định kỳ 10 epochs. Báo cáo ghi nhận kết quả đánh giá thực nghiệm đạt Precision = 1.0 và Recall = 1.0. Tác giả thẳng thắn phân tích đây là biểu hiện của hiện tượng quá khớp (Overfitting) do kích thước tập dữ liệu huấn luyện còn nhỏ, đồng thời mô hình gặp trở ngại lớn về độ trễ khi chạy trên máy tính không có GPU chuyên dụng.
- Mô hình Haar Cascade + LBPH: Trình bày giải pháp thay thế sử dụng bộ nhận diện LBPH với tập dữ liệu 1.200 ảnh/người. Thuật toán phân loại theo ngưỡng khoảng cách tin cậy (
confidence threshold = 50), cho phép nhận diện điểm danh tức thời trên luồng video thời gian thực từ webcam.
Kết quả và đóng góp
1. Kết quả đạt được
- Xây dựng thành công ứng dụng web LMS hoàn chỉnh trên nền tảng Django, hỗ trợ đầy đủ các tính năng nghiệp vụ cho giảng viên (tạo khóa học, phân phối bài giảng, giao bài tập, quản lý kỳ thi) và sinh viên (đăng ký học, làm bài trực tuyến, tra cứu kết quả).
- Hoàn thiện module OMR xử lý tự động tệp ảnh bài thi trắc nghiệm, nhận dạng chính xác mã sinh viên, mã đề thi, đối soát đáp án và xuất dữ liệu điểm số ra định dạng
.csv phục vụ tích hợp cơ sở dữ liệu.
- Xây dựng và so sánh thực nghiệm hai mô hình nhận diện khuôn mặt: hoàn thiện mô hình Deep Learning Siamese Network phục vụ nghiên cứu và triển khai thành công mô hình Haar Cascade + LBPH gọn nhẹ phục vụ điểm danh thời gian thực trên luỡng video webcam.
2. Đóng góp thực tiễn
- Đưa ra giải pháp tích hợp trực tiếp công nghệ xử lý ảnh (OpenCV) vào hệ thống quản lý học tập web-based, giúp thu hẹp khoảng cách giữa các phần mềm quản trị dữ liệu truyền thống và các công cụ AI thông minh.
- Cung cấp phương án giảm tải áp lực chấm thi giấy và điểm danh sĩ số cho giáo viên, giảm thiểu sai sót chủ quan trong khâu nhập liệu điểm số.
Hạn chế và hướng nghiên cứu tiếp
Dựa trên các phân tích đánh giá thực nghiệm của nhóm tác giả, công trình còn một số hạn chế kỹ thuật:
- Module OMR: Chưa xử lý tốt các trường hợp ảnh chụp đầu vào có chất lượng kém, bài thi bị nhàu nát, quăn góc hoặc ảnh chụp trong điều kiện ánh sáng yếu, góc nghiêng lớn.
- Mô hình Deep Learning: Mô hình Siamese Network có dung lượng lớn, thời gian nạp và suy luận chậm trên thiết bị không có GPU hỗ trợ phần cứng; dữ liệu huấn luyện còn hạn chế dẫn đến hiện tượng quá khớp (Overfitting).
Hướng phát triển tiếp theo:
- Tối ưu hóa cấu trúc mạng Deep Learning để giảm dung lượng mô hình, nâng cao tốc độ suy luận trên CPU.
- Bổ sung các thuật toán tiền xử lý nâng cao (cân bằng sáng thích nghi, khử biến dạng phi tuyến) để tăng độ bền vững cho module OMR khi gặp ảnh chụp phiếu thi bị nghiêng hoặc thiếu sáng.
Giá trị tham khảo
Tài liệu là nguồn tham khảo hữu ích cho:
- Sinh viên chuyên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Khoa học Dữ liệu đang thực hiện đồ án môn học liên quan đến lập trình Python/Django và tích hợp trí tuệ nhân tạo.
- Các nhà phát triển muốn tìm hiểu quy trình xây dựng ứng dụng OMR quét phiếu trắc nghiệm bằng thư viện OpenCV.
- Lập trình viên nghiên cứu bài toán nhận diện khuôn mặt thực tế với sự so sánh giữa mô hình học sâu (Siamese Network) và mô hình học máy truyền thống (Haar Cascade + LBPH).
Câu hỏi thường gặp
1. Hệ thống LMS này được xây dựng bằng những ngôn ngữ và framework nào?
Hệ thống sử dụng ngôn ngữ lập trình Python với Django Framework cho phần backend, kết hợp JavaScript và các thư viện CSS (Tailwind CSS, Bootstrap) cho giao diện người dùng frontend. Cơ sở dữ liệu hỗ trợ cấu hình trên SQLite, MySQL hoặc PostgreSQL.
2. Module OMR xác định ô trắc nghiệm được sinh viên lựa chọn bằng nguyên lý gì?
Sau khi căn chỉnh phối cảnh và phân ngưỡng nhị phân ảnh phiếu thi, thuật toán chia vùng đáp án thành các ô tròn đơn lẻ và đếm tổng số pixel có giá trị bằng 0 (pixel màu tối) trong từng ô. Ô có số lượng pixel tối lớn nhất trên cùng một hàng sẽ được xác định là ô đã được tô chọn.
3. Tại sao nhóm nghiên cứu phải xây dựng thêm mô hình nhận diện thứ hai bằng Haar Cascade và LBPH?
Mô hình Deep Learning Siamese Network ban đầu có cấu trúc phức tạp và dung lượng lớn, đòi hỏi cấu hình phần cứng có GPU để xử lý. Khi chạy trên máy tính cấu hình văn phòng thông thường (chỉ dùng CPU), mô hình bị nghẽn và tải rất chậm. Do đó, nhóm triển khai thêm mô hình Haar Cascade kết hợp LBPH để đạt tốc độ xử lý nhanh trong thời gian thực.
4. Tập dữ liệu dùng để huấn luyện mô hình Siamese Neural Network gồm những thành phần nào?
Tập dữ liệu được chia làm 3 nhóm: ảnh Anchor và ảnh Positive là khuôn mặt của chính cá nhân cần nhận diện (được chụp qua webcam và lưu với tên mã UUID), còn ảnh Negative là khuôn mặt của người khác được thu thập từ tập dữ liệu chuẩn Labeled Faces in the Wild (LFW). Ảnh được tiền xử lý về kích thước chuẩn hóa trước khi đưa vào mạng huấn luyện.
Kết luận
Báo cáo bài tập lớn của nhóm sinh viên Khoa Công nghệ Thông tin - Học viện Công nghệ Bưu chính Viễn thông đã hoàn thành việc xây dựng một hệ thống quản lý học tập (LMS) tích hợp các công cụ Thị giác máy tính thiết thực. Đề tài đã giải quyết trọn vẹn quy trình chấm thi trắc nghiệm tự động qua OMR và triển khai thực nghiệm hai giải pháp nhận diện khuôn mặt phục vụ điểm danh trực tuyến. Dù còn một số hạn chế về độ phức tạp tính toán của mô hình Deep Learning và độ nhạy sáng của OMR, sản phẩm đã chứng minh tính khả thi cao trong việc ứng dụng công nghệ thông tin vào hiện đại hóa công tác quản lý giáo dục.