Các hệ thống điểm danh sử dụng mô hình học sâu thường được triển khai trên các thiết bị có cau hình và khả năng tính toán cao mới có thể suy luận thời gian thực, điển hình là máy... Việc
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
LÊ HỮU TRUYEN - 20522094
KHÓA LUẬN TÓT NGHIỆP
TÍCH HỢP TÍNH TOÁN BIEN VA MAY CHU CHO HE THONG NHAN DIEN KHUON MAT DA XAC THUC
Integrating Edge Computing And Server For Multi-Authentication
Facial Recognition System
CU NHÂN NGANH KY THUAT MAY TÍNH
GIANG VIEN HUONG DAN
ThS PHAN DINH DUY
KS CHE QUANG HUY
TP HO CHÍ MINH, 2024
Trang 2LOI CAM ON
Để hoàn thành khóa luận, một mình em khó có thể làm được nếu không nhờ đến sự giúp
đỡ, chỉ dẫn và hỗ trợ đến từ thầy cô, người thân và bạn bè Chính vì vậy, em xin được bày tỏlòng tri ân sâu sắc của mình đến với mọi người vì đã tiếp bước cùng em trong giai đoạn vừa
qua.
Đầu tiên, em xin được gửi lời cảm ơn sâu sắc đến toàn thể giảng viên Trường Đại học
Công nghệ Thông tin, đặc biệt là các thầy cô của Khoa Kĩ thuật Máy tính Nhờ những kiếnthức mà thầy cô đã truyền đạt, sự chia sẻ kinh nghiệm, kỹ năng trong suốt quá trình giảngdạy, em mới có thể đạt được các kết quả đáng ghi nhận và hoàn thành khóa luận này Em xinđặc biệt cảm ơn thầy Phan Đình Duy là người đã tận tình chỉ dẫn và hỗ trợ nhiệt tình cho
em về những lời khuyên, kiến thức và các thiết bị cần thiết của đề tài Xin chân thành cảm
ơn người thầy cũng như người anh mà em luôn kính trong, thay Chế Quang Huy là người đãđồng hành và giúp đỡ sát sao, là người luôn truyền cảm hứng và động lực giúp em thực hiện
tốt khóa luận tốt nghiệp
Tiếp theo, mình xin bày tỏ lòng cảm kích đến toàn thể thành viên câu lạc bộ CEEC, đây
là nơi đã cung cấp cho mình môi trường với đầy đủ các phương tiện để tìm hiểu, học hỏi, pháttriển các kiến thức và kỹ năng, góp phần rất lớn cho sự chỉnh chu và hoàn thiện của khóa
luận này.
Cuối cùng, con xin bày tỏ sự tri ân đến người thân và gia đình, những người luôn ủng hộ
từng quyết định mà bản thân đưa ra
Mặc dù rất nỗ lực để luận văn được hoàn thiện nhất, tuy nhiên khó có thể tránh khỏi hạnchế và thiếu sót Kính mong nhận được sự thông cảm và góp ý từ thầy cô và các bạn
TP Hồ Chí Minh, ngày 24 tháng 7 năm 2024
Tac giả
Lê Hữu Truyén
Trang 32_ TỔNG QUAN ĐỀ TÀI
2.1 Tình hình nghiên cứu trong nước
2.2 Tình hình nghiên cứu ngoài nước
a & KR KR ® 0 WY WN
"
Trang 43.2.6 RetinaNet Q Q 02 ee ee 22
3.2.7 K-meanalgorithms 000000 ee eee 23
3.2.8 Logistic Regression 000000002 eee 24
4 PHƯƠNG PHAP NGHIÊN CUU VÀ THỰC HIỆN 26
41 Tổng quanhệthống CS Q Q S S 26
4.1.1 Phancting thiétbibién - 27
412 Phầnmềmhệthống 28
4.2_ Quy trình vận hành của thiét bibién 29
42.1 Quy trình hoạt động chung 29
4.2.2 Quy trình thu thập dit liệu và đểm danh 32
4.3 Thu, xử lý và lưu trữ dữ liệu khuôn mặt 33
4.3.1 Phathiénkhu6nmat 34
4.3.2 Trích xuất đặctrưng 34
4.3.3 Tiền xửlý dữliệu ẶcQ eee 36 4.3.4 Tối ưu hóa dữ liệu lưu trữ với phương pháp phân cụm 39
4.4 Nhận diện khuôn mặt 41
44.1 Phuong pháp Instance 02.20.0008 43 4.4.2 Phuong phapCentroid 44
4.4.3 Phuong phapFusion 44
4.5 Luu trữ, xử lý dữ liệu trên máy chủ đám mây 46
4.5.1 Phân bố dữ liệu phi tập trung - 46
45.2 Xây dựng cơ sở dữ liệu Ặ 48 4.6 Webvà ADp 0.0000 ee 3x3 49 5 ĐÁNH GIÁ KET QUA THUC NGHIỆM 50 5.1 Hiệnthựcphầncứng 2 ee 50 5.2 Giao diện thiết bị biên, web Vaapp 2 ee 51 5.2.1 Giao diện thiétbibién 51
5.2.2 Web ee 52
Trang 553 Quá trình vậnhành Ặ.Ặ Ặ Ặ Q Q QC 55
5.3.1 Thu dữ liệu - điểm danh bằng thểtừ 55
5.3.2 Điểm danh bằng khuôn mặt 56
5.3.3 Điểm danh bằng khuôn mặt kết hợp thẻtừ 57
5.3.4 Điểm danh bằng trangweb 57
5.3.5 GiảmaothẺtỪ Q Q Q Q Q HH ko 58 5.3.6 Mạo danh khuôn mặt 59
54 Xửlýhìnhảnh Ặ.Ặ Q Q ee 60 5.4.1 Bộ dữ liệu đánh giá nhận diện khuôn mat 60
5.4.2 Kết quả đánh giá giải pháp đề xuất 61
5.4.3 Kết quả triển khaithựctếẾ 63
KET LUẬN VÀ HƯỚNG PHÁT TRIỂN 64 6.1 Kếtuận ⁄⁄⁄ £P N À 64
62 Khó khăn gặpphải Ặ 000000 eee eee 64 63 Hướng pháttriển ee 65 TÀI LIEU THAM KHẢO 66
Trang 62.1
2.2
2.3
2.4
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
3.13
41
4.2
43
44
4.5
4.6
DANH MUC HINH
Tổng quan thiết kế của hệ
thống -Cấu trúc hệ thống trong bài báo
Chi tiết mô hình của hệ thống - Co Oo aN Cấu trúc hệ thống của bài báo
-Kiến trúc mô hình LFFD (A Light and Fast Face Detector for Edge Devices) 10 Hình ảnh thực tế mach Raspberrypi4 - 11
Module RC522 1 ee ee 12 Camera LogitechC525 ee ee 13 Man hình cảm ứng điện dung dành cho Raspberry pi4 14
Mô hình kết nối điển hình của giao thức SPI 15
Các lớp của một ứng dụng Flutter 17
Quá trình hiện thực hàm mat mát Additive Angular Margin 20
Quá trình tích chập theo chiều sâu - 20
Quá trình tích chập theo đểm 20
Quá trình Global Average Pooling 21
Kiến trúc RetinaNet 2 ee 23 Triển khai thuật toán K-mean vào bài toán phân cụm 24
Vi dụ về cách hoạt động của Logistic Regression 25
Tổng quan thiết kế của hệ thống 26
Tổng quan thiết kế phần cứng - 27
Tổng quan thiết kế phan mềm - 28
Toàn bộ quy trình hoạt động của hệthống - 31
Mô hình trích xuất và nhận diện đặc trưng khuôn mặt 32
Quá trình thu, xử lý và lưu trữ dữ liệu khuôn mặt 33
Trang 747 Quá trình pháthiện khuônmặt 34
4.8 Ví dụ về các vùng trích xuất đặc trưng khuôn mặt 35
4.9 Quá trình trích xuất đặc trưng khuôn mặt 35
4.10 Minh họa độ mờ cục bộ - 37
4.11 Các điểm landmark trên khuôn mặt - 37
4.12 Tổng quan kiến trúc của giải pháp phát hiện khuôn mặt giả 39
4.13 Đầu vào quá trình thu thập dữ liệu 40
4.14 Lọc và trích xuất dữ liệu 41
4.15 Quá trình phân cụm vector đặc trưng khuôn mặt 41
4.16 Quá trình nhận diện khuôn mặt 42
4.17 Ap dụng thuật toán Weighted-sum vào nhận diện khuôn mặt 43
4.18 Phương pháp Centroid trong nhận diện khuôn mặt 44
4.19 Dữ liệu được khai thác theo lịchbiểu 47
4.20 Biễu diễn các mối quan hệ trongCSDL 48
5.1 Thiết kế các bộ phận khung trong Fusion360 50
5.2_ Hình ảnh sản phẩm thiết bịbiên - 51
5.3 Giao diện tương tác người dùng của thiết bịbiên 51
5.4 Các chức nang quản lý ngudiding - 52
5.5 Trang web theo dõi sau dang nhap 53
5.6 Quá trình đăng nhập của ứng dung - 54
5.7 Bảng theo dõi của ứng dụng QC 55 5.8 Quá trình yêu cầu thu dữ liệu - 56
5.9 Người dùng chọn lọc và lưu dữ liệu 56
5.10 Kết quả điểm danh trên trang web và ứng dụng 57
5.11 Quá trình nhận diện khuôn mặt 57
5.12 Quá trình nhận diện khuôn mặt kết hợp thểtừ 58
5.13 Thao tác điểm danh thủcông 58
5.14 Giả mạo thể tỪ HQ ee 59 5.15 Kết quả trên trangweb_ cv 59 5.16 Quá trình nhận diện khuôn mặt mạo danh 60
Trang 85.17 Một số bộ dif liệu đánh giá của VN-celeb 60
5.18 Phân phối khoảng cách của các phương pháp truy vấn 62
5.19 Thời gian truy van của các phương pháp - 62
5.20 Hình ảnh thử nghiệm trong thựctế - 63
Trang 93.1
4.1
4.2
5.1
5.2
DANH MUC BANG
Kết quả của bài nghiên cứu trên Raspberry Pi3B+ 10
Kiến trúc của MobileFaceNet 22
Tín hiệu truyền nhận từ các khối đến Planning 30
So sánh các tham số mô hình và FLOP 38
So sánh độ chính xác giữa các phương pháp trên bộ dữ liệu kiểm thử 61
Thời gian suy diễn của các mô hình trên hệ thống 63
Trang 10DANH MỤC TU VIET TAT
Al Artificial Intelligence
API Application Programming Interface
CNN Convolutional Neural Networks
DCNN Deep Convolutional Neural Network GPIO General Purpose Input/Output
Iol Internet of Things
MNN Mobile Neural Network
SPI Serial Peripheral Interface
RFID Radio Frequency Identification
De-tection
Trang 11động, thay thế cho phương pháp điểm danh truyền thống.
Khóa luận này nghiên cứu và hiện thực một hệ thống gồm hai phần chính: thiết bị biên
và máy chủ đám mây Thiết bị biên thực hiện tác vụ điểm danh bằng hai lớp xác thực bao
gồm thẻ từ và nhận diện khuôn mặt, đồng thời cung cấp giao diện thao tác cho người dùng
Dữ liệu nhận dạng sẽ được lưu trữ một phần trên thiết bị và đồng bộ hóa với máy chủ đámmây Máy chủ đám mây là nền tảng cho trang web và ứng dụng điện thoại vận hành, cungcấp phương tiện theo dõi tình trạng điểm danh của lớp học cho giảng viên; đồng thời nó cũng
là nơi lưu trữ, phân phối toàn bộ dữ liệu
Kết quả nhóm đạt được là hoàn thành xây dựng một kiến trúc hoàn chỉnh cho hệ thốngđiểm danh Thiết bị biên là bo mạch máy tính nhúng Raspberry pi 4 tích hợp các module
ngoại vi như RC522, camera, màn hình cảm ứng với giao diện được triển khai trên Qt
frame-work Máy chủ đám mây vận hành web được xây dựng trên Nodejs framework, cùng với đó
là ứng dụng điện thoại bằng Flutter framework.
Trong bài toán nhận diện khuôn mặt, nhóm dé xuất một phép đo tương tự mới kết hợp
khoảng cách giữa đo thông thường (Instance) và đo tập trung (Centroid) nhằm nâng cao độ
chính xác của nhận dạng khuôn mặt Đánh giá phép đo này trên bộ dữ liệu VN-celeb, mô
hình Resnet101 đạt độ chính xác cao với 92.63% khi sử dụng thuật toán do nhóm dé xuất,
trong khi đó, hai phương pháp Instance và Centroid chỉ đạt lần lượt là 91.67% và 91.97% Áp
dụng mô hình RetinaFace cho phát hiện khuôn mặt và MobileFaceNet cho nhận diện khuôn
mặt trên thiết bị biên đạt được thời gian suy diễn lần lượt là 42ms và 48ms Thử nghiệm trênmôi trường thực tế với quy mô gần 40 người, nhóm thu được độ chính xác nhận diện khuônmặt với tỉ lệ xấp xỉ 91.69% Các trường hợp nhận diện thất bại chủ yếu do ánh sáng thất
thường, ảnh đầu vào mờ, đặc biệt khi người dùng đeo kính và khẩu trang
Trang 12Chương 1 GIỚI THIỆU ĐỀ TÀI
1.1 Đặt van đề
Trong thời đại ngày nay, khoa học công nghệ đang ngày càng lan rộng trong lĩnh vực
giáo dục, từ đó mang lại nhiều cơ hội và thách thức mới Một trong những dẫn chứng là việc
sử dụng các thiết bị, hệ thống điểm danh thông minh để thay thế cho hoạt động điểm danh
thông thường Thay vì điểm danh thủ công bằng cách gọi tên hoặc kí tên, các thiết bị, hệthống này đưa ra các giải pháp tân tiến và hiệu quả hơn, giúp giảng viên dễ dàng, thuận tiệnhơn nhiều trong việc điểm danh học sinh sinh viên, tiết kiệm thời gian cho hoạt động dạy vàhọc, ngoài ra còn hạn chế những lỗi phổ biến như đánh dấu điểm danh nhầm hoặc gian lận
Các xu hướng gần đây cho thấy rằng các hệ thống điểm danh thường sử dụng các công
nghệ hiện đại như vân tay, thẻ từ và nhận diện khuôn mặt Tuy nhiên, các hệ thống này thường
gặp phải nhiều bắt cập trong quá trình vận hành Chẳng hạn như việc sử dụng thẻ từ sẽ không
đảm bảo về vấn đề an ninh khi thẻ từ dễ bị làm giả, đánh cắp Sử dụng dấu vân tay cũnggây ra nhiều bất tiện khi các yếu tố ngoại cảnh như độ ẩm, bụi bẩn dễ gây ảnh hưởng đến
quá trình xác định danh tính Trong khi đó công nghệ nhận diện khuôn mặt mang lại lợi ích
vượt trội trong hệ thông điểm danh so với vân tay và RFID (Radio Frequency IdentificationDetection) nhờ khả năng thực hiện nhanh chóng và tiện lợi mà không cần chạm hoặc tiếp xúc
trực tiếp với thiết bị, nâng cao khả năng định danh tự động
Vượt trội là thế, nhưng công nghệ nhận diện khuôn mặt cũng đặt ra những thách thức
về quyển riêng tư và an ninh dữ liệu, đòi hỏi các biện pháp bảo mật và quản lý dữ liệu chặt
chẽ để bảo vệ thông tin cá nhân của người dùng Đồng thời, một số kỹ thuật tan công như
sử dụng ảnh mặt giả mạo cũng làm suy giảm độ tin cậy của hệ thống Do đó, việc kết hợpcông nghệ RFID và nhận diện khuôn mặt trong điểm danh sẽ góp phần giảm thiểu các rủi
ro nêu trên Khi mà việc sử dụng thé RFID ngoài điểm danh ra cũng là phương tiện để định
danh, truy xuất các đữ liệu khuôn mặt, giúp quá trình quản lý dữ liệu hiệu quả, bảo mật hơn.Đồng thời, nhận diện khuôn mặt sẽ xác thực cho việc quét thẻ RFID, tránh trường hợp gian
lận hoặc kẻ gian trà trộn.
Các hệ thống điểm danh sử dụng mô hình học sâu thường được triển khai trên các thiết
bị có cau hình và khả năng tính toán cao mới có thể suy luận thời gian thực, điển hình là máy
Trang 13tính cá nhân Mặc dù mang lại hiệu năng và tốc độ ấn tượng, nhưng lại đồng nghĩa với chi
phí không hề rẻ, yêu cầu không gian lắp đặt lớn và thiếu tính linh hoạt
Vì vậy, nhóm đề xuất triển khai giải thuật nhận diện trực tiếp trên thiết bị nhúng, giúpgiảm kích thước và làm cho hệ thống trở nên độc lập và linh hoạt hơn Tắt nhiên, việc tíchhợp nhận diện khuôn mặt vào máy tính nhúng sẽ đối mặt với nhiều thách thức, bao gồm giới
hạn tốc độ nhận diện do hạn chế về phần cứng, độ chính xác bị ảnh hưởng bởi dữ liệu khuôn
mặt trùng lặp, mờ và có khả năng làm giả Đồng thời, cũng cần phải xây dựng các giải pháplưu trữ và trích xuất dữ liệu khuôn mặt để đảm bảo hiệu suất sử dụng
1.2 Lý do chọn dé tai
Trong bối cảnh hiện nay, nhận diện khuôn mặt đã trở thành một công nghệ quan trọng vàđược sử dụng rộng rãi trong nhiều lĩnh vực như an ninh, giám sát, và quản lý truy cập Theomột báo cáo, thị trường nhận diện khuôn mặt toàn cầu dự kiến sẽ đạt 9,6 tỷ USD vào năm
phản hồi của hệ thống, đồng thời tối ưu hóa tài nguyên mạng và tiết kiệm băng thông
Đề tài không chỉ mang tính học thuật cao mà còn có tiềm năng ứng dụng thực tiễn lớn.Trong thời đại công nghệ 4.0, các hệ thống thông minh và tự động hóa đang dần thay thế cácphương thức truyền thống, đòi hỏi những giải pháp công nghệ tiên tiến Các hệ thống nhận
diện khuôn mặt tích hợp tính toán biên và máy chủ có thể được ứng dụng trong nhiều lĩnhvực như kiểm soát an ninh tại các cửa ra vào, hệ thống thanh toán tự động và quản lý truy
cập tại các tòa nhà thông minh, tăng tốc quá trình kiểm tra an ninh và quản lý hành khách
trong các sân bay.
Nghiên cứu và phát triển hệ thống nhận diện khuôn mặt đa xác thực dựa trên tính toánbiên và máy chủ sẽ góp phần thúc đẩy sự phát triển trong lĩnh vực trí tuệ nhân tạo và học
máy Việc nghiên cứu và triển khai một hệ thống nhận diện khuôn mặt hiệu quả dựa trên sự
tích hợp của tính toán biên và máy chủ sẽ cung cấp các thuật toán mới và cải tiến về tính toánbiên, có thể được ứng dụng rộng rãi trong các nghiên cứu khác về trí tuệ nhân tạo và học
Trang 14máy, đồng thời đóng góp vào kho tàng tri thức, cung cấp các giải pháp mới và sáng tạo cho
cộng đồng khoa học và công nghệ
1.3 Đối tượng và phạm vi thực hiện
1.3.1 Doi tượng nghiên cứu
Đối tượng nghiên cứu của nhóm bao gồm: Các nội dung lý thuyết, thực hành liên quan
đến hệ thống nhúng, lập trình trên máy tính nhúng, nghiên cứu và hiện thực các giải thuậtnhận diện khuôn mặt, tối ưu giải thuật trích xuất và lưu trữ dữ liệu, giải thuật xác thực hai
lớp, hiện thực các thành phần của hệ thống hướng người dùng như giao diện người dùng,
trang web, ứng dụng điện thoại.
1.3.2 Pham vi thực hiện
Vé phạm vi thời gian, dé tài được nghiên cứu và phát triển trong thời gian diễn ra khóaluận tốt nghiệp
Về phạm vi không gian, dé tài hướng đến việc triển khai trên toàn phạm vi toàn bộ các
phòng học của trường đại học, tuy nhiên, do giới hạn vật tư và thời gian của khóa luận tốt
nghiệp, nhóm sẽ triển khai trên phạm vi một lớp học, phòng lab.
Về phạm vi nội dung, dé tài sẽ giới hạn lại trong van dé vận hành hệ thống IơT bao gồmthiết bị biên và máy chủ, kết nối thiết bị ngoại vi và xử lý thị giác máy tính trên máy tính
nhúng.
1.3.3 Mục tiêu nghiên cứu
Nghiên cứu và hiện thực được một hệ thống điểm danh bao gồm máy chủ và thiết bịbiên Ngoài ra, dé tài còn thiết kế và cung cấp giao diện người dùng điểm danh, cũng nhưweb, app theo dõi dành cho giảng viên nhằm gia tăng khả năng tương tác và tính ứng dụngcủa hệ thống vào thực tế Hình 1.1 mô tả tổng quan thiết kế của hệ thống
Bao gồm 2 phần:
Máy chủ đám mây: Là nơi lưu trữ các dữ liệu chính của toàn hệ thống, cung cấp các API(Application Programming Interface) để nhập xuất dữ liệu và là nền tảng cho web và app vận
hành.
Máy điểm danh (Thiết bị tính toán biên): Máy sẽ được lắp đặt trước mỗi phòng học, khi
sinh viên vào học sẽ lần lượt quét thẻ và cung cấp hình ảnh khuôn mặt để điểm danh:
Trang 15Attendance machine Cloud server Web app
Hình 1.1: Tổng quan thiết kế của hệ thống
* Có khả năng truyền nhận, lưu trữ dữ liệu nhận dạng và thực hiện nhận diện với quy mô
lớp học lên đến 60 người
» Xây dựng giải thuật với thời gian phát hiện và trích xuất đặc trưng khuôn mặt không
quá 100ms (lớn hơn 10 FPS), độ chính xác xấp xỉ đạt hơn 90%
s Đề xuất các phương pháp để nâng cao hiệu suất cho quá trình thu thập dữ liệu và nhận
diện khuôn mặt.
s Tích hợp cơ chế tự đồng bộ dữ liệu nhận diện theo từng lớp học
* Cung cấp giao diện tương tác, hiển thị thời gian và thông số môi trường cho người
dùng, ngoài ra còn web và app.
Thanh phần xử lý chính của thiết bị là máy tính nhúng Raspberry Pi 4 kết nối với module
đọc tín hiệu RFID và camera; bo mach máy tính nhúng sẽ đọc các tín hiệu RFID, trích xuấtđặc trưng khuôn mặt và gửi nhận các dữ liệu lên máy chủ, thiết bị đi kèm với một màn hìnhcảm ứng hiển thị cung cấp giao diện giúp người dùng tương tác với hệ thống
Trang 161.4 Phương pháp thực hiện
Dưới đây là phương pháp thực hiện hệ thống bao gồm thiết bị tính toán biên và máy chủcho hệ thống nhận diện khuôn mặt đa xác thực:
* Tìm đọc, nghiên cứu, tìm hiểu các bài báo và công trình về các hệ thống điểm danh
ứng dụng nhận diện khuôn mặt cũng như công nghệ RFID.
¢ Phân tích, nghiên cứu và hiện thực các giải thuật phát hiện, nhận diện khuôn mặt và
các phương pháp cải thiện hiệu suất nhận diện trên máy tính nhúng
* Tìm hiểu, hiện thực máy chủ lưu trữ dữ liệu, phương tiện truyền nhận và web app theo
dõi.
s Lap đặt phần cứng, thiết kế và hiện thực toàn bộ giải thuật nhận diện, phương thức giao
tiếp với máy chủ, truyền nhận dữ liệu, đọc cảm biến RFID trên máy tính nhúng
¢ Nghiên cứu, xây dựng quy trình vận hành toàn hệ thống, lập trình giao diện người
dùng, trang web và app.
* Xây dựng phương pháp triển khai và đánh giá kết quả của hệ thống
Trang 17Chương 2 TỔNG QUAN ĐỀ TÀI
Các xu hướng gần đây đã cho thấy rang các hệ thống IơT (Internet of Things) thường
được thiết kế để hoạt động độc lập và tối ưu hiệu suất, đặc biệt là trong các hệ thống liênquan đến xử lý hình ảnh, nơi sức mạnh của bộ điều khiển trung tâm phải được xem xét đểđáp ứng khả năng xử lý hình ảnh, trao đổi dữ liệu và vận hành các thiết bị ngoại vi
2.1 Tình hình nghiên cứu trong nước
Được đề cập trong bài báo [1], các tác giả đã xây dựng một hệ thống điểm danh sử dụngmáy tính làm bộ xử lý chính, với camera giám sát được kết nối trực tiếp với máy tính để khaithác hình ảnh Đầu đọc thẻ RFID có tác dụng đọc và truyền dữ liệu từ thẻ từ đến máy tính
để xử lý thông qua một bo mạch trung gian là Arduino Dữ liệu xử lý vận hành được lưu trữ
trong cơ sở dữ liệu SQL Server để đảm bảo an toàn và đồng bộ Vì sử dụng máy tính cá nhânnên khả năng xử lý, lưu trữ của hệ thống tương đối lớn, tuy nhiên khả năng mở rộng, tínhlinh hoạt khá thấp, cùng với đó là chi phí khá cao do đòi hỏi phần cứng tốn kém Hình 2.1cho thấy mô hình bài báo trên thực tế
$qaL
SERVER
Hình 2.1: Cau trúc hệ thống trong bài báo
Cũng sử dụng camera giám sát trong tác vụ nhận diện như trên, nhóm tác giả trong bài
báo [2] sử dụng phương thức Websocket để truyền ảnh sau khi qua xử lý từ camera giám sátđến server dưới định dạng base64, việc chuyển định dạng được thực hiện nhằm tối ưu dunglượng lưu trữ và giúp gia tăng tốc độ truyền nhận so với ảnh gốc Hệ thống được phân chia
Trang 18với các khối tác vụ cụ thể hoạt động chặt chẽ với nhau Bao gồm khối Cloud, là nơi lưu trữ
dữ liệu nhận dạng, hiển thị và phân tích dữ liệu, cũng như là nền tảng cho web và app hoạt
động Tiếp đó là khối AI (Artificial intelligence), xử lý ảnh, huấn luyện dữ liệu từ đó cho raoutput là mô hình AI có thể sử dụng cho nhận diện khuôn mặt Cuối cùng là khối Embedded,
cụ thể sẽ vận hành trên board nhúng Jetson nano, thu thập hình ảnh từ camera, tiền xử lý ảnh,
áp dụng mô hình từ khối AI và trả về kết quả nhận diện cho khối Cloud Hình ảnh 2.2 hiển
thị cụ thể mô hình các khối trên
THE AUTOMATED ATTENDANCE SYSTEM
( Cloud Server’), ì Embedded system
Hình 2.2: Chi tiết mô hình của hệ thống
2.2 Tình hình nghiên cứu ngoài nước
Được đề xuất bởi [3], nhóm tác giả xây dựng một hệ thống sử dung Raspberry Pi 3 làmđơn vị xử lý chính cho việc nhận diện hình ảnh, cho phép hệ thống hoạt động độc lập Ngoàicác tính năng điểm danh thông thường của sinh viên, hệ thống này cũng tích hợp các chứcnăng bổ sung như gửi tin nhắn và email đến phụ huynh
Giới thiệu ở bài báo [4], bài báo tập trung nghiên cứu hệ thống quản lý điểm danh dựatrên RFID cùng với ứng dụng dựa trên web Hệ thống quản lý điểm danh của học sinh, cungcấp khả năng theo dõi các buổi học trên lớp của học sinh Bên cạnh đó, vẫn được hỗ trợ thôngtin về khóa biểu ngày, thời gian học trên lớp, bán số của lớp học, số Chức năng của bao hệthống bao gồm: quản lý dif liệu, theo dõi sinh viên, gửi báo cáo, theo dõi các bản ghi vacung cấp các thông tin dịch vụ khác Đầu đọc kết nối RFID với Arduino Uno R3 và bo mạchArduino cũng được kết nối với Ethernet Shield để có thể sử dung Internet Tiếp đến Arduino
Trang 19gửi tín hiệu đến máy chủ thông tin quá cáp Ethernet cũng như sử dụng WAMP Server, PHP,
cơ sở dữ liệu là MySQL để lưu trữ thông tin học sinh điểm danh và xuất bản sao chép củasinh viên lên web Hình ảnh 2.3 cho hệ thống cấu trúc của bài báo
Display Information
Hình 2.3: Cau trúc hệ thống của bài báo
Hệ thống này có ưu điểm là cung cấp khả năng theo dõi tình hình học tập của sinh viên,giờ lên lớp, phòng học; có chức năng báo cáo thông tin của sinh viên đến giáo viên hoặc phụhuynh Tuy nhiên, hệ thống thiếu các tính năng nhận dạng thuộc sinh trắc học như khuônmặt, vân tay vì vậy học sinh phải bắt buộc mang theo thẻ mới có thể điểm danh và khi mấtkết nối internet, chưa có cơ chế lưu trữ hệ thống để có thể hoạt động bình thường
Ngày nay với sự phát triển trong xử lý ảnh và ứng dụng vào thực tế cuộc sống, cụ thể làngày càng nhiều các hệ thống điểm danh sử dụng công nghệ nhận dạng khuôn mặt và cũng
có rất nhiều phương pháp nhận dạng khuôn mặt được ứng dụng Trong bài báo số [5] đã tổnghợp một số kiến thức và những công trình liên quan sử dụng kỹ thuật nhận dạng khuôn mặt
vào trong các hệ thống điểm danh từ khoảng 30 nghiên cứu liên quan Một trong những côngtrình nổi bật trong đó là công trình [6] sử dụng kết hợp nhận dạng khuôn mặt kết hợp với thẻ
RFID để xác thực Trong công trình này, tác giả sử dụng OpenCV 2.4.0 và Python 2.7.13 đểhiện thực hệ thống nhận dạng khuôn mặt từ hình ảnh webcam được đưa vào trong máy tính,kết hợp với 2 module hồng ngoại và đầu đọc thẻ REID được kết nối với board Uno để thực
hiện việc điểm danh và xác nhận sinh viên.
Để hệ thống ngày càng trở nên độc lập, các hệ thống xử lý ảnh có xu hướng được triển
Trang 20khai trên những board mạch như Raspberry hoặc Jetson nano Trong bài nghiên cứu về nhận
dạng khuôn mặt [7] nhóm tác giả thực sử dụng mô hình SSD với backbone là MobileNet
ở bước Face Detection, về định danh gương mặt nhóm tác giả đào tạo lại SphereFace bằng
FP16 thay vì FP32 để giảm hơn nữa mức tiêu thụ tài nguyên Sau đó đưa giải thuật lên
Raspberry Pi 3B+ Bảng 2.1 cho thấy kết quả khả quan của bài nguyên cứu trên
Bảng 2.1: Kết quả của bài nghiên cứu trên Raspberry Pi 3B+
Stage Speed on Raspberry
Detection 1.212 fps Alignment 100 fps
Hình 2.4: Kiến trúc mô hình LFFD (A Light and Fast Face Detector for Edge Devices)
Nhóm tác giả [9] đề xuất Mobile Neural Network (MNN), một mạng chung và công cụ
suy luận hiệu quả phù hợp với các ứng dụng di động MNN là một khung học sâu hiệu quả
cao và nhẹ Nó hỗ trợ suy luận và đào tạo các mô hình học sâu và có hiệu suất hàng đầu trong
ngành cho việc suy luận và đào tạo trên thiết bị
10
Trang 21Chương 3 CƠ SỞ LÝ THUYET
3.1 Phần cứng
3.1.1 Raspberry pi 4
Raspberry Pi 4 là một thiết bi máy tính nhúng nhỏ gọn, rất phổ biến trong các dự án điện
tử, giáo dục, và ứng dụng nguyên mẫu do khả năng tích hợp cao và chi phí thấp Hình ảnhthực tế của nó được thể hiện ở Hình 3.1
Hình 3.1: Hình ảnh thực tế mạch Raspberry pi 4
Dưới đây là các thông số kĩ thuật liên quan đến Raspberry Pi 4:
* Bộ vi xử lý: Với bộ vi xử lý chính là Broadcom BCM2711, một chip bốn nhân A72 (ARM v8) 64-bit với tốc độ lên đến 1.5 GHz Điều này cung cấp sức mạnh xử lýđáng kể so với các thế hệ trước
Cortex-* Bộ nhớ RAM: Có các tùy chọn về dung lượng RAM từ 2GB, 4GB đến 8GB, tùy theo
nhu cầu sử dụng, cho phép thực hiện nhiều tác vụ đồng thời và xử lý các ứng dụng
nặng hơn.
* Kết nối: Raspberry Pi 4 hỗ trợ Wi-Fi dual-band 2.4 GHz và 5.0 GHz, Gigabit Ethernet,
Bluetooth 5.0, va USB 3.0, cho phép nó kết nối và truyền dữ liệu với các thiết bi khác
* Đồ họa và Video: GPU VideoCore VI của nó hỗ trợ OpenGL ES 3.0, cho phép xử ly
đồ họa tốt hơn và hỗ trợ đầu ra video 4K Điều này làm cho nó trở thành lựa chọn tốtcho các dự án yêu cầu xử lý đồ họa nặng như trò chơi, xử lý hình ảnh hoặc trình chiếu
media.
11
Trang 22» Lưu trữ: Không giống như các máy tính truyền thống sử dung 6 cứng hay SSD, berry Pi 4 sử dụng thẻ nhớ microSD cho hệ điều hành và lưu trữ dif liệu, làm cho nó
Rasp-linh hoạt và dễ dàng mở rộng.
5 Hệ điều hành: Raspberry Pi 4 chạy Raspberry Pi OS, một hệ điều hành dựa trên
De-bian Nó cũng có thể chạy các hệ điều hành khác như Ubuntu, Windows 10 IoT Core,
và thậm chí là các phiên bản nhẹ của Windows 10.
* GPIO: Các chân GPIO (General-purpose input/output) cho phép Raspberry Pi 4 kết
nối với các cảm biến, động cơ, và các thiết bị ngoại vi khác, điều này làm nó trở thànhmột nền tảng lý tưởng cho các dự án DIY và robot
Raspberry Pi 4 là một công cụ học tập và nghiên cứu mạnh mẽ, thích hợp cho nhiều ứngdụng từ xây dựng máy chủ web nhỏ cho đến phát triển hệ thống nhúng phức tạp
3.1.2 Đầu doc RFID
Mach RFID NFC 13.56MHz RC522 được dùng dé doc và ghi dif liệu cho thẻ RFID/NFC
có tan số 13.56MHz, sử dụng mach IC MERC522 Với thiết kế nhỏ gọn, mach này hiện được
sử dụng phổ biến trong các ứng dụng cần ghi và đọc thẻ REID/NEC cùng với Arduino và cácloại vi điều khiển khác Hình ảnh thực tế của mạch được thể hiện ở Hình 3.2
3.1.3 Camera kĩ thuật số
Logitech C525 là một webcam có các tính năng giúp nó phù hợp với các tác vụ xử lý
hình anh cơ bản Hình ảnh thực tế (Nguôn: logitech.com) có thé thay ở Hình 3.3 Dưới đây làthông số kỹ thuật:
12
Trang 23» Độ phân giải: Nó cung cấp độ phân giải video tối đa 1280 x 720 pixel, chất lượng HD.
Độ phân giải tương tự áp dụng cho chụp ảnh tĩnh.
* Cảm biến: Sử dụng CMOS, nó có thể cung cấp chất lượng hình ảnh tốt trong các điều
kiện ánh sáng khác nhau.
* Tốc độ khung hình: Tốc độ 30 khung hình / giây có thể trợ giúp trong các ứng dụng
yêu cầu phát hiện chuyển động, trong đó những thay đổi trong hình ảnh cần được theo
dõi trong tác vụ xử lý hình ảnh thời gian thực.
» Tự động lấy nét: Có công nghệ lấy nét tự động, có thể mang lại lợi ích cho các công
việc yêu cầu điều chỉnh tiêu điểm thường xuyên để có độ rõ nét
Nhìn chung, tuy Logitech C525 có khả năng xử lý các tác vụ xử lý hình ảnh cơ bản nhưng
các tính năng của nó lại thiên về hội nghị truyền hình hơn là các ứng dụng xử lý hình ảnh cao
cấp Đối với những nhu cầu phức tạp hơn, webcam hoặc máy ảnh có độ phân giải cao hơn,
hiệu suất ánh sáng yếu tốt hơn và có thể cần có khả năng lấy nét mạnh mẽ hơn
3.1.4 Màn hình cảm ứng điện dung
Cảm ứng điện dung là một công nghệ cảm ứng dựa trên sự thay đổi của điện tích khi có
sự chạm của tay hoặc các vật liệu dẫn điện lên màn hình Hình 3.4 thể hiện hình ảnh thực tế
của màn hình cảm ứng.
Có hai loại chính của cảm ứng điện dung: cảm ứng đơn điểm, cho phép phát hiện một
điểm chạm tại một thời điểm; và cảm ứng đa điểm, cho phép nhận diện đồng thời nhiều điểm
chạm Apple, mặc dù không phải là nhà phát minh hay người đầu tiên sử dụng công nghệ
13
Trang 24Hình 3.4: Màn hình cam ứng điện dung dành cho Raspberry pi 4
này, đã đưa cảm ứng điện dung trở nên phổ biến và đang dần chiếm lĩnh thị trường công nghệ
màn hình cảm ứng.
3.2 Phần mềm
3.2.1 7 Giao thức SPI
Nhóm sử dụng giao thức SPI (viết tắt của Serial Peripheral Interface) với thiết bị biên là
thiết bị chính giao tiếp với module RFID, với lợi thé là tốc độ truyền tải cao so với các giao
thức truyền tải khác, điều này góp phần gia tăng tốc độ nhận diện và quá trình truyền nhậnthông tin Việc tối ưu tốc độ truyền tải từ đầu đọc thẻ đến bộ nhớ xử lý trung tâm của thiết bịbiên giúp góp phần cải thiện khả năng đáp ứng theo thời gian thực của hệ thống
Lợi thế nổi bật của SPI là khả năng truyền dữ liệu liên tục mà không bị gián đoạn Điều
này cho phép truyền dif liệu ở bat kỳ số lượng bit nào một cách liên tục, khác với I2C
(Inter-Integrated Circuit) và UART (Universal Asynchronous Receiver / Transmitter), nơi dữ liệu
được phân chia thành các gói có số bit cố định Trong I2C và UART, các điều kiện bắt đầu
và dừng lại đánh dấu bắt đầu và kết thúc của mỗi gói, dẫn đến sự gián đoạn trong quá trìnhtruyền
Trong hệ thống SPI, các thiết bị giao tiếp theo mô hình master-slave Thiết bị master,thường là vi điều khiển (trong hoàn cảnh khóa luận cụ thể thì đó là bo mạch Raspberry pi4) điều khiển hoạt động, trong khi các thiết bị slave như cảm biến, màn hình, hoặc chip nhớtuân theo lệnh từ master Cau hình đơn giản nhất trong SPI bao gồm một master và một slave,
nhưng một master có khả năng điều khiển nhiều slave Hình 3.5 thể hiện rõ ràng nhất cách
một master kết nối với một slave (Ngudn: scribd.com)
14
Trang 25* SCLK (Clock) - đường nay dùng để truyền tin hiệu xung nhịp.
¢ SS/CS (Slave Select / Chip Select) - đường này cho phép master lựa chon slave mà nó
muốn gửi tín hiệu tới
3.2.2 QT framework
Qt là một Application Framework da năng, được thiết kế dé phát triển các loại phan mềm
có khả năng tương thích và hoạt động trên nhiều nền tảng đa dạng khác nhau Mục tiêu chính
mà các nhà phát triển của Qt đặt ra là tạo ra một framework mạnh mẽ, cho phép viết mã mộtlần và triển khai trên nhiều hệ điều hành mà không cần phải thay đổi quá cụ thể chỉ tiết trong
mã nguồn Ban đầu, Qt được viết và được sử dụng bằng C++, tuy nhiên hiện nay đã có thể được viết bằng các ngôn ngữ khác nhau như JavaScript, Python,
Không chỉ giới hạn ở việc hỗ trợ viết giao diện cho các ứng dụng, Qt cung cấp nhiều thư
viện và công cụ để xây dựng các phần mềm hoàn chỉnh từ các ứng dụng có giao diện dé họa
đến những ứng dụng không giao diện như các dịch vụ chạy trên máy chủ hoặc các ứng dụng
dòng lệnh.
Các thành phần chính của Qt bao gồm:
15
Trang 26* Qt Core: Đây là mô-đun cơ bản nhất của Qt, chứa các lớp cốt lõi và cơ sở cần thiết cho
tất cả các mô-đun khác Nó bao gồm các tính năng như quản lý đối tượng, đa luồng, và
xử lý sự kiện, cũng như các lớp cơ bản cho xử lý chuỗi, tệp, và dữ liệu.
* Qt GUI: Cung cấp các công cu để tạo và quản lý giao diện người dùng Qt GUI bao
gồm các lớp cơ ban để vẽ đồ họa trên cửa sổ, xử lý sự kiện đầu vào từ ban phím vàchuột, và hiển thị các hình ảnh và văn bản trên màn hình
* Qt Widgets: Một mô-đun chứa các lớp widget tiêu chuẩn, như nút (buttons), hộp thoại
(dialogs), và các bảng điều khiển Các widget này có thể được sử dụng để tạo giao diệnngười dùng truyền thống cho các ứng dụng máy tính để bàn
* Qt QML: Đây là một ngôn ngữ dành cho giao diện người dùng, cho phép thiết kế giao
diện người dùng theo cách khai báo QML hỗ trợ tích hợp mã JavaScript để xử lý logic
ứng dụng và có thể được kết hợp với C++ để mở rộng chức năng
* Qt Quick: Cung cấp một bộ công cụ để xây dựng giao diện người dùng đáp ứng cao
dựa trên QML Qt Quick rất phù hợp cho các ứng dụng di động hoặc các ứng dụng yêucầu giao diện người dùng động và hấp dẫn
* Ngoài ra, còn nhiều thành phần khác như Qt Quick Controls, Qt Network, Qt
Multi-media, Qt Multimedia Widgets, Qt WebKit và Qt SQL.
Mỗi thành phan nay đều phục vu một chức năng đặc biệt, từ việc xử ly các tác vụ cơbản của ứng dụng đến việc cung cấp các công cụ phát triển giao diện người dùng phức
tạp.
Đặc biệt, QML (Qt Modeling Language) là một ngôn ngữ đánh dấu giao diện ngườidùng, được thiết kế như một ngôn ngữ khai báo kết hợp giữa CSS và JSON, cho phép cácnhà phát triển thiết kế các ứng dụng tập trung vào giao diện người dùng một cách dễ dàng
3.2.3 Flutter framework
Flutter là một bộ công cụ giao diện người dùng da nền tang được thiết kế để cho phéptái sử dung mã trên các hệ điều hành như iOS va Android, đồng thời cho phép các ứng dụngtương tác trực tiếp với các dịch vụ nền tảng cơ bản Mục tiêu là để tạo ra các ứng dụng hiệu
16
Trang 27suất cao, cảm giác tự nhiên trên các nền tảng khác nhau, tận dụng những khác biệt nơi chúngtồn tại trong khi chia sẻ càng nhiều mã càng tốt.
Trong quá trình phát triển, các ứng dụng Flutter chạy trong một máy ảo cho phép tải lại
nóng các thay đổi có trạng thái mà không cần biên dịch lại toàn bộ Đối với phiên bản pháthành, các ứng dụng Flutter được biên dịch trực tiếp thành mã máy, cho dù là lệnh Intel x64
hay ARM, hoặc thành JavaScript nếu nhắm đến web Framework này là mã nguồn mở, với
giấy phép BSD linh hoạt, và có một hệ sinh thái năng động của các gói bên thứ ba bổ sungcho chức năng thư viện cốt lõi
Biểu đồ ở Hình 3.6 dưới đây cung cấp cái nhìn tổng quan về các thành phần tạo nên một
ứng dụng Flutter thông thường (Wguôn: flutter.dev)
— Ghép các widget thành giao diện người dùng mong muốn
— Thực thi các tác vụ kinh doanh.
— Thuộc quyển sở hữu của nha phát triển ứng dụng
17
Trang 28s Frame work
— Cung cấp API cấp cao để xây dung các ứng dụng chất lượng cao (vi du, widget,
kiểm tra chạm, phát hiện cử chỉ, khả năng tiếp cận, nhập liệu văn bản)
— Kết hợp cây widget của ứng dụng thành một bối cảnh màn hình
¢ Engine
— Chịu trách nhiệm về việc raster hóa các cảnh màn hình đã được kết hợp
— Cung cấp triển khaicác API cốt lõi của Flutter (vi dụ, đồ họa, bố trí văn bản, thời
gian chạy Dart).
— Giao tiếp, làm việc với Framework thông qua API dart
— Tích hợp với một nền tảng cụ thể sử dụng API Embedder của Engine
¢ Embedder
— Phối hợp với hệ điều hành để truy cập các dịch vụ như bề mặt hiển thị, khả năng
tiếp cận và đầu vào
— Quản lý vòng lặp sự kiện.
— Tiết 16 API đặc thù của nền tảng để tích hợp chính nó vào các ứng dụng
¢ Runner
— Ghép các mảnh được tiết lộ bởi API đặc thù của Embedder thành một gói ứng
dụng có thể chạy được trên nên tảng mục tiêu
— Là đầu ra cuối, thuộc quyền sở hữu của nhà phát triển ứng dụng
3.2.4 ArcFace
Các mô hình Convolutional Neural Networks (CNN) thường được sử dụng để trích xuất
đặc điểm từ khuôn mặt và có ưu điểm vượt trội trong bài toán này Để tối ưu hóa việc phânloại các đặc điểm này và làm cho việc nhận diện khuôn mặt chính xác hơn, có hai hướng
chính: sử dụng mô hình phân loại với hàm softmax hoặc sử dụng máy học trực tiếp với cácvectơ nhúng (embeddings) và hàm mat mát triplet
18
Trang 29Tuy cả hai phương pháp đều cho kết quả tốt, nhưng còn tồn tại một số hạn chế Ham
softmax làm tăng kích thước của ma trận biến đổi tuyến tính theo tỷ lệ với số lượng danh tínhcần phân loại, và nó không linh hoạt khi số lượng khuôn mặt (số lượng lớp) thay đổi Hàmmất mát triplet giải quyết vấn đề này, nhưng nó tăng đáng kể số lượng bộ ba so sánh và gặp
khó khăn khi huấn luyện hiệu quả
Để vượt qua những hạn chế này, nghiên cứu đã giới thiệu một hàm mat mát mới là
Additive Angular Margin Loss [10] Ham mat mát nay mang lại sự linh hoạt và hiệu suất caohơn trong việc nhận diện khuôn mặt, đồng thời giảm bớt nhược điểm của các phương pháptruyền thống
Cách tiếp cậnHàm mất mát Additive Angular Margin Loss được coi là một nâng cấp đáng chú ý đối
với hàm softmax trong ngữ cảnh của mô hình Deep Convolutional Neural Network (DCNN).
Nó tận dụng tích vô hướng giữa vector đặc trưng từ mô hình DCNN và lớp fully connected
cuối cùng, nhưng thay vì sử dụng khoảng cách cosine, nó áp dụng góc cosine đã được chuẩn
hóa thông qua hàm arc-cosine.
Quá trình này bắt đầu bằng cách tính góc giữa đặc trưng hiện tại và vector trọng số mụctiêu, sau đó thêm vào đó Additive Angular Margin Kết quả là một vector logit mới được tạo
ra thông qua hàm cosine Sau đó, các logits sẽ được điều chỉnh tỷ lệ và quá trình còn lại sẽdiễn ra giống như hàm mat mát softmax truyền thống
Điều này giúp tối ưu hóa việc biểu diễn không gian đặc trưng sao cho khoảng cách giữa
các lớp tương ứng là hiệu quả nhất Hàm Additive Angular Margin Loss là một công cụ quan
trọng trong việc đảm bảo rằng mô hình học sâu có khả năng tạo ra các biểu diễn đặc trưng
chất lượng cao và dễ phân loại Ảnh minh họa (Hình 3.7) giúp hình dung rõ quá trình được
mô tả.
3.2.5 MobileFaceNet
MobileNets
MobileNets là mô hình CNN được để xuất dùng để sử dụng trên các thiết bị di động
hay thiết bị nhúng bởi vì tính gọn nhẹ của nó Vậy làm thế nào mà MobileNets có thể rút
gọn được vài triệu tham số nhưng độ chính xác vẫn ổn định, đó là nhờ một cơ chế gọi làDepthwise Separable Convolutions Cơ chế này sử dụng bộ lọc tích chập theo chiều sâu và
19
Trang 30Feature Re-scale
8 * COSA; Probability Ground Truth Cross-entropy
Logit One Hot Vector Loss
Hình 3.7: Quá trình hiện thực hàm mat mát Additive Angular Margin
bộ lọc tích chập theo điểm thay cho bộ lọc tích chập truyền thống
» Tích chập theo chiều sâu: Áp dụng bộ lọc tích chập cho mỗi kênh đầu vào thay vì sử
dụng một bộ lọc duy nhất cho toàn bộ khối đầu vào Giúp thu thập thông tin trích xuất
được qua từng kênh Mô tả ở Hình 3.8 [1 1].
2 8
12
Hình 3.8: Quá trình tích chập theo chiều sâu
» Tích chập theo điểm: Còn được gọi là tích chập IxI, được áp dụng sau bước tích chập
chiều sâu Bằng cách sử dụng bộ lọc 1x1 để kết hợp và trộn thông tin giữa các kênh,
giúp tạo ra các đặc trưng mới Mô tả ở Hình 3.9 [1 1].
ey -(#)- al3 1
8 8
Hình 3.9: Quá trình tích chập theo điểm
Cơ chế trên cho phép giảm đáng kể số lượng tham số so với mạng tích chập truyền thống
MobileFaceNet
Nhận diện khuôn mặt là công nghệ dùng để xác thực khuôn mặt cá nhân, thường được
20
Trang 31áp dụng trên thiết bị di động hay thiết bị nhúng Để cải thiện độ chính xác, hiệu suất và phùhợp hơn với các thiết bị giới hạn về bộ nhớ, mô hình MobileFaceNet [12] được dé xuất va
phát triển Mô hình có độ chính xác và tốc độ xử lý cao hơn khi so sánh với các mô hình
CNN như MobileNetV2 khi thực nghiệm riêng trên các bài toán nhận diện khuôn mặt.
Trong quá trình xử lý các bài toán nhận diện khuôn mặt, các nhóm nghiên cứu đã cố
gang để tìm cách cân bằng giữa độ chính xác và hiệu suất Một vai mô hình như SqueezeNet,
MobileNetV1, ShuffleNet và MobileNetV2 được dé xuất để giải quyết bài toán nhận diện
Tuy nhiên, trong khuôn khổ bài toán nhận diện khuôn mặt, những mô hình nhẹ để đáp ứng
được các yêu cầu trên còn hiếm, với các mô hình như Light CNN-29 hay ShiftFaceNet đạtđược độ chính xác cao nhưng phải là một mô hình nhẹ để có thể hiện thực trên phần cứng
* Diém yêu của CNN trong nhận diện khuôn mặt: Trong các mang CNN thông thường
như MobileNetVI, ShuffleNet hay MobileNetV2 sử dụng cho nhận diện khuôn mặt,
các nhà nghiên cứu cho rằng lớp Global Average Pooling tỏ ra không hiệu quả so với
việc không sử dụng chúng Nguyên nhân là lớp Global Average Pooling (như Hình
3.10) coi các vùng trong feature map là như nhau, điều này không lý tưởng với bàitoán nhận diện khuôn mặt Thay vào đó, các nhà nghiên cứu đã đề xuất sử dụng lớp
Global Depthwise Convolution thể hiện được mức độ quan trọng của từng phần riêng
biệt trong feature map, và điều này làm cải thiện độ chính xác rõ rệt trong bài toán
nhận diện khuôn mặt.
Hình 3.10: Quá trình Global Average Pooling
* Kiến trúc MobileFaceNet: Kiến trúc đặc biệt ở việc thay thế lớp Global Average
Pooling bằng Global Depthwise Convolution như Bảng 3.1 Bảng mô tả kiến trúc
Mo-bileFaceNet sử dụng các lớp tích chập (convolutional layers) và bottleneck để nhúng
21
Trang 32đặc trưng Đầu vào có kích thước ban đầu là 112x3, qua các lớp tích chập và bottleneck
với các kích thước khác nhau, từ đó giảm dần kích thước nhưng tăng số lượng kênh đầu
ra Các lớp có bước nhảy (stride) và hệ số giãn nở (expansion factor) khác nhau để tối
ưu hóa hiệu suất
Bảng 3.1: Kiến trúc của MobileFaceNet
Input Operator (| c |n|s
112? x 3 conv3x3 - | 64 |112 56? x 64 | depthwise conv3x3 | - | 64 | 1] 1
3.2.6 RetinaNet
RetinaNet [13] là một mô hình phát hiện đối tượng qua một bước (one - stage) sử dung
hàm mat mát Focal để giải quyết van dé mất cân bằng giữa các lớp trong quá trình huấn luyện
(ví dụ trong một vài mô hình, trong quá trình nhận diện thường bỏ qua mat một vài class của
vật thể nhỏ) RetinaNet còn được sử dụng trong bài toán phát hiện khuôn mặt do có thể nhận
diện tốt các đặt điểm có trên khuôn mặt (RetinaFace)
Trước đây khi giải quyết các bài toán phân loại, ta hay sử dụng hàm mat mát CrossEntropy Hàm mat mát này có điểm yếu là đối xử với các class là như nhau Nên khi xảy ra
mất cân bằng dữ liệu thì hàm mất mát này sẽ trở nên kém hiệu quả bởi mô hình sẽ có xu
hướng nghiên về class có nhiều dữ liệu hơn và bỏ qua các class có ít dữ liệu
Sau đó, người ta cho ra hàm mất mát Balance Cross Entropy thực hiện bằng cách gántrọng số cho các class có ít đữ liệu hơn để mô hình đạt hiểu quả hơn khi dự đoán các class
này Nhưng phương pháp này vẫn chưa thực sự can thiệp vào quá trình Gradient Descent nên
hàm mất mát Focal được đề xuất để khắc phục vấn đề này và hàm mất mát này cũng được sử
dụng trong RetinaNet Kiến trúc của RetinaNet [13] được thể hiện trực quan ở Hình 3.1 1
22
Trang 33(a) ResNet (b) feature pyramid net (c) class subnet (top) (d) box subnet (bottom)
Hình 3.11: Kiến trúc RetinaNet
3.2.7 K-mean algorithms
Thuật toán K-means [14] là một trong những phương pháp phổ biến nhất để phân cụm
dữ liệu Nó được sử dụng rộng rãi trong khai phá dữ liệu và học máy nhờ vào tính đơn giản
và hiệu quả Đây là một thuật toán không giám sát, nghĩa là nó không yêu cầu nhãn của các
điểm dữ liệu Mục tiêu của K-means là chia N điểm dữ liệu thành K cum (clusters) sao cho
mỗi điểm dif liệu thuộc cụm với trung tâm gần nhất (centroid)
Giả sử chúng ta có tập dữ liệu X = {2 , x2, , 7} và số cụm K, các bước chính của thuậttoán K-means bao gồm:
* Khởi tạo: Chọn ngẫu nhiên 7C điểm làm các trung tâm cum ban đầu: /ị, /ua, , [ux (CÓ
thể chọn ngẫu nhiên hoặc sử dụng các phương pháp khởi tạo khác)
¢ Phân cum: Gan mỗi điểm dữ liệu vào cụm có trung tâm gần nhất Việc này dựa trên
khoảng cách Euclid hoặc một số phép đo khoảng cách khác
Mỗi điểm dữ liệu z;, tính khoảng cách từ x; đến mỗi trung tâm cum /¡; Gan x; vào
cụm có trung tâm gần nhất:
C¡ = arg min | — pel? (3.1)
* Cập nhật: Tinh toán lại trung tâm cụm bằng cách lấy trung bình các điểm dữ liệu trong
mỗi cụm Mỗi cụm Cj, cập nhật lại trung tâm cụm /¡;:
1
1 = Te »- (3.2)
z¡CŒ;
23
Trang 34trong đó C; là tập hợp các điểm dữ liệu thuộc cụm 7 và |C;| là số lượng điểm trong
cụm đó.
* Lap lại: Lap lại bước phân cụm và cập nhật cho đến khi các trung tâm cum không thay
đổi hoặc thay đổi rất nhỏ (dưới một ngưỡng nhất định), hoặc đạt đến số lần lặp tối đa
Hình 3.12 cho mô tả ví dụ về đầu vào và đầu ra sau khi thực hiện phân cụm bằng thuật toán
k-mean.
(a) Đầu vào (b) Đầu ra
Hình 3.12: Triển khai thuật toán K-mean vào bài toán phân cụm
3.2.8 Logistic Regression
Hồi quy Logistic (Logistic Regression) là một mô hình thống kê được sử dung để phânloại nhị phân, tức dự đoán một đối tượng thuộc vào một trong hai nhóm Hồi quy Logistic
làm việc dựa trên nguyên tắc của hàm Sigmoid — một hàm phi tuyến tự chuyển đầu vào của
nó thành xác suất thuộc về một trong hai lớp nhị phân (0 hoặc 1) Hình 3.13 mô tả về cách
hoạt động của thuật toán [15] Nhóm sẽ trình bày cụ thể sau đây.
Mô hình Hồi quy Logistic 3.3 có dạng:
1
Ở đây, S(z) là hàm Sigmoid và z là tổ hợp tuyến tính của các đặc trưng đầu vào với trọng
số tương ứng Cho mỗi điểm dữ liệu, mô hình tính giá trị z, áp dụng hàm Sigmoid, và đưa ra
dự đoán xác suất Quá trình huấn luyện mô hình liên quan đến tối ưu hóa bộ trọng số sao cho
24
Trang 35Logistic Regression Example
* Boundary + False samples
+ True samples
Hình 3.13: Ví du về cách hoạt động của Logistic Regression
dự đoán xác suất gần nhất với giá trị thực tế Ham mat mát thường sử dụng là Cross Entropy
3.4, được định nghĩa như sau:
L(w) = TM ` [yi log(pi) + (1 — yi) log(1 — Ø,)] (3.4
Trong đó:
¢ n là số lượng mau, y; là giá trị thực tế của đầu ra thứ i
* p; là xác suất dự đoán thuộc lớp 1 của mô hình cho đầu ra thứ i
Mục tiêu là tối ưu hóa hàm mất mát này thông qua các phương pháp tối ưu hóa, như GradientDescent, để có được mô hình có khả năng phân loại tốt trên dữ liệu mới
25
Trang 36Chương 4 PHƯƠNG PHÁP NGHIÊN CỨU VÀ THỰC HIỆN
4.1 Tổng quan hệ thong
Tổng quan hệ thống được chia làm 3 thành phần có sự liên kết với nhau: thiết bị biên
chịu trách nhiệm xử lý, thu nhận dữ liệu khuôn mặt, thẻ từ, cung cấp khả năng tương tác giữa
người dùng và hệ thống điểm danh; máy chủ đám mây truyền nhận dữ liệu với thiết bị biên,lưu trữ và phân phối luồng dữ liệu; cuối cùng là web app, được xây dựng trên nền tảng là
máy chủ đám mây, cung cấp khả năng theo dõi cho người dùng Được thể hiện rõ trong Hình
4.1
Attendance machine
Attendance machine Cloud server Web app
Hình 4.1: Tổng quan thiết kế của hệ thống
Ba thành phần trên xây dựng nên một hệ thống điểm danh với đầu vào là hình ảnh khuônmặt và định danh thẻ từ, trả về kết quả điểm danh thông qua màn hình và dịch vụ web appcho người dùng đầu cuối Đồng thời các dữ liệu về tiến trình điểm danh, dữ liệu nhận dạng
sẽ được lưu trữ lâu dài trên cơ sở dữ liệu để truy vấn trích xuất khi có nhu cầu về xử lý và
học vụ.
26
Trang 374.1.1 Phan cứng thiết bị biên
Mỗi thiết bị biên của dé tài sẽ bao gồm các thành phan phần cứng quan trọng sau:
Raspberry pi 4, camera, đầu đọc thẻ từ, màn hình cảm ứng chạm, hộp mica đóng gói sản
phẩm Hình 4.2 thể hiện tổng quan thiết kế phần cứng
Touch screen
RFID Reader
Hình 4.2: Tổng quan thiết kế phan cứng
* Raspberry pi 4: bộ phận xử lý chính của thiết bị biên, với tốc độ xử lý lên đến 1.5 GHz
cùng dung lượng 4GB RAM, nó sử dụng phần lớn tài nguyên để thực hiện các thuậttoán trích xuất, phát hiện và nhận diện khuôn mặt Ngoài ra, là bộ phận trung tâm kết
nối các thiết bị ngoại vi như camera để thu hình ảnh, đầu đọc thẻ từ để thu thập tín hiệu
mã định danh RFID, màn hình cảm ứng để truyền tải giao diện, lấy đầu vào cảm ứng
là các thao tác của người dùng Cuối cùng, sử dụng driver Wi-Fi, nó còn giao tiếp vớimáy chủ đám mây thông qua giao thức kết nối Wi-Fi, truyền và nhận các dữ liệu nhận
diện, dữ liệu điểm danh trong quá trình vận hành theo thời gian thực.
* Camera: kết nối với bo mach xử lý chính thông qua giao thức USB, nó đảm bảo truyền
một lượng dữ liệu hình ảnh tương đương 30 FPS với chất lượng HD, đảm bảo hình ảnhnhận diện luôn được cung cấp một cách tốt nhất với độ trễ ít nhất có thể
* Đầu đọc thẻ từ (Module RC522): Đóng vai trò là slave trong giao tiếp SPI với bo mach
Raspberry pi 4, nó được cung cấp nguồn 3.3V giúp hoạt động ổn định Với tần số quét13.56 Mhz và hỗ trợ phần lớn các loại thé RFID, nó giao tiếp được với hầu hết các thẻ
27
Trang 38từ, đặc biệt là thẻ sinh viên, nhân viên ở các trường đại học và doanh nghiệp Cung cấp
dữ liệu định danh cho bộ xử lý chính nhằm đối chiếu trong quá trình điểm danh
* Màn hình cảm ứng: Giao tiếp với Raspberry pi 4 bằng giao thức HDMI để truyền hình
ảnh, hỗ trợ hiển thị giao diện người dùng cũng như gia tăng tương tác người dùng vớithiết bị biên thông qua cảm biến chạm
¢ Hộp nhựa mica: Là thành phan cuối cùng để hoàn thiện sản phẩm, giúp cố định các
thành phần phần cứng khác, gia tăng tính thẩm mĩ đồng thời bảo vệ các thành phần
nhạy cảm như mach module RC522 và bo mach Raspberry pi 4.
4.1.2 Phan mềm hệ thong
Dé hệ thống vận hành một cách chính xác va thỏa yêu cầu đặt ra, nhóm dé xuất xây dựngcác khối phần mềm với các chức năng đặc thù khác nhau, đảm nhận các nhiệm vụ riêng biệt
theo từng bộ phận Hình 4.3 thể hiện tổng thể các sơ đồ khối phần mềm cùng các mối quan
hệ liên kết giữa các khối Rõ nhất có thể thấy ở máy chủ đám mây, ta thấy các khối Backend,
Frontend và Database Ở thiết bị biên, ta có các khối Facial Processes, Cloud communication,
RFID Handler, GUI và cuối cùng là Planning
Hinh 4.3: Téng quan thiét ké phan mém
* Facial Processes: Khối thực hiện các tác vụ liên quan đến thị giác máy tính Bao gồm
28
Trang 39phát hiện khuôn mặt, tiền xử lý hình ảnh, nhận diện khuôn mặt, lưu trữ và khai thác
các dữ liệu này.
¢ RFID Handler: Đóng vai trò là thiết bi chủ trong giao thức SPI, nó vận hành quá trình
đọc và gửi mã ID từ thẻ từ của người dùng đến khối Facial Processes cho mục đích đối
chứng, nhận diện và điểm danh Ngoài ra cũng gửi dữ liệu này đến khối Planning chocác tác vụ khác như hiển thị lên UI, gửi lên máy chủ đám mây,
* Cloud Comunication: Nhận dữ liệu từ các khối khác, nó đóng vai trò như gateway để
truyền dữ liệu lên máy chủ đám mây, trong đó có dữ liệu nhận diện và dữ liệu điểm
danh từ Facial Processes Ngoài ra còn nhận bộ dữ liệu nhận diện từ máy chủ đám mây
để cung cấp cho mục đích nhận diện của khối Facial Processes
* Planning: Khối đảm nhiệm việc lập lịch và vận hành các khối khác, dựa vào các tín
hiệu gửi và nhận để vận hành máy trạng thái bên trong nó.
» GUI: Truyền nhận dữ liệu va tín hiệu điều khiển với các khối khác Nó hiển thị giao
diện, cho phép người dùng tương tác, điều khiển thiết bị biên
* Cloud Database: Lưu trữ dữ liệu nhận diện và điểm danh, cung cấp các mối quan hệ
dữ liệu cho quản lý và hiển thị của hệ thống
* Backend: Phan xử lý chính của máy chủ đám mây, gửi và nhận dữ liệu, đồng thời phânphối dữ liệu đến thiết bị biên, Web và App
* Frontend: Vận hành trên nền tang máy chủ đám mây, nó cung cấp web và app giúp
người dùng có khả năng theo dõi quá trình điểm danh
4.2 Quy trình vận hành của thiết bị biên
4.2.1 Quy trình hoạt động chung
Quá trình vận hành của thiết bị được điều khiển bằng các máy trạng thái của khối
Plan-ning, dựa vào tín hiệu phản hồi từ các khối, nó đưa ra các lệnh điều khiển nhằm tiếp tục quá
trình vận hành, tạo ra vòng lặp khép kín giữa các khối Cụ thể mối liên kết giữa các khối với
Planning như bang 4.1 sau:
29
Trang 40Bang 4.1: Tín hiệu truyền nhận từ các khối đến Planning
Facial Processes Ket qua nhận diện, dữ liệu
nhận diện trích xuất được
Kích hoạt trích xuât, nhận diện khuôn mặt, tải dữ liệu
nhận diện.
Cloud Communication Tín hiệu gửi dữ liệu nhận
diện, dữ liệu điểm danh lên
máy chủ đám mây.
Tín hiệu báo hoàn thành tải
xuống dữ liệu nhận diện
gian, thông số môi trường,
Tùy chọn tương tác của người
dùng với thiết bị
thông tin lớp học.
Sử dụng Qt Framework (C++), giao diện phần mềm điểm danh được triển khai trên màn
hình cảm ứng gắn trực tiếp trên thiết bị biên GUI (Graphical User Interface) được thiết kế
để thể hiện quy trình người dùng tương tác với thiết bị biên, quá trình này gắn liền với cách
vận hành của hệ thống, chính vì thế, nhóm sẽ trình bày đồng thời hai khối GUI và Planning
để dễ dàng mô tả quy trình, trực quan và thống nhất Hình ảnh 4.4 là sơ đồ hoạt động của hệ
thống, dưới đây, nhóm sẽ mô tả cụ thể các bước tuần tự theo chiều từ trên xuống:
* Bước đầu, thiết bị biên yêu cầu người dùng hiện diện khuôn mặt trước camera đồng
thời quẹt thẻ để tiến hành điểm danh Trong trường hợp người dùng quên thẻ, có thể
lựa chọn chỉ điểm danh bằng khuôn mặt (sau khi điểm danh, người dùng sẽ được phân
loại là điểm danh bằng khuôn mặt)
» Ty mã ID đầu vào sau khi người dùng quet thẻ, thiết bị biên sẽ xác thực người dùng có
thuộc lớp học hay không bằng cách truy vấn vào cơ sở dữ liệu nội bộ Từ đó có hànhđộng phù hợp cho người dùng tiếp tục điểm danh hay không
s Trong giai đoạn đầu, khi dữ liệu khuôn mặt chưa đủ để nhận diện, người dùng sẽ được
yêu cầu cung cấp đặc trưng khuôn mặt, đặc trưng này được trích xuất tự động bởi thiết
bị biên, người dùng có quyển lựa chọn không cung cấp Quá trình ban đầu này, người
dùng sẽ được phân loại là điểm danh bằng thẻ RFID.
* Sau này, khi dif liệu nhận diện đã đủ, thiết bị biên sẽ tiến hành các giai đoạn phát hiện,
nhận diện khuôn mặt và đối chiếu ID nhận diện được dự đoán này với ID của thé RFID
30