LỜI CAM ĐOANBằng tất cả niềm tự hào, vinh dự cũng như danh dự của mình, em chắc chắn rằng LVTN Thạc sĩ của em với luận văn Hệ thông điêm danh băng nhận diện khuôn mặt sử dụng máy tính nh
Trang 1_ ĐẠI HỌC QUOC GIA TP HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
GOK CR
Bùi Minh Quốc
HE THONG DIEM DANH BANG NHAN DIỆN KHUÔN MAT
SU DUNG MAY TINH NHUNG NVIDIA JETSON NANO
LUAN VAN THAC Si
NGANH CONG NGHE THONG TIN
Mã sé: 8.48.02.01
NGƯỜI HƯỚNG DAN KHOA HỌC:
Tiến sỹ Nguyễn Tất Bảo Thiện
TP HO CHÍ MINH - NĂM 2023
Trang 2LỜI BÀY TỎ
Đầu tiên,em muốn bày tỏ lòng biết ơn chân thành của mình đối với tắt cả các Giảng viên tại UIT, những người đã cung cấp cho em kiến thức và kỹ năng vô giá mà tôi đã nhận được trong suốt quá trình học tập của mình Sự hướng dẫn của Thay, Cô đã đánh thức niềm
d
đam mê nghiên cứu va hoc hỏi trong em.
Tiếp đến, em muốn bày tỏ sự biết ơn đặc biệt của mình đến Thầy Tiến sỹ Nguyễn Tất Bảo Thiện, người đã truyền động lực và cung cấp hướng dẫn cực kỳ quý báu về luận văn của em Những lời khuyên của Thay, ngắn gọn nhưng chính xác và tập trung vào van
đề, đã giúp em tiết kiệm thời gian và làm tốt hơn.
Cuối cùng, em muốn gửi lời cảm ơn chân thành đến gia đình và người thân yêu của
em Sự hỗ trợ không ngừng và sự thông cảm của họ đã là nguồn động viên lớn giúp em
vượt qua các thách thức trong quá trình làm luận văn Em cũng xin cảm ơn các bạn học và
ông nghiệp tại công ty, những người đã không ngần ngại chia sẻ kiến thức và cung cấp
trang thiết bị cần thiết, góp phần vào thành công của em.
Trân trọng!
Trang 3LỜI CAM ĐOAN
Bằng tất cả niềm tự hào, vinh dự cũng như danh dự của mình, em chắc chắn rằng
LVTN Thạc sĩ của em với luận văn Hệ thông điêm danh băng nhận diện khuôn mặt sử
dụng máy tính nhúng NVIDIA JETSON NANO sẽ được thực hiện hoàn toàn bởi cá nhân
em, dưới hướng dan của Thay Tiên sy Nguyễn Tat Bảo Thiện Em xin cam kêt chịu trách
nhiệm về các kết quả trong luận văn này.
Dưới đây là những cam kết của em đối với việc thực hiện LVTN:
e Camkétvé sự nỗ lực: Em sẽ nỗ lực hết mình cho LVTN này Em sẽ dành thời gian
và nỗ lực cần thiết để nghiên cứu, thực hiện phát triển luận văn một cách hiệu quả
và tối ưu.
e Tuan thủ hướng dẫn: Em sẽ tuân thủ mọi hướng dẫn, gợi ý và phần hồi từ Thay
Tiến sy Nguyễn Tat Bảo Thiện Em sẽ luôn lắng nghe và đáp ứng các chỉ dẫn dé đảm bảo sự phát triển và hoàn thiện luận văn.
e Sang tạo và nghiên cứu: Em cam kết sẽ thực hiện nghiên cứu sáng tạo trong việc
xây dựng luận văn Em sẽ tìm ra giải pháp mới, nắm vững công nghệ và áp dụng kiến thức của mình dé dam bảo rằng luận văn là độc đáo và hiệu qua.
© Tuan thủ quy định và đạo đức nghiên cứu: Em cam kết sẽ tuân thủ tat cả các quy
định và đạo đức nghiên cứu ở UIT, bao gồm việc trích dẫn và công bố công việc
nghiên cứu một cách chính xác và trung thực.
Em rat biết ơn cơ hội này đề được học hỏi và phát triển dưới sự hướng dẫn của Thay,
Cô trong tai UIT Em tin tưởng rang dự án nay sẽ đóng góp đáng kê vào lĩnh vực CNTT
Trang 41.1 Phát biểu bài toán ++c222S2222EtrrEEEEEEE.rrr.trrrrrrrrrrrrrrrree 10
1.2 Lý do chọn đề tài
1.3 Mục tiêu
1.3.1 Tổng quan
1.3.2 Cụ thể
1.4 Đóng góp của luận vănn 6-5 St th E111 11x rkrrrerrrree 12
Chương 2 CÁC NGHIÊN CỨU VÀ CÔNG NGHỆ LIEN QUAN 14
2.1 Các nghiên cứu liên quan -©76c55cscseeeeerteerseeerrrrrrrrrrrrrerree LA
2.2 Hướng tiếp cận luận văn :-225552tstrtreererrrrrrrrrrrrrrrrrrrrrrre, TỔ 2.2.1 Cơ sởlý thuyẾt -cs22 2222222221111, cEE rrrrrrrre 16
2.2.2 Phương pháp nghiên cứu -2- ¿2£ ©++©+++++++++rxerrxerrerrxrrrxrrrrrre 20
2.3 Các công nghệ -50c nh nhe ưec 22
2.3.1 Thiết bị phần cứng -:++2+2+22222222221121111111122ccr rrrrrrrrer 22 2.3.2 Thong số phan mềm
Chương 3 PHÂN TÍCH MÔ HÌNH HÓA YÊU CÀU
3.1 Phan tích mô hình hóa yêu cau
3.1.1 Mô hình tổng quan
3.2 Quy trình nghiệp vụ -. -c-ccscsrieerrierriierrriririirrrerrerrrr 0)
3.2.1 Đối tượng người dùng của hệ thống -++++crrrrrrrrrerereeesvee 29 3.2.2 Quy trình nghiệp vụ tổng thễ c222222cc+c++ttttEEEEE1E22221111111122 22c 30 3.2.3 Quy trình nghiệp vụ chỉ tiết 222222222ccccrrrrrtttrrrtrrrrrrrtrrrrrrrrreree 31
Trang 5Chương 4 PHAN TÍCH THIET KE HE THÓNG -ss - 36 4.1 Mô hình hệ thống V©-E22tttttttttttttttii1111111111111111221.2 crrree 36 4.1.1 Mô hình phần mềm - VVVVEEEEEEE+++++222222+ttttttEEEEEEEEEEEEEE1111112222eccee 36 4.1⁄2 So đồ chức năng -nnn.00001111111111111121 11ecirrrrrre 36 ' TA 101 e H,),L 37 4.2.1 Kiến trúc tổng quan -22222VV2222222222222222+t E.EE.E E 11111111 xe 37 4.2.2 Kiến trúc triển khai ccc5sttrrrrrrrrtrrririrrrirrrrrrrriirrrrrrriie 38
Chương 5 TRIEN KHAI THỰC NGHIỆM -:ccc5552terreceverrrrrree 42
5.1 Cae bước thực hiện 5 + HH re42 5.2 Chụp khung hình và phát hiện khuôn mặt - -©c -ccscc .- AA 5.3 Bộ phát hiện -ọnn HH net 44 5.4, Phát hiện khuôn mặt -ccc5 istccevveerrrrrrrrerrrrrrrrrrrerrreroo.4 5 5.5 Thu thập dữ liệu icccccSScsssrrreeeerrrrrrrrrrrrrrrrrrrrr đỔ
5.6 Huấn luyện tập dữ liệu -++222 22222222 EEEEEEE rrrrrtrrrrrrrrrrrrrre 48 5.7 Bộ huấn luyện -:::2ttttttttttt11111111111111.2 rrrrrrrrrrrrrree 50
5.8 Nhận diện khuôn mặt
Chương 6 KET QUA THỰC NGHIỆ
6.1 Độ chính xác của nhận diện
6.2 Kết quả của việc lưu trữ lịch sir nhận diện “
6.3 Phân tích hiệu suất -222c22++222++222222222222111111112112 22 r ttrrrrrrrrrer54 6.4 Một số hình ánh của chương trình -cc55sstrecceeserrrrrreeeevsrr Ôf
Chương 7 KET LUẬN VÀ HƯỚNG PHÁT TRIÉN - 2 2c cccccccccv266 Lli OD<0 -14 , 66
LÀN 7a d4 Ả ÔÒỎ 66
LÔ: nha HH
Trang 67.4 Hướng phát triển -ccccee
TÀI LIEU THAM KHẢO 22 -cccc+2 PHU LUC A THONG TIN VE BAI BAO KHOA HỌC
Trang 7DANH MỤC HÌNH ANH
Hình 1 Sơ đồ hoạt động chính của thuật toán nhận diện - 5+5 5<c+s+c+ex+c+xse2 10
Hình 2 Các loại đặc trưng Haar khác nhau được trích xuất từ một phần của hình ảnh, (a) Đặc trưng cạnh, (b) Đặc trưng dòng, (c) Đặc trưng bốn hình chữ nhật - 17 Hình 3 Lớp thuật toán phát hiện đối tượng của Haar Cascade ¿- ¿+22 18
Hình 4 Máy tính nhúng NVIDIA Jetson Nano [2 l ] - ¿5555 <5 <+x+svxseseEseeseeeree 22 Hình 5 Mô-đun Raspberry Pi Camera V2 [222 ] - - 65+ +++k£sE+k+kksEskekerskrekrkekrke 23
Hình 6 Mô hình tổng quan 22-22 ©+£2EEE£2EEE£EEEEEEEEEEEEEEEEEEEEEEE112711217112 211.1 rrred 25
Hình 7 Phân hệ Quản tTỊ - G- 2G 2< 3111161111 11 11111111 111011011011 11 1T TH TH HH Hy Hy 26 Hinh 8 Phan hé NDHT ue 28
Hình 9 Các đối tượng (actor) tham gia vào Hệ thống ¬ 29
Hình 10 Quy trình nghiệp vụ tổng thé của hệ thống . - 2¿©22©+z+2£+z2cvszzcrsz 30
Hinh 11 Quy 0ý: 063 1n 31 Hình 12 Quy trình cập nhật men - - 65+ S+E+E**E*E*k+ESEEEkEEEEkEkEEEkEkEkkkrkrkrkrkrke 31
Hinh 13 Quy trimh tao 0U na 1 32 Hình 14 Quy trình cập nhật i |) ⁄Z⁄' 8ô c- Ý 32
Hình 15 Quy trình tạo vị trí thiẾt bị 2 22%22E+222EE222EE1121222111271112227112 2221 crrrked 32 Hình 16 Quy trình cập nhật vi trí i ga 33
Hình 17 Quy trình tao người Ùng - -¿- 65+ xxx SE TT HH ng rà, 33 Hình 18 Quy trình cập nhật thông tin người dùng - - 55 5+ <+++£+c++exerseeserseeseee 34 Hình 19 Quy trình cập nhật thông tin cá nhân - ¿5 + ++++£+£+++£sEekekxeEstexeerseeerke 34
Hình 20 Quy trình cập nhật mật ` NV _ 35 Hình 21 Quy trình xem danh sách lịch sử điểm danh - se + +Ex+Exerxxerxeerxeee 35 Hình 22 Quy trình xem chỉ tiết lich sử điểm danh 2¿©2£++£2£E+£+2E+zz£xzzzcrez 35
Hình 23 Mô hình phần mềm của hệ thống điểm danh - 2222222222222 36
Hình 24 Sơ đồ chức năng của hệ thống 2¿-©22£+©+++2EEEtEEEECEEEEEEEEEECEEEEEEkrrrrrrrrrree 36
Hình 25 Kiến trúc tổng quan -2 £©©++£+2EE+£+2EE+EE2EEEEEEEEEE127111112111227111 12711 rrrye 37
Hình 26 Kiến trúc triển khai tổng quát -2 ¿©++++E+++++EE++++2EE+e+Ex+ertrrxeerrrrved 38
Hình 27 Kiến trúc triển khai vật lý - 2 ¿2E++£+2EE++t2EEEEetEEEEEEEEEEEEEELErrrrrkrrrrrked 38
Hình 28 Kiến trúc dữ liệu ¿+ £©+k£+EEE9EEEE21127111111271E111111.11E 11.1111 11 xe 39
Hình 29 Mô hình dữ liệu quan hệ phân hệ Quan tri hệ thống 40
Hình 30 Mô hình dữ liệu quan hệ Người dùng hệ thống 2¿- ¿2+zccxzeecree 41
Hình 31 Quy trình giải thuật nhận diện khuôn mặt của luận văn 555: 43
Hình 32 Phát hiện khuôn mặt với Raspberry Pi Carm€Ta 5s + sscseexsseseeesee 45
Hình 33 Tập dữ liệu khuôn mặt dùng dé huấn I7 47
Hình 34 Cấu trúc của thư mục DafaS€( -s 6-5 t+EE‡EESEEEEEESEEEEEEEEEEEEEEEEtrkerrkerkrrrkrrs 48
Hình 35 Ví dụ về phương thức LBPH -2-2£+©EE+£+2EEEE£tEEEEEeEEEEEEEEEEEerrrrkrrrrrrked 49
Hình 36 Trainer.yml được sử dụnng trong quá trình nhận diện - - 555-552 50 Hình 37 Độ chính xác của nhận diện khuôn mặt 5 5+2 + +2 *++x£+£+eEeeeeeeeexss 53
Trang 8Hinh 38 Raspberry nổ TỶ 61 Hinh 39 Man hinh 05ris1s2i1) 1111777 64
Hình 40 Màn hình thong tin người dùng - - 5+ + t2 v21 ng ng ưkg 64
Hình 41 Màn hình lịch sử điểm danh 2-2 c ®SS+EE+EE£EEESEEEEEEEEEEEEEEEErtrkerrkerkrerkrre 65
Hình 42 Màn hình chi tiết lịch sử điểm đanh -2 s2 + E2EE+£EEE+EEEtEEE+tEkeerxesrxeee 65
Trang 9DANH MỤC BANG
Bảng 1 Bảng đối tượng người dùng hệ thống -2-©222-22Z£2EEE2EEEetEEEErrrkrrrrkerrrred 30
Bảng 2 Bảng công nghệ sử dụng trong hệ thống 2 2¿©22£+2E+2e+2EEEeerervxerrrrred 39 Bảng 3 Kết quả thực nghiệm 2 222 ©S22£92EEE£2EEEE22E21122711117711127111227111 1.11 rrryeg 56 Bảng 4 Bảng kết qua đo hiệu năng và tài nguyên sử dụng trên NVIDIA Jetson Nano 60
Bảng 5 Bảng so sánh cau hình phần cứng 2-2 ©+£££E++££EEE£2EEE£+EEEEzExerrrrerrrred 61
Bảng 6 Bảng tóm tat kết qua so sánh thực nghiệm giữa NVIDIA Jetson Nano va Raspberry
số 62
Bảng 7 Các thách thức và giải phápp - + - +6 + k+k S112 121v HH ng rkg 67
Trang 10BANG VIET TAT
Trang 11Chương 1 TONG QUAN
1.1 Phat biểu bài toán
Một phương pháp đôi mới dé theo đõi sự có mặt là Hệ thống điểm danh bằng nhận
diện khuôn mặt sử dụng máy tính nhúng NVIDIA JETSON NANO và ghi lại sự hiện diện
của cá nhân Công nghệ này hỗ trợ điểm danh hiệu quả trong vòng một phần nhỏ của một
giây Hệ thống xác định danh tính một người bằng cách sử dụng hình ảnh khuôn mặt được
chụp bằng camera Sau đó, hình ảnh này được so sánh với các hình ảnh đã đăng ký trong
CSDL trước đó Công nghệ này không chỉ nhanh và hiệu quả hơn so với các phương pháp
điểm danh trước đây mà còn loại bỏ việc ghi nhận thủ công, giảm khả năng lỗi Ngày càng
có nhiều người sử dụng các hệ thống điểm danh dựa trên nhận diện khuôn mặt dé theo dõi
sự có mặt của họ ở các nơi công cộng và trường học.
Hình 1 Sơ đô hoạt động chính của thuật toản nhận diện
Hiện có nhiều cách khác nhau dé điểm danh mà các tô chức, công ty và trường học
có thể sử dụng, chăng hạn như tự đăng ký trên hệ thống, quét vân tay, thẻ thông minh hoặc
10
Trang 12điểm danh bằng giấy Mỗi phương pháp điểm danh sẽ phù hợp với từng loại tổ chức hoặc
doanh nghiệp với những ưu và nhược điêm riêng:
e Viéc điểm danh học sinh thông thường bang cách gọi tên học sinh mat nhiều
thời gian và phải lặp đi lặp lại.
e_ Chấm công vân tay của người dùng không thé làm gia vân tay, cham công
hộ hay gian lận.
e_ Cham công thẻ từ có thé được áp dụng cho các công ty có nhiều nhân viên
mà vẫn ồn định Nhưng chi phí mua thẻ và máy khá cao vì nhân viên thường
quên thẻ, mất thẻ, cham công hộ nhau hoặc lỗi thẻ.
1.2 Lý do chọn đề tài
Haar Cascade - thuậttoán dựa trên ML thường được sử dụng dé phat hién déi tuong
trong hình anh/video Haar Cascade cung cấp các phương thức xử ly hình ảnh don giản như phát hiện biên và các đặc trưng Haar, khá dễ hiểu và ứng dụng Ngược lại, các mô hình và thuật toán DL thường đòi hỏi kiến thức nâng cao về mạng nơ-ron và ngôn ngữ lập
trình Dù các phương pháp học sâu đã cho thấy hiệu quả trong việc phát hiện và nhận diện
khuôn mặt, thì việc sử dụng Haar Cascade trên hệ thống máy tính nhúng NVIDIA Jetson
Nano lại là một giải pháp giá rẻ và dễ dàng triên khai, rất phù hợp cho các dự án với ngân sách eo hẹp hoặc các ứng dụng không yêu cầu độ chính xác quá cao Sự kết hợp giữa Haar Cascade và OpenCV2 cho phép phát hiện chính xác và hiệu quả nếu hình ảnh có chứa
khuôn mặt Khi các khuôn mặt được tìm thấy, chúng được so sánh với các khuôn mặt trong
CSDL, và việc điểm danh được đánh dấu.
Hệ thống điểm danh nay mang lại cách thức đáng tin cậy và hiệu quả dé theo doi
Sự có mặt trong nhiều tình huống khác nhau, như các trường học, nơi làm việc, Luận văn
tập trung phát triển và xây dựng một hệ thống điểm danh bằng nhận diện khuôn mặt trên
máy tính nhúng NVIDIA Jetson Nano nhằm thay cho việc điểm danh thủ công và phương
pháp chấm công dựa trên vân tay/thẻ, còn tồn tại nhiều bất cập, bằng hệ thống mới dựa trên công nghệ TTNT Hình 1 thé hiện tổng quan hệ thống của luận van.
1.3 Mục tiêu
1.3.1 Tổng quan Mục tiêu của nghiên cứu là xây dựng, tối ưu một hệ thống điểm danh sử dụng tải nguyên phần cứng chỉ phí thấp, tiêu thụ năng lượng ít hơn nhưng vẫn đảm bảo độ tính toán
chính xác cao và có thé thực hiện trong thời gian thực bằng cách sử dụng thuật toán Haar
II
Trang 13Cascade và OpenCV2 trên máy tính nhúng NVIDIA Jetson Nano Ngoài ra, còn có một
hệ thống CSDL lưu trữ các bản ghi điểm danh và tạo báo cáo Điều này cho phép dé dàng
giám sát sự có mặt trong nhiều tình huồng, trường hợp và điều kiện môi trường khác nhau.
1.3.2 Cụ thể
e Xây dựng một hệ thống điểm danh chính xác và hiệu quả sử dung các công
nghệ mới, có thê sử dụng cho nhiều trường hợp để theo dõi và theo dõi sự
có mặt.
e Sử dung Haar Cascade Classifier và OpenCV2 dé chứng minh tính hiệu qua
của việc xây dựng hệ thống điểm danh, đem lại hiểu suất xử lý luồng hình ảnh/video cao trong nhiều điều kiện ánh khác nhau và tư thế khi nhận diện đồng thời xử lý tính toán tốn ít tài nguyên.
e Thấy được tiềm năng của máy tính nhúng như NVIDIA Jetson Nano trong
việc cung cấp giải pháp nhận diện hiệu quả, tiết kiệm tài nguyên và linh hoạt
về mặt phần cứng và phần mềm Góp phần giúp công nghệ nhận điện khuôn mặt trong hệ thống điểm danh linh hoạt hơn.
e Tạo ra một hệ thống cho phép người dùng truy cập và quản lý dữ liệu.
1.4 Đóng góp của luận văn
Trong những năm gần đây, công nghệ nhận diện khuôn mặt đã trở nên phổ biến
hơn trong quản lý cham công nhờ tính tiện lợi và chính xác của nó Dé phát triển một hệ thống quản lý cham công bằng nhận diện khuôn mặt hiệu quả và chính xác, luận văn đã
sử dụng các công nghệ phần cứng và phần mềm tiên tiến, chang hạn như bộ phân loại Haar Cascade, Camera Raspberry Pi và NVIDIA Jetson Nano mạnh mẽ Luận văn bao gồm việc huấn luyện mô hình nhận diện trên một tập dữ liệu khuôn mặt đã biết trước Điều này cho phép hệ thống xác định và nhận diện khuôn mặt trong thời gian thực Luận văn cũng triển
khai một hệ thống ghi lại thời gian các cá nhân đến và rời điểm danh dé hỗ trợ quan lý
châm công.
Hai lợi thế đáng chú ý nhất của hệ thống là chính xác và tốc độ cao, được đạt được
nhờ khả năng xử lý cua NVIDIA Jetson Nano, cho phép nhận diện khuôn mặt nhanh chóng
trong thời gian thực Bộ phân loại Haar Cascade cũng giúp xác định khuôn mặt chính xác
ngay cả trong ánh sáng khó xác định Hệ thống này cũng có khả năng mở rộng, đây là một
lợi thé quan trọng Hệ thống có thé sử dụng nhiều camera và máy tính nhúng NVIDIA Jetson Nano dé đáp ứng cho môi trường phức tạp hơn.
12
Trang 14Tóm lại, hệ thống của luận văn cung cấp khả năng nhận diện khuôn mặt thời gian thực với độ trễ tối thiêu đồng thời có tính chính xác cao bằng cách sử dụng các công nghệ
và thuật toán tiên tiến Nó có khả năng mở rộng và tích hợp, giúp nó trở thành một giải
pháp linh hoạt cho quản lý chấm công trong nhiều nơi, chăng hạn như trường học, nơi làm
việc và sự kiện.
Thêm vào đó, kết quả khoa học của luận văn được viết thành bài báo và đã nộp đến
một tạp chí khoa học quốc tế uy tín (được lập chỉ mục ở cơ sở dữ liệu Scopus và xếp hạng
Trang 15Chương 2 CAC NGHIÊN CỨU VA CÔNG NGHỆ LIEN QUAN
2.1 Các nghiên cứu liên quan
Hệ thống nhận diện khuôn mặt đã trở nên quan trọng hơn trong nhiều ứng dụng như
giám sát, an ninh và sinh trắc học trong những năm gần đây Khi các phương pháp học sâu
(DL) tiến triển, nhiều nhà nghiên cứu đã chuyên hướng sang phát triển hệ thống nhận diện khuôn mặt dựa trên mạng nơ-ron Vì chúng đòi hỏi nhiều tài nguyên tính toán, nên những
hệ thống nay không phủ hợp với các hệ thống nhúng.
Trong nghiên cứu của Y Wen [1], đã giới thiệu một mạng nơ-ron tích chập sâu
(DCNN) được thiết kế dé hỗ trợ nhận diện khuôn mặt Phương pháp này hoạt động tốt nhất
trên các bộ dữ liệu thử nghiệm như LFW, YTF và IJB-A khi mạng học các đặc trưng phân
biệt về khuôn mặt Dang chú ý, chi phí tính toán của phương pháp này thấp hơn đáng ké
so với các phương pháp khác dựa trên DCNN Tác giả đã chứng minh rằng phương pháp
của họ hoạt động tốt trong nhận diện khuôn mặt cũng như xác minh và phân cụm khuôn mặt Một loạt các kỹ thuật đã được phát triển để tối ưu hóa độ chính xác và tin cậy của nhận diện khuôn mặt, khiến lĩnh vực này trở thành một lĩnh vực nghiên cứu đáng chú ý Các phương pháp dựa trên DL đã xuất hiện như một hướng tiến bộ không cần sử dụng hệ
thống nhúng Những phương pháp này thường bao gồm việc huấn luyện các mạng nơ-ron
sâu trên các tập dữ liệu hình ảnh khuôn mặt lớn, giúp mô hình học được các biểu diễn đặc trưng mạnh mẽ cho việc nhận diện khuôn mặt Còn những phương pháp khác, bao gồm các
kỹ thuật ML truyền thống như máy vector hỗ trợ và phân tích thành phần chính, cũng như các phương pháp kết hợp DL với những kỹ thuật truyền thống này, vẫn đang được khám phá Mặc dù có thê yêu cầu tài nguyên tính toán nhiều hơn so với hệ thống nhúng, những
phương pháp này mang lại sự linh hoạt và có thé áp dụng trên nhiều nền tang và thiết bi
khác nhau.
Một hệ thống phát hiện và theo dõi đối tượng thời gian thực sử dụng Camera
Raspberry Pi và OpenCV đã được trình bày bởi Mani và Gnanamurthy [2] Tap chí thảo
luận về một phương pháp tìm kiếm và theo dõi đối tượng dựa trên kiến tric mạng nơ-ron
YOLOv4 và chứng minh sự hiệu quả trong môi trường thực tế Hệ thống của nhóm tác giả
có độ chính xác cao trong khi sử dụng phan cứng rẻ tiền và không tiêu thụ nhiều điện Điều này làm cho chúng phù hợp với nhiều ứng dụng khác nhau, chăng hạn như giám sát và robot Mô-đun Camera Raspberry Pi được sử dụng cho nhiều ứng dụng khác ngoài nhận
diện khuôn mặt Một ứng dụng như vậy cho phép người dùng chụp ảnh và quay video của
động vật hoang đã và bảo tồn chúng trong môi trường tự nhiên của chúng Ngoài ra, camera
đã được sử dụng trong nông nghiệp đề theo dõi sự phát triển của cây trồng và tìm sâu bệnh Lĩnh vực robot có thêm một ứng dụng, nơi camera có thể được sử dụng dé nhận diện và
theo đõi đối tượng Tóm lai, do tính đa dang và chi phí thấp của nó, Camera Raspberry Pi
được sử dụng cho nhiều ứng dụng trong nhiều lĩnh vực.
14
Trang 16Haar Cascade thường được dùng đề nhận diện đối tượng trong luồng hình ảnh/video
thời gian thực Nó có sự ứng dụng rộng rãi trong giám sát an ninh, quản lý giao thông và
tự động hóa công nghiệp Trái ngược với điều đó, Camera Raspberry Pi là một lựa chọn phổ biến, chi phí thấp và độ phân giải cao, phù hợp cho các dự án như robot, tự động hóa
nhà cửa và thu thập hình ảnh.
Ngoài ra, vào năm 2020, Salih và Basman [3] đã thử nghiệm việc xây dựng một hệ
thống nhận diện khuôn mặt trên máy tính nhúng NVIDIA Jetson Nano và Raspberry Pi Kết quả thử nghiệm của nhóm tác giả cho thấy Jetson Nano có hiệu suất nhận diện thời gian thực tốt hon Raspberry Pi; cụ thé, Jetson Nano xử lý 8,9 khung hình/giây, trong khi
phiên ban thứ 4 của Raspberry Pi chỉ có 2,6 khung hình/giây.
Adoghe, Noma-Osaghae và Okokpujie [4] đã tao ra một ứng dụng nhận diện cũng
sử dụng Haar Cascade vào năm 2021 Nhóm nghiên cứu đã triển khai nó trên Raspberry Pi
sử dụng thư viện Dlib và OpenCV Tuy nhiên, kết quả thử nghiệm chỉ đạt độ chính xác
72.9%.
Ngoài ra, Chandramouli [5] đã giới thiệu một hệ thống điểm danh vào năm 2021 sử dụng thuật toán Haar Cascade trên máy tính nhúng NVIDIA Jetson Nano dé thực hiện các nhiệm vụ như xác định khuôn mặt, trích xuất và gán nhãn Sau đó, nhận dạng khuôn mặt với kết quả thử nghiệm cho thấy TensorRT là một nén tảng tối ưu, độ trễ thấp và lưu lượng
xử lý cao hơn cho các ứng dụng DL đối với các nhiệm vụ như Phát hiện và Trích xuất Khuôn mặt do sự hỗ trợ bố sung cua GPU của TensorRT Tuy nhiên, kết quả nhận diện
khuôn mặt của hệ thông không được đánh giá cao khi sử dụng trên máy tính Desktop Độ
tin cậy này tăng/giảm theo khoảng cách lấy mẫu khuôn mặt.
Một hệ thống nhận diện khuôn mặt thời gian thực sử dụng các bộ phân loại Haar Cascade và mạng nơ-ron trên NVIDIA Jetson Nano được đề xuất trong bài báo của Nayak
và Nanda [6] Theo bài báo, hệ thống mà họ dé xuất có thé đạt được độ chính xác cao với hiệu suất thời gian thực Các tác giả nhắn mạnh rằng các hệ thống nhúng như NVIDIA Jetson Nano cần tài nguyên tính toán thấp Ngoài ra, họ đưa ra các mô tả về thiết kế và
triển khai hệ thống, bao gồm các bước tiền xử lý, phân loại bằng mạng nơ-ron và các bộ
phân loại Haar Cascade dé trích xuất đặc trưng Tóm lại, bài báo đưa ra ý tưởng rằng các
nền tảng nhúng có thé được sử dụng dé phát triển hệ thong nhận diện khuôn mặt với hiệu
suất cao và độ chính xác thời gian thực.
Có nhiều cách khác nhau dé thiết kế ứng dụng điểm danh bằng khuôn mặt Tuy
nhiên, câu hỏi là làm thế nào dé phát triển một hệ thống nhận diện khuôn mặt trực tuyến cho các thiết bị di động nhỏ, ít tiêu thụ năng lượng, ATBM? Những tác phẩm này thể hiện khả năng xây dựng hệ thống nhận diện khuôn mặt bang cách sử dụng các bộ phân loại Haar
Cascade và NVIDIA Jetson Nano với ít tài nguyên tính toán nhưng dat được độ chính xác
15
Trang 17cao và xử lý thời gian thực Các công trình này cung cấp thông tin quan trọng về thiết kế,
triển khai và đánh giá hiệu suất của hệ thống.
Từ tất cả các ý tưởng và thử nghiệm được trình bày bởi các tác giả trong ba nhóm
[3], [4], [5] [6] luận văn đề xuất việc kết hợp quá trình Phát hiện, Trích xuất, Gán nhãn
và Nhận diện băng cách sử dụng Haar Cascade, một giải pháp phô biến với độ phức tạp
vừa đủ và độ chính xác cao Toàn bộ quá trình được thực hiện trên một máy tính nhúng
NVIDIA Jetson Nano, một thiết bị chuyên biệt AI với khả năng xử lý mạnh mẽ Máy tính nhúng này, mặc dù nhỏ gọn, có khả năng xử lý thời gian thực tốt và cung cấp 472 GFLOPs
dé thực hiện các tác vụ xử lý AI, bao gồm cả các thuật toán DL hiện đại, một cách nhanh
chóng.
2.2 Hướng tiếp cận luận văn
2.2.1 Cơ sở lý thuyết s* Ly thuyết về Haar Cascades
Vào năm 2001, Viola và Jones [7] đã trình bày một cách tiếp cận mới, sử dụng chuỗi
bộ phân loại dựa vào đặc trưng Haar, làm phương pháp đột phá trong việc phát hiện đối
tượng, bao gồm cả việc nhận diện khuôn mặt Cách tiếp cận này nhắn mạnh việc áp dụng
loạt đặc trưng đơn giản dé đạt được hiệu suất cao và độ chính xác trong việc nhận diện đối tượng trong hình anh, đặc biệt là trong các tình huống xử lý theo thời gian thực Kết qua thử nghiệm từ công trình của họ cho thấy phương pháp này có thê xác định khuôn mặt và các đôi tượng khác như người đi bộ và xe cộ với độ chính xác và tốc độ cao Cách thức này
đề cập đến việc huấn luyện loạt bộ phân loại dựa trên nhiều hình ảnh chứa đối tượng cần nhận diện (hình ảnh tích cực) cùng với hình ảnh không chứa đối tượng đó (hình ảnh tiêu cực), nhằm mục đích phát hiện đối tượng trong nhiều hoàn cảnh khác nhau.
Trọng tâm của nghiên cứu này là khám phá các khuôn mặt Quá trình huấn luyện
bộ phân loại khởi đầu từ việc thu thập hình ảnh chứa khuôn mặt (dạng tích cực) và hình
ảnh không chứa khuôn mặt (dạng tiêu cực) Sau khi hoàn thành, việc trích xuất đặc trưng
từ các hình ảnh được thực hiện Dé làm điều này, nhóm tác giả sử dụng các đặc trưng Haar,
giống như các lõi tích chập Mỗi đặc điểm có giá trị có thể được xác định bằng cách lấy
tong số pIxel trong vùng trắng và trừ đi tổng số pixel trong vùng đen Hình 2 minh họa các
đặc trưng cạnh, dòng và góc của Haar Cascade có thé được trích xuất từ mảng hình ảnh
bằng Haar Cascade Thuật toán Haar Cascade tông hợp các đặc điểm này thành một bộ
phân loại mạnh mẽ có thể xác định đối tượng với độ chính xác cao dé xác định các loại đối
tượng khác nhau trong hình ảnh.
16
Trang 18(a) (b) (c)
Hình 2 Cac loại đặc trưng Haar khác nhau được trích xuất từ một phan của hình ảnh,
(a) Đặc trưng cạnh, (b) Đặc trưng dong, (c) Đặc trưng bon hình chữ nhật
Thuật toán sử dung tat cả các kích thước và vị trí có thé của mỗi kernel dé tính toán nhiều đặc trưng Điều này đòi hỏi một lượng lớn sức mạnh tính toán, đặc biệt là đối với cửa sô 24 x 24 cho ra hơn 160,000 đặc trưng Dé tính toán từng đặc trưng, chúng tôi phải xác định số lượng pixel trong hình chữ nhật màu trắng và đen Hình ảnh tích phân được
cung cấp dé giúp quá trình này trở nên đơn giản hơn Bằng cách sử dụng phương pháp này,
bắt kề kích thước của hình ảnh, số lượng phép tính cần thiết cho một pixel cụ thé chỉ còn
bốn pixel Tính toán trở nên đáng kế nhanh hơn và hiệu quả hơn do điều này.
Một phần lớn tat cả các đặc trưng đã được tính toán là không có giá trị Nhìn vào hình anh sau dé hiéu rõ hơn Các đặc trưng đầu tiên và thứ hai trên hàng đầu tiên là những
ví dụ tốt về các đặc trưng có ích Đặc điểm đầu tiên là bạn có thé thấy rằng khu vực xung quanh mắt thường tối hon so với khu vực xung quanh má va mũi Ý tưởng rang mắt tối
hơn so với phần giữa của mũi là co sở cho đặc điểm thứ hai Tuy nhiên, việc sử dụng cửa
số tương tự cho má hoặc bất kỳ vùng nào khác thì không quan trọng Vì vậy, làm thế nào
họ lựa chọn hơn 160,000 đặc trưng quan trọng nhất? Nhiệm vụ được hoàn thành bằng cách
sử dụng AdaBoost.
17
Trang 19Mỗi đặc trưng được sử dụng cho tat cả các hình ảnh huấn luyện, và một ngưỡng được thiết lập cho mỗi đặc trưng đề giúp phân loại dễ dàng hơn Tuy nhiên, phân loại sai
sẽ xây ra, và các đặc điểm có ty lệ lỗi thấp nhất được chọn là những đặc điểm có thông tin
nhất Mặc du ban đầu mỗi hình ảnh được gan cùng một trọng số, tuy nhiên, trọng số của
các hình ảnh bị phân loại sai sẽ tăng lên sau mỗi vòng phân loại Điều này khiến việc chọn
này trở nên khó khăn Cho đến khi đạt được mức độ chính xác hoặc số lượng đặc trưng cần
thiết, quy trình này được lặp lại Hình 3 cho thay một vi du về xác định khuôn mặt trong
ảnh.
Bộ phân loại cuối cùng được tạo ra bằng cách sử dụng bộ phân loại "yếu" cùng với tổng trọng số Mặc dù bộ phân loại “yếu” riêng lẻ không thé phân loại toàn bộ hình anh,
nhưng các kết quả được kết hợp tạo ra một bộ phân loại mạnh Theo bài báo, thậm chí 200
đặc trưng cũng có thê đạt được 95% độ chính xác Mặc dù cấu hình cuối cùng có khoảng
6.000 đặc trưng, nhưng cầu hình ban đầu có trên 160,000 đặc trưng.
18
Trang 20nyo ={ @)
Điều quan trọng là phải có một cách nhanh chóng và dễ dàng dé xác định xem một
cửa số không có khuôn mặt trong hình ảnh đề tối ưu hóa việc phát hiện khuôn mặt Một khu vực có thể được từ chối ngay lập tức nếu xác minh rằng nó không có khuôn mặt Thay vào đó, thuật toán có thể tập trung sự chú ý của mình vào các khu vực có khả năng chứa khuôn mặt cao hơn Bằng cách bỏ qua phần lớn hình ảnh, thường là các khu vực không liên quan đến khuôn mặt có thể giúp tiết kiệm tài nguyên và tăng hiệu suất.
Tác giả đã tạo ra phương pháp "Cascade of Classifiers" đề giải quyết vấn đề này Thay vì áp dụng tất cả 6.000 đặc trưng cùng một lúc vào một cửa số, các đặc trưng được thực thi theo tuần tự và được chia thành nhiều giai đoạn của bộ phân loại, giai đoạn đầu tiên thường không có gì đặc biệt Nhưng một cửa số sẽ bị loại bỏ nếu nó không hoàn thành giai đoạn đầu tiên và không thể tiếp tục sử dụng các tính năng khác Tuy nhiên, nếu điều
đó xảy ra, các đặc điểm tiếp theo sẽ được áp dụng và quá trình tiếp tục Một cửa số đi qua
mọi giai đoạn sẽ được coi là khuôn mặt chứa.
Các tác giả tạo ra bộ phát hiện với 38 giai đoạn sử dụng một số lượng đặc trưng khác nhau, tổng cộng hơn 6.000 đặc trưng Trong năm giai đoạn đầu tiên, các đặc trưng lần lượt là 1, 10, 25, 25 và 50 Hai đặc trưng trong hình ảnh trước đã được chọn là các trình diễn tốt nhất bằng cách sử dụng AdaBoost Tác giả nói rằng, trong hơn 6.000 đặc trưng đã được đánh giá cho mỗi cửa số con, trung bình chỉ có khoảng mười đặc trưng.
“ Kỹ thuật phát hiện của Haar Cascade trong OpenCV
TGMT có khả năng nhận diện các đối tượng như người đi bộ, mắt, và khuôn mặt
thông qua sử dụng kỹ thuật Haar Cascade trong việc phát hiện đối tượng, một tính năng được hỗ trợ bởi thư viện mã nguồn mở OpenCV.
Quá trình phát hiện bao gồm việc huấn luyện một bộ phân loại sử dụng hình ảnh tích cực (chứa đối tượng) và tiêu cực (không chứa đối tượng) OpenCV mang đến một bộ
phân loại đã qua huấn luyện, sẵn sàng cho việc nhận diện khuôn mặt, và có thể được tíchhợp một cách thuận lợi Quá trình phân loại tải tệp phân loại, chụp ảnh từ máy ảnh hoặc
video và truyền các khung hình qua bộ phân loại Khi bộ phân loại tìm thấy khuôn mặt, nó
xác định tọa độ của chúng trong hình ảnh.
19
Trang 21Đối với việc phát hiện đối tượng, vì kỹ thuật Haar Cascade nhẹ hơn so với các kỹ thuật khác dựa trên DL, nó phù hợp với các thiết bị có công suất thấp như Raspberry Pi và NVIDIA Jetson Nano Triển khai đơn giản và tính toán thấp cũng làm cho việc lập trình và triển khai dé dàng hơn so với DL Mặc dù có nhiều thuật toán DL tiên tiến hơn, các bộ phân loại Haar Cascade vẫn là lựa chọn hợp lý cho phát hiện và nhận diện đối tượng trên NVIDIA Jetson Nano Điều này là do yêu cầu tính toán thấp hơn so với DL, đặc biệt trên các thiết bị có tài nguyên hạn chế như NVIDIA Jetson Nano Hơn nữa, Haar Cascade có thé dé hiểu hơn so với các mô hình DL, giúp người dùng hiểu cách thuậttoán ra quyết định Điều này đặc biệt quan trọng đối với các ứng dụng đòi hỏi khả năng giải thích Ngoài ra, Haar Cascade có thé khá mạnh mẽ hơn trong việc xử lý thay đồi môi trường hoặc ánh sáng
so với DL, do DL thường nhạy cam hon với biến thé dit liệu Mặc dù DL vẫn là lựa chọn hàng đầu cho nhiều nhiệm vụ TGMT, Haar Cascade vẫn là một lựa chọn hữu ích và khả thi cho một số ứng dụng trên NVIDIA Jetson Nano.
Trong thư viện OpenCV, có sẵn một bộ sưu tập các bộ phân loại Haar Cascade đã
được huấn luyện sẵn Những bộ phân loại này tập trung vào việc phát hiện các phần khác
nhau của cơ thể như khuôn mặt, mắt, miệng và cơ thể hoàn chỉnh hoặc một phan Thu vién
này cung cấp cả việc huấn luyện và sử dung bộ phân loại Haar Cascade Các mô hình nay
có thể đễ dàng được lưu trữ trong thư mục data của OpenCV thông qua phương thức
cv: :CascadeClassifier: : load.
2.2.2 Phương pháp nghiên cứu
s* Thư viện xử lý hình ảnh
Để đảm bảo hiệu suất và độ chính xác tối ưu, việc lựa chọn thư viện xử lý hình anh
phù hợp là can thiệt trong quá trình phát triên hệ thông điêm danh dựa trên NVIDIA Jetson
Nano Do các lý do sau đây, OpenCV đã được chọn:
© OpenCV được biết đến với khả năng xử lý hình ảnh và video nhanh chóng,
điều này rất quan trọng cho hệ thống điểm danh thời gian thực Nó tối ưu hóa việc sử dung GPU, điều này phù hợp với phần cứng NVIDIA Jetson Nano trong hệ thống của luận văn.
© OpenCV cung cấp một loạt các chức năng phân tích và xử lý hình ảnh có độ
chính xác cao, bao gồm việc nhận diện khuôn mặt và theo dõi đối tượng.
e OpenCV cho phép tích hợp dé dàng với các thư viện và công cụ khác, hỗ trợ
việc mở rộng và cải thiện hệ thống trong tương lai Khả năng tùy chỉnh cao cũng là một yếu tố quan trọng.
So sánh với các thư viện khác: Mặc dù YOLO là một lựa chọn mạnh mẽ, nó khônghoàn toàn phù hợp với yêu câu của hệ thông điêm danh của luận văn YOLO đòi hỏi tài
nguyên phân cứng lớn hon và có thê không tôi ưu khi chạy trên NVIDIA Jetson Nano Hơn
20
Trang 22nữa, trong khuôn khổ của luận văn này, nhu cầu chính là nhận diện khuôn mặt chính xác
hơn là phát hiện đôi tượng đa dạng, nơi mà YOLO có ưu thê Do đó, OpenCV được chọn
là thư viện cho việc phân tích hình ảnh của luận văn.
s* Nền tang nhúng
Một số nền tảng khác có thể được xem xét, mỗi nền tảng có ưu và nhược điểm riêng:
© Raspberry Pi: Đây là lựa chọn phổ biến cho các dự án với ngân sách hạn hẹp.
Raspberry Pi có giá thành thấp và cộng đồng hỗ trợ lớn, nhưng nó không chuyên biệt cho xử lý AI và ML nên có thể không cung cấp hiệu suất xử lý
mạnh mẽ như NVIDIA Jetson Nano, đặc biệt trong xử lý hình ảnh và video thời gian thực.
e Google Coral: Đây là một nền tảng phát triển cho AI và ML tới TPU tích
hợp, cho phép xử lý nhanh chóng các mô hình máy hoc Coral có thé là một lựa chọn tốt cho nhận diện khuôn mặt nhờ khả năng xử lý AI mạnh mẽ, nhưng
nó có thé đắt hon NVIDIA Jetson Nano.
¢ Intel Neural Compute Stick: Là một thiết bi phan cứng nhỏ gon có thé kết
nối với máy tính hoặc Raspberry Pi để cung cấp kha năng xử lý AI Tuy nhiên, nó cần kết hợp với một máy tính chủ và không phải là một giải pháp
độc lập như Jetson Nano.
® AWS DeepLens: Đây là một máy ảnh thông minh tích hợp khả năng xử lý
ML, nhưng nó liên kết chặt chẽ với dich vụ đám mây của Amazon, có thé là
một hạn chế muốn một hệ thống hoạt động độc lập.
Lý do chinh cho việc sử dung NVIDIA Jetson Nano dé phát triển hệ thống của luận
văn có thê bao gôm:
© _ Hiệu suất và tối ưu hóa cho AI: NVIDIA Jetson Nano được thiết kế đặc biệt
cho các ứng dụng AI và ML, cung cấp hiệu suất xử lý hình ảnh và video thời
gian thực mạnh mẽ, phù hợp cho nhận diện khuôn mặt.
© Chỉ phí và hiệu quả năng lượng: Jetson Nano cung cấp một sự cân bằng tốt
giữa chi phí và hiệu suất, đặc biệt trong việc xử lý AI với việc tiêu thụ năng lượng thấp.
¢ - Hỗ trợ và cộng đồng: NVIDIA cung cấp một lượng lớn tài nguyên hỗ trợ và
một cộng đồng lớn, điều này có thể hữu ích cho việc phát triển và gỡ lỗi ứng
dụng.
21
Trang 232.3 Các công nghệ
2.3.1 Thiết bị phần cứng
s* Máy tính nhúng NVIDIA Jetson Nano
Luận văn sử dụng NVIDIA Jetson Nano, một máy tính TTNT giá rẻ Thiết bị này cung cấp hiệu suất cao cho các khối công việc TTNT hiện đại, mặc dù kích thước nhỏ gọn,
và chỉ tiêu thụ 5 watt điện năng, giúp tiết kiệm năng lượng Như được thé hiện trong Hình
ảnh, Jetson Nano có kích thước 80mm x 100mm và được trang bị GPU Maxwell 128 nhân,
CPU Arm Cortex-A57 4 nhân và 4GB bộ nhớ hệ thống Bang NVIDIA Jetson Nano bao
gồm GPU, CPU và bộ nhớ trong hình 4 Ngoài ra, bảng mach là một công cụ đa năng cho các ứng dụng TTNT vì nó có các công đề kết nói các thiết bị khác như máy ảnh, màn hình
rời, thiết bị thu wifi
s* Camera Raspberry Pi
Mô-đun Camera Raspberry Pi V2 là một máy ảnh đa năng dành cho máy tinh nhúng.
Cảm biến ảnh 8 megapixel Sony IMX219 cho phép chụp ảnh rõ nét và chỉ tiết Hơn nữa, mô-đun máy ảnh có khả năng ghi lại video chất lượng cao với độ phân giải 1080p30 hoặc 720p60 Mô-đun camera bao gồm dây cáp đề có thé kết nói Nó có thé được sử dụng cho
22
Trang 24các ứng dụng như hệ thông điểm danh sử dụng công nghệ nhận diện khuôn mặt của chúng tôi, như thể hiện trong hình 5.
đơn giản đến những dự án phức tạp và đầy thách chăng hạn như ML, thiết kế Website và
dữ liệu lớn Nó có các thư viện đa dạng cho phép các nhà phát triển xây dựng các ứng dụng phần mềm với hiệu suất tính toán cao và ít tốn tài nguyên hệ thống.
Visual Studio Code — một IDE được sử dụng rộng rãi, hỗ trợ nhiều ngôn ngữ lập trình, bao gồm Python IDE này cung cấp nhiều tính năng tiên tiến như gỡ lỗi, làm nồi bật
cú pháp và hoàn thành mã Hơn nữa, sự kết hợp giữa Visual Studio Code và Python cung cấp một nền tảng mạnh mẽ để xây dựng các ứng dụng phần mềm chất lượng cao với thiết
kế chỉ tiết.
Thư viện Python chuyên về TGMT, OpenCV2, là một phần quan trọng trong việc phát triển ứng dụng TGMT Nhiều chức năng TGMT, bao gồm xử lý ảnh và video, phát hiện đặc trưng và nhận diện đối tượng, có thé được nhà phát triển truy cập với OpenCV2 Tao ra các ứng dung phần mềm hiệu suất cao cho thực tế bằng cách kết hợp OpenCV2 với
23
Trang 25các thư viện Python mạnh mẽ Bằng cách sử dụng Python và Visual Studio Code cùng với OpenCV2, các nhà phát triển có thé dé dàng xây dựng các ứng dụng phần mềm mạnh mẽ.
Node.js, môi trường chạy mã JavaScript ở phía máy chủ, được dựng trên nền engine JavaScript V8 của Google Chrome Điều này cho phép thực thi mã JavaScript trực tiếp trên máy chủ, không chỉ trên trình duyệt Node.js thích hợp cho việc xây dựng nhiều loại ứng
dụng như ứng dụng web thời gian thực, đa luồng, mạng, dựa trên API và nhiều loại khác.
Nó phù hợp cho các dự án cần hiệu suất cao và khả năng mở rộng.
Angular, một nền tảng Open Source do Google phát triển, dành cho việc tạo ra các ứng dụng web đa trang và động mạnh mẽ Framework này cung cấp một cơ sở hạ tầng và
công cụ quản lý giao diện người dùng và tương tác dữ liệu Angular thích hợp cho việc xâydựng các ứng dụng web phức tạp và đáp ứng, phù hợp với cả các dự án nhỏ lẫn lớn.
24
Trang 26Chương 3 PHAN TÍCH MÔ HÌNH HÓA YÊU CAU
3.1 Phân tích mô hình hóa yêu cầu
s* Phân hệ QTHT
Phân hệ QTHT là một phần quan trọng của một ứng dụng hoặc hệ thống phức tạp,
nhằm đảm bảo rằng tat cả các thành phần và tài nguyên của hệ thống hoạt động một cách
hiệu quả và an toàn Dưới đây là mô tả về các chức năng của phân hệ QTHT, bao gồm:
Trang 27o_ Hỗ trợ tổ chức giao điện người dùng và đảm bảo ứng dụng vừa dễ sử dụng
vừa có tính thâm mỹ cao.
o Quản trị viên có quyền thay đổi cách các mục trong Menu được tổ chức, cũng
như thêm đường dẫn đến các chức năng hoặc trang khác.
© Quản lý Thiết bị:
26
Trang 28o_ Chức năng này cho phép quản trị viên theo dõi và quản lý tat cả các thiết bị.
o Thong tin thiét bi bao gồm tên, mã, trạng thái, thông số kỹ thuật, và lịch sử
sử dụng.
o_ Chức năng cho phép thêm mới, cập nhật thiết bị, cũng như theo dõi tình trạng
hoạt động của thiết bị.
© Quản lý Vị trí Thiết bị:
o Có thể tạo mới, chỉnh sửa vị tri đặt thiết bị.
o_ Chức năng cho phép quản trị viên định vị và theo dõi vị trí của thiết bị.
o Quản trị viên có thể xem thông tin chỉ tiết về vi trí của thiết bị.
© Quản lý NDHT cũng có thé bao gồ việc xác thực và kiểm soát truy cập dé
dam bảo tính bảo mật của hệ thống.
l Các chức năng này cùng nhau tạo nên một phân hệ QTHT mạnh mẽ, giúp dam bảorăng ứng dụng hoặc hệ thông được quản lý một cách hiệu quả, linh hoạt va an toàn, dongthời giúp cải thiện trải nghiệm người dùng và hiệu suât của hệ thông.
s* Phân hệ NDHT
Cấp quyền cho NDHT để truy cập các tính năng điểm danh và kiểm tra bản ghi lịch
sử điểm danh cá nhân.
27
Trang 29Phân hệ Người dùng hệ thống
Thực hiện Quản lý Thông tin
Điểm danh Cá nhân
Quản lý Lịch sử
Điểm danh
⁄.v⁄ v.v viv
viv
Hình 8 Phân hệ NDHT
Phân hệ NDHT bao gồm các chức năng sau:
© Thực hiện Điểm danh:
o_ Chức năng này cho phép người dùng thực hiện việc đánh dấu sự hiện
điện của họ tại một thời điểm cụ thể.
o Thường được sử dụng trong các ngữ cảnh như giảng day, làm việc tại
vị trí cố định.
o Để đảm bảo tính trungthực của điểm danh,người dùng thực hiện điểm
danh bằng cách đứng trước hệ thống camera và máy tính nhúng
NVIDIA Jetson Nano.
28
Trang 30e Quan lý Thông tin cá nhán:
o Chức năng này cho phép người dùng quan lý dữ liệu cá nhân của họ
trong hệ thống.
o_ Tên, hình ảnh đại diện, địa chỉ email, mật khâu và các thông tin khác
có thé được cập nhật bởi người dùng.
o_ Chức năng cung cấp kha năng thay đôi và bảo mật thông tin cá nhân
dé dam bảo tính riêng tư và bảo mật.
e_ Tra cứu Lịch sử Điểm danh:
o Cho phép xem lịch sử các lần điểm danh đã thực hiện trong quá khứ.
o Xem thông tin về thời gian, ngày, hình ảnh khuôn mặt và kết quả của
mỗi lần điểm danh.
o Chức năng này có thé hữu ich dé theo dõi và xác minh sự hiện diện
hoặc vắng mặt.
Các chức năng này giúp người dùng thực hiện nhiệm vụ quản lý điểm danh và theo
dõi thông tin cá nhân một cách tiện lợi và hiệu quả.
Trang 31SIT Tên đối tượng Mô tả
Thực hiện Điểm danh
Quản lý Thông tin Cá nhân
O Quan ly Lịch sử Điểm danh
Trang 323.2.3 Quy trình nghiệp vụ chỉ tiết
s* Quy trình nghiệp vụ Quan lý Menu
Nhập đường dẫn
Menu Nhập tên Menu Nhập mã Menu
¢ Quy trình nghiệp vụ Quản lý Thiết bị
a) Quy trình tạo thiết bị
31
Trang 33Nhập mô tả
thiết bị Nhập tên thiết bị Nhập mã thiết bị
Trang 34Quy trình nghiệp vụ Quản lý Người dùng
a) Quy trình tạo người dùng
Trang 35Hình 18 Quy trình cập nhật thông tin người dùng
e Quy trình nghiệp vụ Quản lý Thông tin Cá nhân
Trang 36Nhập mật khẩu
hiện tại
Nhập lại
mật khẩu mới Nhập mật khẩu mới
Không
Hình 20 Quy trình cập nhật mật khẩu
e_ Quy trình nghiệp vụ Quản lý Lich sử Điểm danh
a) Quy trình xem danh sách lịch sử điểm danh
Xem lưới danh sách im kiếm theo điều kiện
lịch sử điểm danh Từ ngày - Đến ngày Có snes
hông
Chọn điểm danh
cần xem chỉ tiết Chọn nút Chi tiết
35
Trang 37Chương 4 PHAN TÍCH THIET KE HỆ THONG
Ỉ : SỬ DUNG MAY TÍNH NHŨNG , +.ø " i ‘ _— DATABASE SERVER "
; la - H NVIDIA JETSON NANO H Mã hóa, xác thực 4 QUAN LY DIEM DANH | h
| HỆTHỐNGMÁY ! q ke he cao nie Pe a
Q TÍNHNHÚNG _⁄
-Hình 23 Mô hình phan mém của hệ thong điểm danh
4.1.2 Sơ đồ chức năng
HỆ THỐNG ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT SỬ
DỤNG MAY TINH NHUNG NVIDIA JETSON NANO
Trang 38Hệ thống điểm danh bằng nhận diện khuôn mặt sử dung
máy tính nhúng NVIDIA Jetson Nano
API Gateway, Access Tokens
Clients ` > Quản lý > _ Xác thực người
„0B = Quantyimeny = người dùng = dùng
0
=]
= 4 | 3 | QuảnWjMifEEbl | > Quản lý > Quản lý
ö Se = an JUNCLDL | .4 vitrithiết bị = điểm danh
a ¬<> z
mm
| Data Services/ Framework
Connector Layer
[ Object Storage
Ki into |
¢ Lớp giao tiếp: Đây là phan của ứng dung mà người dùng cuối tương tac,
được biết đến như lớp giao tiếp Người dùng truy nhập vào hệ thống qua trình
duyệt web.
e Lớp xử ly nghiệp vụ: Xử lý các nghiệp vụ chính và tương tác với các dich
vụ khác trong hệ thống Các thành phần lớp này bao gồm:
o API Gateway: Cho phép các ứng dụng cuối giao tiếp trực tiếp với ứng
dụng Web API Gateway không chỉ cung cấp khả năng tích hợp mà
còn tích hợp các biện pháp bảo mật để bảo vệ dữ liệu.
37
Trang 39o Hệ thống API Được phát triển trên nền tảng công nghệ Node.js dé
cung cấp các chức năng quản trị và quản lý đữ liệu cho các thành phần khác trong hệ thống.
e Lớp dữliệu:
o CSDLQH: Được sử dụng dé lưu trữ các thông tin về hệ thống và các
tập dữ liệu liên quan CSDLQH sử dụng các bảng và quan hệ giữa
chúng đề tô chức dir liệu Điều này cho phép việc lưu trữ và truy xuất
dữ liệu dé dàng và hiệu quản Hệ thống sử dụng CSDLQH phổ biến
MySQL.
o MinIO: Đây là một giải pháp lưu trữ đối tượng (Object Storage) mã
nguồn mở Ngoài ra, MinIO cho phép lưu trữ các tập tin như hình anh, video, tài liệu và các đữ liệu không cấu trúc khác trong hệ thống.
4.2.2 Kiến trúc triển khai
Clients <<.“ x
Hệ thống điểm danh bằng nhận diện khuôn mặt | MySQL | | MinIO |
sử dung máy tính nhúng NVIDIA Jetson Nano = = =
Trang 40e Một server ảo hóa được dùng dé deploy các service va database.
e Các module chức năng kết nối với nhau thông qua virtual IP.
e Hé thống giao tiếp với bên ngoài thông qua Firewall.
Server MySQL
Hình 28 Kiến trúc dữ liệu
MySQL là một hệ thống CSDLQH phô biến MySQL được dùng dé lưu trữ lịch sử
điểm danh, danh mục dùng chung và cấu hình hệ thống cũng như tat cả dữ liệu từ hệ thống đến người dùng.
Đóng sói và Triên khai
Bang 2 Bảng công nghệ sử dụng trong hệ thong