Cu thé, hệ thống sé sửdụng thẻ RFID dé xác định danh tính ban đầu của người dùng, sau đó xác thực danhtính bằng nhận diện khuôn mặt.. Giới thiệu về đề tài khóa luận tốt nghiệp: - Hệ thốn
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
VÕ SỸ DŨNG - 20521215
KHÓA LUẬN TÓT NGHIỆP
HE THONG DIEM DANH KET HỢP THẺ RFID VA
NHAN DIEN KHUON MAT SU DUNG CNN,
FACENET, SVM
Attendance system combines RFID card and face
recognition using CNN, Facenet, SVM
CU NHAN KY THUAT MAY TINH
GIANG VIEN HUONG DAN
PHAN DINH DUY
TP HO CHi MINH, 2024
Trang 2LỜI CẢM ƠN
Đầu tiên, em xin gửi lời cảm ơn chân thành đến Trường Đại học Công nghệThông tin - Đại học Quốc gia TP Hồ Chí Minh và Khoa Kỹ thuật Máy tính đã
tạo điều kiện tốt nhất cho em học tập Đây cũng là nơi tụ họp những người bạn
đồng trang lứa tuyệt vời dé em cùng học tập và phát trién
Em gửi lời cảm ơn đặc biệt đến thầy Phan Đình Duy, thầy hướng dẫn của em từ
Đồ an 1 đến khóa luận tốt nghiệp Thầy đã hướng dẫn và hỗ trợ em trong thờigian thực hiện đề tài này.
Em cũng xin cảm ơn chân thành đến các thầy, các cô trong Khoa Kỹ Thuật MáyTính đã truyền đạt cho em những kiến thức và kỹ năng cần thiết trong suốt quá
trình học tập tại trường.
Em cũng xin cảm ơn đến hội đồng chấm khóa luận đã góp ý tận tình, chỉ ranhững lỗ hồng của đề tài để em có thể khắc phục trước khi bắt đầu và hoànthành chặng đường cuối cùng
Trang 3MỤC LỤC
Chương 1 TONG QUAN -2::ceeieeetreeEEtreEEtrrettrrertrtrtrrrrrrrrrrrrrrerre 2
1.1 Giới thiệu về dé tài khóa luận tốt nghiệp: - -ecceerreecerreccee 21.2 Mục tiêu của đề tài: -ccccccttieeeeevvEEEErEiirrtkkkkkrtrtrirrrrekkktrrrrrrrrreeerrrrrrrrree 3
1.3 Giải pháp Va gI1ới hạn: - «cty nhanh 3
Chương 2 CƠ SỞ LÝ THUYẾT -22:+eeS2222EEE22EE22.23E12 21222 ee 5
2.1 Kit Raspberry Pi 3 mode B+, module Camera Rev l.3: 5
2.2 Kit Raspberry Pi 5, module Camera V3, module RFID,LCD16x2 và mOdule I2: -ss + tồn HH Hư HH HH HH Hee 7
2.3 Công nghệ OpenCV và thuật toán xử lý ảnh, máy học, deep learning,
2.4 Tìm hiểu về firebase: eiccccerreeceerrieeerrrrrrrtrrrrrtrrrirrrrrrrrrrrrre 252.5 _ Tìm hiểu về Sendgrid: cceceeccerreeveerrreeetrieertrrrrrrrrrirrrrrrree 26
2.6 Tìm hiểu về công nghệ ReactJS, Vite, TailwindCSS, Ant Design dùng déthiết kế giao GiSMcecccssssssseessnneesssssnssenesnssnnenscasssssesssasonneeesaasonnennunssnnennnassoneeennaaseneenneaseneees 28
Chương 3 PHAN TÍCH VÀ THIẾT KẾ HỆ THỐNG -s 30
ốc ẽ.ẽỒ 303.2 Kết nối Raspberry Pi với camera nhận diện khuôn mặt: 31
3.3 Kết nối Raspberry Pi với firebase: -cs-ecetrecerrrrerrrrerrre 33
3.4 Kết nối giao diện người dùng với firebase: ccccccerrrceecerrrre 373.5 Kết nối Raspberry Pi với SendGrid: -: ecccerirrecvevrrrrererrrrrre 43
3.6 _ Danh sách thư viện sử dụng: -e-cexer+rerrrertrirtrrirrrrrrrirrree 47
Chương 4 KẾT QUA THỰC NGHIỆM 2.2.2.2 48
Trang 44.1 Một số thông số và tiêu chí đánh giá độ chính xác hệ thống nhận diện
khuôn mmặT: <5 x£cc£ts+tv+EEEteEtstterkEkrrrtkrrkrrkrrrrrrrkrrkrrrrrrkrrkrrkrrkrrrrrrkrrsrrrrrrrsrk 48
4.2 Banh giá độ chính xác của hệ thống dựa trên tập dataset người nồi tiếng 494.3 Đánh giá về độ chính xác khi sử dung data thực tế: - 51
44 Kết quả độ tin cậy mà hệ thống dựa trên nhận diện trực tiếp qua camera:53
AS TOC AG XU LY? số 534.6 Diém danh thông qua hệ thống RFID wcsessssssessesssssssesssssesssssssessssssesnsesessesssee 544.7 _ Giao diện hién thị và một số chức năng khác: -.‹-e-cce-cxeeccxsexes 55
Trang 5DANH MỤC HÌNH
Hinh 08010 100037 4Hình 2.1: Hình ảnh tong thé kit Raspberry Pi 3 Mode B+ -cc :+- 5
Hìn.2.2: Camera Rev 3 ss-csc th thành hinh 6
Hình 2.3: Hình ảnh tổng thé kit raspberry pi 5 -ce .ccccerreeceerrrereerrre 7
Hình 2.4: Camera Module VỔ -s-ccxs+rt+kttrrrtrrtrirtritrrrtkirrrirrririirrriirirrrrrrrrrriiee 9
Hình 2.5: Màn hình LCD16x2 & Module I2C -cccc5ccsesrxeeerreerrrrree 10
Hình 2.6: Sơ đồ chân Module RFID-RC522 -22++ecssrreccettrreretrrrrrerre 11
Hình 2.7: Deep learning [2] -s s«csxtekekEkttthH hà hư hà hy nhanh ngưet 12
Hình 2.8: Convolutional Neural Networks [3] -csccscseesesseeererseesrsee 13
Hình 2.9: Kiến trúc ConvNet wssssssisssstiasssssseesstiattasssssaesasananeetaetaeaeatatn 14Hình 2.10: Tang Convolution [4] \ 0dtllleccessscssscesMacssssssssecssesssstfasesssessesessceacessesssaesseessessessesoes 14
Hình 2.11: Cách tính khi qua bộ loc filter [3] « e «e-e<<xesexeereexeeexxeereeee 15 I0): V2ẴẮaiii8 (2000517777 15
Hình 2.13: Max Pooling [3] -. -s ceccccsrxsersrrrrrrrrrrrrrrtrrrrirrrirrrirrrrrrrrrrrrree 16
Hình 2.14: Tầng fully connected [3] ccs eecceerreveerrrereerrrreerrrrerrrre 17Hình 2.15: kiến trúc MTCNN [5] -22 +-eceereeeeetrrereerrrervrrrrreerrrrrrrrre 17
Hình 2.16: Hình ảnh được làm nhỏ lại như kim tự tháp [6] - 18
Hình 2.17:Kiến trúc P-Net [6] ieecereeeetrreererErrerrtrrerrrtrrrrrrrrrerrrrrreerrre 19Hình 2.18:Kiến trúc R-Net [6| -eereerierieriririririrrirrirrrrrrie 20Hình 2.19: Tống thé của P-R-O net [6] -ss+ccssreeeeteeeetrrreerreeerrrerrr 21Hình 2.20: Logo công nghệ dùng trong thiết kế giao diện web - 29
In 3.1: So d6 1777 31Hình 3.2: Kết nỗi Raspberry Pi với Camera +-ccccettrrreecvvrrtrrrrerrrrrrrrrrrr 31Hình 3.3: Cây thư mục dé chạy hệ thống .-cs2+eeesteeevttrrvrrrerrrrrerre 32Hình 3.4:Phát hiện gương mặt trực tiếp qua camera ccse+cccerrrrceerre 32Hình 3.5: Thay đổi Rules ở Realtime đatabase -c ++ceecceerrreccevrrrrrrerrrr 33
Hình 3.6: VỊ trí của web app -c-ccrcrirtrritirH he ret 33
Trang 6Hình 3.7: Các thông tin để gửi data -cc5s-ccccestreevetrrervrrrrrrvrrrrrrerrrrrrerre 34Hình 3.8: Code gửi data đến firebase -.cccettccvvtrrervrrrrrrvrrrrrrerrrrrrrrre 34Hình 3.9: Kết quả gửi data đến firebase cssteceetreeerrrrvrrrrrrrrrrrrrrerre 35Hình 3.10: Cau trúc dit liệu lớp học s:+cecettreecetrreeertrrererrrrreerrrrerrrre 35Hình 3.11: Cấu trúc dữ liệu sinh viên .v+vvvEEEEEttttttttttttrtexvvvvvvvvrrrrrrrrr 36Hình 3.12: Cấu trúc dữ liệu điểm danh -. ecs.eerrererrerierrereeree 36
Hình 3.13: Sơ đồ hoạt động Web dé hiền thị thông tin điểm danh 37
Hình 3.14: Trang chủ W€DSI(G «s2 HH nHYnHHY HH Hà Hà Hà Hàng 38
Hình 3.15: Trang Quản Ly w.eeesseessescsscssessesssesssecssecstecsessneesesseeesnecasecseecseeseeseesteesseeseesseesneesseesses 38 Hình 3.16: Trang Danh sácCh - s-+c++x+e+vsrktsrrkttrrttrrtkkrtkkrrrirrrirrriirrrrrieeriree 39 i06 Wor iu na 39 Hình 3.18: Trang Danh sácCh -e-c+ccc+scxeEktEEkrrkkrkrtkrrtkkrkkkrkrirrirrirrrrriee 40
Hình 3.19: Trang Quản Ly eeseesssesssscssessessesssesssesssesssesssesseessessesseeeasessseeaeesseessessseesseesseeseenseesseessss 40 Hình 3.20: Đăng nhập với OOgÏ€ -c -55c+ thiet 41
Hình 3.21: Giao diện được đơn giản hÓa - -555c55<<+xsrxeerxerrerrerrrertsrrkrrrkeee 41 Hình 3.22: Chức năng thêm sinh VIÊn -ss‡cExeterkxtrrkeetrrkertrrkrrrrkrrrrrieee 42
Hình 3.23: Chức năng cập nhật và xóa thông tin sinh viÊn -. s+ -s: ss¿ 43
Hình 3.24: Các bước lấy API Key cc-:rcecccvertrreererttrirerrrtrrrtrrrrrrrrrrrrere 44
Hình 3.25: Tạo tên key sau đó chon Create & VICW ccccreeereeerrekrrerreree 44
Hình 3.26: Lưu lại Key dé sử dụng vì key chỉ hiển thị một lần 45
Hình 3.27: Cài dat Single Sender Ver1fiCafIOI -cs cceeccceererxeerrrkerrrrkerrrrrree 45
Hình 3.28: Cai đặt email sử dung Python và thư viện sendgrid 46 Hình 3.29: Đã nhận được mailÏ s-scc<5c++csvctv+teEkEEtertertettersertstrrrrsersrrrsrrrrrsrree 47
Hình 4.1: Hình anh trước và sau khi căn chỉnh .-‹s eerxerererrrsrrrrrrrrkee 50
Hình 4.2: Ma trận nhầm lẫn -++t++:cccccvvv22292222122222222221212.2 1111xvxvrrrrrrrrre 50Hình 4.3: Các tham số độ chính xác -+-cec++tEtttt+evvvvEEEEEtttrreeevvvrrrrrrrirrcee 51Hình 4.4: Hình ảnh dé thử nghiệm -2+icecStrreeeetrrerertrrererrrrrerrrrrrrrrre 51Hình 4.5: Ma trận nhằm lẫn 100 hình của mỗi người -cc-e+reccccv+ 52Hình 4.6: kết quả tiêu chí đánh giá hệ thống . -+:cceccetirreecevrtrrreeeerr 52
Trang 7Hình 4.7: Kết quả nhận diện c52i++cc22treevEEEtrvvvErtrrvttrrrrvtrrrrrrtrrrrrerre 53
Hình 4.8: Tốc độ xử lý -ccxkxtrrrrrrrEEEiiiiiririiiiiiiiiiriirriiiiirrriee 53
Hình 4.9: Ghi thông tin va ỞỌC .cc-cctcrtierHHHHHH re, 54
Hình 4.10: Thông tin sinh viên đã tồn tại hoặc không tỒn tại ccccccceeeeeeerrrrrree 54Hình 4.11: Gửi thông tin thẻ lên firebase để điểm danh -ss+: 55Hình 4.12: Giao diện hiển thị thông tin điểm danh . .-:+cccccerrrrecceve 55Hình 4.13: Danh sách điểm danh file excel ccccccccccccccrcrrrrrrrrrrrrrrrrrrrrrrrrrrrre 56
Trang 8DANH MỤC BANG
Bảng 2.1: Cấu hình của Kit Raspberry Pi 3 mode B+ -ss.cssrrcce 5
Bảng 2.2: Cấu hình của Kit Raspberry Pi 5 -cccesircceerrrererrrrerrrrrre 8Bang 2.3: Cấu hình Module RFID-RC522 -++cccccettrreeevvttrrrrrevrrrrrrrrrrr 11
Trang 9DANH MỤC TU VIET TAT
RFID - Radio-Frequency Identification
CNN - Convolutional Neural Network
SVM - Support Vector Machine
P-Net - Proposal Network
R-Net - Refinement Network
O-Net - Output Network
Trang 10TOM TAT KHÓA LUẬN
Trong bối cảnh các cơ sở giáo dục và doanh nghiệp đang tìm kiếm các giải phápquản lý chấm công và điểm danh hiệu quả hơn, hệ thống điểm danh băng thẻ RFID
và nhận diện khuôn mặt đã trở thành những công nghệ nôi bật Mặc dù mang lại sự tiện lợi và nhanh chóng, cả hai phương pháp này đều có những hạn chế riêng ThẻRFID có thé bị gian lận khi người dùng chuyên giao thẻ cho người khác dé điểmdanh hộ Trong khi đó, nhận diện khuôn mặt có thể gặp phải các vấn đề như nhiễuánh sáng, góc chụp không lý tưởng, hoặc sai lệch danh tính Do đó, việc kết hợp cảhai phương pháp này có thé giúp khắc phục những hạn chế và nâng cao hiệu quảđiểm danh
Khóa luận này đề xuất một hệ thống tích hợp thẻ RFID và nhận điện khuôn mặt đểđảm bảo tính chính xác và tiện lợi trong quy trình điểm danh Cu thé, hệ thống sé sửdụng thẻ RFID dé xác định danh tính ban đầu của người dùng, sau đó xác thực danhtính bằng nhận diện khuôn mặt Đề nâng cao tính bảo mật và minh bạch, hệ thống
còn tích hợp chức năng gửi email thông báo cho sinh viên, người quản lý hoặc phụ
huynh sau mỗi lần điểm danh
Trang 11Chương 1 TONG QUAN
1.1 Giới thiệu về đề tài khóa luận tốt nghiệp:
- Hệ thống điểm danh bang thẻ hoặc nhận diện khuôn mặt đang trở nên ngày
càng phổ biến trong các cơ sở giáo dục và doanh nghiệp dé quản lý chamcông cho nhân viên hoặc điểm danh học sinh Sự tiện lợi và tốc độ của haiphương pháp này giúp giảm thiểu thời gian và công sức cần thiết để thựchiện quy trình điểm danh, tuy nhiên, mỗi phương pháp đều mang theo nhữnghạn chế riêng Một trong những van đề phổ biến khi sử dung thẻ điểm danh
là khả năng của học sinh hoặc nhân viên dé gian lận bằng cách chuyển giaothẻ cho người khác để điểm danh hộ Điều này gây ra sự không chính xáctrong việc ghi nhận dữ liệu chấm công hoặc điểm danh Trong khi đó, việc
sử dụng nhận diện khuôn mặt có thé giam thiéu viéc nay, nhung no vẫn cóthể gặp phải các vấn đề như nhiễu ánh sáng, góc chụp không lý tưởng hoặc
thậm chí là việc nhận diện sai danh tính.
- Với mục tiêu cải thiện hiệu suất và dam bảo tính chính xác của quá trình
điểm danh, hệ thống của chúng tôi sẽ tích hợp cả hai phương pháp, tức là sửdụng cả thẻ và nhận diện khuôn mặt Bằng cách này, chúng tôi có thể tậndụng những lợi ích của cả hai phương pháp và đồng thời giảm thiểu nhượcđiểm Việc sử dụng thẻ sẽ giúp xác định rõ danh tính của người điểm danh,trong khi nhận diện khuôn mặt sẽ là một lớp bổ sung giúp xác thực danh tính
một cách chính xác và nhanh chóng.
- Bén cạnh đó, để đảm bảo tính chính xác và bảo mật của dữ liệu, hệ thống
cũng sẽ được tích hợp với chức năng gửi mail thông báo Khi một người
được điểm danh, hệ thống sẽ tự động gửi một email thông báo cho ngườiquản lý hoặc phụ huynh, báo cáo về việc điểm danh đó Điều này giúp tăngcường sự minh bạch và giám sát trong quá trình quản lý điểm danh, đồngthời cung cấp một cơ chế xác thực và thông báo cho các bên liên quan về
tình trạng diém danh của sinh viên.
Trang 121.3.
Mục tiêu của đề tài:
Khóa luận tốt nghiệp xây dựng một hệ thống điểm danh bằng thẻ sau đó xácthực khuôn mặt đồng thời gửi mail thông báo về tình trạng điểm danh củasinh viên vào cuối buổi học
Cụ thể đề tài sẽ thực hiện:
© Nghiên cứu và tìm hiểu về thuật toán nhận dạng khuôn mặt CNN,
Facenet, SVM Với giải pháp trên ta có thể nhận diện ở nhiều góckhác nhau mà không cần nhìn thăng, nhận diện chính xác và trích xuất
được nhiều đặc trưng khuôn mặt
o Áp dụng deep learning vào bài toán nhận diện khuôn mặt kết hợp
cùng với thẻ rfid nhằm cải thiện các nhược điểm của hai loại điểm
Về sơ đồ hệ thống bao gồm: Kit raspberry Pi 5, Camera module V3, dataset
khuôn mặt sinh viên, Module RFID va thẻ, Model training và nhận diện
khuôn mặt, giao diện web, API firebase dé lưu thông tin điểm danh, APIsendgrid để gửi mail
Trang 13Khối xử ly dataset & training >
- Giới hạn của dé tài:
o Dataset tối thiểu 20 sinh viên mỗi sinh viên 350 ảnh thu thập từ việc
quay video xoay trái, phải, trên, xuống dé lấy được các đặc trưng
khuôn mặt từ các góc độ khác nhau.
o Tốc độ xử lý khoảng 10 FPS, nhận diện ban ngày độ chính xác trên
90%.
o_ Nhận diện tuần tự từng sinh viên một
o_ Nhận diện không bao gồm người đeo khẩu trang, mắt kính, che khuất
mặt, băng bó,
o_ Trong một phòng học cụ thé Phòng học này sẽ bao gồm tat cả lớp đã
được đăng ký học ở phòng này từ thứ 2 đến thứ 7 Các lớp học ở
phòng này sẽ có danh sách học sinh đã đăng ký trước đó.
Trang 14Chuong 2 CƠ SỞ LÝ THUYET
2.1 Kit Raspberry Pi 3 mode B+, module Camera Rev 1.3:
2.1.1 Kit Raspberry Pi3 Mode B+:
Raspberry Pi 3 model B+ là một board máy tính nhỏ gon với nhiều tinh năngnhư Wi-Fi, Bluetooth, céng Ethernet, công USB và các công GPIO dé kết nói với
các ngoại vi khác.
Hình 2.1: Hình anh tong thé kit Raspberry Pi 3 Mode B+
Cấu hình của board:
Bang 2.1: Cấu hình của Kit Raspberry Pi 3 mode B+
CPU Broadcom BCM2837B0, SoC ARMv8s
64-bit, quad-core A53, tốc độ 1.4GHz
Bộ nhớ Dung lượng 1GB, theo chuẩn LPDDR2,
dạng SDRAM
Wireless & connector Wi-Fi chuan IEEE 802.11 b/g/n/ac
2.4GHz va 5GHz, Bluetooth 4.2, BLE,
Trang 15Ethernet Gigabit qua công USB 2.0 (tốc
độ tôi đa 300Mbps) 4 công USB 2.0 40
chân GPIO
MIPI DSI cho màn hình, công MIPI CSIcho camera, công xuất âm thanh stereo
va video composite 4 chân.
(1080p30), mã hóa H.264 (1080p30); đồ
họa OpenGL ES 1.1 và 2.0
DC qua chân GPIO, Power over Ethernet
(PoE) (cần thêm PoE HAT)
2.1.2 Camera ReV 1.3:
Ej:ICDÊw'EỒi
tees —— Thế giới điện tử——
Trang 16Hỗ trợ 1080p @ 30EPS, 720p @ 60EPS và 640x480 @ 60-90 FPS.
Góc nhìn 65 độ.
Độ phân giải: 2592x1944
Phạm vi lay nét 0.69m đến 1.38m
Thư viện: Picamera
2.2 Kit Raspberry Pi 5, module Camera V3, module RFID,LCD16x2
va module I2C:
2.2.1 Kit Raspberry Pi5:
Raspberry Pi 5 nhanh gấp 2 lần Pi4 và gấp 3 lần Pi3 với nhiều thay đổi vềhiệu suất và tính năng Tuy nhiên một số hạn chế về các tiện ích cũ sẽ không còn hỗ
trợ phần mềm ngay lập tức Đây là một board máy tính nhỏ gọn với nhiều tính năngnhư Wi-Fi, Bluetooth, công Ethernet, công USB và các cổng GPIO để kết nối với
các ngoại vi khác.
Hình 2.3: Hình ảnh tong thé kit raspberry pi 5
Trang 17Cấu hình của Raspberry Pi 5:
Bảng 2.2: Cấu hình của Kit Raspberry Pi 5
ARM Cortex-A76 64-bit (ARMv8-A ISA)
Bồn lõiQuy trình sản xuất SoC 16nmTốc độ xung nhịp tối da 2.4GHz
Bộ nhớ đệm I & D 64KB
Bộ nhớ đệm L2 512KB cho mỗi
lõi và bộ nhớ đệm L3 2MB dùng chung
Bluetooth 5.0 va BLE (Bluetooth Low Energy)
phân giải 4Kp60 với HDR Giải mã HEVC 4Kp60
2 công kết nôi camera
Trang 18hỗ trợ OpenGL ES 3.1 và Vulkan
1.2
Lưu trữ « Khe cắm thé MicroSD
« C6 thé sử dung SSD NVMe.
Power adapter « Nguồn 5V/5A type C
Ethernet True Gigabit, hỗ trợ
PoE+
2.2.2 Camera Module V3:
Camera Module
OFA
|
| _Z8£1y8NL
3
Hinh 2.4: Camera Module V3
Độ phân giải 12MP (megapixel).
Hỗ trợ Phase Detect Autofocus (PDAF)
Hỗ trợ dải động cao (HDR) với công nghệ On-Chip Video HDR
Phiên bản sử dụng ban ngày(có ánh sáng).
Góc nhìn 75° & 120°.
Kích thước ảnh: 4608x2592.
Thư viện: Picamera2 (python).
Tốc độ tối đa 120FPS
Trang 192.2.3.LCD 16x2 và Module I2C:
Hình 2.5: Màn hình LCD16x2 & Module I2C
Sử dụng LCD16x2 qua giao tiếp I2C nhằm giảm số lượng dây kết nối
Kết nối:
‹ Kếtnối GND
„ Két nối nguồn 5V
¢ _ Kết nối chân SDA: chân truyền dữ liệu
« _ Kết nối chân SCL: chân điều khiển2.2.4 Đặc điểm nỗi trội hơn khi nâng cấp:
Pi 5 có RP1-Chip giúp tăng tốc độ I/O, CPU mạnh 2.4Ghz so với Pi3 1.4Ghz
Pi 5 có ram 4GB nhiều hơn so với Pi 3 có ram 1GB
Hỗ trợ đồ họa mạnh mẽ hơn để có thể lấy hình ảnh có chất lượng tốt hơn
Camera Module V3 đạt tối đa 120FPS cao hơn đối với 90FPS của Camera
rev 1.3.
Góc cũng được mở rộng hon, kích thước anh cũng sẽ to hon.
2.2.5 Module RFID:
Module RFID RC522 NFC hoạt động ở tần số 13.56MHz, được thiết ké dé
đọc và phi dữ liệu trên các thẻ NFC Với kích thước nhỏ gọn và tính linh hoạt cao,
module này là sự lựa chọn phù hợp cho các ứng dụng đọc thẻ.
10
Trang 20RFID-RC522 pinout coo MERCS22" cn dotos
))
98 Cit
@ RFID-RC522 ©
Hình 2.6: So đồ chân Module RFID-RC522
Cấu hình của module:
Bảng 2.3: Cấu hình Module RFID-RC522
Nguồn Nguồn 3.3VDC, dòng: 13 — 26mA
Trang 212.3 Công nghệ OpenCV và thuật toán xử lý ảnh, máy học, deep
learning, Facenet, Tensorflow:
2.3.1 Công nghệ OpenCV:
OpenCV (Open-source Computer Vision) là một thư viện mã nguôn mở cho xử lý ảnh và video, và nó cung câp các công cụ đê phát triên và nhận diện khuôn mặt.
OpenCV có thé dùng nhiều ngôn ngữ lập trình, bao gồm C++, Python, Java [1]
2.3.2 Thuật toán xử lý ảnh, máy học:
Deep learning & MTCNN (Multi-task Cascaded Convolutional Networks):
- Deep learning:
e La một phân nhánh của Machine Learning, trong đó các máy tinh
học và tự cải thiện thông qua các thuật toán Nó đi sâu vào các
định nghĩa phức tạp hơn rất nhiều còn Machine Learning truyền
thong chu yếu dựa vào các mạng nơ-ron nhân tạo để mô phỏng
khả năng tư duy và suy nghĩ của não bộ con người.
Machine Learning
Feature extraction Classification
Feature extraction + Classification
Hinh 2.7: Deep learning [2]
12
Trang 22e Deep learning là một mang nơ-ron da tang, với mỗi tang đại diện
cho một câp độ khác nhau; mạng sâu hơn khi có nhiêu tâng hơn.
Mỗi tâng gôm các nơ-ron kết nôi với nhau qua các trọng sô, và sự
quan trọng của mỗi kết nỗi được xác định bởi giá trị của trọng sô
tương ứng.
Mỗi nơ-ron trong mạng có một hàm kích hoạt đề chuẩn hóa đầu ra
của nó Dữ liệu đi qua mọi tâng của mạng và cho ra kêt quả ở tâng cuôi gọi là tâng đâu ra.
Trong khi huân luyện mạng nơ-ron, các trọng sô được thay đôi đê tôi ưu hóa hiệu suât của mô hình Mục tiêu là tìm ra bộ trọng sô tôi
ưu nhất dé dự đoán tốt nhất
Sử dung Deep Learning phải có phần cứng mạnh mẽ dé xử lýlượng lớn dữ liệu và thực hiện các tính toán phức tạp Việc huấn
luyện nhiều model Deep Learning có thể mắt từ vài tuần đến nhiều
tháng khi triển khai trên các phần cứng mạnh mẽ
MTCNN (Convolutional Neural Networks):
FEATURE LEARNING CLASSIFICATION
Hình 2.8: Convolutional Neural Networks [3]
15
Trang 23¢ _ Kiến trúc ConvNet: nap input là một hình ảnh đi qua K lần tang
Convolution và ReLu, mỗi K lần ta lặp N lần pooling Cuối cùngđưa qua tang fully connected dé cho ra output (được lọc là các
output nằm trong top scores)
« Tang Convolution: chuyển đổi tất cả cách pixels về giá trị duy
nhất thông qua filter dé có các output khác nhau
Input Volume (+pad 1) (7x7x3) Filter W0 (3x3x3) Filter W1 (3x3x3) Output Volume (3x3x2)
Trang 24Convolve with 3x3
filters filled with ones
Hình 2.11: Cách tính khi qua bộ loc filter [3]
« Ham ReLU: chuyển đữ liệu sang dữ liệu mang giá tri không âm,
một số hàm khác tương tự như sigmoid, tanh,
« Tang Pooling: có 2 loại thông dụng là max pooling va average
pooling có tác dụng làm giảm parameter Với hình ảnh lớn ta có
thé sử dung filter lớn hơn 4x4 hoặc 8x8 kích thước được chonthường là số chan
15
Trang 25e Vidu:
Single depth slice
max pool with 2x2 filters
and stride 2 6/8 |
Hinh 2.13: Max Pooling [3]
e Su dụng một max pooling với kích thước 2x2 va độ trượt là 2:
chúng ta lần lượt ốp filter 2x2 vào hình anh 4x4 theo chiều từ tráisang phải từ trên xuống dưới
« O lượt đầu tiên số lớn nhất là 6, ở lượt thứ 2 số lớn nhất là 8 làm
tương tự ta có được 3 và 4 như hình bên phải Và hình ảnh đã
được thu gọn hơn, ít tham số hơn
« Tầng fully connected
« Trước khi vào tang fully connected ta thực hiện flattening
Flattening là quá trình duỗi tensor 3D thành tensor 1D dé làm daovào cho tầng fully connected
16
Trang 26Hinh 2.14: Tang fully connected [3]
« Gồm 3 mang CNN (P — Net, R — Net, O —Net)
P-Net R-Net
— Conv: 3x3 TY Couns om wine 1 [7 “Conv: 3x3 Conv: 3x3¢ony: 2x2 fully no |
MP: ĩ Oita | | MP: 3x3 MP: 3x3 connecr(1| Ăee classification |
xIx2
[im su 33416 Ixhð2 tệ Phciallandmak | Inputsize Tl2g 4x2x483x3x64128 lều Mudnt, |
a — <a ee J
Conv: 3x3 Conv: 3x3 Conv: a - 2x2 fully
MP: 3 MP: 3 MP: connect []race classification
2
_Ì-R- a8 8+: we box regression
g 23x23x32 10x10x64 4x4x64 — 3x3x128 256 [cia indmakloalzaion
Hình 2.15: kiến trúc MTCNN [5]
e Dau tiên, anh duoc thay đổi kích thước dé tao ra một image
pyramid, giúp mô hình có khả năng nhận diện đối tượng ở các
kích thước khác nhau.
17
Trang 27Bước 1: The proposal network (P-Net)
« Phương pháp đầu tiên sử dụng là Fully Convolutional Network
(FCN), khác với mang CNN bởi việc loại bỏ lớp Dense (fully
connected) P-Net được dùng dé sinh ra các cửa số tiềm năng
và vector hồi quy bounding box (tọa độ)
« Bounding box regression là kỹ thuật dé dự đoán vi trí của
bounding box trong quá trình phát hiện đối tượng Sau khi thuđược các bounding boxes, thực hiện điều chỉnh để loại bỏ
những bounding box trùng lặp Kết quả đầu ra là các bounding
boxes sau khi được lọc và sàng chọn.
18
Trang 28Feed (Input layer) Convolution Layer 1
« O đây, chúng ta sử dụng biến thé của hàm kích hoạt ReLU là
PReLU Cách hoạt động của PReLU là giữ nguyên các sốkhông âm và nhân các số âm với một hệ số Alpha được học
trong quá trình huấn luyện
« Convolution 4-1 được sử dụng để dự đoán khả năng xuất hiện
khuôn mặt trong bounding box Nhánh 4-2 được dùng đề đoán
vị trí của bounding box.
e - Bước 2: The Refine Network (R - Net)
» _ Các đầu ra từ P-Net là đầu vào cho R-Net Tại đây, chúng ta áp
dung mạng CNN dé giảm số lượng bounding boxes, điều chỉnh
19
Trang 29tọa độ và thực hiện non-max suppression (giảm số lượng kếtquả dư thừa, giữ lại kết quả quan trọng nhất, giúp tăng độ
« Fully connected 2 là tọa độ của bounding boxes, con fully
connected 1 là dùng dé dự đoán khuôn mặt xuất hiện
e - Bước 3: The Output Network (O- Net)
» Pau ra từ R-Net được đưa vào O-Net Dé xác định vị trí
của các facial landmarks( mắt, mũi và miệng) bởi O-Net
20
Trang 30Input{12x12«3] \ | Input(24x24x3 h input(48x48x3) )
| Face Bounding box Landmarks Head pose |
classification regression location estimation j
| O-net
Hình 2.19: Tong thé của P-R-O net [6]
= Output là toa độ bounding boxes, xác suất khuôn mặt xuất
hiện, tọa độ facial landmarks và head pose (xác định góc
của khuôn mặt).
2.3.3 Facenet:
e Facenet có chức năng nhận dạng va phân cụm khuôn mặt được đề
xuất bởi nhóm nghiên cứu tại Google Hệ thống này hoạt độngbang cách nhúng mỗi ảnh vào không gian Euclide thông qua việc
sử dụng mạng nơ-ron tích chập (CNN) [7]
e Các thuật toán nhận diện khuôn mặt trước Facenet đều biểu diễn
khuôn mặt là một vector embedding, tức là chuyển đôi từ dữ liệu
thô sang dữ liệu số thực, thông qua một lớp bottleneck nhằm giảm
chiều dữ liệu
e Các ảnh được kí hiệu là Anchor (A), Positive (P), va Negative (N).
Mục tiêu ham loss function trong Facenet là tối thiểu hóa khoảngcách giữa ảnh Anchor và Positive trong khi tối đa hóa khoảng cách
21
Trang 31giữa ảnh Anchor và Negative Cụ thé, dé tối ưu hóa quá trình học,chúng ta cần chọn các bộ ba ảnh theo các tiêu chí sau:
- Anh Anchor và Positive khác nhau nhiều nhất: Điều nay có
nghĩa là chọn các ảnh sao cho khoảng cách D(A, P) lớn Tương
tự như việc chọn ảnh của bạn hồi nhỏ và ảnh hiện tại, để thuậttoán gặp khó khăn hơn trong việc học, nhưng nếu nó có thể
nhận ra được, nó sẽ thông minh hơn.
- Anh Anchor va Negative giống nhau nhiều nhất: Điều này có
nghĩa là chọn các ảnh sao cho khoảng cách D(A, N) nhỏ.
Tương tự như việc phân biệt ảnh của một người anh em giống
bạn với chính bạn.
e_ Triplot loss function thường lấy 3 ảnh làm input và trường hợp lý
tưởng nhất:
d(A, P) < d(A, N)
e Về phải và trái có khoảng cách lớn hơn thi ta thêm vào về trái một
hệ số alpha không âm (hệ số này rất nhỏ) Khi đó:
Trang 32Dé giảm anh hưởng của các trường hop mà hệ thống nhận diện
đúng Negative và Positive lên hàm loss function, chúng ta có thay
đổi giá trị đóng góp của chúng.:
Il f(A) — ƒŒ') Ilesil f(A) — ƒ(N) llạ+ a < 0
Thay đổi giá trị đóng góp về 0 Khi đó:
L(A,P,N) = 2 max(I f(Ai) — f(Pi) lẽ —lI f(Ai) — fNj) llễ+ @, 0)
i=0
Với cach nay, khi áp dung ham Triple Loss vào các model CNN,
chúng ta có các vector biểu diễn tốt nhất cho các bức ảnh Nhữngvector này sẽ phân biệt hiệu quả giữa các ảnh Negative giống vớiPositive Đồng thời, những ảnh cùng một nhãn sẽ trở nên gần hơn
trong không gian Euclidean.
Một điều quan trọng cần lưu ý khi đào tạo mô hình mạng nơ-ron
Siamese với ham Triple Loss là chúng ta phải xác định trước cặp
(A, P) của cùng một người Ảnh N sẽ được chọn ngẫu nhiên từ các
bức ảnh thuộc các nhãn khác Do vậy, cần thu thập ít nhất hai bức
ảnh cho mỗi người dé chuẩn bị dit liệu đào tạo đầy đủ
23
Trang 332.3.4 Tensorflow:
e TensorFlow là một thư viện mã nguồn mở cho máy học, được phát
triển bởi Google TensorFlow được sử dung dé xây dựng và huấn
luyện các mô hình học máy, bao gồm cả mô hình nhận diện khuôn
mặt [8]
e TensorFlow được xây dựng dựa trên kiến trúc đữ liệu đồ thị, trong
đó các nút đại diện cho các phép tính toán học, và các cạnh đại
diện cho các luồng dữ liệu Điều này giúp cho TensorFlow có thébiểu diễn các mô hình học máy một cách linh hoạt và hiệu quả
e TensorFlow hỗ trợ nhiều loại mô hình học máy, bao gồm:
o Mạng noron tích chập (CNN): CNN được sử dụng cho các
tác vụ xử ly hình ảnh va video, chăng hạn như nhận diệnkhuôn mặt, phân loại hình ảnh, và nhận dạng đối tượng
o Mạng noron hồi quy (RNN): RNN được sử dụng cho các
tác vụ xử lý ngôn ngữ tự nhiên, dịch máy, nhận dạng giọng nói, và tạo văn bản.
o Mạng nơron tự hồi quy (GAN): GAN được sử dụng dé tạo
ra các dữ liệu mới, hình ảnh, âm thanh, và văn bản.
e TensorFlow có nhiều ứng dụng thực tế, bao gồm:
o Xác thực người dùng: TensorFlow được sử dụng để xác
thực danh tính bằng khuôn mặt, giọng nói, hoặc chữ viết
tay.
o Nhận dạng đối tượng: TensorFlow được sử dụng để nhận
dạng các đối tượng trong hình ảnh hoặc video, chăng hạnnhư trong các hệ thống camera an ninh
o Phân tích ngôn ngữ tự nhiên: TensorFlow được sử dụng dé
phân tích ngôn ngữ tự nhiên, chăng hạn như trong các hệthống trợ lý ảo
24
Trang 34o Tạo nội dung: TensorFlow được sử dụng để tạo ra các nội
dung mới, chăng hạn như hình ảnh, âm thanh, và văn bản
e Ưu điểm của TensorFlow
o_ Mã nguồn: TensorFlow là mã nguồn mở, điều này giúp cho
các nhà phát triển có thé sử dung và tùy chỉnh TensorFlowmột cách dễ dàng.
o Hiệu quả: TensorFlow hoạt động mạnh mẽ hơn khi sử dụng
GPU, điều này giúp cho TensorFlow có thể đào tạo một
cách nhanh chóng và hiệu quả với các model sử dụng dữ
liệu lớn.
o Linh hoạt: TensorFlow hỗ trợ nhiều loại mô hình học máy,
điều này giúp cho TensorFlow có thể được áp dụng cho
nhiều ứng dụng khác nhau
e Nhược điểm của TensorFlow
o Cần nhiều tài nguyên: TensorFlow có thể yêu cầu nhiều tài
nguyên máy tinh dé đào tạo các mô hình học máy lớn
o Khó: TensorFlow cần có nhiều kiến thức về toán học, học
máy.
2.4 Tìm hiêu về firebase:
- Firebase cung cấp công cụ dich vụ dé phát triển web và di động được phát
triển bởi Google [9]
- Firebase được xây dựng trên nền tang Google Cloud Platform (GCP) và cung
cấp cho các nhà phát triển các công cụ dé tạo ra ứng dụng một cách nhanhchóng, đáp ứng được các yêu cầu đặc thù của từng ứng dụng Nền tảng này
cũng cho phép các nhà phát triển thiết kế ứng dụng có khả năng mở rộng và
tương tác thời gian thực Nhờ vào việc các dịch vụ của Firebase được cung
cấp trên nền tảng đám mây, việc mở rộng, tăng cường bảo mật và nâng cao
hiệu suất của ứng dụng trở nên dễ dàng hơn.
25