Trong đó thì phương pháp nhận diện khuôn mặt ngày càng chứng tỏ sự hiệu quả cũng như sự tiện lợi và được áp dụng với nhiều mục đích khác nhau, ví dụ: hệ thông gán nhãn tự động của Facebo
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINHTRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
PHẠM KIM THÀNH
VŨ NHÂN NGHĨA
KHÓA LUẬN TÓT NGHIỆP
NHAN DIỆN KHUÔN MAT REAL-TIME VỚI MÔ HÌNH
FACENET VÀ ỨNG DỤNG IOT PLATFORM
REAL-TIME FACE RECOGINTION WITH FACENET
ARCHITECTURE AND IOT PLATFORM
KỸ SƯ NGANH KỸ THUAT MAY TÍNH
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KỸ THUAT MAY TÍNH
PHAM KIM THÀNH - 16521129
VŨ NHÂN NGHĨA - 16520820
KHÓA LUẬN TÓT NGHIỆP
NHAN DIỆN KHUÔN MAT REAL-TIME VỚI MO HINH FACENET VA UNG DUNG IOT PLATFORM
REAL-TIME FACE RECOGINTION WITH FACENET
ARCHITECTURE AND IOT PLATFORM
KY SƯ NGANH KỸ THUAT MAY TÍNH
GIANG VIEN HUONG DAN PGS.TS VU DUC LUNG
Trang 3THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định sé 70/QD-DHCNTT ngày 27 tháng
01 năm 2021 của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
Trang 4LỜI CẢM ƠN
Lời đầu tiên, chúng em xin chân thành cảm ơn Ban giám hiệu, quý Thầy Cô của trườngĐại Học Công Nghệ Thông Tin, đặc biệt là các thầy cô trong Khoa Kỹ Thuật Máy Tính đã tậntình giảng dạy, hết lòng truyền đạt kiến thức, kinh nghiệm quý báo cho chúng em trong suốt
thời gian qua.
Với những kiến thức được thầy cô trong khoa Kỹ thuật Máy tính truyền dạy trong suốt
4 năm qua, nhóm em đã có thể tự tin làm một đề tài với nhiều mang kiến thức khác nhau và
có cả những kiến thức mới Bên cạnh đó, dé có thể hoàn thành tốt dé tai là sự chỉ dan tận tâmcủa thầy PGS.TS Vũ Đức Lung và thầy ThS Phan Đình Duy Chúng em xin chân thành bày
tỏ sự biết ơn sâu sắc đến thầy Thạc sĩ Phan Đình Duy và Phó Giáo Sư Tiến Sĩ Vũ Đức Lung
~ Khoa Kỹ Thuật Máy Tính đã tận tình và giúp đỡ chúng em trong quá trình thực hiện đề tài
Chúc quý thầy cô khoa Kỹ thuật Máy tính — trường Dai học Công nghệ Thông tin luôn
đi đầu trong công tác giáo dục đại học ở trường và là người định hướng tận tâm cho nhiều thế
hệ sinh viên Cảm ơn thầy cô đã luôn đồng hành và dẫn dắt sinh viên chúng em từ những ngàymới bước chân vào giảng đường đại học cho đến nay Đó là cả một hành trình dài và nhiều bài
học quý giá mà chúng em học được.
Cuối lời, một lần nữa xin gửi quý thầy cô lời biết ơn chân thành nơi chúng em! Chúcthầy Duy (Th§ Phan Đình Duy) và thầy Lung (PGS.TS Vũ Đức Lung) gặt hái nhiều thànhcông hơn nữa trong công tác giảng dạy tại khoa và gia đình nhiều sức khỏe!
TP HCM, ngày tháng năm 2021
Sinh viên thực hiện:
Phạm Kim Thành
Vũ Nhân Nghĩa Khoa Kỹ Thuật Máy Tính Lớp MTCL.2 2016
Trang 5MỤC LỤC
Chương 1 TONG QUAN DE TÀI
1.1 Các công nghệ hiện nay
1.2 _ Các nghiên cứu tương tỰ: - cty 8
1.3 Giải pháp đề xudt cccceccccssccscssssesssssseessssseessssssecessssseseessseessssseeesessseeseessees 01.4 Mục tiêu và giới hạn đề tai cccccsseecsssssseeccssssecesssssscessssescsssssecessseessessees 1LAL Mục tiêu của đề tài ii 11.4.2 Giới hạn của dé tải ii 21.5 _ Ý nghĩa thực tiễn của đề tài 222cccccctcrccrrvrrrrrrrrrrrrrrrrcee 21.6 _ Cấu trúc của báo cáo Khóa ii n 2Chương 2 CƠ SỞ LÝ THUYÊT 2 222¿+22EE+++tEEEESEtEEEEEE2tEEEEEErrrrrkrcer 3
2.1 _ Thị giác máy tính — Computer Vision -+- + << +s£+++++ceesr+ 3
2.2.3 Regression(Bài toán hồi quy) cvccccc+ecvccvvvccrrrrrrrr 9
2.2.4 Un-Supervised Learning - 5c + c+st+tstetererrkrkerrrrre 9 2.2.5 Classification (Bài toán phân loại) . -¿- 5 + <+sccccexecs+ 9
Trang 62.2.6 Clustering (Bài toán gom nhóm) + ¿+ + + +c++x+x+eexer+ 20
2.2.7 Dimensionality reduction(Bài toán giảm chiều của dữ liệu)
2.3 CNN - Convolutional Neural ÑetwOrk -c 5c cccceceteeeeree 20
2.4.1 Facenet [4] cc Sàn TH HH HH rệt 29
2.4.2 „(0011951901916 31
2.4.4 Support Vector Machine (SVM) c-ccccscsceeeece.c 5
2.5 ToT và Google IoT FlatForm ¿6-5-5552 S*+++k+e£ekererkekererre 36
2.5.1 Tổng quan về Internet of Thỉngs - : -c+£525sccz2ccsscee 362.5.2 Tổng quan về Google Flatform -2c+++222vvvvczz++rrrr 37
2.5.3 Firebase: cà LH HH HH HH HH HH 40
2.6 Cơ sở lý thuyết về Server cccccccssssssessssssesesssseesesssssessssssseessssesesssseesenssseeee 40
2.6.1 Giao thức MQÏTT cà creererrrrrrrerrrrrrrerrerrreer 40 2.6.2 Các khải niệm cơ bản trong MQTTT -. - - 5©555+c+c+c<++ 41 2.6.3 HyperText Transfer Protocol (HTTTP) - - s©++s+c+c+ce++ 43
2.6.4 Các thành phần chính của HTTP :¿522vve+czz+zrx 44
Trang 7Chương 3 PHAN TÍCH THIET KE HE THÔNG -: -:c5s+2 463.1 So dé hệ thống.
3.2.
3.3.
3.3.1 Ngôn ngữ lập trình được sử dụng: ¿+ «c«cexeeeeree 51
3.3.2 Cai đặt môi trường cho KIT
3.3.3 Thiết kế hệ thống LOT ccsccccssssesssssseessssssesesssseessssssecesssseeeesesseeeeessees 53Chương 4 THỰC NGHIỆM VÀ ĐÁNH GIA
4.1 Cài đặt hệ thống: 222cc 22222222 EtEEEEEEtEEErrrrrrrrrrrerrtee 54
4.2 Thời gian delay Kit thực hiện chương trình: - - + +5s++5s< 57
4.3 Thời gian xử lý tao file phân loại với số người tương ứng: 574.4 Thử nghiêm các IoT platform hỗ trợ hệ thống IOT - 59
4.5 Quá trình train Model - ¿c5 t3 St xevveresrvserrverrsrrrrerrrrerrer 6l
4.6 Thử nghiệm model vừa train qua các bộ dữ liệu phô biến: 62
47 Kết quả thử nghiệm 2 phương pháp xác định vị trí khuôn mặt: 64
4.8 _ Đưa dữ liệu lên PlatForm -¿- - 52+ S2 *St*£eErxetsrrterseerrxeerrsesscer 65
4.8.1 Gửi dữ liệu định danh lên Server: -.- ¿+55 <5ss+s+ec+s<esss+ 65
4.8.2 Lấy dữ liệu định danh về phần mềm Java - 674.8.3 Téc độ xử lý dữ liệu của FlatfOrm: ¿- + +<+xerezexerercr+ 67
4.9, Giao diện người dùng ti 67
Chương 5 KET LUẬN VA HƯỚNG PHAT TRIẺN - ¿22552 695.1 _ Kết quả thu được thông qua quá trình thực hiện đề tài khóa luận 695.2 Hướng phát triển của để tài :c222vvcccvcrvvrerrrrvrrrrrrrrreerrvei 69
Trang 8DANH MỤC HÌNH VẼ
Hình 1-1 Bảng thống kê thời gian ra mắt các loss function - z-+ 9Hình 1-2 Bảng thống kê độ chính xác của từng loss function . - 10
Hình 2-1 Mô tả ảnh dưới góc nhinfcuar máy tính +©s+c++c+cx++ 14
Hình 2-2 Mô hình input và output thông qua xử lý các hàm - 18
Hình 2-3 Ham số regressiOn -2¿©22+++22EE+++2EEEYY+tSEEEEEttEEEErrrrrrkrrrrrrrrree 19
Hình 2-4 Kernel trong CÌNN + tt ng HH TT HH it 21
Hình 2-5 Mô tả cách hoạt động của mỗi kernel với ảnh input - 21Hình 2-6 Tổng quan về mô hình CNN -¿¿-22v2+++z+22EEEvvvrrrrrrrrrrree 22
Hình 2-7 Mô tả các tác vụ extra-supervision và self-supervision hoạt động song
song với việc xử lý bounding box và phân loại ảnh Và cho ra bốn output tương
ứng: phân loại ảnh, box chứa khuôn mặt, năm điểm landmarks và mô hình 3D trên
cùng một bức ảnh [3] ¿- - cece SE 2 **E k2 E E1 11211111121 110101 1 te 25
Hình 2-8 Mô tả tổng quan về cách hoạt động của Retina-face: mô hình kim tự tháp(feature pyramid) được áp dụng vào với mỗi bức ảnh và được xử lý với các module
tương ứng khác nhau [3] ¿ - ¿52 +56+22£S2S*2*‡E2E£EE*E£E£EeEeEeEekexekekerrkekererree 25
Hình 2-9 Phương thức xử lý các pyramid image theo phương thức bottom-up và top
Gown pa(hWAyY cành HH HH HH TT HT HH TT HH HH hi 26
Hình 2-10 Mô hình tổng quan về 3 lớp xử lý p-net, r-net -o net của MTCNN [2] 26Hình 2-11 Sơ đồ CNN của P-netL -ccccccE1 re 27Hình 2-12 Sơ đồ CNN của R-net và O-Net 22222vcccrrecccrrrvrrrrrrrrrrrrree 28Hình 2-13 Sơ đồ CNN của O-net 22::c-222222 2222222211112 crrrrrrrrrree 28Hình 2-16 Y tưởng Siam Network được sử dụng khá phổ biến trong các dé tài nhận
i6n 4010/0017 a 29
Hình 2-17 Triplet loss [4] - + 1k ng it 31
Hình 2-22 Cấu trúc tổng quan của Arcface [7] ssscsssssssssssssssssssteessceesssssessseeeessnneeees 33
Hình 2-23 So sánh mức độ hiệu quả trong việc phân lớp dữ liệu giữa Softmax và
Arcface [7] „34 Hình 2-24 Mô hình phân loại SVM „35
Trang 9Hình 2-25 Sự gia tăng nhanh chóng của giao tiếp máy — MAY - 37
Hình 2-26 Logo Google Cloud PlatfOrim 5 <3 1v vn ng trên 37
Hình 2-27 Những dich vụ Google Cloud Platform cung cấp . -.: 39 Hình 2-28 Mô hình tổng quan về MQTT ¿+¿©++x++x+2E£+£x++rxezrxrrxeeree 41
Hình 2-29 Sơ đồ hoạt động của HT'TP -¿- 2 ¿+ +E+EE£EE+EE+EE+E£E£EerEerkerxererree 43
Hình 2-30 Gói tin Request chứa các thông tin cần thiết . 5-5 s52 ss2 45 Hình 3-1 Sơ đồ tổng quan quá trình tạo file phân loại SVM -. 46 Hình 3-2 Sơ đồ tổng quan xử lý các tín -¿- +¿©c++2x++x++zxtzrxerreerxeerxrre 41 Hình 3-3 Sơ đồ tổng quan về các bước nhận diện khuôn mặt -. 48
Hình 3-4 Sơ đồ chân của Module ESP32 -2¿ 2 5£+2x++Ex2EEtEE+erxezrxrrreeree 51
Hình 3-5 Thẻ hiện tốc độ xử ly nhận diện khuôn mặt đạt tốc độ tốt với 29 FPS va độ
chính xác lên đến 99Ố% ¿- 2:22: ©2+2+12E1122112111211271121121127112711211211 11.21 xe 54 Hình 3-6 Các gói tin được mã hóa được truyền tải thành công về Firebase từ PC 55 Hình 3-7 Với cấu hình GPU thấp hon, tốc độ xử lý bị ảnh hưởng giảm xuống 15-
18FPS tuy nhiên model và độ chính xác không bị ảnh hưởng nên van đạt 95-98% 55 Hình 3-8 Quá trình gửi thông tin về Firebase thành công tương tự PC 56
Hình 3-9 Kết quả nhận diện khuôn mặt từ Jetson nano đạt FPS khá thấp với 2FPS 56
Hình 3-10 Dinh danh khuôn mặt cùng độ tin cậy 5-5 5+5 ‡+++se++seessesss 57
Hình 4-1 Kết qủa truyền dir liệu về FireBase -2- ¿©c+z22++cs+ezxesrxere 59 Hình 4-2 Kết quả truyền dữ liệu về Database của AWS IOT Core 60 Hình 4-3 Tiến hành train model (1) - -cc+++c+++eetttrktrrrtrrktrrrrrrrkrrrrrrrkeg 61 Hình 4-6 Các File model xuất ra sau khi train bao gom model Mobilenet, 1 file bién đối Arcface và một file lưu loss quá trÌnh - 2-2 2 + x+£k£E£E++E++Ezxrxerxee 62 Hình 4-7 Kết quả kiểm thử (1) với model tại thời điểm epoch 6 ta thu được kết quả
độ chính xác tương ứng với 7 bộ dữ liệu khuôn mặt người . ‹ s«+-«+ 63
Hình 4-8 Kết quả kiểm thử (2) với model tại thời điểm epoch 10 ta thu được kết qua
độ chính xác tương ứng với 7 bộ dữ liệu khuôn mặt người ‹++-«++<+ 63
Hình 4-9 Kết quả gửi dữ liệu lên Firebase ((Ï) << *++v+sskEseeereeeeeeere 65 Hình 4-10 Kết quả gửi dữ liệu lên Firebase (2) - - 5 S1 sisssreeserrske 66
Trang 10Hình 4-11 Kết quả gửi dữ liệu lên Firebase (3) - 55+ cc+cscsesrereeeecee 66Hình 4-12 Kết quả lấy dữ liệu từ về Java 2222¿222E2zttSEEEEerrrrrkrrrrrrkrcee 67
Hình 4-13 Hình ảnh giao diện đăng nhập - ¿5-5252 522ccs+csccsrzrerxsrx 68
Hình 4-14 Giao diện truy xuất thông tỉn -¿¿©2+++2cvvzretvvvvrrerrvsrreeex 68
Trang 11DANH MỤC BANG
Bảng 1-1: Bảng thống kê về độ chính xác, số lượng tham số cần thiết và tốc độ xử
lý với các biến thé của MobileFaceNet và ShuffleNet trên 2 bộ dữ liệu LFW và
Trang 12DANH MỤC TỪ VIẾT TẮT
FPS Frame per second
loT Internet of Things
API Application programming Interface CNN Convolutional Neural Network
DCNN Deep convolutional neural network
GCP Google Cloud Protocol
Trang 13TÓM TAT KHÓA LUẬN
Hiện nay, các công nghệ nghiên cứu xử lý ảnh đã và đang được quan tâm và
phát triển rất mạnh Đi kèm theo đó là các ứng dụng áp dụng các thành tựu của xử
lý ảnh Một trong những dé tài nồi bật và thu hút nhiều sự chú ý đó là nhận diện — di
khuôn mặt.
Nội dung chính của đề tài sẽ tập trung vào các Deep Convolutional Neural
Network (DCNN) để giải quyết vấn đề Cụ thể nhóm sẽ tạo ra một hệ thống nhậndiện khuôn mặt với độ chính xác > 85% và tốc độ xử lý đạt 5 FPS Từ đó nhóm sẽtiến hành lưu trữ dit liệu hoạt động về loT platform( cụ thể là FireBase thuộc
Google Cloud) Để mở rộng tiện ích cho đề tài, nhóm có thực hiện xây dựng và lắpđặt thêm các cảm biến ngoại vi cho hệ thống để theo dõi đánh giá việc truyền tải dữliệu — cảm biển ngoại vi bao gồm:
- Cảm biến khí ga
- Cảm biến chuyền động
- Cam biến nhiệt độ
- Cảm biến độ âm
Trang 14MỞ DAU
Hiện nay, các hệ thống IOT dan trở nên quen thuộc và được sử dụng rộng rãi
Tuy vậy van đề về bảo mật luôn được quan tâm hàng đầu, các phương pháp dé nhận
dang định danh thông thường có thể kể đến: vân tay, ADN, vân mắt, khuôn mặt,
Trong đó thì phương pháp nhận diện khuôn mặt ngày càng chứng tỏ sự hiệu quả cũng
như sự tiện lợi và được áp dụng với nhiều mục đích khác nhau, ví dụ: hệ thông gán
nhãn tự động của Facebook, nhận diện khuôn mặt thực hiện các giao dịch ATM ở
Hệ thống nhận diện khuôn mặt được phát triển với nhiều model khác nhau đểphục vụ cho việc tối ưu về thời gian và độ chính xác Ưu điểm của việc xử lý ảnh cóthé ké đến là việc nhận diện theo thời gian thực, không cần tương tác vật lý, Nhượcđiểm, một số model cần lượng dir liệu lớn kèm theo thời gian train dai để ra được mộtmodel hoàn chỉnh, hoặc dữ liệu có thé bị thay đổi theo thời gian do sự co giản củakhuôn mặt Vì những tiện ích và nhược điểm kể trên, nhóm muốn thực hiện train lạimột model đề tối ưu những lợi ích của model cũng như giảm thiểu những bắt lợi khi
train và sử dụng model.
Sau khi tham khảo qua một số bài báo khoa học về Inception v4, Facenet,
MobileFacenet, Arcface, Cosface,
thì các mô hình tao các vector đặc trưng (feature vector) dé thực hiện phân nhóm
nhận diện với 128 chiều dữ liệu Vector này đã được giảm chiều dữ liệu từ vô số chiềuxuống 128 chiều dé phủ hợp với các tiêu chí về thời gian và dữ liệu để so sánh cácvector khác dé thực hiện việc training Vì vậy nhóm dự định sẽ thực hiện một môhình tạo ra 512 điểm ảnh với độ chính xác cao hơn trên nền MobileFaceNet vàPytorch, từ đó so sánh kết quả thực hiện được với mô hình 128 điểm ảnh đã đượcthiết kế trên
Theo [1], Việc định danh khuôn mặt sử dụng Kit IloT JSON TXI dùng model
MobileNet-V2 với 128 chiều dữ liệu có độ chính xác 71.8% với tốc độ định danh
trong 10s.
Trang 15Chương 1 TONG QUAN DE TÀI
1.1 Cac công nghệ hiện nay
Ngày nay công nghệ nhận dạng khuôn mặt được quan tâm và được coi là
một lĩnh vực quan trọng trong khoa học nhận dạng là do nhu cầu ứng dụng nhận dạng khuôn mặt trong nhiều lĩnh vực như: kinh tế, điều tra tội phạm, bảo mật, Nói một cách dễ hiểu, công nghệ nhận dạng khuôn mặt là công nghệ cho phép nhận dạng một người cụ thé từ ảnh hoặc một đoạn video Cách thức làm việc của công nghệ này
là so sánh hình ảnh khuôn mặt với những hình ảnh sẵn có trong cơ sở dit liệu dé đưa
ra kết quả.
Các thuật toán về xử lý nhận diện khuôn mặt đã và đang được phát triển khá rộng rãi với nhiều hướng giải quyết và thuật toán khác nhau Tuy nhiên có thê khái
quát quá trình xử lý này về 4 bước như sau:
- Xac định vi trí khuôn mặt có trong ảnh.
- Xuat ra các đặc trung của khuôn mặt.
- So sánh với các anh trong bộ dữ liệu.
- _ Xuất ra định đanh khuôn mặt.
Đối với con người, việc nhận diện khuôn mặt diễn ra thường xuyên trong
cuộc sống, con người dễ dàng nhận ra các khuôn mặt cũng như xác định đối tượng
mỗi khi gặp phải đối tượng khác Nhưng dé máy tinh có thé làm được việc tương tự như con người thì cần phải giải quyết rất nhiều bài toán cấp cao và thuật toán xử lý phù hợp dé tiến hành từng bước xử ly Vì vậy các khái niệm machine learning, deep
learning [11] va neural network được sinh ra dé đáp ứng nhu cầu xử lý ảnh của con
người Các neural network luôn được quan tâm và phát triển dé đạt kết quả tốt nhất
về tốc độ xử lý và độ chính xác Mỗi mạng neural network có cách thức xử lý và
cách hoạt động khác nhau Ngoài ra, các yếu tổ của môi trường luôn là van đề cần
được lưu tâm vì gây ảnh hưởng trực tiếp đến kết quả thu được từ các mạng Vì vậy,
xây dựng hệ thống nhận diện khuôn mặt dé hỗ trợ cho hệ thống IoT sẽ gặp nhiều
khó khăn và phức tạp.
Trang 161.2 Các nghiên cứu tương tự:
Nhắc đến nhận diện khuôn mặt tức là xử lý và biến đổi ảnh dé thu được khuôn mặt mong muốn trong từng khung hình Vì vậy các thuật toán luôn được
nghiên cứu và phát triên dé phục vụ và tối ưu quá trình xử lý ảnh Ké từ 1991, sự ra đời của các đặc trưng Haar để nhận diện khuôn mặt trở thành nền tảng dé xây dựng
các công nghệ nhận dạng khuôn mặt khác nhau Các lĩnh vực nghiên cứu có thể kể đến là Holistic, Local handcraft, Shallow Learning và Deap Learning
Cac phương thức tiếp cận kể trên đều có các ưu điểm và nhược điểm về khả năng giải quyết bài toán, tốc độ xử lý và độ chính xác Tuy nhiên các mạng Deep
Neural Network ngày càng trở nên phô biến hơn từ khi DeepFace và DeepID ra đời.
Lĩnh vực này mang lại độ chính xác cao hơn so với mong đợi Với các cải thiện từ
phần cứng và đặc biệt là GPU, phương pháp Deep learning [11] tiến dần về việc mô
hình hóa bộ não con người và từ đó mang lại các kết quả tốt hơn Ngoài ra, các mô hình mạng dần được thu gọn về mặt tham số xử lý, dữ liệu cần thiết để train và test
mà vân luôn đạt độ chính xác cao.
Bang 1-1: Bảng thống kê về độ chính xác, số lượng tham số cần thiết và tốc độ xử
lý với các biến thé của MobileFaceNet và ShuffleNet trên 2 bộ dữ liệu LFW va
Trang 17(MobileFacenet-M và MobileFacenet-S) cũng đạt độ chính xác và tốc độ xử lý tương
tự Ngoài ra MobileFacenet và các dạng rút gọn chỉ sử dụng dưới một triệu tham SỐ.
Ngoài ra, dé các mạng DCNN đạt kết quả cao nhát, thuộc tinh Deep Learning
[11] cần được phát huy và tính toán một cách hiệu quả nhất Chính vì thế Loss function hỗ trợ các mạng tính toán và cập nhập các tham số có khả năng học (learnable
parameter) hay còn gọi là weights trong các mạng DCNN.
Face Identification on MegaFace
CosFace: 82.720
Other models -@ Models with highest Accuracy
Hình 1-1 Bảng thống kê thời gian ra mắt các loss function.
Trang 18View Accuracy ¥
RANK MODE accuracy * paper CODE RESULT YEAR
2 SV-AM-Softmax 97.2% Support Vector Guided Softmax Loss for Face Recognition @ =a 2018
scan ".x số
Clustering
Hình 1-2 Bang thống kê độ chính xác của từng loss function
Có thể thấy Arcface ra đời cùng thời điểm với Cosface tuy nhiên lại hiểu quả hơnCosface và các phương pháp khác trong việc tính toán và cập nhật loss từ đó cothéphân tách các lớp dữ liệu một cách tối ưu nhất
1.3 Giải pháp đề xuất
Với dữ liệu đầu vào của hệ thống là định dạng video, nhóm tiến hành sử dụngthư viện MTCNN để cắt dữ liệu đầu vào thành dạng ảnh với kích thước 600x600pxxác định chính xác vị trí khuôn mặt Sau đó sử dụng MobileFaceNet để tạo 512 điểmảnh từ dữ liệu đầu ra của MTCNN phục vụ cho việc định danh Tiếp tục, sử dụngArcFace để huấn luyện lại loss của model MobileFaceNet Sau cùng, nhóm dùngSVM để phân loại người dùng và xuất ra định danh
Nhóm sẽ xây dựng một mô hình IoT thu gọn với phần cứng bao gồm: KITNhúng Jetson Nano, Module ESP32 và các module cảm biến ngoại vi Với sự hỗ trợInternet, các thông tin dữ liệu từ phần cứng có thể được truyền tải và lưu trữ lênserver IoT Platform cung cấp các chức năng cần thiết để hỗ trợ triển khai các hệthống IoT một cách dé dàng nhất như: quản lý thiết bị, phan tích dữ liệu, bảo mật,
Vì có nhiều nhà cung cấp IoT platform nên nhóm sẽ thử nghiệm trên các platform
khác nhau: AWS IoT Core, Google IoT Cloud, Firebase Mobile Platform,
Trang 19Dựa vào các công trình nghiên cứu đã được công bố, nhóm sẽ xây dựng một
mô hình nhận diện khuôn mặt theo một mô hình gồm 4 bước:
Bước 1: Xác định khuôn mặt trong ảnh bằng các bounding box, sau đócắt ảnh khuôn mặt từ các bounding box thu được
Bước 2: Truyền ảnh khuôn mặt đã được cắt qua các lớp mạng neuralnetwork trích xuất vector 512 đặc trưng ảnh (embedding)
Bước 3: So sánh với các embedding từ bộ dữ liệu.
Bước 4: Xuất ra định danh và độ tin cậy
Với cấu trúc mạng MobileFacenet và cập nhập loss bang Arcface, sử dụngpretrained model để xây dựng một ứng dụng phân loại định danh Sau đó tiến hành
tự train một model và thử nghiệm trên các bộ dữ liệu khác nhau và áp dụng vào đề
định danh khuôn mặt.
1.4. Mục tiêu và giới hạn đề tài
1.4.1 Mục tiêu của đề tài
Mục tiêu: thực hiện một mô hình IoT đơn giản để tiếp nhận các thông tin cơbản về thế giới và quản lý thông tin bằng IoT Platform Ngoài ra xây dựng một hệthống nhận diện khuôn mặt và định danh hỗ trợ cho IoT Cụ thể:
Tìm hiểu, khảo sát về các hệ thống IOT platform khác nhau Kết quảmong muốn tìm được một platform thuận tiện cho việc sử dụng cũngnhư truyền đạt và quản lý
Tìm hiểu về các thuật toán xử lý bounding box và nhận diện khuôn mặt.Tìm hiểu và nghiên cứu về các mang neural network tạo thành 512 đặc
trưng ảnh từ các anh input.
Nghiên cứu và tiễn hành tạo file phân loại và định danh
Thử nghiệm mạng với carema đề xử lý real-time
FPS mong muốn đạt từ SFPS
Trang 20Phạm vi: Thử nghiệm và ứng dụng các thuật toán nhận diện và phân loại
định danh trên dữ liệu thu vào từ camera và truyền thông tin định danh về IOT
platform.
1.4.2 Giới hạn của đề tài
Bài toán gặp một số khó khăn khi train model là dữ liệu cần thiết dé train quálớn, không thé tự thu thập Nhóm sẽ sử dụng một số dữ liệu tự kiếm và dữ liệu cósẵn trên mạng dé tiến hành huấn luyện Cuối cùng là các yếu tố khách quan như thờitiết, mật độ sáng, dữ liệu huấn luyện không đủ sẽ là hạn chế của đề tài khi nhận diện
và detect khuôn mặt Do đó, độ chính xác của hệ thống định danh khuôn mặt theo
thời gian thực chỉ có thể đạt tới 90%
1.5 Ý nghĩa thực tiễn của đề tài
Đề tài này sẽ là một phần quan trọng trong hệ thống quản lý nhân sự, điểm danhhọc sinh, trong tương lai, giải quyết hoàn toàn các yếu tố về con người cũng nhưnhững bat tiện trong việc định danh truyền thống Ngoài ra yếu tố Machine Learning
và Deep Learning [11] có thể áp dụng trên các dữ liệu từ hệ thống IoT đề tạo ra một
hệ thống điều chỉnh các điều kiện xung quanh nơi ở, nơi làm việc, phù hợp với nhu
cầu sử dụng của mỗi người.
1.6 Cấu trúc của báo cáo Khóa luận
Phần còn lại của Khóa luận tốt nghiệp được tổ chức như sau, trong Chương 2nhóm sẽ trình bày những cơ sơ lý thuyết liên quan đến đề tài Khóa luận Chương 3nhóm trình bày chỉ tiết các kiến trúc và phương pháp liên quan đến quy trình xâydựng hệ thống loT, hệ thống nhận dạng khuôn mặt và định danh Chương 4 nhóm sẽtrình bày các thực nghiệm, kết quả thu được từ việc train, test model và đánh giá.Cuối cùng Chương 5 nhóm đưa ra kết luận và hướng phát triển
Trang 21Chương 2 CƠ SỞ LÝ THUYET
2.1 Thi giác máy tính - Computer Vision
2.1.1 Tổng quan
Trí tuệ nhân tạo và cách mạng công nghiệp 4.0 là những thuật ngữ được
nhắc đến nhiều nhất trong nghiên cứu khoa học hiện nay Máy móc được kết nốivới nhau và ngày càng có những hoạt động gần như con người Trong đó, nhữnghoạt động liên quan đến thị giác đã và đang phát trién mạnh mẽ bởi tính ứng dụngthực tiễn, trực quan, sinh động, Thuật ngữ thị giác máy tính được bắt nguồn từnhững hoạt động của máy tính mô phỏng hoạt động của mắt người và có thể thaythế cho con người trong các công việc quan sát, giám sát, phát hiện vật thẻ, pháthiện chuyển động, phân loại thông qua hình ảnh quan sát được
Thị giác máy tính là một bộ phận quan trọng trong nhóm Trí tuệ nhân tạo.
Hoạt động chính bao gồm các phương pháp thu nhận, xử lý ảnh kỹ thuật số, phân
tích và nhận dạng các hình ảnh, phát hiện các đối tượng, tạo ảnh, siêu phân giải
hình ảnh và nhiều hơn vậy Thị giác máy tính được ứng dụng rộng rãi trong thực
tế cuộc sống của chúng ta Camera được đặt trên nhiều thiết bị như điện thoại, máytính, máy ảnh, ô tô hoặc các hệ thống giám sát, quan sát trong các khu vực ngoàitrời, trong nhà, trong giao thông Có thé thay rang, máy tính đã có được cái nhìngần như một con người qua một số ứng dụng như nhận diện, tìm kiếm, phân loại,phát hiện, trích xuất hình ảnh của các chủ thể tập trung theo nhu cầu của con người.Một trong những hoạt động dễ thấy nhất là nhận diện và trích xuất thông tin củachủ thể Các hệ thống máy móc hiện nay đã có thể phát hiện chính xác gần nhưtuyệt đối nhờ vào các thuật toán, công cụ hỗ trợ, công nghệ áp dụng được nghiêncứu kỹ lưỡng Điều đó góp phần làm cho máy tính ngày càng có một cái nhìn cụthể, chính xác và nhanh chóng hơn bao giờ hết Thị giác máy tính thực sự đã đạtđược những bước tiến rõ rệt trong nghiên cứu khoa học hiện tại Trong báo cáonày, nhóm sẽ tập trung vào những nghiên cứu về phát hiện khuôn mặt, một trong
những ứng dụng quan trọng của Thị giác máy tính.
Trang 22Hình 2-1 Mô tả ảnh dưới góc nhinfcuar máy tính
Khi con người nhìn vào một bức ảnh họ có thé nhận diện được mọi vật thé,không như điều hầu hết các máy tinh “thay” được Một bức ảnh được thể hiện bằngcác pixel chứa giá trị màu sắc Đối với ảnh xám, máy tính đọc ảnh dưới dạng một
ma trận 1 chiều với các pixel mang các giá trị từ 0-255 Đối với ảnh màu, máy tínhnhận vào một ma trận 3 chiều với mỗi chiều là 1 ma trận pixel chứa giá trị của 3
màu Red — Green — Blue.
Và dé thực hiện việc đọc ghi, tương tác và xử lý trên ảnh, nhóm sử dụng 2thư viện được xây dụng trên nền ngôn ngữ lập trình Python hỗ trợ mạnh mẽ và tốc
độ xử lý tối ưu nhất là Opencv và Pytorch
2.1.2 Thư viện xử lý ảnh Opencv
Thư viện Opencv là một thư viện da nền tảng được sử dụng để phát triển cácứng dụng về thị giác máy tính theo thời gian thực Thư viện này tập trung chủ yếu
về xử lý ảnh, quay video và phân tích các đặc trưng ảnh với các ứng dụng tiêu biểunhư là nhận diện khuôn mặt và nhận diện vat thẻ,
Các đặc trưng của thư viện Opencv:
- Đọc và lưu ảnh.
- Đọc và lưu video.
- _ Xử lý ảnh (lọc ảnh, biến đổi ảnh)
Trang 23- Tién hành nhận diện các đặc trưng ảnh.
- Nhận diện các đối tượng cụ thé như khuôn mặt, mắt, phương tiện trong ảnh
hoặc video.
- Phân tích video (ước tính chuyền động, theo dõi đối tượng, )
Opencv được phát triển trên ngôn ngữ C++, sau đó, hỗ trợ thêm các ngônngữ Python và Java OpenCV có thể chạy trên nhiều hệ điều hành khác nhau như
Windows, Linux, OSx, FreeBSD, Net BSD, Open BSD,
Các module chính của thư viện Opencv
Cac module sau đây là các module chính của Opencv:
Chức năng lõi (Core functionality):
Module này xử lý các dang data cơ bản như Scalar, point, range, dùng déxây dựng các ứng dụng Opencv Ngoài ra, module này còn bao gồm dạng data
chuỗi đa chiều Mat, được dung dé lưu trử ảnh
Xử lý ảnh:
Module này đảm nhận nhiều hoạt động về xử lý ảnh như là lọc ảnh, biến đồi
các ảnh về hình học, chuyển đổi màu sắc, biểu đồ, wee
Module bao gồm các thuật toán về hình học, hiệu chỉnh âm thanh camera, đo
đạc và ước tính các đối tượng nhất định, và xây dựng các thuộc tính 3D.
Feature2d:
Trang 24Module này thực hiện các hoạt động liên quan về các khái niệm nhận diện
các đặc trưng va mô tả các đặc trưng đó.
Objdetect:
Phát hiện vật thể và các đối tượng đã định dạng sẵn như là khuôn mặt, mắt,
con người va xe cộ,
Highgui:
Xây dụng các giao điện đơn giản dé dang sử dung
2.1.3 Thư viện Pytorch
Pytorch là một thư viện Machine learning dựa trên ngôn ngữ lập trình
Python, được phát triển dựa trên Torch Torch là thư viện machine learning được
open-sources dựa trên ngôn ngữ LUA Pytorch có 2 đặc trưng chính:
- Xử lý tensor (tương tự kiểu dữ liệu ndarray của Numpy) với sự hỗ trợ của
GPU.
- Tu động phân biệt giữa xây dựng và huấn luyện các neural networks
Sử dụng thư viện Pytorch để xứ lý thay vì các thư viện deep learning python:
- Không giống như Tensorflow, nhóm cần phải khai báo các đỗ thị tính toán
hoàn chỉnh trước khi chạy model, Pytorch cho phép nhóm có thé khai báocác đồ thị tính toán động
- Pytorch cung cấp tốc độ xử lý nhanh gọn và sự linh hoạt cao cho việc
nghiên cứu và xử lý deep learning.
Trang 25Pytorch sử dụng một kỹ thuật gọi là automatic differentiation dé tính toán sốhọc thuộc đạo hàm của một fuction Khi huấn luyện một model, các biến có thể
được train và hoc (learnable parameter) được gọi tắt là weights sẽ được khởi tạo vớicác giá trị gần bằng 0 nhưng không bằng 0 Sau đó, các tensor được thông qua cáclớp mạng và cập nhật lại các biến weights từ phải sang trái, gọi là kỹ thuật
backward passes Khi có lệnh requires_grad các gradients sẽ được tính toán và tao
thành mô hình train với các input tensor cần thiết Khi có lệnh torch.no grad() thì
việc tính toán các gradients và cập nhật weight sẽ được ngừng và input tensor sẽ
chuyển sang giao đoạn sử dụng model và kiểm thử
Từ đó nhóm có thé phân tách việc đưa tensor từ các input ảnh vào tiến trìnhtrain và quá trình sử dụng và kiểm tra model riêng biệt
Pytorch nn module:
Đây là module để xây dựng neural network của Pytorch Module nn củaPytorch phụ thuộc vào module autograd để xây dụng model và tính toán Quy trình
để train model được tổng quát như sau:
- Khởi tao neural network với các weights dé tính toán
- Tao vòng lặp cho data inputs.
- Tién hành truyền dữ liệu inputs thông qua mang
- So sánh kết quả từ model với kết quả thật tế
- _ Truyén biến gradients ngược vào mạng lưới
-_ Tiến hành cập nhập weight tại từng lớp mạng với công thức sau:
Weight = weight — learning_rate * gradient (2.1)
Trang 26Dưới góc nhìn của Machine Learning, mọi bài toán đều có input và output, ở
giữa của quy trình đó là một hàm Hàm là một khái niệm toán học khá quen thuộc với
chúng ta Hàm là một tập hợp các quy tắc được dùng đề các phần tử ở tập nguồn đếncác phan tử ở tập đích sao cho mỗi một phan tử ở tập nguồn chi có một và chỉ mộtphan tử ở tập đích Trong đó, một bộ phận nhỏ của hàm, khi tat cả các phan tử của cảhai tập đều là dạng số học, người ta gọi đó là hàm SỐ
Hình 2-2 Mô hình input va output thông qua xử lý các ham
Cùng với sự phát triển của Computer Vision, nhiệm vụ của người làm Machine
Learning ở một mức cơ bản nao đó là giúp máy tính điện tử tìm ra được hàm quan hệ giữa tập input và tap output Machine Learning chia các bài toán ra làm hai loại chính
là Supervised Learning(học có giám sát) và Un-Supervised Learning (học không
giám sát).
2.2.2 Supervised Learning.
Học có giám sát là việc có sẵn một tập nguồn và một tập đích tương ứng đểlàm cơ sở xây dựng ra model mong muốn Tập hợp kết hợp bởi hai tập này được gọi
là tập train Theo thời gian, khi đưa bài toán vào áp dụng thực tế, dữ liệu mới lại được
sử dụng để train lại nhằm cải tiến model hiện tại Điều này chính là mô tả cho khái
niệm học có giám sát.
Các thuật toán nằm trong nhóm các bài toán học có giám sát được chia nhỏ thànhhai phần dựa trên đặc tính của tập đích trong tập train
Trang 272.2.3 Regression(Bài toán hồi quy).
Hồi quy là một thuật ngữ rất khó hiểu Hiểu đơn giản thì những cái gì có tínhliên tục và tiếp nối với nhau thì người ta gọi là là hồi quy Vậy khi tập đích trong tậptrain là một tập dữ liệu có dạng liên tục không thể phân thành nhóm mà là một dữliệu cụ thé thì bài toán được xếp vào dạng hồi quy Bài toán tiêu biểu cho dang nàythường được ví dụ là tính toán giá cả của sản phẩm dựa trên thông số trước đó, hoặc
dự đoán biến động tài chính
2.2.5 Classification (Bài toán phân loại).
Khi dữ liệu của tập đích là một nhóm hữu hạn và có thể gắn nhãn được, bàitoán được xếp vào dạng classification Ví dụ hay được sử dụng cho bài toán dạng này
là bài toán gắn nhãn xem một email có phải là spam hay không, hoặc phân loại giữacam và táo hay phân biệt chữ viết tay,
Trang 282.2.6 Clustering (Bài toán gom nhóm).
Với bài toán dạng này, ta buộc phải có một tập hợp các categories cho trước.
Dữ liệu nguồn sẽ được Clustering dựa trên các yếu tổ có trong tập hợp categories chotrước Điều này có vẻ tương tự với bài toán ở dang Classification bị bỏ đi tập đíchnhưng trên thực tế thì không chính xác Ví dụ như với bài toán phân loại email làspam nhưng hoàn toàn không có bat kia ai đánh dấu mail là spam hay không Việcphân loại lúc này đơn thuần chỉ dự trên những nhóm email được cho là giống nhau
về cách đặt tên, nguồn gửi, tần suất xuất hiện, nội dung
2.2.7 Dimensionality reduction(Bài toán giảm chiều của dữ liệu)
Bài toán ở dạng này không được quy về các dạng trên mà được thực hiện dướihình thức làm giảm đi số lượng các biến số đầu vào nhằm hạn chế độ phức tạp của
bài toán.
2.3 CNN - Convolutional Neural Network
2.3.1 Dinh nghia.
Convolutional Neural Network (CNNs — Mang no-ron tích chập) là một trong
những mô hình Deep Learning tiên tiến giúp cho chúng ta xây dựng được những hệthống thông minh với độ chính xác cao như hiện nay như hệ thống xử lý ảnh lớn nhưFacebook, Google hay Amazon đã đưa vào sản phẩm của mình những chức năngthông minh như nhận diện khuôn mặt người dùng, phát triển xe hơi tự lái hay dronegiao hàng tự động CNN được sử dụng nhiều trong các bài toán nhận dạng các object
trong ảnh.
2.3.2 Convolutional
Là một cửa số trượt (Sliding Windows) trên một ma trận như mô tả hình dưới:
Trang 29Convolved Feature
— Hình 2-4 Kernel trong CNN
Các convolutional layer có các parameter(kernel) đã được hoc dé tự điều chỉnh
Convolution hay tích chập là nhân từng phan tử trong ma trận 3x3
Sliding Window hay còn gọi là kernel, filter hoặc feature detect là một ma trận
Hình 2-5 Mô tả cách hoạt động của mỗi kernel với ảnh inj
lấy ra những thông tin chính xác nhất mà không cần chọn các feature Trong hình ảnh
ví dụ trên, ma trận bên trái là một hình ảnh trắng đen được số hóa Ma trận có kích
thước 5x5 và mỗi điểm ảnh có giá trị 1 hoặc 0 là giao điểm của dòng và cột
có kích thước nhỏ như trong ví dụ trên là 3x3 Convolution hay tích chập là nhân từng
phần tử bên trong ma trận 3x3 với ma trận bên trái Kết quả được một ma trận gọi là
Convoled feature được sinh ra từ việc nhận ma trận Filter với ma trận ảnh 5x5 bên
Trang 302.3.3 Cấu trúc của mạng CNN.
Mạng CNN là một tập hợp các lớp Convolution chồng lên nhau và sử dụngcác ham nonlinear activation như ReLU(Rectified Linear Unit) và tanH dé kích hoạtcác trọng số trong các node Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo
ra các thông tin trừu tượng hơn cho các lớp tiếp theo Mỗi một lớp sau khi thông qua
các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo Trong
mô hình mạng truyền ngược (feedforward neural network) thì mỗi neural đầu vào
(input node) cho mỗi neural đầu ra trong các lớp tiếp theo Mô hình này gọi là mạngkết nối đầy đủ (fully connected layer) hay mạng toàn vẹn (affine layer) Còn trong
mô hình CNNs thì ngược lại Các layer liên kết được với nhau thông qua cơ chếconvolution Layer tiếp theo là kết qua convolution từ layer trước đó, nhờ vậy mà ta
có được các kết nói cục bộ Như vậy mỗi neuron ở lớp kế tiếp sinh ra từ kết quả của
filter áp đặt lên một vùng ảnh cục bộ của neuron trước đó.
Mỗi một lớp được sử dụng các filter khác nhau thông thường có hàng trămhàng nghìn filter như vậy và kết hợp kết quả của chúng lại Ngoài ra có một số layerkhác như pooling/subsampling layer dùng để chắt lọc lại các thông tin hữu ích hơn(loại bỏ các thông tin nhiễu) Trong quá trình training mạng CNN tự động học các
giá trị qua các lớp filter dựa vào cách thức mà bạn thực hiện Ví dụ trong tác vụ phân
lớp ảnh, CNNs sẽ có gắng tìm ra thông số tối ưu cho các filter tương ứng theo thứ tựTaw pixel > edges > shapes > facial > high-level features Layer cuối cùng được ding
để phân lớp ảnh
Feature maps
Trang 31Trong mô hình CNN có 2 khía cạnh cần quan tâm là tính bat biến (LocationInvariance) và tính kết hợp (Compositionality) Với cùng một đối tượng, nếu đốitượng nay được chiếu theo các góc độ khác nhau (translation, rotation, scaling) thì độchính xác của thuật toán sẽ bị ảnh hưởng đáng ké Pooling layer sẽ cho bạn tính batbiến đối với phép dịch chuyền (translation), phép quay (rotation) và phép co giãn(scaling) Tính kết hợp cục bộ cho ta các cấp độ biểu diễn thông tin từ mức độ thấpđến mức độ cao và trừu tượng hơn thông qua convolution từ các filter Đó là lý đo tạisao CNNs cho ra mô hình với độ chính xác rất cao Cũng giống như cách con ngườinhận biết các vật thể trong tự nhiên.
Số các convolution layer: càng nhiều các convolution layer thì
performance càng được cải thiện Sau khoảng 3 hoặc 4 layer, các tác
động bị giảm một cách đáng kể
Filter size: thường filter theo size 5x5 hoặc 3x3
Pooling size: thường là 2x2 hoặc 4x4 cho ảnh đầu vào lớnCách cuối cùng là thực hiện nhiều lần việc train test để chọn ra đượcparam tốt nhất
Deep learning
Việc các mạng CNN ngày càng phát triển đã giúp các bai toán xử lý ảnh đạtđược kết quả mong muốn Tuy nhiên việc con người phải tiếp cận tiền xử lý và sau
đó các mang CNN xuất ra kết qua đã khiến việc hoạt động của CNN trở nên bat tiện
Vi thé Deep learning ra đời giải quyết van đề nay
Trang 32Khác với machine learning, deep learning là kiến trúc có khả năng tự học, tựtách các đặc trưng từ các anh input, không can sự can thiệp từ con người Ngoài ra,mọi dữ liệu đầu vào đều quan trọng đối với machine learning, với deep learning, trongkhi tác đặc trưng kiến trúc có thé bỏ qua các đặc trưng không cần thiết (nhiễu, nền,
Ví dụ: Trước kia với mỗi ảnh đầu vào, phải xử lý dé tim ra 68 landmarks sau
đó xử ly SVM dé tiến hành phân loại ảnh Với deep learning, chỉ cần phân vùng các
dữ liệu va đưa vào kiến trúc đã được xây dựng, các đặc trưng ảnh sẽ được tự độngtìm và sau đo tiến hành phân loại SVM dựa trên các embedding chứa các đặc trưng
này.
Mặc dù vay, deep learning có những bat cập là cần một lượng lớn dữ liệu đầuvào khổng lồ và cần phải huấn luyện model nhiều lần để đạt kết quả tốt nhất Với mỗi
lần dữ liệu được thông qua các mạng DCNN hệ thống sẽ tự động tính toán các tham
số thích hợp cho từng kernel và cập nhập lại hệ thống Việc xoay vòng dữ liệu sẽ hao
tốn một thời gian dài dé model hoàn thiện
Chính vì thế mà Deep learning trở thành nền tảng dé phát triển các DCNN táchđặc trưng ảnh về sau này
2.3.6 RetinaFace [3]
RetinaFace là một phương pháp nhận diện và phân loại khuôn mặt mà được
thực hiện trong cùng một stage (single-stage design) Retine có thể thực hiện đa tác
vụ khác nhau cùng lúc và xuất ra đồng thời về kết quả phân loại, box chứa khuônmặt, năm điểm landmarks và mô hình 3D với mỗi khuôn mặt nhận vào
Phương pháp bottom-up pathway sẽ tạo ra các lớp ảnh bao gồm ảnh độ phân giải
thấp, độ phân giải cao, đặc trưng ảnh thấp và đặc trưng ảnh cao Mỗi lớp ảnh sẽ được
xử lý từ bottom-up sẽ thông qua lớp convolution 1x1 để giảm chiều dữ liệu và sau
đó được gộp chung với các lớp ảnh phía top-down pathway để thực hiện viêc chuẩn
đoán.
Trang 33Retina thực hiện nhiều phương thức xử lý pyramid và các tác vụ chạy songsong nên sẽ cho ra kết quả với độ chính xác cao hơn khi nhận diện khuôn mặt Tuynhiên việc các tác vụ cần phải xử lý đồng thời và mô phỏng các đặc trưng theo môhình 3D đã khiến cho tốc độ xử lý của Retina bị giảm đáng kể.
Self-supe
Hình 2-7 Mô tả các tác vu extra-supervision va self-supervision hoạt động song song
với việc xử lý bounding box và phân loại ảnh Và cho ra bốn output tương ứng: phânloại ảnh, box chứa khuôn mặt, năm điểm landmarks và mô hình 3D trên cùng một
Trang 34MTCNNI2] là viết tắt của Multi-task Cascaded Convolutional Networks Nó
là bao gồm 3 mạng CNN xếp chồng và đồng thời hoạt động khi detect khuôn mặt
Mỗi mạng có cấu trúc khác nhau và đảm nhiệm vai trò khác nhau trong task Đầu ra
của MTCNN [2] là vị trí khuôn mặt và các điểm trên mặt như: mắt, mũi, miệng
Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks
Hình 2-10 Mô hình tông quan về 3 lớp xử lý p-net, r-net -o net của MTCNN [2]
Trang 35MTCNN hoạt động theo 3 bước, mỗi bước cĩ một mạng neural riêng lần lượt
là: P-Net, R-Net và O-net.
Với mỗi bức ảnh đầu vào, nĩ sẽ tạo ra nhiều bản sao của hình ảnh đĩ với các
kích thước khác nhau (phương pháp pyramid image).
Tại P-Net, thuật tốn sử dụng 1 kernel 12x12 chạy qua mỗi bức hình để tìmkiếm khuơn mặt
Sau lớp convolution thứ 3, mạng chia thành 2 lớp Convolution 4-1 đưa ra xác
suất của một khuơn mặt nằm trong mỗi bounding boxes, và Convolution 4-2 cungcấp tọa độ của các bounding boxes
Feed (Input layer)
Cònvolution.kayer 1
PReLu Layer 1
Maxpool layer Convolution Layer 2
PReLu Layer 2
PReLu Layer 3
Convolution 4-1 Convolution 4-2
Hình 2-11 Sơ đồ CNN của P-net
R-Net cĩ cấu trúc tương tự với P-Net Tuy nhiên sử dụng nhiều layer hơn Tạiđây, network sẽ sử dụng các bounding boxes đc cung cấp từ P-Net và tỉnh chỉnh là
tọa độ.
Trang 36Feed (Input layer)
Feed (Input layer)
PReLu Layer 1
Maxpool layer
Maxpool layer
PReLu Layer 2 PReLu Layer 2
Maxpool layer Maxpool layer
Hình 2-12 So đồ CNN của R-net va O-Net
Tương tự R-Net chia ra làm 2 layers ở bước cuối,cung cấp 2 đầu ra đó là tọa
độ mới của các bounding boxes, cùng độ tin tưởng của nó.
O-Net lấy các bounding boxes từ R-Net làm đầu vào và đánh dau các tọa độcủa các mốc trên khuôn mặt
Ở bước này, thuật toán đưa ra 3 kết quả đầu ra khác nhau bao gồm: xác suấtcủa khuôn mặt nằm trong bounding box, tọa độ của bounding box và tọa độ của cácmốc trên khuôn mặt (vị trí mat, mũi, miệng)
Fully Connected Layer
PReLu Layer 5
Fully connected 3
Hình 2-13 Sơ đồ CNN của O-net
Trang 372.4 Các mô hình được thử nghiệm
Sau quá trình tìm hiểu các mô hình nhận diện khuôn mặt phù hợp với phancứng đề ra Nhóm xin trình bày thuật toán của các mô hình nhận diện khuôn mặt vàkiến trúc CNN của từng mô hình
Convolutional Neural Network đã được loại bỏ output layer có tác dụng encode ảnh
thành các vector 128 giá trị đặc trưng
Trang 38Bảng 2-1: Sơ đồ kiến trúc CNN của Facenet
Layer Zize-in Zize-out Kernel Param FLPS
Trang 39Mục tiêu của Triplet loss là day khoảng cách giữa 2 vector khác lớp ra xa nhau
và kéo 2 vector cùng định danh lại với nhau.
Độ chính xác của Facenet [4] đạt 99,63% trên lfw [10], sử dụng kiến trúcInception-Inspied và hơn 250,000,000 anh đề train, tuy nhiên kiến trúc quá lớn khôngthể áp dụng vào realtime Lượng data cũng quá lớn nên model này không còn phù
hợp.
2.4.2 MobileFaceNets [9]:
Kiến trúc của MobileFacenet [9] được phát triển dựa theo kiến trúc
MobileNetV2[8].
Nhung khac biét 6 ché MobileFacenet [9] str dụng các lớp bottleneck làm các
khối chính và sử dụng PreLu cho dữ liệu phi tuyến tính sẽ phù hợp với việc nhận diệnkhuôn mặt tốt hơn ReLU Các lớp Bottleneck hỗ trợ giảm chiều dữ liệu và
MobileFacenet còn sử dụng lớp Global Depth-wise Convolution thay cho Global
Average Pooling giúp tăng độ chính xác và giảm chi phí tính toán.
MobileFacenet [9] cơ bản sử dụng 0.99 triệu tham số với ảnh input 112 x 112
Dé giảm việc tính toán đi, có thé giảm kích thước ảnh xuống thành 112 x 96 hoặc 96
x 96 Một phiên bản khác là MobileFaceNet-M ra đời dé giảm thời gian tính toánxuống bằng cách loại bỏ đi lớp convolution 1x1 cuối cùng của MobileFaceNet