Khi mà chúng ta luôn mong muốn tìm kiếm nhiều cách khác nhau dé đáp ứng nhu cầu da dang của việc day và học, thì lúc này các mô hình về “⁄ớp học thông minh kết hop” đã xuất hiện như một
Trang 1ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
TỪ THANH DƯƠNG - 18520651 HUỲNH ĐỨC ANH - 19520379
KHÓA LUẬN TÓT NGHIỆP
NGHIÊN CỨU THIET KÉ BỤC GIẢNG THÔNG MINH CHO LỚP HỌC HYBRID
Research on designing smart pulpit for Hybrid classrooms
KỸ SƯ NGÀNH KỸ THUẬT MÁY TÍNH
GIẢNG VIÊN HƯỚNG DAN
TS NGUYÊN MINH SƠN
TP HO CHÍ MINH, 2023
Trang 2MỤC LỤC Chương 1 GIỚI THIỆU DE TÀI 2stt2t2 E.tttrtrrrrrrrrrrrere 1.1 Tổng quan về để tài -sceereereererrereererrerrerrrrrerrrrerrerrerreree 3 1.1.1 Các nghiên cứu quốc tế e ereereereereeeereerrerreereeee 3
1.1.2 Các nghiên cứu trong nưỚC -‹e‹veeesereeereeeersererererrrroersee ẨÍ
1.2 Mục tiêu của đề tài
1.3 Phạm vi nghiên cứu của dé tài -ceeeeeereereereersererrereereev Ổ 1.4 Kết quả mong đợi của đề tài
Chương 2 TÌM HIỂU LÝ THUYET VÀ LỰA CHON CÔNG NGHỆ 7 2.1 Công nghệ lập trình phần mềm nhúng -:-sceceeesereerrerev Z 2.2 Lựa chọn phan cứng -. seseseetererirretererertretrrerrrrerrrrrev Z
2.3 Nhận diện khuôn mặt dựa trên nền tảng học sâu Ở
2.3.2 Mô hình rút trích đặc trưng khuôn mặt MobileFacenet 11 2.3.3 Công nghệ chóng giả mạo khuôn mặt 13
2.3.3.1 Giải pháp Silent Face Anti Spoofing của Minivison 13
2.3.4 Công nghệ nhận diện sinh trắc học khuôn mặt.
2.3.4.1 Mô hình Facemesh phát hiện 468 mốc trên khuôn mặt 14 2.4 Công nghệ và môi trường phát triển Web
2.4.1 Back-end: NodeJS — ExpressJS kết hợp cùng MongoDB 15
2.4.2 — Front-end: ReactJS
2.4.3 Giao tiếp thời gian thực với WebSocket -.« LO 2.5 Môi trường triển khai máy chủ và CI/CD và máy chủ AWS EC2 17 2.6 Kiểm thử phần mềm bằng phương pháp Unit testing 1Ö
Trang 3Chương 3 PHAN TÍCH YÊU CAU VÀ ĐẶC TẢ HỆ THỐNG 20 3.1 Phân tích yêu cau từ thực tiễn.
3.1.1 Tổng quan về kết quả của đề tài -e ee-ere-eere 20 3.1.2 Những chức năng cần có eeeeeeerreeecee 20 3.1.3 Đối tượng sử dụng -es-eeeeeeereereeeeeeeeee 2Ù 3.1.4 Rang buộc tổng thể 20 3.1.5 Phạm vi kết quả và tính bảo trì về sau -. . 2
3.2 Đặc tả các use-case cho hệ thống -eerrrererreeeree 21
3.3 Ví dụ về viết Specification cho một tính năng đăng nhập 22 Chương 4 THIẾT KẾ SƠ ĐỒ PHAN CỨNG 22-.ssse-.sse 25
4.1 Kiến trúc tổng quan hệ thống -« -eerereeeeererreeereee 25
4.2.1 Biểu đồ thành phần ứng dụng nhúng 26 4.2.2 Biểu đồ thành phan ứng dụng web -.-.- ee 29 4.2.3 Thiết kế cơ sở dữ liệu eeererrrero BL
Chương 5 TRIỂN KHAI HIỆN THỰC HỆ THỐNG 33
5.1 Triển khai hiện thực Back-end
5.2 Triển khai hiện thực Front-end với R€aC(S SO 5.3 Triển khai giao diện ứng dụng nhúng ban dau.
5.4 Triển khai module nhận diện khuôn mặt e seersee ex 4D 5.4.1 _ Chuẩn bị bộ dữ liệ
5.4.2 Huấn luyện mô hình esrceeseeeeeeeeeereereeeeeeee 47 5.4.3 Kết quả huấn luyện „49 5.4.4 Chuyển đổi mô hình xuống nên tảng nhúng 5 Ï
Trang 45.4.5 Hiện thực trên C++ dé tính hợp vào ứng dụng QỌt 52
5.4.6 | Chuyển đổi mô hình Anti-Spoofing và Facemesh từ Python xuống
C++ 54
5.5 Triển khai tính năng thông báo thời gian thực với SocketlO 54
5.5.1 _ Triển khai phía máy chủ -cccesrreeceerrreererrrrereerre 54
5.5.2 _ Triển khai ở phía Client trên nền tảng C++ -s - 56
5.6 Triển khai nền tảng lớp học trực tuyến Jitsi Meet 575.7 Triển khai mô hình Producer/Consumer dé xử lý đa luỗng 605.8 Triển khai mô đun lưu lại nhật ký ứng dụng - ccceerrrccscere 645.9 Triển khai chương trình xuống thiết bị phần cứng -:: 65
Chương 6 THỰC HIỆN KIEM THỨ VÀ LAM TÀI LIỆU s - 69
6.1 Triển khai Unit Testing với Gfesi ess-eccssreeeerreeerrrerrrrreee 696.2 Triển khai kiểm thử API với Postman -ccssireeccerreccverrreccxe 716.3 Triển khai kiểm thử khả năng chịu tải máy chủ SocketIO 71
6.4 Triển khai kiểm thử tính năng nhận diện khuôn mặt 74
6.5 Thông số hoạt động của ứng dụng ccee eccceerrreveerrirrverrrrreee 77
6.6 Đóng gói tài liệu với DOXYy8€H -c-s-ccceerrrrerrrrrtrrrrrrrkrrrrrrrrkrrrrrerrrie 78
6.7 Quá trình vận hành và bảo tTÌ «-cccsxcekekkikkrkkrirkrikiikrikiirrrrrrree 81
Chương 7 DANH GIÁ KẾT QUA VÀ KẾT LUẬN -. etrcecrre 84
7.1 Đánh giá kết quả và So sánh với mục tiêu ban đầu - 847.2 Một số điểm hạn chế của đề tài ::iccceccc222SEEEEEEEtrevvvvvvEtrrrrrrrrrrsee 85
7.3 Hướng phát triển tiẾp theO ceccerrrceeerrrreertrrrirerrtrrrirrrrrrirrrrrrrrrere 86
Trang 5DANH MỤC HÌNH VE
Hình 1.1 Hình minh họa về mô hình lớp học thông minh của Đại học Bentley 3Hình 1.2 Mô hình lớp học thông minh mà nhóm tác giả ĐH CNTT dé xuất 5
Hình 2.5 Hình minh họa Kit Jetson nano BOL -ecesccseceeceeesereerererteresrsee 8
Hình 2.10 Mô tả v hàm mất mát triplet LOSS - eceeccciceeeeecccrrreeeeecrerrrreeeerrrrre 11Hình 2.14 Kiến trúc mô hình do Minivision phát triển mã nguồn mở 13
Hình 3.1 Hình minh họa về thiết kế use case cho hệ thống -s 21
Hình 3.2 Sequence diagram cho use case đăng NNGD cesses: 24
Hình 4.1 Kiến trúc tổng thé hệ thống lớp học hybrid . ee-eecceerece 25
Hình 4.2 Biểu do thành phần trong phan mêm nhúng - -:-.ecccce:ee 27Hình 4.3 Biểu đô thành phan theo IMWVC -.ecc -eecccrreeecerrrreecvrrreecrrrree 29Hình 4.4 Biểu đồ cơ sở dữ liệu « cereeetteereereerieririereiriirreereerrir 32Hình 5.1 Mô tả về cau trúc thư mục của repo DACK-CNA -. -«ecceccseeeereeee 33
Hình 5.2 Hình mô tả luông xử lý của máy chủ đối với 1 API .e 34
Hình 5.3 Biểu đồ tuần tự dé xác thực VO QUES cosessesssesssesssessesssessecnsesuesseesseesuecstesstesueeaeeeness® 35
Hình 5.4 Chi tiết xác thực token qua JWWT ececcreeeerrreeeerrrreserrrrrrerrrrre 36
Hình 5.5 Mô tả về cấu trúc thư mục của repo ƒfonf-Hid e.-ceeeeecccrireeseeeerree 37
Hình 5.6 Các dependencies cần thiết để triển khai ƒront-end - -s 38
Hình 5.7 Mô hình ứng dụng TOHf-€HÍ -c-cc«cccseckeeteekeertttteekettrirkirrkirrrrrrrrriee 39
Hình 5.8 Sơ đồ giao diện vai trò sinh viên -ecceccreeccerrreecerrrrereerrrererrrrre 40Hình 5.9 Sơ đồ giao diện vai trò giảo viên -.cceccceeccecrreccerrrrerevrrrerrerrree 41
Hình 5.10 Giao điện trang đăng nhập và trang Cliủ -eccceceeeereeereeseree 41
Hình 5.11 Giao điện trang lich học và thành viên lớp hỌC «e-«c-e-«e-«e-eee 42
Hình 5.12 Giao diện trang về câu hỏi trắc nghiỆI -ceeeecccerrreeccccrrrre 42
Hình 5.13 Giao diện trang bài GD -.e -«ccccexreerrrrrrtrirtritkirtirrriririrrirrrree 42 Hình 5.14 Giao diện trang tài Viti -e c«ccccexeeerrrretrirtrrtrirtkirrrirririrrrirrrrree 42
Hình 5.15 Giao diện trang đăng nhập và trang cá nhÂH! . -c-c-ceeeecee 43
Hình 5.16 Giao diện trang lỊCH NOC e ccccccekeertexetkertritkrtkirtiiririirree 43
Trang 6Hình 5.17 Giao diện trang lớp học và bài Siding cccccccceereeeeekeeerieeeeree 44
Hình 5.18 Giao điện trang bài tẬ - ccceccecerererirtkiittriirtiriiriiriiiiriiree 44
Hình 5.19 Giao diện trang danh sách học sinh và điểm danh -c -cces 44
Hình 5.20 Giao điện trang thông DGO e +ccseceerreeeerertrirtkrirtkirtriirrrirrrirriee 44
Hình 5.21 Giao diện trang xem stream video và điểm danh -s 45
Hình 5.22 Một số mẫu dữ liệu trong tập CASIA-Webjfce ccccccee 46
Hình 5.23 Một số mẫu dữ liệu trong tập LFW(trdi) và AgeDB-30 (phải) 47
Hình 5.24 Một số mẫu về tập VN-Celeb .-eccccctrrreeveverrrtrerverrtrrirarrrrrrrrd 47 Hình 5.25 Biểu đồ tuân tự thực hiện huấn luyện mô hình - cecceecccees 49 Hình 5.26 Độ chính xác sau khi thực hiện huấn luyện giai đoạn một 50
Hình 5.27 Kết quả được kiểm thử sau khi tỉnh chỉnh trên bộ dữ liệu người Việt Nam xao z72 7772 SENNTTT 50
Hình 5.28 Kết quả hàm mat mát giảm trong khi tinh chỉnh trên bộ dữ liệu người 7/20/70 ®®®- 51
Hình 5.29 Các bước chuyển đồi định dang pth qua param và bửn 51
Hình 5.31 Hình mô tả code interface cho Class FACCSCrViCe -e-e-c-ccceeccecceee 52 Hình 5.32 Biểu đồ tuân tự xử lý nhận diện khuôn mặt -ceere-s 53 Hình 5.35 Kết chạy khi chạy nhận dang 468 điểm trên khuôn mặt 54
Hình 5.38 Hình minh về mô hình triển khai của máy chủ SocketlO 55
Hình 5.39 Hình minh họa về bộ interface cho lớp SocketlO-clienl 56
Hình 5.40 Hình minh họa về triển khai lắng nghe một sự kiện qua socket 56
Hình 5.49 Minh họa cai đặt prosody, nginx, openjdk-8-jdk maven 57
Hình 5.50 Minh họa cầu hình cho prSOdy -eecececccieeeeecerrrrreeeeerrrrireeeerrrrre 57
Hình 5.51 Minh họa lệnh sinh lại chứng thực sSÏ «.ceeeceeeeereeeeeekeeerreereerreee 58
Hình 5.52 Minh họa về cầu hình máy chủ ngỉn4 - eceeecccceeeeeccerrreecccerrrree 58
Hình 5.53 Shell script cài đặt fitst ĐYÍg© eee«sseeeerieeirtriirtiriirririiiiirrree 58
Hình 5.54 Hình minh họa cài đặt JICOƒO ecceccceceekkeeekeetkietekirtkirtkiiiiriiirirriee 59
Hình 5.55 Tải và biên dịch mã nguồn cho jitsi Imeel eceeeiiceeeeceerirresveerrrree 59
Hình 5.56 Cau hình lại với jitsi Ime€I eess-eceeceeccereecerrreeeerreeevrtererrrervrrrrerrre 59
Trang 7Hình 5.57 Lệnh khởi động lain máy Chủ HBÏTIX cccccexeeekeeereeteekirerirrreriee 59
Hình 5.59 Hình ảnh minh họa cho việc chia sẻ màn Ninh «e«-cceccecee-eee 60
Hình 5.60 Hình minh họa chạy nên tang học trực tuyến trên thiết bị nhúng 60
Hình 5.61 Sơ đô kiến trúc Producer/Consumer sử dụng trong hệ thống 61
Hình 5.62 Bản triển khai Š4ƒ€(Qu€I€ c-::ieeeccctiiie2SSEEEEEEEEEEEEEEEiAEEEEtriirieekrrrrid 62 Hình 5.63 Bản triển khai COISMIHET ceccescieeececrreeeeertreeertrirererrrirrrerrrrrree 63 Hình 5.64 Bản triển khai ProdiCeF eccecreeeceerrreceerrtreervrrreererrrrerrtrrrrrrerrrre 63 Hình 5.67 Triển khai mô Gun LO8€F ceccccccrireeeveverrrireereeerrrtrerrerrtrrirrrrerrrrrd 64 Hình 5.69 Hình minh họa về nhật ký được lưu lại khi khởi động ưng dụng 65
Hình 5.70 Script cài đặt NCÌNN «cceccriirtrriirrtiirirriirriiriiiriirrirrririie 66 Hình 5.71 Script cài đặt OpenCv 4| Š Ÿ c«ccc«scccsererketterirtkiitkrirtrirriiriirrrree 66 Hình 5.72 Script Cải đặt Qt 5 Ô, ` ch Hà Hà Hàn nành ngiêt 67 Hình 5.73 Script tự động biên dịch VỚI (TH K© -c«-cccccceccceceserveeeeexeeerveereereeee 67 Hình 5.74 Hình ảnh Ung dụng chạy trên thiết bị Ï - e reeccerrreccerrree 68 Hình 5.75 Hình ảnh Ứng dụng chạy trên thiẾt bị 2 seeeececesssssssssssssssessssssssssssssesesssssssssssssseees 68 0.7.8 890NE2.).0 08//0 0 nan nan 69
Hình 6.2 Lệnh biên dịch CmKke ƒÏÏ6 -ceccccsctssrkexteEkteerterkeeketrrtktrrkirrrirrrrerree 69 Hình 6.3 Biên dịCH QteSt eessessssssesssssssssvessssssssscesssessscsscsscesseeesecseeseeeseesesssesseesseeaeeeseessesseerseenseesees 69 Hình 6.4 Copy thư viện vào thư mục thư viện hệ thống -c cc-ceccccceree 69 Hình 6.5 Ví dụ về thực vier unit teSteassssssssssesssssssssssssssssssssssssssssssssssnssssssssssssssssssssesssesseeeseeees 70 Hình 6.6 Ví dụ về sinh ra report HTML cho Œtest ececcreeceerrreeceerrce 70 Hình 6.7 Hình mô tả quá trình thực hiện kiểm thử API trên Postman 71
Hình 6.8 Hình minh họa biểu đô sử dung CPU khi stress test máy chủ socket 72
Hình 6.9 Hình minh họa biểu đô sử dụng RAM khi stress test máy chủ socket 73
Hình 6.10 Hình minh họa độ trễ khi máy chủ chịu tải nặng - 73
Hình 6.11 Hình thông tin về RAM trước khi chạy ứng dụng 78
Hình 6.12 Hình ảnh bộ nhớ RAM sau khi được chạy ứng dụng 78
Hình 6.13 Minh hoạt việc viết doxygen cho class ngay trong Code 79
Hình 6.14 Minh hoạt việc viết doxygen cho hàm ngay trong code - 79
Trang 8Hình 6.15 Hình minh họa về tài liệu HTML được sinh từ bằng doxygen 80Hình 6.16 Hình minh họa các Doxygen hiển thị các NAM - -c-e :e: 80
Hình 6.17 Hình minh họa về chỉ tiết trong từ hàim -ececceeccerrreeceerree 81
Hình 6.18 Hình minh họa cho quá trình CH/CÍD e«-cceeceexeesereeerreeeree 82
Trang 9DANH MỤC BANG
Bang 6.1 Bảng thông số máy chủ SocketlO c -eccecrreeccrrrrecrvrrreccrrrrre 72
Bảng 6.2 Bảng độ chính xác kiểm thử trên tập đữ liệu của mô hình nhận diện
7110.8/1.i08n0000808Ẻ®A 74
Bảng 6.4 Bảng kết quả thực nghiệm nhận diện khuôn MAL - «-. -+ 76
Bang 7.1 Bảng so sánh kết quả thu được và mục tiêu Ae cương 85
Trang 10DANH MỤC TU VIET TAT
Từ viết tắt Ý nghĩa
DOM Document Object Model
JSX JavaScript XML
XHR Polling XMLHTTPRequest Polling
JSONP Polling | JSON with Padding Polling
RTSP Real-Time Streaming Protocol
EC2 Elastic Compute Cloud
CLI Command Line Interface
VPC Virtual Private Cloud
CI/CD Continuous Integration/Continuous Deployment
CSDL Cơ so dir liệu
API Application Programming Interface
loT Internet of Things
MVC Model-View-Controller
REST Representational State Transfer
QML Qt Meta-Object Language
NGINX Engine-X (Web server software)
TLS Transport Layer Security
SSL Secure Sockets Layer
OS Operating System
CPU Central Processing Unit
CNN Convolutional Neural Network
Trang 11LỜI CẢM ƠN
Để hoàn thành được khóa luận tốt nghiệp này, chúng em xin chân thành gửi lời cảm
ơn đến quý thầy cô Trường Đại học Công nghệ Thông tin — Dai học quốc gia Thanh
phố Hồ Chí Minh nói chung và quý thầy cô khoa Kỹ thuật Máy tính nói riêng đã truyền đạt lại những kiến thức và những kinh nghiệm quý trong suốt những năm học
vừa qua.
Xin được gửi lời cảm ơn chân thành đến TS Nguyễn Minh Sơn, Trưởng Khoa Kỹ
thuật máy tính, Trường đại học Công Nghệ Thông Tin — Đại học quốc gia Thành phố
Hồ Chí Minh trong suốt thời gian vừa qua đã tận tình hướng dẫn chúng em trong suốt quá trình thực hiện để tài khóa luận này.
Cũng xin được cảm on hai ban sinh viên Ái Linh và Thu Huyền, đã tích cực có gắng
hỗ trợ nhóm nghiên cứu để hiện thực khóa luận này Với thời gian nghiên cứu hạn chế, sự hiểu biết có hạn, khóa luận không thê tránh khỏi những thiếu sót Nhóm nghiên cứu rất mong nhận được sự đóng góp của thầy, cô, cùng với những người quan tâm dé nội dung khóa luận được hoàn thiện hơn.
Chúng em xin chân thành cảm ơn!
Sinh viên
Từ Thanh Dương
Huỳnh Đức Anh
Trang 12Chương 1 GIỚI THIỆU DE TÀI
1.1 Tổng quan về dé tài
Trải qua một giai đoạn dịch bệnh Covid-19 diễn biến vô cùng phức tạp đã có nhiều tác động đến sự thay đổi trong cuộc sống hiện nay Trong thời điểm đó thì các lớp
học đã chuyển sang dạng trực tuyến điều này giúp cho công nghệ đã trở thành một
phần không thẻ tách rời của lớp học hiện đại trong những năm gan đây, việc này đã biến đổi cả cách học của học sinh và cách dạy của giáo viên Khi mà chúng ta luôn
mong muốn tìm kiếm nhiều cách khác nhau dé đáp ứng nhu cầu da dang của việc day
và học, thì lúc này các mô hình về “⁄ớp học thông minh kết hop” đã xuất hiện như
một phương pháp tiếp cận sáng tạo dé kết hợp tốt nhất giữa việc dạy trực tiếp truyền thống với tính linh hoạt của học tập từ xa Đây là một phương pháp tiếp cận kết hợp
giữa việc dạy trực tiếp truyền thống và tính linh hoạt của học tập trực tuyến, giúp các
trường học tạo ra môi trường học tập bao quát hơn, dễ tiếp cận hơn, đáp ứng được
nhu cầu và hoàn cảnh khác nhau của học sinh.
1.1.1 Các nghiên cứu quốc tế
Mô hình lớp học thông minh kết hợp không phải mới ở các nước phát triển nhưng ké
từ thời điểm bùng phat dịch bệnh Covid-19 thì thực sự bat đầu được tập trung va day
mạnh nhiều hơn Kể từ thời điểm này thi cũng có nhiều mô hình với các đặc điểm và chức năng khác nhau được giới thiệu nổi bật nhất trong đó thì có mô hình lớp học
thông minh của trường Đại học Bentley ở Mỹ.
Hình 1.1 Hình minh họa vê mô hình lớp học thông minh của Đại hoc Bentley
Trang 13Như hình minh họa 1.1, ta có thé thay các thành phan thiết kế trong lớp học thông minh, bao gồm màn hình lớn làm bảng thông minh, thiết bị thông minh dành cho học
sinh, camera và thiết bị thu âm, cùng với các thiết bị phần cứng đi kèm và phần mềm
hỗ trợ Mô hình của Đại học Bentley đã cung cấp những chức năng cơ bản như truyền tải video bài giảng, âm thanh và lớp học trực tuyến.
Tuy mô hình này đáp ứng được yêu cầu giáo dục và học tập, nhưng chưa khai thác
được tiềm năng của trí tuệ nhân tạo (AI) và internet vạn vật (IoT) Với sự phát triển
nhanh chóng của công nghệ, việc áp dụng AI và IoT trong xây dựng một giải pháp
toàn diện cho lớp học thông minh được coi là quan trọng dé đạt được sự đột phá, sáng
tạo và mang lại giá trị cao cho học sinh, phụ huynh, giáo viên và nhà quản lý.
Ngoài ra còn nhiều sản phẩm đơn lẻ được nghiên cứu đến từ nhiều nhà sản xuất khác
nhau ví dụ như sản phẩm bảng thông minh của Samsung hoặc các sản phâm tương tự khác đến từ Trung Quốc Điểm chung của các sản phẩm này là chủ yếu đáp ứng nhu
cầu về trình chiếu ngoài ra không thêm nhiều các chức năng đặc biệt khác như trình
chiếu bài giảng.
1.1.2 Các nghiên cứu trong nước
Hiện nay, Việt Nam đã tiến hành nghiên cứu về mô hình lớp học kết hợp trong đề tài
[1] "Smart Desk in Hybrid Classroom: Detecting student's lack of concentration
when studying", do các tác giả Manh Hung LE và cộng sự thực hiện va được công bố tại hội nghị ACOMPA 2022 Trong nghiên cứu này, các tác giả đã đề xuất một mô
hình lớp học kết hợp, bao gồm bục giảng thông minh, bàn học thông minh và các hệ
thống phần mềm đi kèm Các phần mềm này không chỉ cho phép học sinh tham gia học trực tuyến và học trực tiếp, mà còn cung cấp các chức năng quản lý lớp học cho
nhà quản lý và giám sát học sinh (như được mô tả trong hình 1.2 ở phía bên dưới).
Ngoài các chức năng cơ bản của lớp học, mô hình của tác giả còn đề cập đến việc ứng dung trí tuệ nhân tao (AI) để nhận diện sự tập trung học của học sinh và ứng
dụng Internet of Things (IoT) trong quản lý lớp học Điều này mở ra nhiều hướng
phát triển mới, chẳng hạn như việc chuyển đôi số hóa các trường học Mô hình này
Trang 14cung câp một giải pháp toàn diện với nhiêu lợi ích cho nhiêu đôi tượng khác nhau,
bao gồm học sinh, phụ huynh, giáo viên và quản lý trường học
Nghiên cứu này đánh dấu sự tiến bộ trong việc ứng dụng công nghệ trong giáo dục,tạo ra một môi trường học tập tiên tiễn và giàu tương tác Việc áp dụng trí tuệ nhân
tạo và Internet of Things trong lớp học không chỉ giúp cải thiện quá trình học tập, mà
còn mở ra nhiêu cơ hội phát triên hơn cho giáo dục sô.
Public Cloud Server
Hình 1.2 Mô hình lớp hoc thông minh mà nhóm tác giả DH CNTT dé xuất
Dựa trên kinh nghiệm học trực tuyến trong thời gian dịch Covid-19 và khám phá từ
mô hình nghiên cứu trên, nhóm nghiên cứu đã quyết định tiến hành nghiên cứu sâuhơn Tuy nhiên, do mô hình đó là một dự án rất lớn, yêu cầu nhiều nguồn lực về thời
gian, nhân lực vả cơ sở hạ tầng So sánh với thực tế của khóa luận tốt nghiệp với các
giới hạn về thời gian và nguồn lực khác, nhóm nghiên cứu đã quyết định tập trungnghiên cứu và thiết kế triển khai một thành phần cụ thê trong mô hình đó, đó là bục
giảng thông minh.
1.2 Mục tiêu của đề tài
Thiết kế và hiện thực được thiết bị bục giảng thông minh có thé kết nối camera và tựđộng nhận diện giáo viên, cung cấp cho giáo viên các chức năng như điểm danh tự
động, giao bài tập, mở lớp học online dé học sinh vào học
Trang 15Mục tiêu chi tiết:
“+ Hiện thực các chức năng như mô tả trên nền tảng Qt C++ có giao diện thân
thiện với người dùng.
% Nghiên cứu triển khai giải thuật học sâu về nhận diện khuôn mặt cho chức
năng tự động điểm danh vào ứng dụng chính và chạy trên nền tảng phần cứng
“+ Nghiên cứu tích hợp ứng dụng lớp học online dựa trên nền tang web
s* Nghiên cứu triển khai mô hình giao tiếp thời gian thực giữa thiết bị bục giảng
và các thiết bị bàn học thông minh ở trong lớp học dựa trên công nghệ socketio
s* Đánh giá các kêt quả thực nghiệm và so sánh với kêt quả dự kiên.
1.3 Phạm vi nghiên cứu của đề tài
s* Có thể chạy được ứng dụng Qt C++ ở trên thiết bị nhúng cụ thể là Jetson Nano.s* Giải thuật nhận diện khuôn mặt có độ chính trên tập dữ liệu kiểm tra đạt độ
chính xác trên 90%, tốc độ xử lý trên phần cứng Jetson Nano đạt tốc độ nhỏ
hơn 150ms trên 1 khung hình.
s* Tích hợp được nền tảng web mở lớp học online chạy cùng ứng dụng Qt
» Hiện thực chương trình truyền nhận dữ liệu giữa thiết bị bục giảng và thiết bị
bàn học.
1.4 Kết quả mong đợi của đề tài
s* Ứng dung Qt C++ có thé chạy ôn định không bi đứt quãng khi đang sử dụng
ở trên thiết bị nhúng Jetson Nano
*
> » Giải thuật nhận diện khuôn mặt có độ chính trên tập dữ liệu kiểm tra đạt độ
chính xác trên 93.5%, tốc độ xử lý trên phần cứng Jetson Nano đạt tốc độ nhỏ
hon 100 ms trên 1 khung hình — tương đương 10 fps.
* Nền tảng lớp học online có thé hoạt động với microphone và camera
* Tốc độ giao tiếp thời gian thực giữa thiết bị bục giảng và các thiết bị bản học
thông minh ở trong lớp học có thể hoạt động ồn định và có độ trễ nhỏ hon 1
giây.
Trang 16Chương 2 TÌM HIẾU LÝ THUYET VA LỰA CHỌN CÔNG NGHỆ
2.1 Công nghệ lập trình phần mềm nhúng
Qt Framework là một bộ công cụ phát triển ứng dụng đa nền tảng mạnh mẽ và phô
biến Nó được phát triển bởi công ty Digia (hiện tại là The Qt Company) và cung cấpmột loạt các thư viện, công cụ và ngôn ngữ lập trình để xây dựng các ứng dụng đanên tảng cho máy tính, điện thoại di động, thiết bị nhúng và nhiều nền tảng khác
QML (Meta-Object Language) là một ngôn ngữ lập trình đồ họa dựa trên JavaScript,được sử dụng trong việc phát triển giao diện người dùng đa nền tảng và tương tác
người dùng trong các ứng dụng Qt QML là một phần của Qt Quick Framework, cho
phép bạn tạo ra giao diện đẹp, linh hoạt và mượt mà với việc sử dụng các thành phần
và hiệu ứng đô họa.
Qt QML hỗ trợ việc xử lý sự kiện, ràng buộc dữ liệu, và tạo hiệu ứng đồ họa thôngqua việc sử dụng các khối mã J avaScript Bạn có thê định nghĩa các hàm và biểu thứcJavaScript dé xử lý sự kiện người dùng và thay đổi dữ liệu trong ứng dụng của bạn.Ngoài ra, Qt QML cũng cung cấp khả năng kết hợp với mã C++ thông qua các liênkết C++/QML, cho phép bạn mở rộng khả năng của ứng dụng bằng cách sử dụng các
lớp và phương thức C++.
2.2 Lựa chọn phần cứng
Jetson Nano Developer Kit B01 là một bộ phát triển nhúng từ NVIDIA, được thiết
kế dé cung cấp khả năng xử lý AI mạnh mẽ trong một thiết bị nhỏ gọn Dưới đây lànhững thông số kỹ thuật chính của Jetson Nano Developer Kit B0I:
s* Bộ xử lý: Jetson Nano B01 được trang bị bộ xử lý NVIDIA Tegra XI, với kiến
trúc ARM Cortex-A57 64-bit tốc độ 1.43GHz Đây là một bộ xử lý mạnh mẽ
được tối ưu hóa cho ứng dụng AI và xử lý đa luồng
%* GPU: Jetson Nano B01 có GPU NVIDIA Maxwell với 128 nhân CUDA Điều
này cung cấp khả năng xử lý đồ họa mạnh mẽ và hiệu suất tính toán song song
cho các ứng dụng AI.
Trang 17s* Bộ nhớ: Jetson Nano BO1 đi kèm với 4GB LPDDR4 RAM, cho phép xử lý
các tác vụ đa nhiệm và ứng dụng yêu câu nhiêu bộ nhớ một cách hiệu quả.
s* Đồ họa: Jetson Nano BO1 hỗ trợ đầu ra video 4K ở 30Hz và hỗ trợ kha năng
xử lý video và đồ họa chất lượng cao
“+ Két nôi: Jetson Nano BOI có các công kệt nôi sau:
Một công HDMI cho đầu ra video
Một công Gigabit Ethernet cho kết nối mạng có dây
Bốn công USB 3.0 cho kết nối với các thiết bị ngoại vi
Một khe cắm thẻ nhớ microSD dé lưu trữ hệ điều hành và dữ liệu
Công cấp nguồn 5V/4A dé cung cấp điện cho Jetson Nano
s* GPIO: Jetson Nano B01 có bộ chân GPIO 40 chân, cho phép kết nối và tương
tác với các linh kiện và thiệt bi ngoại vi khác nhau.
Jetson Nano Developer Kit B01 là một công cụ mạnh mẽ dé phát triển và triển khaiứng dụng AI Với bộ xử lý AI và khả năng kết nói đa dang, nó được sử dụng rộng rãitrong các lĩnh vực như nhúng, tự động hóa, xe tự hành, robot và nhiều ứng dụng AIkhác Hình ảnh cụ thể của phần cứng được trình bày như hình 2.5 ở bên dưới đây
Trang 182.3 Nhận diện khuôn mặt dựa trên nền tảng học sâu
2.3.1 Mô hình MTCNN
MTCNN (Multi-task Cascaded Convolutional Networks) là một kiến trúc mạng
neural network sử dụng trong việc phát hiện khuôn mặt và các điểm mốc trên khuôn
mặt Kiến trúc của MTCNN bao gồm ba thành phần chính: P-Net, R-Net và O-Net.Chi tiết về 3 mạng con này như sau:
s*P-Net (Proposal Network):
o_ P-Net là bước đầu tiên trong MTCNN và có nhiệm vụ phát hiện vùng
chứa khuôn mặt trong ảnh.
o_ Kiến trúc của P-Net bao gồm một loạt các lớp tích chập (convolutional
layers) được kết hợp với các lớp pooling và các lớp kích hoạt
o_ P-Net nhận đầu vào là ảnh và đưa ra đầu ra là các bounding box ứng
với các khuôn mặt được phát hiện và các điểm mốc gần đó
o Ngoài ra, P-Net cũng dự đoán xác suất mỗi bounding box có chứa
khuôn mặt hay không.
s* R-Net (Refine Network):
o R-Net được sử dụng dé rà soát và cải thiện kết quả phát hiện khuôn mặt
từ P-Net.
o Kiến trúc của R-Net tương tự như P-Net, với các lớp tích chập và
pooling kết hợp với các lớp kích hoạt
o_ R-Net nhận đầu vào là các bounding box từ P-Net và thực hiện việc lọc
và cải thiện chúng.
o_ R-Net đánh giá xem mỗi bounding box có chứa khuôn mặt thực sự hay
không và dự đoán các điểm mốc quan trọng trên khuôn mặt
“+ O-Net (Output Network):
o O-Net là bước cuối cùng trong MTCNN và có nhiệm vụ chính xác hóa
các bounding box và xác định danh tính của khuôn mặt.
Trang 19o_ Kiến trúc của O-Net tương tự như P-Net và R-Net, với các lớp tích
chập, pooling và kích hoạt.
o_ O-Net nhận đầu vào là các bounding box từ R-Net và thực hiện việc lọc
và chính xác hóa chúng.
o_ O-Net đánh giá xem mỗi bounding box có chứa khuôn mặt thực sự hay
không và dự đoán các điểm mốc quan trọng trên khuôn mặt
o_ Cuối cùng, O-Net cũng phân loại khuôn mặt, xác định xem khuôn mặt
thuộc về người nào
Thay vì sử dụng các hàm mất mát truyền thống thì MTCNN sử dụng một loại hàmmat mát khác đó là Triplet Loss, Triplet Loss là một phương pháp huấn luyện mạng
neural network sử dụng trong MTCNN để học các đặc trưng khuôn mặt Nó giúp tạo
ra một không gian biéu diễn (embedding space) sao cho các đặc trưng của cùng một
người có khoảng cách gân nhau hơn so với các người khác.
Triplet Loss được sử dụng trong quá trình huấn luyện mang neural network O-Netcủa MTCNN để tối ưu hóa việc nhúng (embedding) các khuôn mặt vào không gianđặc trưng Gia sử chúng ta có một dot gồm các mẫu ảnh khuôn mặt Mỗi mẫu ảnhđược biểu diễn bởi một vector đặc trưng trong không gian đặc trưng Dot này bao
gồm các ảnh thuộc cùng một người( positive samples) và các ảnh thuộc các người
khác nhau (negative samples).
Triplet Loss được tính toán bằng cách chọn ba mẫu ảnh từ đợt này: một mốc đại diện
cho một ảnh khuôn mặt (anchor), một ảnh khuôn mặt cùng người với mốc (positive)
và một ảnh khuôn mặt không cùng người với mốc (negative) Mục tiêu là dam bảorằng khoảng cách giữa mốc và ảnh khuôn mặt cùng người nhỏ hơn khoảng cách giữa
moc và ảnh khuôn mặt không cùng người với moc một lượng nhât định.
Công thức tính Triplet Loss như sau:
Leriptee = max (0,((ƒ( + ƑŒ))” ~ (FA) + ƒ(M))? + margin)
Trong đó:
10
Trang 20s* f(A), f(P) và f(N) là các biểu diễn (embeddings) của mốc, positive và negative
trong không gian đặc trưng.
s* margin là một hằng số được định nghĩa trước dé điều chỉnh mức độ phân tách
giữa positive va negative.
Triplet Loss đánh giá sự phân tách giữa các lớp trong không gian đặc trưng, đồng thờiđảm bảo rằng các đặc trưng cùng người gần nhau hon so với các người khác Việc tối
ưu hóa Triplet Loss trong quá trình huấn luyện giúp mô hình MTCNN học được các
đặc trưng phân biệt và chính xác cho phát hiện khuôn mặt Minh họa cho lý thuyết
trên được trình bày trực quan hơn ở hình mô tả 2.10 bên dưới.
Hình 2.2 Mô ta về ham mắt mát triplet loss
Trong thực tế, nhiều nhóm nghiên cứu đã sử dụng MTCNN trong các nghiên cứu liên
quan đến nhận diện khuôn mặt theo thời gian thực và đã đạt được kết quả khả quan.
Tuy nhiên, triển khai lại mô hình phức tạp như MTCNN từ đầu sẽ tốn nhiều thời gian
và công sức, trong khi kết quả thực tế có thê không tương đương với các phiên bản
mã nguồn mở đã được phát triển sẵn Do đó, nhóm quyết định tái sử dụng bộ tham
số MTCNN đã được huấn luyện bởi Google
2.3.2 Mô hình rút trích đặc trưng khuôn mặt MobileFacenet
Ngày nay, xác minh khuôn mặt đã trở thành một công nghệ quan trọng trong nhiềuứng dụng di động, bao gồm cả bảo mật thiết bị và giao diện người dùng Tuy nhiên,
việc triển khai các hệ thống xác minh khuôn mặt chính xác và hiệu quả trên các thiết
bị có tài nguyên hạn chế như điện thoại di động vẫn là một thách thức Trong bài báo
[21] “MobileFaceNets: Efficient CNNs for Accurate RealTime Face Verification on
11
Trang 21Mobile Devices” nhóm tác giả đến từ Dai học Giao Thông Bắc Kinh đã trình bày về
một mô hình được tôi ưu hóa cho việc triên khai trên thiệt bị có tài nguyên hạn chê
bang cách sử dụng một số kỹ thuật quan trọng Một số điểm nhắn trong mô hình đó
lập Bước đầu tiên là Depthwise Convolution, thực hiện tích chập trên mỗi
kênh màu riêng lẻ Sau đó, Pointwise Convolution (tích chập 1x1) được áp
dụng trên kết quả dé kết hợp thông tin từ các kênh Phương pháp này giảm số
lượng tham số cần học và năng lượng tiêu thụ Đề dễ hình dung hơn về tích
chập theo chiều sâu thì độc giả có thé xem ở hình đính kèm 2.11 ở bên dưới.Batch Normalization: Kỹ thuật này chuẩn hóa đầu vào của mỗi lớp, giúp tăngtốc quá trình huấn luyện và cải thiện độ chính xác của mô hình Nó cũng giúpgiảm thiểu hiện tượng Internal Covariate Shift, nơi mà phân phối của mỗi lớp
đầu vào thay đôi trong quá trình huấn luyện
Residual Learning: MobileFaceNets còn áp dụng cách tiếp cận này để giảiquyết vấn đề biến mắt gradient trong quá trình huấn luyện mạng nơ-ron sâu.Bằng cách thêm các đường dẫn ngắn cắt (shortcut connections) giữa các lớp,việc cập nhật đốc trong quá trình lan truyền ngược trở nên dễ dàng hơn, giúpcải thiện hiệu suất của mô hình
Global Average Pooling: Đây là lớp cuối cùng trong mạng, ngay trước lớp
Fully Connected Lớp này giảm kích thước của feature map, giúp giảm sốlượng tham só, tránh overfitting và giảm dung lượng mô hình
Linear Bottleneck: Dé tăng hiệu suất và giảm số lượng tham số,
MobileFaceNets áp dụng kỹ thuật Linear Bottleneck Sau mỗi lớp tích chập,
hàm kích hoạt không được áp dụng ngay lập tức Thay vào đó, một lớp tích
chập 1x1 (Pointwise Convolution) được áp dụng trước, giảm số lượng kênh
xuông.
12
Trang 22Những phương pháp tối ưu hóa này giúp MobileFaceNets hoạt động hiệu quả trêncác thiết bị di động với giới hạn về phần cứng, trong khi vẫn duy trì hiệu suất nhận
dạng khuôn mặt đáng ké.
2.3.3 Công nghệ chống giả mạo khuôn mặt
2.3.3.1 Giải pháp Silent Face Anti Spoofing của Minivison
[4] Năm 2020, Minivision technology một công ty tư nhân về giải pháp công nghệ
của Trung Quốc có trụ sở tại Nam Kinh đã phát triển mã nguồn mở cho cộng đồng
sử dụng một mô hình chống giả mạo khuôn mặt nhanh, nhỏ nhẹ và có độ chính xác
cao Mô hình mã nguôn mở có kiên trúc như hình bên dưới:
1x1x80x80
Ì 2 2 Fourier | Normalizat
—— MiniFASNet
Hình 2.3 Kiến trúc mô hình do Minivision phát triển mã nguồn mở
Như minh họa ở hình 2.14 chúng ta có thé thay mô hình chính trong kiến trúc này làMiniFASNetV1, một kiến trúc mạng neural được áp dụng trong lĩnh vực nhận dạngkhuôn mặt và chống giả mạo khuôn mặt MiniFASNetV1 được thiết kế với kích thước
nhỏ gon và độ chính xác cao, giúp nó phù hợp cho việc triên khai trên các thiệt bi có
tài nguyên hạn chế như điện thoại di động hay hệ thống nhúng
s* Cấu trúc MiniFASNetVI:
13
Trang 23o MiniFASNetVI sử dụng một kiến trúc mang neural gồm các lớp tích
chập, lớp pooling, lớp kích hoạt, và lớp fully connected layer.
o_ Kiến trúc mạng được thiết kế sao cho kích thước nhỏ gọn, với số lượng
tham số và khối lượng tính toán ít
o Mạng sử dụng các lớp tích chập và pooling dé trích xuất các đặc trưng
cấp thấp và cấp cao từ hình ảnh khuôn mặt
o_ Các lớp kích hoạt như ReLU (Rectified Linear Unit) được sử dung dé
giới hạn giá trị đầu ra của các neuron
o Cuối cùng, kết qua đầu ra của mạng được đưa vào một lớp fully
connected layer va lớp softmax dé phân loại hình ảnh
Việc phát triển, huấn luyện và tinh chỉnh mô hình Face-Anti-Spoofing đòi hỏi nhiềuthời gian và công sức dé xây dựng bộ dữ liệu Tuy nhiên, trong hoàn cảnh với thờigian và tài nguyên có hạn, việc tự phát triển lại mô hình có thể không đem lại kết quảnhư mong đợi Vì vậy, nhóm đã quyết định sử dụng lại kết quả nghiên cứu từ mãnguồn mở đã có săn đề tiếp tục triển khai Điều này giúp tiết kiệm thời gian và tàinguyên, đồng thời sử dụng được các kỹ thuật và kiến thức đã được chứng minh sựhiểu quả từ cộng đồng nghiên cứu trước đó
2.3.4 Công nghệ nhận diện sinh trắc học khuôn mặt
2.3.4.1 M6 hình Facemesh phát hiện 468 mốc trên khuôn mặt
Facemesh là một mô hình dự đoán và ước lượng vi trí các điểm mốc khuôn mặt trênhình ảnh hoặc video Nó được phát triển bởi đội ngũ AI của Google, và là một phầncủa thư viện MediaPipe - một nền tảng xử lý thị giác máy tính mã nguồn mở
s% Mô hình và kiến trúc:
o Mô hình Facemesh sử dụng một mang neural nhỏ gọn và hiệu qua dé
dự đoán vi trí của các điểm mốc khuôn mặt
o_ Kiến trúc mang neural của Facemesh bao gồm các lớp convolutional,
lớp kích hoạt và các lớp kết nối đầy đủ (fully connected)
14
Trang 24o Đầu ra của mô hình là một danh sách các điểm mốc khuôn mặt và vị trí
tương ứng trên hình ảnh hoặc video.
o_ Mô hình được tối ưu và cung cấp các siêu tham số dé điều chỉnh độ
chính xác và tốc độ của việc dự đoán
Facemesh đã được sử dụng rộng rãi trong các ứng dụng liên quan đến thị giác máytính và xử lý hình ảnh, bao gồm các ứng dụng AR (Augmented Reality), biểu cảmkhuôn mặt, hợp thành video và các ứng dụng tương tác dựa trên khuôn mặt Các điểm
mốc khuôn mặt được ước lượng bởi Facemesh có thé được sử dụng dé phân tích và
nhận dạng các đặc trưng khuôn mặt, như di chuyền mắt, biéu cảm, hình dạng môi và
nhiêu hơn nữa.
2.4 Công nghệ và môi trường phát triển Web
2.4.1 Back-end: NodeJS — ExpressJS kết hợp cùng MongoDB
Node.js là một môi trường chạy mã JavaScript phía máy chủ, cho phép chúng ta viết
mã JavaScript trực tiếp trên máy chủ Express.js là một framework phát triển ứngdụng web dựa trên Node.js Nó cung cấp các công cụ và tính năng dé xây dựng các
ứng dụng web và API một cách dễ dàng và nhanh chóng Express.js giúp quản lý routing trong ứng dụng, cho phép chúng ta định nghĩa các đường dẫn URL và xử lý
các yêu cầu tương ứng Nó cũng cung cấp middleware, cho phép thêm các chức năng
trung gian vào quá trình xử lý yêu cầu và phản hồi Middleware có thể thực hiện các
chức năng như xác thực, ghi log, xử lý ngoại lệ, và nhiêu công việc khác.
MongoDB là một hệ quản tri cơ sở dir liệu phi quan hệ (NoSQL) dựa trên kiến trúc
lưu trữ dạng tài liệu Thay vì sử dụng bảng và hàng như trong cơ sở dữ liệu quan hệ
truyền thông, MongoDB lưu trữ dữ liệu dưới dang các tài liệu JSON được gọi là
"document" Mỗi document trong MongoDB có thể có cau trúc linh hoạt, không cầntuân theo một lược đồ có định
Khi kết hợp Node.js, Express.js và MongoDB, chúng ta có thê xây dựng các ứng dụngweb động, có khả năng mở rộng và linh hoạt Express.js giúp xử lý yêu cầu và phản
15
Trang 25hồi, quản lý routing và middleware, trong khi MongoDB lưu trữ và truy vấn dữ liệu
một cách hiệu quả.
2.4.2 Front-end: ReactJS
ReactJS là một thư viện JavaScript phát triển bởi Facebook, được sử dung phô biến
trong việc xây dựng giao diện người dung (UI) động và tương tác trên các ứng dụng
web Đặc điểm nổi bật của ReactJS là khả năng xây dựng các thành phan UI đơn lẻ
và tái sử dụng chúng dé tạo nên giao diện phức tạp
ReactJS cung cấp một cách hiệu quả và linh hoạt dé xây dựng giao diện người ding
phức tạp trong ứng dụng web Với các đặc trưng như thành phần, Virtual DOM, JSX,state, lifecycle methods, và React Router, ReactJS đã trở thành một công cụ phô biến
trong cộng đồng phát triển web hiện nay
2.4.3 Giao tiếp thời gian thực với WebSocket
WebSocket là một giao thức mạng hướng sự kiện (event-driven) và hai chiều(bidirectional) cho phép giao tiếp thời gian thực giữa máy chủ và trình duyệt (hoặcgiữa các máy chủ khác nhau) Nó cung cấp một kênh liên lạc đồng thời và liên tụcgiữa hai bên, cho phép truyền dữ liệu một cách hiệu quả và tiết kiệm băng thông Vớikhả năng hai chiều, giao thức đơn giản và độ tin cậy cao, WebSocket đã trở thànhmột phương pháp phổ biến dé phát trién các ứng dung web real-time như trò chuyệntrực tuyến, cập nhật dữ liệu real-time, thông báo và nhiều ứng dụng tương tự
Socket.IO là một thư viện hỗ trợ nhiều ngôn ngữ lập trình khác nhau và được xâydựng dựa trên bô thư viện EnginelO trên nền tảng các giao thức như WebSocket,FlashSocket, JSONP Polling, và XHR Polling cho phép thiết lập kết nối thời gian
thực (real-time connection) giữa máy chủ và trình duyệt (hoặc giữa các máy chủ khác
nhau).
Do đề tài được phát triển bằng ngôn ngữ lập trình C++, nhóm nghiên cứu đã quyết
định sử dụng thư viện mã nguồn mở SocketlO-CPP-Client để thực hiện các chức
năng trong dé tài Thư viện này cung cấp một nền tảng 6n định và linh hoạt dé kết nối
16
Trang 26và giao tiếp với máy chủ Socket.IO bằng ngôn ngữ C++ Việc sử dụng lại thư viện
mã nguồn mở này giúp tiết kiệm thời gian và công sức trong việc triển khai các tínhnăng yêu cầu giao tiếp thời gian thực trong đề tài
2.5 Môi trường triển khai máy chủ và CƯCD va máy chủ AWS EC2
Với sự bùng nỗ của ngành công nghệ thông tin, các ứng dụng và hệ thống phần mềm
ngày càng phức tạp hơn dé đáp ứng nhu cầu đa dạng của xã hội Việc phát triển vàduy trì các ứng dụng này trở nên phức tạp và đòi hỏi cao về sự chính xác, đáng tincậy và nhanh chóng Đề đối phó với điều này, sự tự động hóa trong quá trình pháttriển và triển khai phần mềm đã trở thành mục tiêu quan trọng của các nhóm pháttriển CI/CD đã ra đời để giải quyết các thách thức này CI/CD là một phương phápphát triển phần mềm tự động hóa, nơi các công việc như tích hợp, kiểm tra và triểnkhai được thực hiện một cách liên tục và tự động Nó cho phép các nhóm phát triển
tăng tốc độ phát trién, cải thiện chất lượng phần mềm và giảm thiểu rủi ro trong quá
trình triển khai
Với CI/CD, quá trình phát triển phần mềm được chia thành các giai đoạn nhỏ và liêntục Mỗi khi có thay đôi trong mã nguồn, CI/CD tự động tích hợp và kiểm tra cácphiên bản mới, đảm bảo tích hợp và kiểm tra liên tục Nếu các kiểm tra thành công,phiên bản mới sẽ được triển khai một cách tự động vào môi trường sản xuất hoặc môitrường thử nghiệm Sự hình thành của CI/CD là một tiễn bộ quan trọng trong phát
triển phần mềm, giúp đáp ứng yêu cầu ngày càng cao về sự linh hoạt, nhanh chóng
và chất lượng Nó mang lại lợi ích đáng ké cho các nhóm phát triển và tổ chức công
nghệ, giúp cải thiện hiệu suât và hiệu quả của quá trình phát triên phân mêm.
Amazon Elastic Compute Cloud (Amazon EC2) là một dịch vụ cung cấp năng lực
tính toán đám mây mạnh mẽ của Amazon Web Services (AWS) Dịch vụ này cho
phép chúng ta thuê máy chủ ảo và quản lý dịch vụ máy chủ đám mây theo nhu cầu
mà không cần phải mua và duy trì phần cứng máy chủ riêng biệt Một đặc điểm chính
của Amazon EC2 trở nên phổ biến: Khả năng mở rộng linh hoạt, môi trường an toàn
dé phát triển các ứng dụng, hỗ trợ hầu hết các vùng lãnh thổ Vì còn nhiều hạn chế về
17
Trang 27mặt tài chính nên ở thời điểm hiện tại nhóm quyết định thử nghiệm trên cấu hình máy
ảo EC2 của Amazon như sau:
Noi dat may chu Singapore
2.6 Kiểm thử phần mềm bằng phương pháp Unit testing
Unit testing là một phương pháp kiêm thử phần mềm trong đó các don vị nhỏ nhất
của mã nguồn, gọi là "đơn vi" (units), được kiểm tra độc lập dé đảm bảo tính đúng
đăn và chức năng của chúng Mỗi đơn vị thường là một phần của mã nguồn, như một
hàm, một lớp, hoặc một module.
Đây là một số đặc điểm và lợi ích chính của unit testing:
“+ Độc lập: Unit testing được thực hiện một cách độc lập với các thành phần khác
trong hệ thống Điều này đảm bảo răng các lỗi hoặc thay đổi trong một đơn vị
không ảnh hưởng đến các đơn vị khác, giúp tìm ra lỗi ngay từ giai đoạn phát
triển sớm nhất
* >+ Phát hiện lỗi sớm: Unit testing giúp phát hiện lỗi và vấn dé trong quá trình
phat triển sớm hon Nếu có lỗi xảy ra, nó có thé được xác định và khắc phục
ngay từ giai đoạn phát triên, giúp tiêt kiệm thời gian và công sức trong việc
sửa chữa sau này.
18
Trang 28s* Tao tài liệu song: Unit testing cung cấp tài liệu sống (living documentation)
cho mã nguồn Bằng cách viết các bộ kiểm tra rõ ràng và mô tả chính xác cáctrường hợp kiểm thử, ta có thé tạo ra một tài liệu tự động và dễ hiểu cho mãnguồn
Unit testing là một phần quan trong của phương pháp phát triển phan mềm như kiêmthử liên tục (continuous testing) và phát triển dựa trên kiểm thử (test-drivendevelopment) Nó giúp đảm bao tính đúng đắn, 6n định và tin cậy của mã nguồn,
đông thời tạo ra một cơ sở vững chắc cho việc phát triên và bảo trì ứng dụng.
19
Trang 29Chương 3 PHAN TÍCH YEU CAU VA DAC TẢ HỆ THONG
3.1 Phân tích yêu cầu từ thực tiễn
3.1.1 Tong quan về kết quả của đề tài
Kết quả của đề tài là một bục giảng thông minh được trang bị các chức năng công
nghệ Thiết bị này có khả năng tự động đăng nhập bằng nhận dạng khuôn mặt, kết
nối trực tiếp đến các thiết bị bàn học thông minh và cung cấp giao diện hiển thị cho
học sinh tham gia học trực tuyến Ngoài ra, nó còn có khả năng giao bài tập cho học
sinh theo thời gian thực và phát hiện tín hiệu khi học sinh không tập trung trong quá
trình học hoặc làm bài kiểm tra Hơn nữa, thiết bị này có khả năng kết nối với các
máy chủ đám mây để truyền tải bài giảng và video
3.1.2 Những chức năng cần có
» Tu động đăng nhập bằng nhận dạng khuôn mặt
%& Két nối theo thời gian thực với các thiết bị bàn học thông minh
s* Mo được các phòng học trực tuyến đề các thiết bị của học sinh có thé tham gia
vào lớp học.
se Giao bai tập tới các thiết bị bàn học thông minh theo thời gian thực
s* Phát hiện tín hiệu khi học sinh không tập trung trong quá trình học hoặc làm
bài kiểm tra
* Kết nối với máy chủ đám mây dé truyền tải bài giảng
Trang 30s* Phải đáp ứng yêu cầu về tự động đăng nhập bằng nhận dạng khuôn mặt với
các tiêu chí về an toàn hệ thống và đáp ứng day đủ việc phân quyền truy cập.s* Phải có khả năng kết nối thời gian thực với các thiết bị bàn học thông minh
% Phải cung cấp giao diện hién thị thân thiện với người dùng
s* Phải tuân thủ các quy tắc về bảo mật, không làm mat mát hoặc rò ri dữ liệu ra
bên ngoài.
3.1.5 Pham vi kết quả và tính bảo trì về sau
Phạm vi kết quả của dự án là việc xây dựng một bục giảng thông minh có các chứcnăng và tính năng đã được đề cập Tính bảo trì về sau yêu cầu đảm bảo rằng thiết bịhoạt động ồn định va được cập nhật để sử dụng các công nghệ mới nhất và giải
quyết các vấn đề kỹ thuật phát sinh
3.2 Đặc tả các use-case cho hệ thống
Trước khi triển khai, nhóm đã tiến hành một quá trình tìm hiểu kỹ lưỡng về nhu cầu
thực tế và các tính năng quan trọng của hệ thống Sau quá trình nghiên cứu, nhóm đãthiết kế mô hình use case cho phiên bản đầu tiên của phần mềm bục giảng thông
minh, nhằm đáp ứng những yêu cầu cụ thé từ giáo viên và học sinh trong quá trình
tương tác.
Diagram Key
@ Use case parent
@ Use case child
© © Relationship
@ Accor
Hinh 3.1 Hinh minh hoa vé thiét ké use case cho hé thong
21
Trang 31Như minh hỏa ở hình 3.1 ở trên chúng ta có thê thấy các tính năng chính mà phiênbản đầu tiên này tập trung phát triển bao gồm:
` s*
Quản lý tài liệu: Giáo viên có thể xem và tải lên các tài liệu giảng dạy, bài
giảng, bài tham khảo hoặc tài liệu bé sung Sau đó có thé giao các tải liệu nàyđến các lớp, học sinh tương ứng
Quản lý lớp học trực tuyến: Giáo viên có thê mở lớp học trực tuyến và học
sinh có thé truy cập vào lớp học trên đa nền tang một cách dé dang dé tương
tác và học tập Quá trình này được đảm bảo tính riêng tư và bảo mật cho lớp
học.
Thông tin về trạng thái hoc sinh: Giáo viên có thé kiểm tra xem học sinh đãđiểm danh hay chưa hoặc cũng có thé sử dụng tính năng mở camera dé xem
hình ảnh của học sinh trong lớp.
Giao bài tập: Giáo viên có thê mở và đóng bài tập để giao nhiệm vụ và đánh
giá tiên độ của học sinh.
Qua việc thiết kế mô hình use case này, phần mềm bục giảng thông minh đã tập trung
vào việc cung cap các tính năng quan trọng và dap ứng nhu câu tương tac của giáo
viên và học sinh Sự linh hoạt và tính đa dang của phần mềm giúp nâng cao hiệu quagiảng dạy và quản lý lớp học, mang lại một môi trường học tập tốt hơn cho tất cả
người dùng.
3.3 Ví dụ về viết Specification cho một tính năng đăng nhập
Use Case ID SWS Feature_Login_ v1
Mô tả
Bước đăng nhập bang dé xác thực người dùng trước
khi vào sử dụng các tính năng ở trong.
22
Trang 32Actor(s) Giáo viên
Độ ưu tiên Buộc phải triển khai
Thời điểm sử dụng Mỗi khi cần sử dụng thì phải đăng nhập
Điêu kiện trước
» Người đăng nhập đã được thêm vào CSDL
% Người đăng nhập đã được phân quyềnThiết bị sẵn sàng kết nối internet
* Nếu đăng nhập bằng khuôn mặt thì cần môi
trường đầy đủ ánh sáng, rõ mặt
Điêu kiện sau
+» Thông báo người dùng đăng nhập thành công
và chuyên hướng sang trang chủs* Hệ thống ghi nhận ID người dùng đăng nhập
Trang 34Chương 4 THIET KE SƠ DO PHAN CỨNG
4.1 Kiến trúc tong quan hệ thống
Sau khi nghiên cứu yêu cầu thực tế và hoàn thành việc đặc tả hệ thống thông qua việc phân tích các use case và viết các tài liệu mô tả, nhóm tiến vào giai đoạn thiết kế, đây
là bước thứ hai trong quy trình phát triển phần mềm Agile Dựa trên phân tích từ phần
trước, nhóm đã tạo ra một thiết kế tong quan cho hệ thống lớp học kết hợp, như được minh họa trong hình dưới đây Trong phạm vi dé tài lần này, nhóm chỉ tập trung triển
khai phần kiến trúc được nằm trong ô vuông mau đỏ dưới hình 4.1.
Age
cassandra
Grafana
Hình 4.1 Kiến trúc tong thé hệ thống lớp hoc hybrid
Chỉ tiết về các thành phần trong thiết kế trên như sau:
- Nhóm ứng dụng app: Bao gồm các phần mềm nhúng, ứng dụng điện thoại và
website, cung cấp đầy đủ chức năng và hỗ trợ đa nền tảng Đây là phần giao diện mà người dùng sẽ tương tác trực tiếp để truy cập và sử dụng các tính năng
của hệ thống lớp học.
- Nhóm máy chủ đám mây: Đây là các máy chủ được triển khai trên nền tảng
đám mây để hỗ trợ các chức năng và xử lý dữ liệu của hệ thống Các thành
phan trong nhóm máy chủ đám mây bao gồm:
25
Trang 35- Máy chủ SocketlO: Được sử dụng dé tạo và quản lý kết nối thời gian thực giữa
ứng dụng và các thiết bị khác nhau, đảm bảo việc truyền thông dữ liệu nhanh
chóng và tin cậy.
- Máy chủ RTSP: Được sử dung dé truyền luồng video thời gian thực từ các thiết
bị ghi hình hoặc camera đến ứng dụng và các thiết bị khác.
- Máy chủ Back-end: Là thành phần trung tâm của hệ thống, đảm nhiệm các
chức năng quản lý người dùng, quản lý khóa học, quản lý tài liệu và các hoạt
động xử lý dữ liệu khác Nó cung cấp giao diện lập trình ứng dụng (API) để cho phép các ứng dụng khác tương tác với hệ thống.
- Cụm cơ sở dit liệu đám mây MongoDB: Đây là cơ sở dit liệu đám mây được
sử dụng dé lưu trữ và quản lý dữ liệu của hệ thống lớp học MongoDB cung cấp tính năng linh hoạt và khả năng mở rộng cao, phù hợp với mô hình dữ liệu linh hoạt trong hệ thống này.
Trên cơ sở kiến trúc trên, hệ thống lớp học hybrid được xây dựng để cung cấp một
trải nghiệm học tập linh hoạt và tương tác cho người dùng, kết hợp các ứng dụng di
động, website và các thành phần máy chủ đám mây để quản lý và xử lý dữ liệu.
trí tuệ nhân tạo, thành các module độc lập.
Đối với các thành phan trong ứng dụng, nhóm đã chọn áp dụng mô hình kiến trúc
phần mém MVC (Model-View-Controller) Mô hình này giúp tách biệt logic xử lý
dữ liệu (Model), giao diện người dùng (View) và điều khiển các tương tác giữa
Model và View (Controller), giúp tăng tính linh hoạt và khả năng bảo trì của hệ
thống.
26
Trang 36Ngoài ra, nhóm cũng đã thiết kế một module riêng dé kết nối đến cơ sở dữ liệu nội
bộ Module này đảm bảo việc truy xuất và quản lý dữ liệu trong hệ thống một cách
hiệu quả và bảo mật Chỉ tiết về các thành phần trong ứng dụng được mô tả như hình
4.2 bên dưới đây:
lor Manager Service Server ELeam
Hình 4.2 Biéu dé thành phan trong phan mém nhúng
Chỉ tiết mô tả về các khối thiết kế như trong hình trên như sau:
- ConnectedMgr: Day là module quản lý kết nối, bao gồm các thành phan sau:
o_ SocketIO: Đảm nhiệm việc truyền thông qua giao thức SocketlO, cho
phép tương tác thời gian thực giữa client và server.
27
Trang 37o gRPC: Được sử dụng dé giao tiếp và truyền dữ liệu giữa các dịch vụ
khác nhau trong hệ thống, đồng thời hỗ trợ cơ chế truyền dữ liệu antoàn và hiệu suất cao
o HTTP: Đảm nhận việc truyền thông qua giao thức HTTP, cho phép giao
tiếp qua mạng và truy cập các API
o RTSP: Thực hiện truyền thông qua giao thức RTSP (Real-Time
Streaming Protocol), hỗ trợ truyền tải dữ liệu video và âm thanh trong
o_ Model: Chita logic xử ly dit liệu và thao tác trực tiếp với cơ sở dit liệu,
bảo đảm tính nhất quán và bảo mật dữ liệu
o View: Hién thị thông tin cho người dùng và tương tác với Controller dé
truyền thông tin và cập nhật giao diện người ding
AI Service: Đây là module triển khai các dịch vụ xử lý trí tuệ nhân tạo, bao
gồm các thành phần sau:
o FRT: Thực hiện nhận dạng khuôn mặt và các tính năng liên quan về
khuôn mặt trong hệ thống
o FaceMesh: Xử lý phân tích và trích xuất các đặc điểm khuôn mặt, như
hình dạng và vi trí của các điểm đặc trưng.
Các module tiện ích khác:
o_ DBMgr: Module quản lý và xử lý kết nối đến cơ sở dữ liệu nội bộ, dam
bảo việc truy xuất và quản lý dữ liệu hiệu quả và bảo mật
o CameraMgr: Đảm nhận việc quản lý và điều khiến các thiết bị camera
trong hệ thống, bao gồm việc lấy dữ liệu hình ảnh và điều khiến các
chức năng liên quan.
28
Trang 38o Logger: Module ghi lại và quản lý các thông báo và sự kiện trong hệ
thống, hỗ trợ theo dõi và gỡ lỗi.
- Controller: ở day là các Service đại diện cho các logic xử lý và quy trình
nghiệp vụ trong hệ thống Service được sử dụng để thực hiện các chức năng
cụ thể của ứng dụng Trong thiết kế của ứng dụng đã triển khai các Service
bao gồm:
© ClassService: Đảm nhiệm việc quản lý thông tin về lớp học, bao gồm
tạo mới lớp học, cập nhật thông tin, xóa lớp học và các chức năng liên
quan.
o SubjectService: Xử lý các nghiệp vụ liên quan đến môn học, bao gồm
quản lý danh sách môn học, thêm mới môn học, chỉnh sửa thông tin, xóa môn học và các tác vụ khác.
29
Trang 39o_ UserService: Quản lý thông tin người dùng, bao gồm đăng ký, đăng
nhập cập nhật thông tin cá nhân, xóa tài khoản và các chức năng khác
liên quan đến người dùng trong hệ thống.
o DoesService: Xử lý việc quản lý tài liệu, bao gồm tải lên, tải xuống, xóa
tài liệu và các chức năng khác liên quan đến quản lý tài liệu trong ứng
dụng.
©_ AssignService: Thực hiện các nghiệp vụ liên quan đến phân công công
việc, bao gồm tạo nhiệm vụ gán nhiệm vụ cho người dùng, cập nhật
thông tin và xóa nhiệm vụ đã được giao.
oO QuestionsService: Xử lý các hoạt động liên quan đến câu hỏi, bao gồm
tạo câu hỏi, quản lý danh sách câu hỏi, chỉnh sửa, xóa câu hỏi và các
chức năng khác liên quan.
o DeviceService: Đảm nhận việc quản lý các thiết bị trong hệ thống, bao
gồm thêm mới thiết bị, cập nhật thông tin, xóa thiết bị va các chức năng
khác liên quan đến quản lý thiết bị.
© AttendanceService: Xử lý việc quan lý điểm danh, bao gồm ghi nhận
điểm danh, xác nhận, cập nhật thông tin và các chức năng khác liên quan đến quản lý điểm danh trong hệ thống.
- Model: Đại điện cho các đối tượng và cấu trúc dữ liệu trong ứng dụng Nó bao
gồm các lớp và phương thức để định nghĩa các đối tượng, quản lý và truy xuất
dữ liệu Các Model phổ biến trong thiết kế kiến trúc web theo mô hình MVC
bao gồm các lớp như Classroom, Subject, User, Docs, Assignment, Question,
Device va Attendance Các lớp Model này sẽ có các thuộc tinh và phương thức
đề thực hiện các thao tác liên quan đến đối tượng tương ứng trong hệ thống Với mô hình MVC, hệ thống web được tổ chức và phát trién một cách có cấu trúc, linh hoạt và dễ bảo trì Sự phân chia rõ ràng giữa Controller, Service và Model giúp đơn giản hóa quá trình phát triển phần mềm và tạo ra các thành phan độc lập có thé
tái sử dụng Nó cung cấp một quy trình làm việc rõ ràng và giúp tăng khả năng kiểm
thử và quản lý mã nguồn Ngoài ra, mô hình MVC cũng cho phép các thành viên
30
Trang 40trong nhóm phát triển làm việc độc lập trên các thành phần khác nhau của ứng
dụng, tăng hiệu suất và giảm xung đột trong quá trình phát triển.
4.2.3 Thiết kế cơ sở dữ liệu
Nhóm đã sử dụng cơ sở dữ liệu MongoDB, một hệ quản trị cơ sở dữ liệu phi quan hệ,
để không ràng buộc cấu trúc đữ liệu Do đó, nhóm đã tập trung vào việc thiết kế các collection dé tối ưu truy van và tiết kiệm bộ nhớ Dưới đây là danh sách các collection
mà nhóm đã xác định và mô tả chúng:
- Documents: Collection này chứa thông tin về các tài liệu.
- Class: Collection này chứa thông tin về các lớp học, bao gồm cả lớp học trực
tuyến và lớp học kết hợp.
- Classroom: Collection này chứa thông tin về các phòng học chung, ví dụ như
số lượng thiết bị trong phòng học.
- Assign: Collection này chứa cấu trúc đữ liệu về bai tập.
- Affendance: Collection này chứa câu trúc dữ liệu về việc điểm danh.
- Question: Collection con cua Assign, chứa cấu trúc dữ liệu về bộ câu hỏi.
- Users: Collection này chứa thông tin về người dùng.
- Schedule: Collection này chứa thông tin về lịch giảng day.
- Subjects: Collection này chứa thông tin về quản lý các môn học.
- Device: Collection này chứa thông tin về các thiết bị được trang bị trong phòng
học.
- Noti: Collection này chứa thông tin về các thông báo.
Chỉ tiết hơn về các thuộc tính sẽ được trình bày ở hình 4.4 bên dưới đây.
31