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

Sau giai đoạn dịch bệnh Covid-19, các hình thức giảng dạy trực tuyến đã thúc đẩy sự chuyển dịch sang mô hình lớp học kết hợp (Hybrid Classroom). Mô hình này hướng tới việc tích hợp giữa giảng dạy trực tiếp truyền thống và học tập từ xa nhằm tạo môi trường học tập linh hoạt.

Qua khảo sát của nhóm tác giả, các mô hình lớp học thông minh quốc tế như của Đại học Bentley (Mỹ) đã trang bị màn hình lớn, camera, thiết bị thu âm và truyền phát bài giảng trực tuyến, song chưa khai thác sâu công nghệ trí tuệ nhân tạo (AI) và Internet vạn vật (IoT). Các thiết bị bảng thông minh thương mại (như của Samsung hoặc các nhà sản xuất khác) chủ yếu tập trung vào chức năng trình chiếu đơn lẻ. Tại Việt Nam, nghiên cứu "Smart Desk in Hybrid Classroom: Detecting student's lack of concentration when studying" của tác giả Lê Mạnh Hùng và cộng sự (công bố tại hội nghị ACOMPA 2022) đã đề xuất mô hình lớp học tích hợp bục giảng thông minh, bàn học thông minh và phần mềm quản lý, ứng dụng AI để nhận diện độ tập trung. Do quy mô toàn bộ mô hình đòi hỏi nguồn lực lớn, đề tài khóa luận này thu hẹp phạm vi và tập trung thiết kế, hiện thực một thành phần trọng tâm: Bục giảng thông minh.

Mục tiêu của đề tài là thiết kế và hiện thực thiết bị bục giảng thông minh kết nối camera, tự động nhận diện giáo viên để điểm danh, hỗ trợ giao bài tập và mở phòng học trực tuyến. Các nhiệm vụ nghiên cứu cụ thể bao gồm:

  1. Hiện thực các chức năng trên nền tảng Qt C++ với giao diện người dùng đồ họa.
  2. Triển khai giải thuật học sâu nhận diện khuôn mặt phục vụ điểm danh tự động trực tiếp trên phần cứng nhúng.
  3. Tích hợp nền tảng lớp học trực tuyến dựa trên công nghệ web.
  4. Triển khai mô hình giao tiếp thời gian thực giữa bục giảng và các thiết bị bàn học thông minh thông qua giao thức Socket.IO.
  5. Đánh giá kết quả thực nghiệm và so sánh với các chỉ tiêu ban đầu.

Đối tượng sử dụng chính là giảng viên, giáo viên; đối tượng liên quan gồm học sinh, sinh viên và cán bộ quản lý nhà trường. Phạm vi nghiên cứu tập trung vào việc vận hành ứng dụng Qt C++ trên kit nhúng NVIDIA Jetson Nano Developer Kit B01, đảm bảo giải thuật nhận diện khuôn mặt đạt độ chính xác trên 90% với thời gian xử lý dưới 150 ms/khung hình, tích hợp nền tảng họp trực tuyến qua web và kết nối mạng nội bộ/đám mây. Kết quả kỳ vọng đạt độ chính xác nhận diện trên 93,5%, tốc độ xử lý dưới 100 ms/khung hình (tương đương 10 fps) và độ trễ truyền nhận dữ liệu thời gian thực dưới 1 giây.


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

Khóa luận kết hợp cơ sở lý thuyết về hệ thống nhúng, thị giác máy tính, công nghệ web phân tán và kiểm thử phần mềm:

  • Phần cứng và hệ thống nhúng: Lựa chọn bộ kit NVIDIA Jetson Nano Developer Kit B01 trang bị vi xử lý NVIDIA Tegra X1 (4 nhân ARM Cortex-A57 64-bit), GPU kiến trúc Maxwell với 128 nhân CUDA, bộ nhớ 4GB LPDDR4, hỗ trợ xuất hình qua cổng HDMI 4K@30Hz, kết nối Gigabit Ethernet, 4 cổng USB 3.0 và 40 chân GPIO. Phần mềm nhúng được xây dựng trên nền tảng Qt Framework và ngôn ngữ đặc tả giao diện QML (Qt Quick Framework) liên kết với tầng xử lý C++.
  • Mô hình học sâu và thị giác máy tính:
    • MTCNN (Multi-task Cascaded Convolutional Networks): Sử dụng ba mạng tích chập tầng gồm P-Net (đề xuất vùng khuôn mặt), R-Net (tinh lọc vùng biên) và O-Net (chính xác hóa bounding box và điểm mốc), kết hợp hàm mất mát Triplet Loss: $$L_{triplet} = \max\left(0, |f(A) - f(P)|^2 - |f(A) - f(N)|^2 + \text{margin}\right)$$ Tác giả tái sử dụng bộ trọng số huấn luyện sẵn của MTCNN do Google cung cấp.
    • MobileFaceNets: Mạng nơ-ron tích chập tối ưu hóa cho thiết bị di động/nhúng, ứng dụng tích chập tách biệt theo chiều sâu (Depthwise Separable Convolution bao gồm Depthwise và Pointwise 1x1), chuẩn hóa theo lô (Batch Normalization), kết nối tắt (Residual Learning), lớp Global Average Pooling và kỹ thuật Linear Bottleneck để giảm số lượng tham số và chi phí tính toán.
    • Silent Face Anti-Spoofing (Minivision): Áp dụng kiến trúc MiniFASNetV1 kết hợp biến đổi Fourier (Fourier Transform), bộ tạo đặc trưng Fourier (FT Generator) và hàm mất mát FT Loss nhằm phân biệt khuôn mặt thật và giả mạo.
    • MediaPipe Facemesh (Google AI): Mô hình trích xuất và ước lượng 468 điểm mốc hình học (landmarks) trên khuôn mặt để phục vụ phân tích chuyển động mắt và biểu cảm.
  • Công nghệ Web, Realtime và Cloud:
    • Back-end: Node.js kết hợp framework Express.js theo mô hình MVC/Service, hệ quản trị cơ sở dữ liệu phi quan hệ MongoDB lưu trữ dạng tài liệu JSON/BSON, xác thực token qua JSON Web Token (JWT) và quản lý phiên với Redis.
    • Front-end: Thư viện ReactJS, định tuyến với React Router, hệ thống thành phần Material UI (@mui/icons-material, @mui/x-data-grid, @devexpress/dx-react-scheduler) và thư viện truyền thông Axios.
    • Giao tiếp thời gian thực và Video Streaming: Thư viện Socket.IO (kết hợp SocketIO-CPP-Client trên C++), giao thức RTSP truyền luồng video, nền tảng hội nghị mã nguồn mở Jitsi Meet (với các thành phần Prosody, Nginx, OpenJDK 8, Maven, Jicofo, Jitsi Videobridge).
    • Hạ tầng đám mây: Triển khai trên máy chủ ảo Amazon AWS EC2 cấu hình t2.micro (hệ điều hành Ubuntu 20.04 LTS, kiến trúc AMD-64, 1GB RAM, 32GB SSD tại cụm máy chủ Singapore) và tích hợp luồng CI/CD.
  • Nguồn dữ liệu và quy trình huấn luyện: Sử dụng các tập dữ liệu CASIA-WebFace, LFW (Labeled Faces in the Wild), AgeDB-30 và tập dữ liệu người Việt Nam VN-Celeb để huấn luyện và tinh chỉnh (fine-tuning) mô hình. Mô hình huấn luyện trên PyTorch (định dạng .pth) sau đó được chuyển đổi sang định dạng .param và .bin để chạy với thư viện NCNN trên C++.

Thiết kế và triển khai

Hệ thống được thiết kế theo kiến trúc phân tầng kết hợp giữa phần mềm nhúng cục bộ và hạ tầng đám mây:

Phân hệ Thành phần cấu trúc Chức năng kỹ thuật chính
Ứng dụng nhúng (Qt/C++) ConnectedMgr Quản lý kết nối đa giao thức: Socket.IO (thời gian thực), HTTP (gọi API), RTSP (nhận luồng video), gRPC (truyền thông liên dịch vụ).
AIService Thực thi module FRT (nhận diện khuôn mặt) và FaceMesh (trích xuất 468 điểm mốc).
DBMgr, CameraMgr, Logger Quản lý CSDL cục bộ, điều khiển luồng camera ngoại vi và lưu vết nhật ký hệ thống.
Kiến trúc đa luồng Áp dụng mô hình Producer/Consumer với hàng đợi an toàn đa luồng (SafeQueue) để phân tách luồng thu nhận khung hình và luồng suy luận AI.
Máy chủ Back-end & Cơ sở dữ liệu Controller - Service Layer Phân tách logic nghiệp vụ: ClassService, SubjectService, UserService, DocsService, AssignService, QuestionsService, DeviceService, AttendanceService.
CSDL MongoDB (11 Collections) Users, Class, Classroom, Schedule, Subjects, Assign, Question, Attendance, Documents, Device, Noti.
Tầng bảo mật & Xác thực Xác thực API thông qua Bearer JWT Token, kiểm tra phân quyền (Role Middleware), lưu trữ phiên Redis.
Ứng dụng Web (ReactJS) Giao diện Giảng viên (Teacher) Đăng nhập, quản lý lịch giảng dạy, mở phòng học trực tuyến, tải tài liệu, tạo câu hỏi/bài tập trắc nghiệm có đếm giờ, xem danh sách điểm danh và luồng stream camera.
Giao diện Học viên (Student) Xem thời khóa biểu, vào phòng học trực tuyến, làm bài tập trắc nghiệm có đếm thời gian thực, tải tài liệu học tập.
Hội nghị trực tuyến Jitsi Meet Stack Cài đặt Nginx làm reverse proxy, cấu hình Prosody (XMPP), Jicofo và Jitsi Videobridge hỗ trợ tương tác âm thanh, hình ảnh và chia sẻ màn hình.

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

Chương 1. Giới thiệu đề tài

Chương này phân tích bối cảnh giáo dục sau đại dịch Covid-19 và nhu cầu cấp thiết về các giải pháp lớp học kết hợp (Hybrid Classroom). Tác giả tổng hợp các nghiên cứu quốc tế (mô hình lớp học thông minh của Đại học Bentley) và nghiên cứu trong nước (mô hình của nhóm tác giả ĐH CNTT tại ACOMPA 2022). Từ các giới hạn về nguồn lực, đề tài xác định phạm vi tập trung vào nghiên cứu và chế tạo bục giảng thông minh, thiết lập 5 mục tiêu cụ thể, các ràng buộc kỹ thuật và kết quả kỳ vọng đối với thiết bị.

Chương 2. Tìm hiểu lý thuyết và lựa chọn công nghệ

Nội dung chương trình bày cơ sở lý thuyết của các công nghệ được lựa chọn:

  • Nền tảng nhúng Qt Framework, ngôn ngữ QML và phần cứng NVIDIA Jetson Nano B01.
  • Mạng nơ-ron MTCNN, hàm mất mát Triplet Loss, mạng tích chập tối ưu MobileFaceNets.
  • Giải pháp chống giả mạo khuôn mặt Silent Face Anti-Spoofing (MiniFASNetV1) của Minivision và mô hình MediaPipe Facemesh nhận diện 468 điểm mốc của Google.
  • Công nghệ phần mềm web: Node.js, Express.js, cơ sở dữ liệu MongoDB, ReactJS, giao thức truyền thông WebSocket/Socket.IO, hạ tầng máy chủ ảo AWS EC2 t2.micro, quy trình CI/CD và phương pháp kiểm thử đơn vị (Unit Testing).

Chương 3. Phân tích yêu cầu và đặc tả hệ thống

Chương 3 tiến hành phân tích các yêu cầu thực tiễn đối với bục giảng thông minh: khả năng tự động đăng nhập bằng khuôn mặt, giao tiếp thời gian thực với bàn học thông minh, mở phòng học online, giao bài tập trực tuyến, kết nối máy chủ đám mây. Tác giả xây dựng sơ đồ use case tổng quát phân quyền cho hai tác nhân chính (giáo viên, sinh viên), đồng thời xây dựng tài liệu đặc tả chi tiết (use-case specification) và sequence diagram cho tính năng đăng nhập hệ thống (SWS_Feature_Login_v1).

Chương 4. Thiết kế sơ đồ phần cứng và kiến trúc hệ thống

Chương này mô tả thiết kế kiến trúc phân tầng của toàn bộ hệ thống lớp học hybrid. Đối với ứng dụng nhúng trên Jetson Nano, nhóm tác giả thiết kế theo mô hình MVC, module hóa các thành phần ConnectedMgr (Socket.IO, HTTP, RTSP, gRPC), AIService (FRT, FaceMesh) và các module bổ trợ (DBMgr, CameraMgr, Logger). Đối với hệ thống Web, kiến trúc phân tách thành các Controller/Service chuyên biệt. Cơ sở dữ liệu MongoDB được thiết kế chi tiết với cấu trúc lược đồ cho 11 collection nhằm tối ưu hóa truy vấn.

Chương 5. Triển khai hiện thực hệ thống

Chương 5 trình bày quá trình lập trình và hiện thực hóa các phân hệ:

  • Xây dựng Back-end với cấu trúc thư mục rõ ràng, xử lý luồng xác thực JWT và kiểm tra quyền truy cập.
  • Xây dựng Front-end bằng ReactJS, cấu hình các gói phụ thuộc (Material UI, Scheduler, Axios, Router) và thiết lập luồng giao diện riêng biệt cho sinh viên và giáo viên.
  • Huấn luyện mô hình nhận diện khuôn mặt qua hai giai đoạn trên các tập dữ liệu chuẩn (CASIA-WebFace, LFW, AgeDB-30) và tinh chỉnh trên tập VN-Celeb; chuyển đổi mô hình PyTorch (.pth) sang NCNN (.param, .bin) để tích hợp vào mã nguồn C++ trên Qt.
  • Triển khai Socket.IO client trên C++, cài đặt dịch vụ họp trực tuyến Jitsi Meet (cấu hình Nginx, Prosody, Jicofo, JVB), thiết lập kiến trúc đa luồng Producer/Consumer với SafeQueue, cơ chế ghi log và các shell script tự động biên dịch thư viện NCNN, OpenCV 4, Qt 5 bằng CMake trên hệ điều hành Jetson OS (Ubuntu 18.04).

Chương 6. Thực hiện kiểm thử và làm tài liệu

Tác giả triển khai kiểm thử toàn diện trên các module:

  • Thực hiện Unit Testing trên tầng mã nguồn C++ bằng QTest và sinh báo cáo HTML.
  • Kiểm thử các điểm cuối API Back-end thông qua Postman.
  • Kiểm thử khả năng chịu tải (stress test) của máy chủ Socket.IO, đo đạc mức độ tiêu thụ CPU, RAM và độ trễ phản hồi khi có tải nặng.
  • Thực nghiệm kiểm thử độ chính xác nhận diện khuôn mặt, đo đạc thông số sử dụng bộ nhớ RAM của ứng dụng trên Jetson Nano trước và sau khi khởi chạy.
  • Tự động sinh tài liệu mã nguồn (classes, hàm) bằng công cụ Doxygen và cấu hình quy trình CI/CD.

Chương 7. Đánh giá kết quả và kết luận

Chương cuối tổng kết các kết quả đạt được, đối chiếu các thông số kỹ thuật thực nghiệm với mục tiêu đặt ra trong đề cương khóa luận, phân tích các hạn chế còn tồn tại và đề xuất phương hướng phát triển cho hệ thống.


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

Khóa luận đã hoàn thành việc thiết kế và chế tạo một nguyên mẫu bục giảng thông minh hoạt động trên kit nhúng NVIDIA Jetson Nano B01, tích hợp đồng bộ với hệ thống phần mềm web và máy chủ đám mây.

Các kết quả thực nghiệm chính được ghi nhận trong văn bản bao gồm:

  • Ứng dụng nhúng: Ứng dụng Qt/QML C++ vận hành ổn định trên nền tảng Jetson OS, tích hợp thành công mô hình Producer/Consumer giúp phân tách luồng hiển thị giao diện và luồng xử lý AI.
  • Module thị giác máy tính: Nhận diện thành công 468 điểm mốc khuôn mặt thông qua Facemesh; mô hình nhận diện khuôn mặt sau khi tinh chỉnh trên tập dữ liệu người Việt Nam (VN-Celeb) và chuyển đổi sang định dạng NCNN đạt độ chính xác và tốc độ xử lý đáp ứng yêu cầu vận hành thời gian thực trên phần cứng Jetson Nano.
  • Phân hệ Web và Giao tiếp thời gian thực: Hoàn thiện giao diện phân quyền cho giáo viên và học sinh; kết nối Socket.IO truyền nhận dữ liệu bài tập và thông báo có độ trễ thấp; hệ thống Jitsi Meet tích hợp trên nền tảng web hỗ trợ ổn định luồng âm thanh, camera và chia sẻ màn hình.
  • Tài liệu và kiểm thử: Toàn bộ API được kiểm thử qua Postman; mã nguồn C++ được kiểm thử đơn vị với QTest và sinh tài liệu tự động bằng Doxygen; triển khai luồng tự động hóa CI/CD.

Giải pháp kiến trúc do nhóm đề xuất đã giải quyết bài toán tích hợp các mô hình học sâu phức tạp (MTCNN, MobileFaceNets, MiniFASNetV1, Facemesh) xuống thiết bị phần cứng nhúng biên có tài nguyên giới hạn thông qua framework NCNN và ngôn ngữ C++, đóng góp một thiết kế khả thi cho thành phần bục giảng trong mô hình lớp học kết hợp tại Việt Nam.


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

Khóa luận chỉ ra một số điểm hạn chế trong quá trình thực hiện:

  • Hạ tầng máy chủ thử nghiệm: Do giới hạn về kinh phí, hệ thống máy chủ đám mây mới được thử nghiệm trên gói cấu hình cơ bản AWS EC2 t2.micro (1GB RAM), gây hạn chế khả năng chịu tải khi số lượng kết nối đồng thời tăng cao.
  • Tài nguyên phần cứng nhúng: Khả năng tính toán của kit Jetson Nano B01 vẫn còn giới hạn khi phải xử lý đồng thời nhiều luồng tác vụ nặng (chạy giao diện Qt, kết nối camera, xử lý song song các mô hình AI chống giả mạo và trích xuất đặc trưng).
  • Phạm vi triển khai: Đề tài mới tập trung hoàn thiện thành phần bục giảng thông minh, chưa tiến hành kết nối thử nghiệm trên quy mô lớn với hệ thống bàn học thông minh (Smart Desk) và các cảm biến đo lường độ tập trung của học sinh trong điều kiện lớp học thực tế.

Hướng phát triển tiếp theo bao gồm:

  • Tối ưu hóa sâu hơn các giải thuật học sâu trên thiết bị biên để cải thiện tốc độ khung hình và giảm tải bộ nhớ.
  • Nâng cấp hạ tầng máy chủ phân tán có khả năng co giãn (auto-scaling) trên môi trường đám mây.
  • Mở rộng kết nối toàn diện bục giảng với hệ thống bàn học thông minh và tích hợp module AI đánh giá mức độ tập trung của học sinh theo mô hình lớp học hybrid hoàn chỉnh.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo kỹ thuật hữu ích cho:

  • Sinh viên và kỹ sư thuộc các ngành Kỹ thuật Máy tính, Khoa học Máy tính, Công nghệ Thông tin và Kỹ thuật IoT đang thực hiện các đồ án liên quan đến hệ thống nhúng biên kết hợp trí tuệ nhân tạo (Edge AI).
  • Những người phát triển ứng dụng cần tham khảo quy trình triển khai mô hình học sâu (PyTorch) sang định dạng C++ nhúng thông qua framework NCNN trên kit NVIDIA Jetson.
  • Các nhà phát triển hệ thống quan tâm đến kiến trúc kết hợp giữa phần mềm nhúng (Qt/C++), giao tiếp thời gian thực (Socket.IO), truyền phát video (RTSP, Jitsi Meet) và dịch vụ web hướng dịch vụ (Node.js, Express, ReactJS, MongoDB).

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

1. Khóa luận sử dụng phần cứng nhúng nào để triển khai bục giảng thông minh và thông số kỹ thuật ra sao?
Khóa luận sử dụng bộ kit NVIDIA Jetson Nano Developer Kit B01, trang bị vi xử lý 64-bit quad-core ARM Cortex-A57, GPU NVIDIA Maxwell 128 nhân CUDA, 4GB RAM LPDDR4, cổng xuất video HDMI 4K@30Hz, Gigabit Ethernet, 4 cổng USB 3.0 và đầu nối 40 chân GPIO.

2. Các mô hình học sâu nào được ứng dụng trong module nhận diện và xử lý khuôn mặt của đề tài?
Hệ thống sử dụng mạng MTCNN (huấn luyện với Triplet Loss) để phát hiện khuôn mặt, mô hình MobileFaceNets để rút trích đặc trưng, giải pháp MiniFASNetV1 (Silent Face Anti-Spoofing của Minivision) để chống giả mạo khuôn mặt và mô hình Facemesh (MediaPipe của Google) để xác định 468 điểm mốc sinh trắc học trên khuôn mặt.

3. Làm thế nào để các mô hình học sâu huấn luyện trên Python có thể chạy được trong ứng dụng Qt C++ trên Jetson Nano?
Các mô hình sau khi huấn luyện và tinh chỉnh bằng PyTorch (xuất file trọng số .pth) được chuyển đổi sang định dạng .param và .bin, sau đó nạp vào ứng dụng C++ thông qua thư viện suy luận tối ưu hóa NCNN kết hợp OpenCV 4 và Qt 5.

4. Cơ sở dữ liệu MongoDB của hệ thống được thiết kế gồm những collection nào?
CSDL MongoDB của hệ thống bao gồm 11 collection chính: Documents (tài liệu), Class (lớp học), Classroom (phòng học), Assign (bài tập), Attendance (điểm danh), Question (câu hỏi trắc nghiệm), Users (người dùng), Schedule (lịch giảng dạy), Subjects (môn học), Device (thiết bị phòng học) và Noti (thông báo).

5. Nhóm tác giả sử dụng giải pháp nào để xử lý truyền thông thời gian thực và hội nghị trực tuyến?
Giao tiếp dữ liệu thời gian thực được thực hiện qua giao thức WebSocket sử dụng Socket.IO (phía nhúng dùng SocketIO-CPP-Client). Nền tảng lớp học trực tuyến tích hợp giải pháp mã nguồn mở Jitsi Meet, được cấu hình trên nền máy chủ Nginx, Prosody (XMPP), Jicofo và Jitsi Videobridge.


Kết luận

Khóa luận tốt nghiệp của sinh viên Từ Thanh Dương và Huỳnh Đức Anh đã nghiên cứu, thiết kế và hiện thực thành công nguyên mẫu bục giảng thông minh cho mô hình lớp học hybrid. Đề tài tích hợp đồng bộ giữa ứng dụng nhúng Qt C++ trên kit NVIDIA Jetson Nano B01, các giải thuật học sâu nhận diện khuôn mặt tối ưu qua NCNN và hệ thống web quản trị thời gian thực với Node.js, ReactJS và Jitsi Meet. Kết quả nghiên cứu cung cấp một giải pháp kỹ thuật hoàn chỉnh ở cấp độ thiết bị biên, tạo cơ sở thực nghiệm rõ ràng cho các nghiên cứu mở rộng mô hình lớp học thông minh tại Việt Nam.