Luận văn khoa học máy tính - Công nghệ thông tin | Đại học Hồng Đức

Luận văn khoa học máy tính - Công nghệ thông tin | Đại học Hồng Đức được sưu tầm và soạn thảo dưới dạng file PDF để gửi tới các bạn sinh viên cùng tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị cho các buổi học thật tốt. Mời bạn đọc đón xem!

i
LỜI CAM ĐOAN
Tất cả những nội dung nghiên cứu, kết quả trong luận văn này đều do
tôi thực hiện dưới sự hướng dẫn khoa học của thầy TS. Phạm Thế Anh. Ngoài
ra, các tài liệu tham khảo được sử dụng trong luận văn đều được trích dẫn rõ
ràng tên tác giả, tên công trình, thời gian, địa điểm, …
Tôi xin cam đoan luận văn này không trùng lặp với các khóa luận, luận
văn, luận án các công trình nghiên cứu đã công bố. Nếu sai tôi xin hoàn
toàn chịu trách nhiệm trước hội đồng khoa học và trước pháp luật.
Người cam đoan
Lê Diệu Linh
ii
LỜI CẢM ƠN
Trướchết,tôixinđượcgửilờicảmơnchânthànhusắcnhấttới
TS.PhạmThếAnh–giáoviênớngdẫncủatôi,ngườiđãhếtlònghỗtr
vàgiúpđỡtôitrongquátrìnhnghiêncứuvàhoànthiệnluậnvănthạcsĩcủa
mình.
icũngxingửilờicảmơntớicácthầy,ctrongKhoaCNTT&TT,
TrườngĐạihọcHồngĐứcđãtậntìnhdạydỗvàtrangbịchotôimộtnềntảng
kiếnthứcvữngchắcđểgiúptôihoànthànhluậnvănnày.Cảmơncácbạn,
cácanhchịlàhọcviêncaohọclớpKhoahọcmáytínhK10,trongquátrình
họcthạcsĩđãluôngiúpđỡvàchiasẻnhữngkinhnghiệmquýgiáchotôi.
tôicũngxingửilờicảmơnđặcbiệttớimẹtôi,ngườiđãnuôinấng,
dạydỗ,chămlovàđộngviêntôihoànthànhkhóahọcthạcsĩvàluậnvănnày.
Mặcđãcốgắnghếtsứcđểhoànthànhluậnvănnhưngchắcchắnsẽ
khôngthểnàotránhkhỏinhữngsaisót.Kínhmongnhậnđượcsựcảmthông,
gópý,chỉbảocủaquýthầycôvàcácbạn.
Tôi xin chân thành cảm ơn!
Thanh Hóa, ngày…..tháng 10 năm 2019
Người cảm ơn
Lê Diệu Linh
iii
MỤC LỤC
Trang
LỜI CAM ĐOAN.............................................................................................i
LỜI CẢM ƠN..................................................................................................ii
MỤC LỤC.......................................................................................................iii
DANH MỤC CÁC HÌNH VẼ........................................................................vi
DANH MỤC CÁC BẢNG BIỂU...............................................................viii
DANH MỤC CÁC TỪ VIẾT TẮT...............................................................ix
MỞ ĐẦU..........................................................................................................1
1.Tínhcấpthiếtcủađềtài................................................................................1
2.Mụctiêunghiêncứucủađềtài.....................................................................2
3.Đốitượngvàphạmvinghiêncứu.................................................................3
4.Phươngphápnghiêncứu...............................................................................3
5.Dựkiếnkếtquảđạtđược..............................................................................3
6.Nộidungvàcấutrúccủaluậnvăn................................................................3
Chương 1: TỔNG QUAN VỀ NHẬN DẠNG KHUÔN MẶT NGƯỜI ......5
1.1.TổngquanvềAIvàtiềmnăngứngdụng...................................................5
1.2.Bàitoánnhậndạngmặtngười....................................................................6
1.2.1.Kháiquátvềhệthốngnhậndạngmặtngười...........................................7
1.2.2.Nhữngkhókhăncủabàitoánnhậndạngkhuônmặtngười....................8
1.2.3.Mộtsốphươngphápnhậndạngmặtngười.............................................9
1.3.Cácứngdụngcủanhậndạngmặtngười..................................................11
1.4.Mộtsốphầnmềmthươngmạiliênquan..................................................13
1.5.Phạmvivàgiớihạncủađềtài.................................................................13
1.6.Kếtluậnchương1....................................................................................13
Chương 2: CƠ SỞ LÝ THUYẾT .................................................................14
2.1.Kiếntrúctổngquáthệthống....................................................................14
2.2.Tìnhhìnhnghiêncứutrongvàngoàinước..............................................16
2.3.Mạngnơronsinhhọc................................................................................18
iv
2.4.Mạngnơronnhântạo...............................................................................19
2.4.1.Môhìnhtoánhọcmạngnơronnhântạo................................................20
2.4.2.Kiếntrúcmạngnơronnhântạo.............................................................22
2.4.3.Mộtsốkiểukiếntrúcmạngnơronnhântạo..........................................23
2.4.4.Cácứngdụngcủamạngnơronnhântạo...............................................25
2.4.5.Huấnluyệnmạngnơron........................................................................26
2.4.6.MạngnơronMLPvàứngdụngtrongnhậndạngảnh...........................28
2.5.Mạngnơrontíchchập(ConvolutionalNeuralNetworks–CNNs)..........30
2.6.Mộtsốhàmmụctiêu(loss)phổbiến.......................................................35
2.6.1.HàmTripletLoss...................................................................................35
2.6.2.HàmCross-EntropyLoss......................................................................37
2.6.3.HàmAngular-SoftmaxLoss..................................................................38
2.6.4.HàmArcFaceLoss................................................................................39
2.7.Kếtluậnchương2....................................................................................40
Chương 3: XÂY DỰNG KIẾN TRÚC MẠNG NƠRON NHẬN DẠNG
KHUÔN MẶT NGƯỜI.................................................................................42
3.1.Thuthậpvàxâydựngtậpdữliệuhuấnluyện..........................................42
3.1.1.Bộdữliệuhuấnluyệnchomôhìnhmạngtheochuẩn(benchmark).....42
3.1.2.BộdữliệuhuấnluyệnngườiViệt.........................................................42
3.2.Kiếntrúctổngquáthệthốngnhậndạngkhuônmặt................................45
3.3.Kiếntrúcmạngnơronchobàitoánpháthiệnkhuônmặt........................45
3.3.1.Phátbiểubàitoánfacedetection...........................................................45
3.3.2.Kiếntrúcmạngdòtìmkhuônmặt.........................................................46
3.4.Kiếntrúcmạngfacelandmark.................................................................47
3.4.1.Phátbiểubàitoán..................................................................................47
3.4.2.Kiếntrúcmạngfacelandmark..............................................................48
3.5.Kiếntrúcmạngđặctrưngkhuônmặt(faceembedding)..........................51
3.5.1.Phátbiểubàitoán..................................................................................51
3.5.2.Kiếntrúcmạngđặctrưngkhuônmặt....................................................51
v
3.6.Kếtluậnchương3....................................................................................59
Chương 4: KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ ........................61
4.1.Môitrườngcàiđặtvàpháttriểnứngdụng...............................................61
4.1.1.Phầncứng..............................................................................................61
4.1.2.Phầnmềm..............................................................................................61
4.2.Bộdữliệuthựcnghiệm............................................................................64
4.3.Phươngphápđánhgiá,thửnghiệm..........................................................64
4.4.Kếtquảđánhgiá,thửnghiệm..................................................................65
Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ................................70
1.Kếtluận.......................................................................................................70
2.Hướngpháttriển..........................................................................................70
TÀI LIỆU THAM KHẢO............................................................................72
vi
DANH MỤC CÁC HÌNH VẼ
Trang
Hình1.1.Kiếntrúcđiểnhìnhcủamộthệthốngthịgiácmáy..........................7
Hình2.1.Sơđồkhốithuậttoándòtìmvànhậndạngkhuônmặt...................15
Hình2.2.Cấutrúccủamộtnơronsinhhọcđiểnhình.....................................18
Hình2.3.Môhìnhmộtnơronnhântạo...........................................................21
Hình2.4.Minhhọamộtkiếntrúcmạngnơronđiểnhình...............................23
Hình2.5.Môhìnhmạngnơronmộtlớp.........................................................23
Hình2.6.Môhìnhmạngnơron3lớptruyềnthẳng.........................................24
Hình2.7.Mạngtruyềnthẳng..........................................................................24
Hình2.8.Mạngphảnhồi.................................................................................25
Hình2.9.Môhìnhhuấnluyệnmạngcógiámsát...........................................27
Hình2.10.Môhìnhhuấnluyệnmạngkhôngcógiámsát..............................27
Hình2.11.Môhìnhhuấnluyệnmạngtăngcường..........................................28
Hình2.12.KiếntrúcmạngMLP....................................................................29
Hình2.13.Mạngnơronlantruyềnngược.......................................................30
Hình2.14.KiếntrúcmộtmạngCNNđiểnhình[12]......................................32
Hình2.15.KiếntrúcdạngđồhọacủamộtmạngCNN..................................33
Hình2.16.NguyêntắccủaquátrìnhhuấnluyệnmạngDNN........................36
Hình2.17.Môphỏngbộmôtả128giátrịcủamộtkhuônmặt......................37
Hình2.18.Môtảphânbốcácđặctrưngkhuônmặtkhidùngđộđobiên
Euclidean.........................................................................................................38
Hình2.19.(a)Minhhọaphânbốcủađặctrưngkhuônmặtkhidùngđộđo
biêntheogóc(marginallearning),(b)Kếtquảkhichiếucácđặctrưngở(a)
sangkhônggiansiêucầu[25].........................................................................39
Hình2.20.Minhhọaphânbốkhônggianđặctrưngcủa8đốitượngkhác
nhau,dùng(a)hàmbiênEuclidean(softmaxloss)và(b)AdditiveAngular
MarginLoss(ArcFaceloss)............................................................................40
vii
Hình3.1.Quytrìnhthuthậpdữliệu...............................................................43
Hình3.2.Biểuđồthốngkêquátrìnhthuthậpdữliệu....................................44
Hình3.3.Ảnhgốctrongcơsởdữliệuthuthập..............................................44
Hình3.4.Kiếntrúctổngquáthệthốngnhậndạngkhuônmặt.......................45
Hình3.5.Quátrìnhpháthiệnkhuônmặttrongảnh........................................46
Hình3.6.KiếntrúcmạngFaceLandmark......................................................48
Hình3.7.Cácđiểmđánhdấumẫucủamộtkhuônmặt(68điểm)..................48
Hình3.8.Quátrìnhhiệuchỉnhkhuônmặt......................................................49
Hình3.9.Minhhọakếtquảướclượngcácđiểmđánhdấutrênảnhđầu........50
Hình3.10.Môhìnhlưới68điểmchokếtquảkhôngtốtvớicáctrườnghợp
mặtnghiêng.....................................................................................................50
Hình3.11.Mộtsốkếtquảdòtìmcácđiểmđánhdấucủamôhìnhlưới5
điểm.................................................................................................................51
Hình3.12.KiếntrúcmạngNN1dựatrêncấutrúcmạngdo..........................54
ZeilervàFergusđềxuất..................................................................................54
Hình3.13.KiếntrúcmạngNN2sửdụngmôhìnhInceptiondựatrên...........56
Hình3.14.CấutrúccủamoduleInceptionđượcdùngtrongmôhìnhNN2,
giớithiệulầnđầubởiGoogletrongmạngGoogleNet....................................56
Hình4.1.MôitrườngảohóaAnaconda..........................................................62
Hình4.2.BiểuđồlượtstarvàrepostrêngithubsửdụngTF..........................63
Hình4.3.NgônngữlậptrìnhPython..............................................................64
Hình4.4.Vídụvềkếtquảnhậndạngkhuônmặt...........................................68
viii
DANH MỤC CÁC BẢNG BIỂU
Trang
Bảng3.1.Thốngkêquátrìnhthuthậpdữliệu................................................44
Bảng3.2.MôhìnhmạngNN1dựatrêncấutrúcmạngdoZeilervàFergusđề
xuất,vớicáclớp(layer),kíchthướcinput(size-in)output(size-out)
dạng (sốdòng sốcột sốbộlọc),riêngphầnnhân
(kernel) (sốdòng sốcột),stride(dòng cột,bướcsải)và
kíchthướcmaxoutpoolinglà [17].......................................................53
Bảng3.3.FaceNetsửdụnghìnhInceptiontươngtựvới[21].Haiđiểm
khácbiệtchínhđólàFaceNetsửdụngL poolingthaymaxpooling.Kích
2
thướcpoolingluônlà3 3vàtínhsongsongvớimoduletíchchậptrongmỗi
moduleInception.Nếugiảmchiều(dimensionalityreduction)thìpoolingsẽ
đượckýhiệuvới .Cácpoolingkíchthước1 1,3 3và5 5đượcnốilạiđể
chorakếtquả[17]...........................................................................................55
Bảng4.1.Minhhọakếtquảnhậndạng10đốitượng.....................................66
ix
DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt
Từ tiếng Anh Nghĩa tiếng Việt
AI ArtificialIntelligence Trítuệnhântạo
ANN ArtificialNeuralNetworks Mạngnơronnhântạo
CNN ConvolutionalNeuralNetwork Mạngnơrontíchchập
DCNN DeepConvolutionalNeural
Networks
Mạngnơrontíchchậpsâu
DNN DeepNeuralNetworks Mạngnơronsâu
FRS FaceRecognitionSystem Hệthốngnhậndạngkhuônmặt
LDA LinearDiscriminantAnalysis Phươngphápphântíchphân
táchtuyếntính
MLP MultiLayerPerceptron Mạngtruyềnthẳngcónhiều
lớp
PCA PrincipalComponentAnalysis Phươngphápphântíchthành
phầnchính
SVM SupportVectorMachine Máyhỗtrợvector
1
MỞ ĐẦU
1. Tính cấp thiết của đề tài
Ngàynaycùngvớinhữngtiếnbộvượtbậcvàsựpháttriểncủakhoahọc
kỹthuật,lĩnhvựckhoahọcxửlýảnhđãvàđangđạtđượcnhữngthànhtựuto
lớnchứngminhvaitròkhôngthểthiếutrongnhữngứngdụngthiếtyếu
củakhoahọckỹthuậtvàđờisốngxãhội.Vàđặcbiệt,chúngtađãchứngkiến
đượcnhiềuthànhtựuvượtbậctronglĩnhvựcthịgiácmáytính(Computer
Vision).Lĩnhvựcnàyhiệnđãvàđangthuhútrấtnhiềusựquantâmcủacác
nhànghiêncứu,cáchọcgiảtrongvàngoàinước.
AI(ArtificialIntelligence)–Trítuệnhântạolàsựmôphỏngcácquátrình
hoạtđộngtrítuệcủaconngườibằngmáymóc,đặcbiệtlàcáchệthốngmáy
tính.Cácquytrìnhnàybaogồmhọctập(thunhậnthôngtinquytắcsử
dụngthôngtin),lýluận(sửdụngquytắcđểđạtđượckếtluậngầnđúnghoặc
xácđịnh)tựđiềuchỉnh.MộtsốứngdụngđặcbiệtcủaAIbaogồmhệ
chuyêngia,nhậndạnggiọngnóivàthịgiácmáy.Ngàynay,AIđãđượcứng
dụngtrongrấtnhiềulĩnhvực,ngànhnghềvàcôngviệckhácnhaunhưchăm
sócsứckhỏe,kinhdoanh,giáodục,tàichính,phápluật,sảnxuất,…cóthểkể
đến1sốứngdụngđiểnhìnhcủaAInhưtrợlýảo,nhàthôngminh,nhậndiện
khuônmặtngườidùng,pháttriểnxetựláihaydronegiaohàngtựđộng,
NhữngngdụngcủaAItrongthựctếthểgiúpconngườinângcaonăng
suấtlaođộng,tiếtkiệm,thờigian,chiphítừđócảithiệnchấtlượngcuộc
sống.Tuynhiên,bêncạnhnhữnglợiíchmàAImanglạithìsựpháttriểnquá
nhanhcủacũngmanglạichoconngườinhữngmốilolắngnhấtđịnhmà
chúngtakhôngthểlườngtrướcđượchậuquảvàthíchnghikịpthời.Khimà
cácquytrìnhđềuđượctựđộnghóavàmọicôngviệchàngngàyđềudongười
máythựchiệnthìmốilongạitrítuệnhântạotiềmnăngpháttriểnnhanh
2
hơntríthôngminhcủaloàingườivàkhichúngtakhôngthểkiểmsoátđược
chúngthìrấtcóthểchúngsẽnổiloạnquaylạikiểmsoátchúngta.Ngoài
ra,trướcsựpháttriểnchóngmặtcủaAI,cáccôngviệcsẽđượchoànthành
vớitốcđộnhanhhơn,đồngnghĩavớiviệcnhiềungườisẽbịmấtviệclàm.
Trongtươnglaigần,nhữngcôngviệchàngngàymangtínhchấtlặplại,dây
chuyềnsẽđượcthựchiệnbởimáymóc,chúngsẽdầnthaythếconngườicho
nhữngvịtríđólàmgiatăngtỷlệthấtnghiệp.
MộttrongsốnhữngtiếnbộmớinhấtcủaAItrongvàinămquanhận
dạngkhuônmặtngười.Nhậndạngkhuônmặtngườimộtcôngnghệtrong
lĩnhvựcthịgiácmáyđượcứngdụngrộngrãitrongđờisốnghàngngày
củaconngườinhưcáchệthốnggiámsát,theodõivàbảovệ,quảnlývàora,
điềutratộiphạm,kiểmtrahànhkháchsânbay,xácthựctruycậpvàohệ
thống,rấtnhiềuthuậttoánđãđượcnghiêncứunhằmmụcđíchcải
thiệnđộchínhxáccủahệthốngtrongquátrìnhnhậndạngkhuônmặtngười.
Trongđósửdụngphươngphápdeeplearningmộtphầntrongnhómcác
phươngpháphọcmáyvới1sốcáckiếntrúchọcnhưMạngnơronsâu(Neural
Networks),Mạngniềmtinsâu(DeepBeliefNetworks–DBN),Mạngnơron
tíchchập(ConvolutionalNeuralNetwork-CNNs),…Mỗihệthốngđều
ưuđiểmriêng.TuynhiênhạnchếcủacáchệthốngAIhiệntạivềnhậndạng
khuônmặtngườivẫncònnhưthiếudữliệuđặcthùvềvùngmiền,cụthểdữ
liệukhuônmặtChâuÁ,ngườiViệtNam,…
Dođó,tôiđãlựachọnđềtài“Nghiên cứu các kỹ thuật học sâu ứng
dụng trong bài toán nhận dạng khuôn mặt người”nhằmxâydựnghệthống
AInhậndạngkhuônmặtvớisựtậptrungvàoviệchọccáckhuônmặtChâu
Á,cụthểlàngườiViệtNam,gópphầncảithiệnđộchínhxáccaocủahệ
thốngAInhậndạngkhuônmặtngườihiệnnay.
3
2. Mục tiêu nghiên cứu của đề tài
- Nghiêncứucáckỹthuậthọcsâu,cácmạngnhânchậpchobàitoán
nhậndạngđốitượng.
- Xâydựngthànhcônghệthốngtrítuệnhântạonhậndạngkhuônmặt
trêncơsởđịnhhướnghọccácđặctrưngkhuônmặtcủangườiChâuÁ,cụthể
làngườiViệtNam.
3. Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu của đề tài:
- Hệthốngnhậndạngkhuônmặtngười.
- Nghiêncứuvềcáckỹthuậthọcsâungdụngtrongbàitoánnhận
dạngkhuônmặtngười.
Phạm vi nghiên cứu:
- Nghiêncứuvềxửlýảnh,trítuệnhântạo,cácmạngnhânchập.
- Ápdụngkỹthuậthọcsâutrongnhậndạngkhuônmặtngười.
- Xâydựngthửnghiệmhệthốngnhậndạng.
4. Phương ph_p nghiên cứu
- Phương pháp nghiên cứu lý thuyết:
Tìmhiểuvànghiêncứucáctàiliệuliênquanđếnđềtàitrongđóbaogồm
4
cácbàibáo,cáccôngtrìnhnghiêncứutrongngoàinước.Từđóthể
phântíchcácưunhượcđiểmcủatừngcáchtiếpcận.
- Phương pháp nghiên cứu thực nghiệm:
Thiếtkếhuấnluyệnkiếntrúcmạngnơrontrêntậpdữliệuchuẩn;tổ
chứcđánhgiávàhiệuchỉnh,hoànthiệnkiếntrúcmạng,cácthamsốmạng,…
đểđạtkếtquảcaonhấtvềđộchínhxácvàtốcđộxửlý.
5. Dự kiến kết quả đạt được
- TậpdữliệuhuấnluyệnhọccácđặctrưngkhuônmặtcủangườiViệt
Nam.
- Thiếtkếkiếntrúcmạngnơronphụcvụhọccácđặctrưngkhuônmặt.
- Xâydựnghệthốngdemoquátrìnhnhậndạngkhuônmặttừvideo
dữliệuảnh.
6. Nội dung và cấu trúc của luận văn
Đềtài “Nghiên cứu các kỹ thuật học sâu và ứng dụng trong bài toán nhận
dạng khuôn mặt người”gồm5chương:
Chương 1: Tổng quan về nhận dạng khuôn mặt người
5
GiớithiệutổngquanvềAI,bàitoánnhậndạngkhuônmặt,cácphương
phápvàcácứngdụngcủanhậndạngkhuônmặt.
Chương 2: Cơ sở lý thuyết
Trìnhbàysởthuyếtcủabàitoánnhậndạngkhuônmặt.Giớithiệu
tổngquanvềhệthốngnhậndạngkhuônmặt,nhhìnhnghiêncứutrong
ngoàinước.Nghiêncứucáckỹthuậthọcsâu,cácmạngnhânchậpứng
dụngchobàitoánnhậndạngkhuônmặt,mộtsốhàmmụctiêu(lossfunction)
phổbiến.
Chương 3: Xây dựng kiến trúc mạng nơron nhận dạng khuôn mặt
người
Trìnhbàyquytrìnhthuthậpxâydựngbộdữliệuhuấnluyệnngười
Việt.Kiếntrúctổngquancủahệthốngnhậndạngkhuônmặt,phântíchưu
nhượcđiểm,quátrìnhhuấnluyện,từđóđềxuấtcáccảitiếnchấtlượngmạng
đãhuấnluyện(pre-trainedmodel)chobộdữliệuhuấnluyệnngườiViệtđã
thuthậpđược.
Chương 4: Kết quả thực nghiệm và hướng ph_t triển
Trìnhbàykếtquảthựcnghiệm,môitrườngcàiđặt,bộdữliệuhuấnluyện
ngườiViệtvàphươngphápđánhgiá,thửnghiệm.
Chương 5: Kết luận và hướng ph_t triển
Tổngkếtcácnộidungđãtrìnhbàytrongluậnvăn,từđóđềxuấtcác
phươnghướngnghiêncứutiếptheođểtiếptụccảithiệnchấtlượngnhậndạng
củahệthống.
6
Chương 1:
TỔNG QUAN VỀ NHẬN DẠNG KHUÔN MẶT NGƯỜI
1.1. Tổng quan về AI và tiềm năng ứng dụng
Ngaytừkhiphátminhrachiếcmáytínhđiệntửđầutiên,khảnăngthực
hiệncáccôngviệckhácnhaucủaconngườiđãtănglêntheocấpsốnhân.Con
ngườiđãpháttriểnsứcmạnhcủacáchệthốngmáytínhvớicáclĩnhvựclàm
việcđadạng,tốcđộngàycàngtăngvàgiảmkíchthướctheothờigian.
MộtbộphậncủaKhoahọcmáytínhtênlàTrítuệnhântạotheođuổi
việctạoracácmáytínhhoặcmáymócthôngminhnhưconngười.
Trítuệnhântạo(ArtificialIntelligence–AI)haytríthôngminhnhântạo
làsựmôphỏngcácquátrìnhhoạtđộngtrítuệcủaconngườibằngmáymóc,
đặcbiệtcáchệthốngmáytính.Cácquytrìnhnàybaogồmhọctập(thu
nhậnthôngtinvàquytắcsửdụngthôngtin),lýluận(sửdụngquytắcđểđạt
đượckếtluậngầnđúnghoặcxácđịnh)tựđiềuchỉnh.AIchiếmưuthế
trongcáclĩnhvựckhácnhaunhưxửngônngữtựnhiên,hệchuyêngia,
nhậndạnggiọngnóivàthịgiácmáy,…
Vậynhưthếnàolàtrítuệnhântạo?
TheochađẻcủaTrítuệnhântạo,JohnMcCarthy,trítuệnhântạo
“Khoahọckỹthuậtchếtạomáymócthôngminh,đặcbiệtcácchương
trìnhmáytínhthôngminh”.
Trongquátrìnhsửdụngvàkhaithácsứcmạnhcủacáchệthốngmáytính
conngườiđãtựđặtracâuhỏi:Làmthếnàođểchếtạoramộtchiếcmáytính
haymộtrobotcáchsuynghĩ,duy,họchỏitươngtựnhưtrítuệcon
người?TừđósựpháttriểncủaAIbắtđầuvớimụcđíchtạoracáchệchuyên
giavàcácmáymóccótrítuệnhưconngười.
Trítuệnhântạomanglạirấtnhiềugiátrịchocuộcsốngcủaconngười.
tuynhiênbêncạnhđótiềmẩnnhiềunguycơ,rủiro.Khitrítuệnhântạo
pháttriểnđạttớimộtngưỡngnhấtđịnhthìđócũnglàthờiđiểmloàingườibị
7
diệtvong.
1.2. Bài to_n nhận dạng mặt người
Nhậndạngmặtngười(FaceRecognition)làmộthướngnghiêncứuthuộc
lĩnhvựcthịgiácmáy(ComputerVision)đãđượcpháttriểntừđầunhữngnăm
90củathếkỷtrước.Chotớinayđâyvẫnlàmộthướngnghiêncứunhậnđược
sựquantâmcủarấtnhiềunhàkhoahọcvàcácnhómnghiêncứuđếntừnhiều
lĩnhvựcnghiêncứukhácnhaunhưnhậndạngmẫu(PatternRecognition),học
máy(MachineLearning),thốngkê(Statistics),sinhtrắchọc(Biometrics).
Hệthốngnhậndạngkhuônmặtlàmộtcôngnghệcókhảnăngxácđịnhhoặc
xácminhmộtngườitừhìnhảnhkỹthuậtsốhoặcmộtkhunghìnhvideotrong
mộtvideo.Cáchệthốngnhậndạngkhuônmặtcónhiềucáchthứchoạtđộng,
nhưngnóichung,chúnghoạtđộngbằngcáchsosánhcácđặcđiểmkhuônmặt
đượcchọntừhìnhảnhđãchovớikhuônmặttrongcơsởdữliệu.Nócũngđược
môtảnhưmộtứngdụngdựatrêntrítuệnhântạovềsinhtrắchọccóthểnhận
dạngmộtngườiduynhấtbằngcáchphântíchcácmẫudựatrênkếtcấuvàhình
dạngkhuônmặtcủangườiđó.Hệthốngnhậndạngkhuônmặtcómộtsốlợithế
sovớicácphươngthứcsinhtrắchọckhácnhưcáchệthốngnhậndạngvântay
(FingerprintRecognition)vànhậndạngmốngmắt(IrisRecognition):
- Mộthệthốngnhậndạngkhuônmặtkhôngđòihỏiphảicósựtươngtác
trựctiếpgiữađốitượngđượcnhậndạngvàhệthống.
- Việcthunhậndữliệuchoqtrìnhnhậndạngmộtkhnmặtdễthựchiện
nsovớithunhậncácđặcđiểmsinhtrắchọckc(dấuntay,mốngmắt).
- Dosựrađời,pháttriểnmạnhmẽcủacácmạnghội(Facebook,
Instagram,Twitter,…),cáctrangweb,ứngdụngchiasẻdữliệuđaphương
tiện (Youtube, Zalo, …) cùng với các thiết bị chụp hình thông minh
(Smartphone,Ipad,…)màdữliệuvềkhuônmặtphổbiếnhơnsovớicácđặc
8
trưngkhác.
- Từkhuônmặtcủamộtngườichúngtacóthểkhaithácnhiềuthôngtin
liênquanđếnngườiđóchẳnghạnnhưgiớitính,màuda,sứckhỏe,độtuổi,
cảmxúc,…
1.2.1. Khái quát về hệ thống nhận dạng mặt người
Đểgiảiquyếtbàitoánnhậndạngkhuônmặt,chúngtacầnápdụngcác
côngnghệtiêntiếnvềthịgiácmáy(ComputerVision),xửảnh(Image
Processing),máyhọc(MachineLearning)trítuệnhântạo(cụthểcác
mạnghọcsâu–DeepLearning).Thịgiácmáy(ComputerVision)làmộttrong
nhữnghướngnghiêncứutrọngtâmcủangànhKhoahọcmáytính,nhằmgiải
quyếtcácbàitoánnhậndạng,giúpmáytínhcókhảnăng“nhìn”vànhậndạng
đốitượngthôngquaảnhchụphayvideo.Đểthểphântíchnhậndạng
đượcđốitượng,cácchươngtrìnhmáytínhphảitríchchọnmộttậpcácđặc
trưng(FeatureVector)haybộmôtả(Descriptors)vềđốitượngtrongảnh.Các
bộmôtảsauđóđượcđốisánh(Matching)vớimộtcơsởdữliệu(CSDL)chứa
cácbảnmẫuđểtìmkiếmđốitượnggầnnhất(còngọiphânlớp).Hình1.1
minhhọakiếntrúcđiểnhìnhcủamộthệthốngthịgiácmáygồm4thànhphần
chính:tìmđiểmkhóa(KeypointDetection),tảđiểmkhóa(Keypoint
Description),lậpchỉmụccácbộtả(DescriptorIndexing)cuốicùng
đốisánh(Matching).Trongđó,haithànhphần:tảđiểmkhóalậpchỉ
mụcchiếmvaitròquyếtđịnhđếnsựthànhcôngcủamộthệthốngnhậndạng
thịgiácmáybởivìchúngảnhhưởngđếnđộchínhxácnhậndạngvàthờigian
xửlý(củaquátrìnhđốisánh).Vớiýnghĩaquantrọngnhưvậy,cácnghiêncứu
vềtríchchọnđặctrưngđốisánhmẫuluônchiếmmộtvaitròquantrọng
trongcáclĩnhvựcthịgiácmáy,xửlýảnhvànhậndạngmẫu.
9
Hình 1.1. Kiến trúc điển hình của một hệ thống thị giác máy
Hiệnnay,vớisựpháttriểnmạnhmcủacácnềntảngphầncứngsự
phổbiếncủacácmạngxãhội,việcchiasẻdữliệuđãđượcthựchiệndễdàng
hơnbaogiờhết.Kếtquảcủasựpháttriểnnàyđólàmộtlượngdữliệukhổng
lồ(ảnh,video,giọngnói,…)đượcchiasẻvàlưutrữtrêncáctrangmạng
hội(Facebook,GooglePlus,Twitter,…).Nhờnguồndữliệukhổnglồ
này,cácthuậttoánmáyhọcvàcụthểlàtrítuệnhântạomạnghọcsâu(Deep
Learning)đãnhiềutiếnbộvượtbậc,cóthểứngdụngđểgiảiquyếtnhiều
bàitoánkhóđãtồntạitừnhiềunămtrướcđây.Mộttrongnhữngthànhquả
củasựpháttriểnnàylàbàitoándòtìmvànhậndạngkhuônmặt.
1.2.2. Những khó khăn của bài toán nhận dạng khuôn mặt người
Bàitoánnhậndạngmặtngườibàitoánđãđượcnghiêncứutừnhững
năm70.Tuynhiênviệcxâydựngmộthệthốngnhậndạngmặtngườihoàn
toàntựđộngvớikhảnăngnhậndạngchínhxáccaothựcsựlàmộttháchthức
đốivớicácnhómnghiêncứuvàcácnhàkhoahọc.Điềunàylàdocácyếutố
chủquankháchquanlàmảnhhưởngtớiquátrìnhthunhậnảnhtạora
cácbứcảnhcósựkhácnhaurấtlớncủacùngmộtkhuônmặt.Cácyếutốchủ
yếuảnhhưởngtớiđộchínhxáccủamộthệthốngnhậndạngkhuônmặtcóthể
kểđếnnhưsau:
- Về tư thế, góc chụp:ảnhchụpkhuônmặtthểbịthayđổirấtnhiều
dogócchụpgiữacameravàkhuônmặt.Vídụnhưchụpthẳng,chụpnghiêng
bêntrái45 haynghiêngbênphải45 ,chụptừtrênxuống,chụptừdướilên,
0 0
Dòtìm
điểmkhóa
Môtảđiểm
khóa
Lậpchỉmục
cácbộmôtả
CSDL
ảnh
Dữliệuđã
lậpchỉmục
Ảnhđầuvào
Đốisánh
Cácứngdụng
LuồngxửlýOffline
LuồngxửlýOnline
10
…việcnhậndạngcácảnhcógócchụpthẳngcókếtquảtốthơnnhiềusovới
cácảnhđượcchụpởgócnghiênglớnhơn45 .
0
- Sự xuất hiện hoặc thiếu một số thành phần của khuôn mặt:cácđặc
trưngnhưriamép,râu,mắt,nốtruồi,…cóthểxuấthiệnhoặckhông.Vấnđề
nàylàmchoquátrìnhnhậndạnggặpkhókhănhơnrấtnhiều.
- Sự biểu cảm của khuôn mặt:ởcáctrạngtháibiểucảmkhácnhaucủa
khuônmặt(cười,khóc,tứcgiận,…)cóthểlàmchocácbộphậntrênkhuôn
mặtbịbiếndạngvàdẫntớikếtquảnhậndạngsai.
- Sự che khuất: khuônmặtthểbịchekhuấtbởicácvậtchắntrước
mặthoặccácphụkiệntrênkhuônmặt(khẩutrang,kínhmắt)vàlàmchoquá
trìnhnhậndạngbịsai.
- Điều kiện của ảnh:ảnhđượcchụptrongcácđiềukiệnkhácnhauvề
điềukiệnchiếusáng,chấtlượngcamera(camerakỹthuậtsố,camerahồng
ngoại,…)ảnhhưởngrấtnhiềuđếnchấtlượngảnhkhuônmặt.Vídụ,mộtsự
thayđổinhỏtrongđiềukiệnánhsángluônđượcbiếtgâyratácđộnglớn
đếnkếtquảcủanó.Nếucườngđộchiếusángxuhướngthayđổithìngay
cảkhicùngmộtcánhânbịđượcchụpvớicùngmộtcảmxúcvàvớibiểucảm
thếkhuônmặtgầnnhưgiốnghệtnhau,kếtquảxuấthiệnthểxuất
hiệnkhákhácnhau.
1.2.3. Một số phương pháp nhận dạng mặt người
Hiệnnaycókhánhiềuphươngphápgiúpxácđịnhkhuônmặtngười.Dựa
vàotínhchấtcủacácphươngphápxácđịnhkhuônmặtngườithểchia
thành2hướngtiếpcậnchính:
- Hướng tiếp cận dựa trên thị gi_c m_y (khôngdùngcácmạngnơron
nhânchập)vớimôhìnhchuẩngồm:tríchchọncácđặctrưngkhuônmặt,phân
lớp(ápdụngcáckỹthuậtmáyhọc).
11
- Hướng tiếp cận dựa trên c_c mạng nơron nhân chập:quátrìnhtrích
chọncácđặctrưngkhuônmặtđượcthựchiệnbằngcácmạngCNNnhân
chập,theosaubởiquátrìnhphânlớpbằngcáckỹthuậtK-NNhoặcSVM.
1.2.3.1. Hướng tiếp cận dựa trên thị giác máy
Theohướngtiếpcậndựatrênthịgiácmáycóthểphânlàm2nhómchính
nhưsau:
- Nhận dạng dựa trên các đặc trưng tổng thể của khuôn mặt
(Appearance based face recognition): nộidungchínhcủahướngtiếpcậnnày
làxemmỗiảnhcókíchthướcRxClàmộtvectortrongkhônggianRxCchiều.
Tasẽxâydựngmộtkhônggianmớichiềunhỏhơnsaochokhibiểudiễn
trongkhônggianđócácđặcđiểmchínhcủamộtkhuônmặtkhôngbịmấtđi.
Trongkhônggianđó,cácảnhcủacùngmộtngườisẽđượctậptrunglạithành
mộtnhómgầnnhauvàcáchxacácnhómkhác.Mộtsốphươngphápthường
đượcsửdụngtronghướngtiếpcậnnày:
Phương pháp trích chọn các đặc trưng tuyến tính:PCA,LDA.
Phương pháp trích chọn các đặc trưng phi tuyến: KPCA,
ISOMAP.
Ưuđiểmcủaphươngphápnàyđókhôngcầnphảiphântíchnhiềuvề
đặcđiểmkhuônmặt.Dođó,phươngpháptiếpcậnnàytươngđốidễcàiđặt
hơnvàcũngkháhiệuquảtrongviệcnhậndạng.
Nhượcđiểmcủaphươngpháptiếpcậnnày:tùytheophươngphápsửdụng
12
(PCA,LDA)đểđánhgiánhượcđiểm.
- Nhận dạng dựa trên các đặc trưng của các phần trên khuôn mặt
(Feature based face recognition):
Đâylàphươngphápnhậndạngkhuônmặtdựatrênviệcxácđịnhcácđặc
trưnghìnhhọccủacácchitiếttrênmộtkhuônmặt(vịtrí,diệntích,hìnhdạng
củamắt,mũi,miệng,…)mốiquanhệgiữachúng(khoảngcáchcủahai
mắt,khoảngcáchcủahailôngmày,…).Mộtsốphươngphápđượcdùngcho
loạinày:
Nhận dạng 2D:ElasticBunchGraph,ActiveAppearanceModel.
Nhận dạng 3D:3DMorphableModel.
Ưuđiểmcủaphươngphápnàynógầnvớicáchconngườisửdụng
đểnhậnbiếtkhuônmặt.Hơnnữavớiviệcxácđịnhđặctínhvàcácmốiquan
hệ,phươngphápnàycóthểchokếtquảtốttrongcáctrườnghợpảnhcónhiều
nhiễunhưbịnghiêng,bịxoayhoặcánhsángthayđổi.
Nhượcđiểmcủaphươngphápnàycàiđặtthuậttoánphứctạpdoviệc
xácđịnhmốiquanhệgiữacácđặctínhđòihỏicácthuậttoánphứctạp.Mặt
khác,vớicácảnhkíchthướcbéthìcácđặctínhsẽkhóphânbiệtdođókhó
tínhtoánđượccácđặctrưngtrênkhuônmặt.
1.2.3.2. Hướng tiếp cận dựa trên các mạng nơron nhân chập
Theohướngtiếpcậndựatrêncácmạngnơronnhânchập(địnhhướngra
quyếtđịnh)cómộtsốhướngtiếpcậnnhưsau:
- SVM (Support Vector Machine) phương pháp nhận dạng do
13
VladimirN.Vapnikđềxuấtnăm1995[26].SVMlàphươngphápnhậndạng
dựatrênlýthuyếthọcthốngkêngàycàngđượcsửdụngphổbiếntrongnhiều
lĩnhvực,đặcbiệtlàlĩnhvựcphânloạimẫuvànhậndạngmẫu.Đồngthời
nhiềutínhnăngưuviệtsovớicácphươngphápcổđiểnkhác:dễdàngxửlý,
xửlývớitínhổnđịnhcaotrêndữliệuphứctạp,thểsốchiềulớn
quantrọnghơncảlàkhảnăngxửlýtổngquát.
- Mạng nơronđược sửdụng rộngrãi trong cáchệthốngnhậndạng
khuônmặt.Kỹthuậtmạngnơronmôphỏnghoạtđộngcủacácnơrontrongbộ
nãongười.Mạngnơroncókhảnăngđiềuchỉnhcáctrọngsốdựatrêncácmẫu
họctrongquátrìnhhuấnluyện.Kếtquảlàmạngđạtđượchiệuquảcaotrong
việcphânloạicáclớp,dựatrêndữliệumẫukhảtáchtuyếntínhhoặcphi
tuyến.Chínhvìvậy,luậnvănlựachọngiảiphápsửdụngmạngnơronchoquá
trìnhnhậndạngphânloại.Nhượcđiểmcủaphươngphápnàycàiđặt
thuậttoánphứctạpdoviệcxácđịnhmốiquanhệgiữacácđặctínhđòihỏi
cácthuậttoánphứctạp.Mặtkhác,vớicácảnhkíchthướcbéthìcácđặctính
sẽkhóphânbiệt[1].
1.3. C_c ứng dụng của nhận dạng mặt người
Bàitoánnhậndạngkhuônmặtluônlàmộtbàitoánnhậnđượcsựquantâm
rấtlớntừcácnhómnghiêncứuvàcácnhàkhoahọcvìtínhphứctạpvàđòihỏi
khảnăngnhậndạngchínhxáccaocủahệthốngcũngbởinhữngứng
dụnghếtsứcthiếtthựccủađốivớiđờisốngconngườihiệnnay.Mộtsố
nhữngứngdụngthựctếcủahệthốngnhậndạngkhuônmặtcóthểkểđếnnhư:
- Hệthốnggiaotiếpthôngminhgiữangườivàmáy:conngườicóthểtạo
racáchệthốnggiaotiếpgiúpchonhữngngườibịkhuyếttậthaynhữngngười
dùngngônngữbằngtaythểtrao đổi,giaotiếpvớinhữngngườibình
thường,…
14
- Cáchệthốngtracứuthôngtin,nhậndạng,giámsátbằngcamerađể
pháthiệntộiphạmtạicáckhuvựccôngcộng.
- Cáchệthốngquansát,theodõibảovệconngười.Cáchệthống
camerasẽxácđịnhđốitượngtheodõingườiđóxemhọviphạm
không,…
- Hệthốngđiềukhiển,ravàocáccơquanvănphòngkếthợpthêmvớihệ
thốngvântayvàmốngmắt:chophépnhânviênvàoracácnơiquantrọngmà
khôngcầnphảinhớtênđăngnhập,mậtkhẩuhaydùngthẻchỉcầnxác
thựcthôngquakhuônmặt.
- Hệthốngtìmkiếmconngườidựatrêncơsởdữliệucósẵn.
- Cáchệthốngphântíchcảmxúckhuônmặtconngười.
- Cáchệthốngkiểmtracácđặctrưngtrênkhuônmặtdựavàocácloại
thẻthôngminhtíchhợpsẵncácđặctrưngcủangườisửdụngtrênđó.Khibị
ngườikhácsửdụngđểtruycập,hệthốngsẽđượcyêucầukiểmtrathôngtin
củangườidùngvớithôngtintrênthẻđểbiếtđâyphảichủthẻhay
không.
- CáchệthốnglưutrữthẻATM.
- Hệthốnglưutrữhìnhảnhtrongđiệnthoạidiđộng:xácđịnhkhuônmặt
ngườivàdựavàocácđặctrưngcủatừngkhuônmặtđểsắpxếp,lưutrữgiúp
chongườidùngdễdàngtìmthấyhìnhảnhtrongquátrìnhsửdụng.
- Thẻcăncước,chứngminhnhândân(FaceIdentification).
15
- Cáchệthốnganninhsânbay,xuấtnhậpcảnhdùngđểxácthựcngười
xuấtnhậpcảnhvàkiểmtraxemđóphảilàtộiphạm,haynhânvậtkhủng
bốkhông.
- Hệthốngkiểmtrangườiláixesửdụngđồuốngcồn,ngủgật
hoặcmấttậptrunghaykhôngvàhỗtrợthôngbáochongườiláikhigặpnguy
hiểm.
- Cáchệthốngtronglĩnhvựctựđộnghóa,điềukhiểnrobot.
- v/v…
1.4. Một số phần mềm thương mại liên quan
Mộtsốphầnmềmvớikhảnăngnhậndạngkhuônmặtnổibậtvàđộchính
xáccaobaogồm:
- digiKam (KDE):https://kde.org/applications/graphics/digikam/
- iPhoto (Apple):https://www.apple.com/macos/photos/
- OpenCV (OpenSource):https://opencv.org/
- PhotoshopElements (AdobeSystems):
https://www.adobe.com/products/photoshop-elements.html
- Picasa (củaGoogle):https://picasa.google.com/
- PictureMotionBrowser (Sony):
https://www.sony.com/electronics/support/downloads/W0005134
hoặchttp://support.d-imaging.sony.co.jp/www/disoft/int/pmb/index2.html
- WindowsLivePhotoGallery (Microsoft):http:// gallery.live.com /
1.5. Phạm vi và giới hạn của đề tài
TrongphạmvicủađềtàichúngtôixâydựnghệthốngAInhậndạng
khuônmặtvớisựtậptrungvàoviệchọccáckhuônmặtChâuÁ,cụthể
khuônmặtcủangườiViệtNamnhằmcảithiệnđộchínhxáccaocủahệthống
16
nhậndạngkhuônmặtngườihiệnnay.
1.6. Kết luận chương 1
Trongchươngnày,cácvấnđềtổngquanvềAI,bàitoánnhậndạngkhuôn
mặt,mộtsốphươngpháp,cácứngdụngvànhữngkhókhăncủabàitoánnhận
dạngkhuônmặtđãđượcchúngtôitrìnhbày.Chúngtôicũngđãgiớithiệu
mộtsốsảnphẩmthươngmạiđượcứngdụngrộngrãitrongngoàinước.
Cácđánhgiátổngquannhưtrênchothấylĩnhvựcbàitoánnàycórấtnhiều
ứngdụngtiềmnăngtrongthựctế.
Chươngtiếptheocủaluậnvănsẽtrìnhbàychitiếtvềcơsởlýthuyếtcủa
bàitoánnhậndạngkhuônmặt.
17
Chương 2:
CƠ SỞ LÝ THUYẾT
2.1. Kiến trúc tổng qu_t hệ thống
Đểgiảiquyếtbàitoántìmkhuônmặtvànhậndạngkhuônmặt,chúng
tacầnápdụngcáccôngnghệtiêntiếnvềthịgiácmáy(ComputerVision),xử
ảnh(ImageProcessing),máyhọc(MachineLearning)trítuệnhântạo
(cụthểlàcácmạnghọcsâu–DeepLearning).
Trênhình2.1,cáckhunghìnhthunhậntừcamerasẽđượctruyềnvào
moduledòtìmkhuônmặtđểtríchxuấtcácvịtrítiềmnăngchứakhuônmặt.
Mỗikhuônmặtsauđóđượcxửđểchuẩnhóabằngcáchhiệuchỉnhđộ
nghiêng,thunhỏvềmộtkíchcỡ(thườnglà150x150).Cácảnhkhuônmặtsau
khichuẩnhóađượcchoquamoduletríchchọnđặctrưngnhằmtìmracácđiểm
đặctrưngnổibậtcủatừngkhuônmặt.Thôngthường,kếtquảcủabướcnàysẽ
choramộtvectorcácgiátrịsốtảcácđặctrưnghệthốngtríchchọn
được.Đểcóthểphânbiệthàngngànkhuônmặtkhácnhau,chúngtôiápdụng
mạnghọcsâu(DeepLearning)đểtríchchọncácđặctrưngnày.Cácvectorđặc
trưngđósẽđượchuấnluyệnbởimộtthuậttoánmáyhọc(MachineLearning)
đểphânlớpcáckhuônmặtvềcácđốitượngkhácnhau.Thuậttoánchúngtôi
chọnởđâylàmáyhỗtrợvector(SupportVectorMachine)vìcótốcđộxử
nhanh,cóthểhoạtđộngtốtngaycảkhitậpdữliệuhuấnluyệnnhỏ.Cácbước
môtảtrênđượcthựchiệnmộtlầnđểhuấnluyệncácthamsốcủahệthống.Khi
đưavàohoạtđộngtrongthựctế(Online),chúngtaápdụngquytrìnhtươngtự
chođếnbướctríchchọnđặctrưng.Sauđó,sẽthựchiệnquátrìnhđốisánhvà
phânlớpđểdựđoánnhãncủacáckhuônmặt.Cuốicùng,mộtbướcxácthựcsẽ
đượcthựchiệnđểđưaradanhsáchnhậndạngcuốicùng.
18
Hình 2.1. Sơ đồ khối thuật toán dò tìm và nhận dạng khuôn mặt
Hiệnnay,vớisựpháttriểnmạnhmcủacácnềntảngphầncứngsự
phổbiếncủacácmạngxãhội,việcchiasẻdữliệuđãđượcthựchiệndễdàng
hơnbaogiờhết.Kếtquảcủasựpháttriểnnàyđólàmộtlượngdữliệukhổng
lồ(ảnh,video,giọngnói,…)đượcchiasẻvàlưutrữtrêncáctrangmạng
hội(Facebook,GooglePlus,Twitter,…).Nhờnguồndữliệukhổnglồ
này,cácthuậttoánmáyhọcvàcụthểlàtrítuệnhântạomạnghọcsâu(Deep
Learning)đãnhiềutiếnbộvượtbậc,cóthểứngdụngđểgiảiquyếtnhiều
bàitoánkhóđãtồntạitừnhiềunămtrướcđây.Mộttrongnhữngthànhquả
củasựpháttriểnnàylàbàitoántìmkhuônmặtvànhậndạngkhuônmặt.
Tuynhiên,hạnchếcủakỹthuậtnàyđólàcầnmộtmáytínhcókhảnăngxửlý
cựcmạnh.Đâylàđiềuchưakhảthiđểtriểnkhaitrênphạmvịrộngtrongthực
tế.Hơnnữa,nhiềukhuônmặtxuấthiệntrongảnhvớiđộphângiảirấtthấp.
Chodùchúngtadòtìmđượccáckhuônmặtđó,việcnhậndạngđólàaisẽlà
rấtkhókhăn.vậy,trongphạmvicủađềtàinày,chúngtôiđềxuấtmột
Hường
Liên
Đình
Quyên
Mai
Dò tìm
khuôn mặt
Trích chọn
đặc trưng
Học đặc
trưng
Xác
thực
Hường
Liên
Đình
Quyên
Mai
Đối sánh
phân lớp
M_y học (SVM)
Khung hình từ video
Kết quả nhận dạng
19
cáchtiếpcậnphùhợphơnkhaitháccácđặctrưngcủakhuônmặtngười
châuÁ.
2.2. Tình hình nghiên cứu trong và ngoài nước
Vớisựpháttriểncủathịgiácmáytính(ComputerVision)đãcórấtnhiều
phươngphápnhậndạngkhuônmặtđượcnghiêncứuápdụng.Mụctiêu
chungcủacácphươngphápnàylàxâydựngmộtmôhìnhhệthốngnhậndạng
khuônmặtvớiđộchínhxáccao.Hiệnnayrấtnhiềuphươngphápnghiên
cứunhằmnângcaohiệusuấtnhậndạngvàtốiưuhóahệthống.
Có2phươngphápnhậndạngkhuônmặtphổbiếnhiệnnaylànhậndạng
dựa trênđặctrưngcủa cácphầntửtrênkhuônmặt nhưbiếnđổiGabor
WaveletmạngNeural,SVM(SupportVectorMachine),…nhậndạng
dựatrênxéttổngthểtoànkhuônmặtnhưphươngphápPCA,LDA,LFA[3]
[2].Trongđó,PCAphươngpháptríchrútđặctrưngnhằmgiảmsốchiều
củaảnhtuyđơngiảnnhưngmanglạihiệuquảtốt.Nhậndạngkhuônmặt
dùngPCAkếthợpvớimạngnơronphươngphápmanglạihiệuquảnhận
dạngcaobởipháthuyđượcưuđiểmcủaPCAmạngnơron[4].Hệ
thốnghoạtđộngổnđịnhvàcótínhthíchnghicaokhidữliệuđầuvàothayđổi
nhiều.Bêncạnhđó,nhậndạngkhuônmặtdựatrêncácđặctrưngcủacác
phầntửtrênkhuônmặtcũngthuhútđượcnhiềunhàkhoahọcnghiêncứu.
Sang-KiKim,YounJungPark,Kar-AnnToh,SangyounLeeđãsửdụng
phươngphápSVM(SuportVectorMachine)[5]đểnhậndạngmặtngười.
Nhómtácgiảđãđưaramộtgiảiphápứngdụngđộphântángiữacáclớp
(margin-based)(độphântánđượctínhbởikhoảngcáchmặtphẳngphâncách)
vàquytrìnhđiềutiết(regularizationprocess)đểgiảiquyếtnhữngvấnđềcủa
phươngphápLDA truyềnthống.Trênhết,nhómtácgiảđãthiếtkếlạima
1
trậnđộphântángiữacáclớp(Between-ClassScattermatrix)dựatrênlề
(marginkhoảngcáchphântáchtừ1lớpđếnmặtphẳngphântách)của
phươngphápSVMđểphântáchcácđặctrưngmộtcáchhiệuquảvàđángtin
1
LinearDiscriminantAnalysis(Phươngphápphântíchphântáchtuyếntính)
20
cậy.Sauđó,quátrìnhđiềutiếtsẽđượcápdụnglênmatrậnphântántrong
cùng1lớp(within-classscattermatrix).Cácthínghiệmmởrộngđượcdùng
đểsosánhphươngphápđềxuấtvớinhiềubiếnthểkháccủaphươngpháp
LDA,sửdụngbộdữliệucủaFERET,ARvàCMU-PIE.
ZhimingLiu,ChengjunLiuđãgiớithiệumộtphươngphápnhậndạng
khuônmặtmớisửdụngviệctrộnmàu(FusingColor)[6],thôngtinvềkhông
giancụcbộvàtầnsốtoàncục.Cụthểhơn,phươngphápđềxuấtsẽhòatrộn
cácđặctrưngtừkhônggianmàuhybrid,cácmẫunhịphâncụcbộ(LBP)và
biếnđổicô-sinrờirạc(DCT)củahìnhảnhđầuvào.
SHU Chan, DING Xiaoqing, FANG Chi sử dụng đặc trưng HOG
(HistogramofOrientedGradient)[7]choviệcnhậndạngkhuônmặt.
K.RubaSoundarvàK.Murugesanđãsửdụngkỹthuậtbảo toànđặc
trưng toàn cục phân tích phân tách tuyến tính (Linear Discriminant
AnalysisLDA)[8]đểtríchchọncácđặctrưngphânlớp,giảmkíchthước
ảnhđầuvàomanglạikếtquảhìnhảnhkhuônmặtđượccảithiện.
OmkarM.Parkh,AndreaVedaldiAndrewZissermanđãdùngmạng
nơrontíchchập(ConvolutionalNeuralNetworks–CNNs)[9]đểnhậndạng
khuônmặt.Mụctiêucủaphươngphápnhậndạngkhuônmặttừmộtbức
ảnhhoặctừmộttậpcáckhuônmặtđượctheodõitrongmộtvideo.Đầutiên,
họđưaramộttậpdữliệuquyrấtlớn(2,6triệuhìnhảnhvớihơn2,6K
người).Tiếptheo,nhómtácgiảgiớithiệumộtmạngnơrontíchchậpvớimột
quytrìnhhuấnluyệntươngứngđểđạtđượcđộchínhxácnhậndạngkhuôn
mặttươngđươngcủakếtquảtrêncáctiêuchuẩnLabeledFacesintheWild
(LFW)vàYouTubeFacesDataset(YFD).
FlorianSchroff JamesPhilbin,DmitryKalenichenkovà đãtrìnhbàymột
hệthốngđượcgọilàFaceNet[17],hệthốngđósẽtrựctiếpánhxạtừhìnhảnh
khuônmặtđếnmộtkhônggianEuclide.
Trênsởnghiêncứuvềbàitoánnhậndạngkhuônmặtngười,luậnvăn
đãnghiêncứucáckỹthuậthọcsâu,cácmạngnhânchậpvàápdụngcáckỹ
thuậthọcsâutrongviệcxâydựnghệthốngtrítuệnhântạonhậndạngkhuôn
21
mặttrêncơsởđịnhhướnghọccácđặctrưngkhuônmặtcủangườiChâuÁ,cụ
thểlàngườiViệtNam.
2.3. Mạng nơron sinh học
Đốivớingànhsinhhọcnghiêncứuvềbộnãongườinơronlàmộtđơnvị
xửlýthôngtinnhỏnhất,bộnãoconngườicótrungbìnhkhoảng86tỉnơron
kếthợplàmviệcvớinhaumộtcáchsongsongvàphứctạp,giúpconngườicó
thểsuynghĩ,học,nói,...vàlàmnhữngcôngviệckhác.
Trongbộnãoconngườicókhoảng10 –10 tếbàothầnkinhđượcgọilà
11 12
cácnơronvàmỗinơroncóthểliênkếtvới10 nơronkhácthôngquacáckhớp
4
nốithầnkinh(synapse).Cácnơroncấutrúcchứcnăngtươngđốiđồng
nhất,ngoàirachúngcònnhữngkhảnăngcáctếbàokháckhông
được,đólàkhảnăngnhận,xửlývàtruyềncáctínhiệuđiệnhóatrêncácđường
nơron,cácconđườngnàytạonênhệthốnggiaotiếpcủabộnão.
Hình 2.2. Cấu trúc của một nơron sinh học điển hình
2
Quanghiêncứucủacácnhàkhoahọccấutrúccủamộtnơronsinhhọc
điểnhìnhtrongbộnãoconngườiđượcchiathànhbaphầncơbản:
- Thân tế bào (cell body):tổnghợpcáctínhiệuđếnđểtạođầuvào.
2
https://www.xenonstack.com/blog/artificial-neural-network-applications/
22
- Các nhánh tín hiệu vào hình cây (dendrites):thunhậnthôngtintừcác
tếbàothầnkinhkhác.
- Sợi trục thần kinh ra (axon): đưatínhiệuratruyềntớicácnơron
khácthôngquacáckhớpkếtnối(synapse).
Nhưvậynơronsinhhọctrongnãobộconngườihoạtđộngnhưsau:Các
nhánhvàohìnhcâynhậnthôngtintừcáctếbàothầnkinhkháctruyềnđến
thântếbào.Thântếbàotổnghợpxửchocáctínhiệuđira.Sợitrục
truyềntínhiệuratừthântếbàonàysangnơronkhác.Kếtnốigiữasợitrục
củanơronnàyvớinhánhhìnhcâycủanơronkhácgọisynapse.Hệthống
dâythầnkinhtiếpnhậntạothànhmộtmạnglướidàyđặcxungquanhthântế
bào(chiếmdiệntíchkhoảng0.25mm ).Chúnglàđầuvàođểđưacáctínhiệu
2
điệnđếnthântếbào.Thântếbàocónhânbêntrongsẽtổnghợpcáctínhiệu
vàovàlàmthayđổiđiệnthếcủabảnthânnó.Khiđiệnthếnàyvượtquámột
mứcngưỡngthìnhântếbàosẽkíchthíchđưamộtxungđiệnratínhiệu
truyềnxuốngsợitrụcđếncácnơronkhác.
Quaquátrìnhtìmhiểu,nghiêncứucấutrúchoạtđộngcủabộnão
người,cácnhàkhoahọcđãvàđangxâydựngvàpháttriểncácmôhìnhxửlý
thôngtinmôphỏnghoạtđộngcủabộnãongười.Đóchínhlàhìnhmạng
nơronnhântạo.
2.4. Mạng nơron nhân tạo
Máytínhrấtgiỏitrongviệcgiảicácbàitoánvàthuậttoán,nhưngthường
thìthếgiớikhôngthểdễdàngđượcđịnhnghĩabằngthuậttoántoánhọc.
Nhậndạngkhuônmặtvàxửlýngônngữlàmộtvàivídụvềcácvấnđềkhông
thểdễdàngđịnhlượngthànhthuậttoán,tuy nhiênnhữngnhiệmvụnày
23
khôngthựcsựquantrọngđốivớiconngười.Mạngnơronnhântạo(Artificial
NeuralNetworksANN)rađờixuấtpháttừýtưởngphỏnghoạtđộng
củabộnãoconngười.Chìakhóacủamạngnơronnhântạothiếtkếcủa
chúngchophépchúngxửlýthôngtintheocáchtươngtựnhưbộnãosinhhọc
củaconngười,bằngcáchlấycảmhứngtừcáchthứchoạtđộngcủahệthống
thầnkinhcủaconngười.Điềunàylàmchochúngtrởthànhcôngcụhữuích
đểgiảiquyếtcácvấnđềnhưnhậndạngkhuônmặt,điềumàbộnãosinhhọc
củaconngườicóthểlàmdễdàng.
Mạngnơronnhântạomộthệthốngđượcthiếtkếđểhoạtđộnggiống
nhưbộnãocủaconngười.Quátrìnhxửthôngtincủaconngườidiễnra
thôngquasựtươngtáccủahàngtỷtếbàothầnkinhđượckếtnốivớinhaugửi
tínhiệuđếncáctếbàothầnkinhkhác.Tươngtựnhưbộnãocủaconngười,
mạngnơronmộtmạnglướicáctếbàothầnkinhnhântạo,nhưđượctìm
thấytrongbộnãocủaconngười,đểgiảiquyếtcácvấnđềvềtrítuệnhântạo
nhưnhậndạnghìnhảnh.Chúngcóthểlàmộtthiếtbịvậtlýhoặccáccấutrúc
toánhọc.Nóicáchkhác,mạngnơronnhântạolàmộthệthốngtínhtoánsong
songbaogồmnhiềuthànhphầnxửlýđơngiảnđượckếtnốiđểthựchiệnmột
nhiệmvụcụthể.
Mạngnơronnhântạobaogồmnhiềunơronđộclậpliênkếtvớinhau.
Nơronnhântạođượclấycảmhứngtừnơronsinhhọc.Mộtnơronnhântạo
phảnánhcáctínhchấtcơbảncủanơronsinhhọc.Mỗinơronnhântạolàmột
đơnvịxửthôngtinlàmsởchohoạtđộngcủamộtmạngnơron.
chứcnăngnhậnnhiệuvào,tổnghợpxửcáctínhiệuvàođểnhtín
hiệura.
2.4.1. Mô hình toán học mạng nơron nhân tạo
hìnhtoánhọccủamạngnơronnhântạođượcđềxuấtbởinhàthần
24
kinhhọcWarrenMcCullochvànhàlogichọcWalterPittsvàonăm1943với
bàibáo“ALogicalCalculusofIdeasImmanentinNervousActivity”[27].
Nhómtácgiảđãmôtảcáchthứccácnơronhoạtđộngvàhọđãtiếnhànhxây
dựngmộtmạngnơronđơngiảnbằngcácmạchđiện.Cácnơronđâyđược
xemnhưlàcácthiếtbịnhịphânvớingưỡngcốđịnh.Kếtquảcủacácmôhình
nàylàcáchàmlogicđơngiảnvídụnhư“aORb”hoặc“aANDb”.
MôhìnhtoánhọccủamạngnơronthườngđượcgọilànơronM-P,ngoài
racònđượcgọiphầntửxử đượchiệuPE(Processing
Element).
Mộtmạngnơronnhântạogồmcócácthànhphầnnhưsau:trọngsố,hệsố
biasvàhàmkíchhoạt.
Hình 2.3. Mô hình một nơron nhân tạo
Trongđó:
- X
i
với i = 1,2, …, n:Cáctínhiệuđầuvào;
- W
ij
với i = 1,2, …, n:Cáctrọngsốtươngứngvớiđầuvào;
- θ
j
:Ngưỡngkíchhoạtcủanơronj;
- f(.):Hàmkíchhoạt(hayhàmtruyền);
- Y
j
:Tínhiệuracủanơronj;
W
1j
W
2
j
W
ij
X
1
X
2
X
i
.
.
.
∑=W X
ij
j
.
.
.
Summations
f(.)
Transferfunction
Weights
Inputs
θ
j
Threshold
Y
j
Output
b
j
25
- b
j
:Hệsốbias.
Giảithíchcácthànhphầntrên:
- Inputs (dữ liệu vào):Làcáctínhiệuvàocủanơron,cáctínhiệunày
thườngđượcđưavàodướidạngmộtvectormchiều.
- Output (kết quả):Làtínhiệuđầuracủamộtnơron,vớimỗinơronsẽ
cótốiđamộtđầura.
- Weights (Trọng số):Mỗiliên kếtđượcthể hiệnbởimộttrọngsố
(thườngđượcgọilàtrọngsốliênkết ).TrọngsốliênkếtSynaptic Weights
giữatínhiệuvàothứjvớinơronithườngđượckýhiệulàW .Thôngthường,
ij
cáctrọngsốnàyđượckhởitạomộtcáchngẫunhiênthờiđiểmkhởitạo
mạngvàđượccậpnhậtliêntụctrongquátrìnhhọcmạng.
- Threshold (Ngưỡng):Ngưỡngnày thườngđược đưa vào nhưmột
thànhphầncủahàmtruyền.
- Summation Function (Hàm tổng):dùngđểtínhtổngtrọngsốcủatất
cảcácinputđượcđưavàomỗinơronvớitrọngsốliênkết.Hàmtổngcủamột
nơronđốivớininputđượctínhtheocôngthứcsau:
- Transfer Function (Hàm truyền):Hàmnàydùngđểgiớihạnphạm
viđầuracủamỗinơron.Nónhậnđầuvàolàkếtquảcủahàmtổngvàngưỡng
đãcho.Thôngthường,phạmviđầuracủamỗinơronđượcgiớihạntrong
đoạn[0,1]hoặc[-1,1].Cáchàmtruyềnrấtđadạng,thểlàcáchàmtuyến
tínhhoặcphituyến.Việclựachọnhàmtruyềntùythuộcvàotừngbàitoán
kinhnghiệmcủangườithiếtkếmạng,cótácđộnglớnđếnkếtquảcủaANN.
2.4.2. Kiến trúc mạng nơron nhân tạo
Kiếntrúcchungcủamộtmạngnơronnhântạo(ArtificialNeuralNetwork
ANN) gồm 3 thành phần đó là:Input Layer,Hidden Layer Output
26
Layer(Hình2.4).Cácnơrontrongmộtlớpnốivớicácnơronlớptiếptheo,
khôngchophépcócácliênkếtgiữacácnơrontrongcùngmộtlớp.
Trongđó:
- Lớp đầu vào (Input Layer):thựchiệntiếpnhậncácdữliệuvào.
- Lớp ẩn (Hidden Layer):gồmcácnơronnhậndữliệuvàotừcácnơron
ởlớptrướcđóvàchuyểnđổicácdữliệuvàonàychocáclớpxửlýtiếptheo.
Trongmộtmạngnơroncóthểcónhiềulớpẩn.
- Lớp ra (Output Layer):thựchiệnđưadữliệura.
Hình 2.4. Minh họa một kiến trúc mạng nơron điển hình
2.4.3. Một số kiểu kiến trúc mạng nơron nhân tạo
Liênkếtcácđầuvàoracủanhiềunơronvớinhautađượcmộtmạng
nơron.Nguyênlýcấutạocủamộtmạngnơronbaogồmmộthoặcnhiềulớp.
Mỗilớpbaogồmnhiềunơroncùngmộtchứcnăngtrongmạng.Dựavào
sốlớphaysựliênkếtgiữacáclớptrongmạngmàngườitaphânmạngnơron
nhântạothànhcácnhómkhácnhau.
Dựatheosốlớpthìmạngnơrongồmhailoại:mạngmộtlớpmạng
nhiềulớp.
- Mạng một lớp:Mạngmộtlớpcấuthànhtừmộtlớpmạng,vừa
lớpvàovừalàlớpra.
Input
Hidden
Output
27
Hình 2.5. Mô hình mạng nơron một lớp
- Mạng nhiều lớp:đượccấuthànhtừnhiềulớpliênkếtvớinhau,bao
gồmmộtlớpvào,lớpẩnvàmộtlớpra.Trongđó,lớpnhậntínhiệuđầuvào
đượcgọilớpvào.Cáctínhiệuđầuracủamạngđượcsảnsinhbởilớpra
củamạng.Cáclớpnằmgiữalớpvàolớprađượcgọilớpẩn(Hidden
layers).Lớpẩnlàthànhphầnnộitạicủamạng,nókhôngcóbấtkỳtiếpxúc
nàovớimôitrườngbênngoài.Sốlượnglớpẩncóthểdaođộngtừ0đếnmột
vàilớp.Tuynhiênthựctếchothấychỉcầnmộtlớpẩnmạngđãđủđểgiải
quyếtcácbàitoánphứctạp.
Hình 2.6. Mô hình mạng nơron 3 lớp truyền thẳng
Ngoàira,sựliênkếttrongmạngnơrontuỳthuộcvàonguyênlýtươngtác
giữađầuracủatừngnơronriêngbiệtvớinơronkhácvàtạoracấutrúcmạng
nơron.Vềnguyêntắcsẽcórấtnhiềukiểuliênkếtgiữacácnơron,nhưngchỉ
cómộtsốcấutrúcmạngthườnggặpsau:
1
x
2
x
n
x
1
y
2
y
m
y
n
x
m
y
2
y
1
y
1
x
2
x
Lớp
vào
Lớp
ẩn
Lớp
ra
28
- Mạng truyền thẳng (Feedforward Artificial Neural Networks)
Mạngtruyềnthẳngchophéptínhiệutruyềnđimộtchiều,dữliệutcác
nơronđầuvàođếncácnơronđầurachỉđượctruyềnthẳng.Việcxửlýdữliệu
thểmởrộngranhiềulớp,nhưngkhôngcácliênkếtngược.Tứclà,
khôngcácliênkếttừcácđơnvịđầuratớicácđơnvịđầuvàotrongcùng
mộtlớphaycáclớptrướcđó.Mạngtruyềnthẳngđượcsửdụngrộngrãitrong
lĩnhvựcnhậndạngmẫu.
Hình 2.7. Mạng truyền thẳng
- Mạng phản hồi (Feedback Artificial Neural Network): mạng
cáckếtnốitừnơronđầuratớinơronđầuvào(cóchứacácliênkếtngược).
Mạnglưulạicáctrạngtháitrướcđótrạngtháitiếptheokhôngchỉphụ
thuộcvàocáctínhiệuđầuvàomàcònphụthuộcvàocáctrạngtháitrướcđó
củamạng.Mạngphảnhồithườngcónhiềukhảnănghơnmạngtruyềnthẳng.
Hình 2.8. Mạng phản hồi
Tầng vào Tầng ẩn
Tầng ra
Nơron vào
Nơron ẩn
Nơron ra
29
2.4.4. Các ứng dụng của mạng nơron nhân tạo
Mạngnơronnhântạođãđượcứngdụngtrongnhiềulĩnhvựckhácnhau
nhưsosánhvàphânloạimẫu,dựbáovàđiềukhiển,…Mộtsốứngdụngcụ
thểcủamạngnơron[11]:
- Không gian vũ trụ:điềukhiểnmáybaykhôngngườilái,chếđộtựbay
nângcao;môphỏngcácđườngbaycácbộphậncủamáybay;hệthống
điềukhiểncủamáybayvàhệthốngpháthiệnsaihỏng.
- Dự đo_n tài chính kinh tế:Dựđoángiácảbiếnđộngcổphiếu.Dự
đoáncấpsốthờigiantrongthịtrườngtàichính.Cácứngdụngvềđiềuhành
vốn.Dựđoánthịtrườngngoạihối.Đánhgiádựđoánrủiro.Dựđoántình
hìnhkinhtế.Đánhgiáhiệusuấtvốnvayvàvốnđầutư.
- Hoạt động ngân hàng:Dựđoánkhảnăngphásản.Hệthốngthẻđọc
ngânhàng,thẻtíndụng.
- Hệ thống phòng thủ: Hệthốngđiềukhiểnkhítìmmụctiêu,
nhậndạngmụctiêu.Điềukhiểnđườngđạn.Xửlývànhậndạngtínhiệuảnh,
radar,siêuâm.
- Điện tử viễn thông:Dựđoánchuỗimã.Bốtrímạchtíchhợptrênchip.
Phânchlỗimạchtíchhợp.Nhìnbằngmáy.Nhậndạngtổnghợptiếng
nói.Nhậndạngchữviếttayvàchữký.Xửlýảnh,nénảnhvànénsốliệu.Các
dịchvụthôngtintựđộng.Dịchngônngữnóithờigianthực.Hệthốngxử
thanhtoáncủakháchhàng.ĐịnhtuyếnvàchuyểnmạchchomạngATM.
- Qu_ trình sản xuất người m_y: Điềukhiểnquátrìnhsảnxuất.
Thiếtkếphântíchsảnphẩm.Chuẩnđoánvàgiámsátquátrìnhmáymóc.
Hệthốngkiểmđịnh34chấtlượng.Hệthốnglậpkếhoạchvàđiềuhành.Điều
khiểnvậnđộngvàhệthốngnhìncủarobot.
- Y tế:Phântíchtếbàoungthưvú.Phântíchđiệnnãođồ.Thiếtkếbộ
30
phậnthaythế.Tốiưuhoáthờigiancấyghép.tìmđánhgiácáchiện
tượngyhọc.
- Vận tải: Hệthốngchuẩnđoánphanhxetải.Hệthốngđịnhtuyến
lịchtrìnhchocácphươngtiệngiaothông.
- Giải trí:Cáchiệuứngchuyểnđộng,cáctròchơi,…
2.4.5. Huấn luyện mạng nơron
Mạngnơronnhântạophỏngtheoviệcxửlýthôngtincủabộnãongười,do
vậyđặctrưngcơbảncủamạngcókhảnănghọc,khảnăngtáitạocáchình
ảnhvàdữliệukhiđãhọc.Trongtrạngtháihọcthôngtinđượclantruyềntheo
haichiềunhiềulầnđểhọccáctrọngsố.Có3phươngpháphọcphổbiến,mỗi
phươngpháphọctươngứngvớimộtnhiệmvụhọctrừutượng.Đólàhọc
giámsát(SupervisedLearning),họckhônggiámsát(UnsupervisedLearning)
họctăngcường(ReinforcementLearning).Thôngthườngloạikiếntrúc
mạngnàocũngcóthểdùngđượcchocácnhiệmvụ.
2.4.5.1. Học có giám sát
Làquátrìnhhọcđượcthựchiệndướisựthamgiagiámsátcủamộtngười
thầy(ởbênngoàihệthống).Ngườithầynàykiếnthứcvềmôitrườngthể
hiệnquamộttậphợpcáccặpđầuvào-đầurađãđượcbiếttrước.Hệthống
học(ởđâymạngnơron)sẽphảitìmcáchthayđổicácthamsốbêntrong
củamình(cáctrọngsốvàcácngưỡng)đểtạonênmộtánhxạcókhảnăngánh
xạcácđầuvàothànhcácđầuramongmuốn.Sựthayđổinàyđượctiếnhành
nhờviệcsosánhgiữađầurathựcsựđầuramongmuốn.Điểnhìnhcho
phươngphápnàylàmạngnơronlantruyềnngược.
Ví dụ:tronglĩnhvựcnhậndạngmẫu,mộtgiáoviênhoặchuấnluyệnviên
sẽđưaracâutrảlờichomạngnơronvàmạngnơronđưaradựđoántrongkhi
nhậndạng.Sauđó,mạngsosánhdựđoáncủamìnhvớicâutrảlờiđúngcủa
31
giáoviênvàđiềuchỉnhchophùhợpđểcóđượcđầuramongmuốnbằngcách
loạibỏlỗi.
Hình 2.9. Mô hình huấn luyện mạng có giám sát
2.4.5.2. Học không giám sát
Làquátrìnhhọckhôngcầncóngườigiámsáthaychuyêngianào.
Tronghọckhôngcógiámsát,tađượcchotrướcmộtsốdữliệuxvàhàm
chiphícầnđượccựctiểuhóacóthểlàmộthàmbấtkỳcủadữliệuxvàđầura
củamạng,f–hàmchiphíđượcquyếtđịnhbởiphátbiểucủabàitoán.Phần
lớncácứngdụngnằmtrongvùngcủacácbàitoánướclượngnhưhình
hóathốngkê,nén,lọc,phâncụm.
Hình 2.10. Mô hình huấn luyện mạng không có giám sát
2.4.5.3. Học tăng cường
Trongkỹthuậthọccógiámsát,cácgiátrịđầurađượcbiếtchínhxácđối
vớimỗiđầuvào.Tuynhiên,trongthựctếmộtsốtrườnghợpchỉbiếtít
thôngtinchitiết,chẳnghạnmạngchỉbiếtrằnggiátrịđầurathựcsựquácao
haycóthểmạngchỉcóđượcthôngtinphảnhồibáorằngđầurađúnghaysai.
Kỹthuậthọcdựatrênthôngtinđánhgiánàyđượcgọilàkỹthuậthọccủng
Mạng
nơron
Sosánh
Đầuramongmuốn
Đầurathựctế
Hiệuchỉnhtrọngsố
Mạng
nơron
Đầuvào
Đầurathựctế
Hiệuchỉnhtrọngsố
32
cố,thôngtinphảnhồiđượcgọilàtínhiệutăngcường.
Trongkỹthuậthọcnày,cácgiátrịđầurakhôngđượcbiếtchínhxác.Quá
trìnhhọcđượcxâydựngdựatrêncácquansát,mạngđưaraquyếtđịnhbằng
cáchquansátmôitrườngtừbênngoài.
Hình 2.11. Mô hình huấn luyện mạng tăng cường
2.4.6. Mạng nơron MLP và ứng dụng trong nhận dạng ảnh
Mạngtruyềnthẳngnhiềulớp(MLP-MultiLayerPerceptron)một
trongnhữngmạngtruyềnthẳngđiểnhình,thườngđượcsửdụngtrongcáchệ
thốngnhậndạng.
2.4.6.1. Kiến trúc mạng MLP
Cuốithậpniên1950,FrankRosenblattđãpháttriểnmộtmạngnơron
tênlàmạngPerceptron,lấycảmhứngtừnhữngýtưởngtrướcđócủa2cộng
sựWarrenMcCullochWalterPitts.Tronghọcmáy,Perceptronmột
thuậttoánhọccógiámsát(SupervisedLearning)giúpgiảiquyếtcácbàitoán
phânlớpnhịphân.ThuậttoánPerceptronđượcphátminhvàonăm1957tại
phòngthínghiệmCornellAeronauticalbởiFrankRosenblatt,đượctàitrợbởi
VănphòngnghiêncứuhảiquânHoaKỳ(U.SOfficeofNavalResearchtừ
một cơ quan liên quan đến quân sự) .
3
Mộtmạngnơrontruyềnthẳngnhiềulớpbaogồmmộtlớpvào,mộtlớpra
vàmộthoặcnhiềulớpẩn.Môhìnhmạngnơronđượcsửdụngrộngrãinhấtlà
hìnhmạngnhiềutầngtruyềnthẳng.KiếntrúctổngquátcủamạngMLP
3
Theowiki
Mạng
nơron
Tínhiệu
hồitiếp
Đầuvào
Đầurathựctế
Hiệuchỉnhtrọngsố
Tínhiệutăngcường
33
chobởihình2.12.
Hình 2.12. Kiến trúc mạng MLP
4
Trongđó:
Đầuvàolàcácvector(x ,x ,…,x )
1 2 p
Mỗinơrontầngsauliênkếtvớitấtcảcácnơronthuộctầngtrướcđó.
Đầuracủanơrontầngtrướclànơronđầuvàocủatầngliềnsaunó.
HoạtđộngcủamạngMLPđượcmôtảnhưsau:
Tạitầngđầuvàocácnơronnhậntínhiệuvàoxửlý,tínhtổngtrọngsố,gửi
tớihàmtruyềnrồichorakếtquả,kếtquảnàysẽđượctruyềntớicácnơron
4
https://www.researchgate.net/figure/Structure-of-a-one-hidden-layer-MLP-Network_fig1_260321700
Input1
InputLayer
HiddenLayer
Input2
Inputn
OutputLayer
Output1
Outputn
x
1
x
2
x
p
34
thuộctầngẩnthứnhất;cácnơrontạiđâytiếpnhậnnhưlàtínhiệuđầuvào,xử
gửikếtquảđếntầngẩnthứ2,quátrìnhtiếptụcchođếnkhicác
nơronthuộctầngrachokếtquả.
2.4.6.2. Mạng lan truyền ngược (Back-Propagation Network)
Trongphầnnàychúngtôitrìnhbàyvềmạnglantruyềnngượcvàcáccông
dụngcủanótrongmạnghọcsâu.Hình2.13minhhọamộtkiếntrúctổngquát
củamạnglantruyềnngược.
Hình 2.13. Mạng nơron lan truyền ngược
Mạnglantruyềnngượcgồmcó3lớp.Trongđó:
- Lớp vào (Input Layer):sốnodevàothuộctínhcủađốitượngcần
phânlớp.
- Lớp ra (Output Layer):Sốnoderalàsốđặcđiểmcầnhướngtớicủa
đốitượng(giátrịracầnhướngđến–họccógiámsát).
- Lớp ẩn (Hidden Layer):Sốnodeẩnthườnglàkhôngxácđịnhtrước,
nóthườnglàdokinhnghiệmcủangườithiếtkếmạng,nếusốnodeẩn
quánhiềumạngsẽcồngkềnh,quátrìnhhọcsẽchậm,cònnếusốnode
InputLayer
HiddenLayer(s) OutputLayer
Input(s)
Output(s)
35
ẩnquáítlàmmạnghọckhôngchínhxác.
Thuậttoánlantruyềnngượcthuậttoánthườnggặptrongcáchình
mạnghọcsâu(DeepLearning),thuậttoánnàytínhtoánđạohàmthànhphần
phầntrêncácnútcủahình( Convnet,NeuralNetwork).Cácđạo dụ:
hàmthànhphầnnàyđượcsửdụngtrongsuốtquátrìnhhuấnluyệnmạng.
Mụctiêucủathuậttoánbackpropagationlàcungcấpchếtínhtoáncác
vectorđạohàmriêngphầngradientcủahàmmụctiêuđốivớicácthamsố
trongmạngnơron.Việcphátminhramạnglantruyềnngượcmộtkếtquả
quantrọngcủalĩnhvựchọcmáybởitrướcđâyquátrìnhtínhtoánđạohàm
ngượclàmộtvấnđếkháphứctạpvàkhảthi.
2.5. Mạng nơron tích chập (Convolutional Neural Networks – CNNs)
MạngnhânchậpCNNđượcthiếtkếđểđặcbiệtthíchhợpvớicácứng
dụngcủalĩnhvựcthịgiácmáy,xửlýảnhvànhậndạng.Nhưtêngọicủanó,
cácmạngCNNsửdụngcácmặtnạnhânchập(ConvolutionalMasks)cókích
thướcnhỏhơnnhiềukíchthướcảnhđầuvàolàmthànhtốchínhcủamạng
nhằmkhaitháchiệuquảtínhphânbốthôngtincụcbộtrêncácvùngảnh
tínhtươngquancaocủacácđiểmảnhlâncậnnhau.MạngnhânchậpCNN
đầutiênđượcđềxuấtbởiLecuncótêngọilàLeNet5[12]chomụcđíchnhận
dạngcáckýtựsốviếttayvàđãtạoramộthiệunăngvượttrộisovớicáccách
tiếpcậnkháclúcbấygiờ.MộtmạngCNNcũngcócấutạogồmmộttầngđầu
vào,cáctầngẩnvàmộttầngđầura.Trongđó,mỗitầngẩncủamạngCNN
thườngđượcxếpchồngluânphiênbởicáclớpnhưsau(Hình2.14):
- Lớpnhânchập(Convolution):gồmnhiềumặtnạnhânchậpkích
thướcnhỏhơnnhiềusovớikíchthướcảnhđầuvào.Mỗimặtnạnhânchậpsẽ
đượcquéttrêntoànảnhđầuvào(từtrênxuốngdưới,tráisangphải)nhưngcó
36
thểvớimộtbướcnhảy(stride)nàođó(vídụ, ).Cácmặtnạnhân
chậpsẽđóngvaitròlàcácbộtríchchọnđặctrưngvàdovậykếtquảcủaviệc
nhânchậpmộtmặtnạvớiảnhđầuvàosẽchoramộtbảnđồđặctrưng
(FeatureMap)tươngứng.
- Lớpkíchhoạt(Activation):ngaysaulớpnhânchập,chúngtathể
thiếtkếmộtlớpkíchhoạtđểchuẩnhóagiátrịcủacácbảnđồđặctrưng.Tuy
nhiên,kỹthuậtnàylàtùychọn.
- Lớplấymẫu(Pooling/Subsampling):đểxâydựngkhảnănghọcphân
cấpcácđặctrưngcủađốitượng,cácmạngCNNthườngsửdụngkỹthuậtlấy
mẫu(PoolinghaySubsampling)đểgiảmkíchthướccủacácbảnđồđặctrưng.
Thôngthường,lớplấymẫusẽthựchiệnchọnmộtgiátrịtừmỗivùngcókích
thước trongbảnđồđặctrưng.Dođó,kíchthướccủaảnhsaukhilấy
mẫusẽgiảmđimộtnửa.
Hình 2.14. Kiến trúc một mạng CNN điển hình [12]
Mỗinơrontrêntầngẩnthườngđượcthiếtkếđểlàmviệctrênmộtvùng
ảnhnhỏ(vídụcácvùngkíchthước )củaảnhđầuvàonhưngsẽquét
từtrênxuốngdướiđểlàmviệcvớitoànbộcácvùngtrênảnhđầuvào.Kỹ
thuậtnàycònđượcbiếtđếnvớitêngọilàchiasẻtrọngsố(WeightSharings)
giúpgiảmthiểuđángkểsốlượngcácthamsốdùngtrongmạng.Cáctầng
cuốicùng của mộtmạngCNN thường cáctầng kết nốiđầyđủ(Full
Connection)dovậymỗinơrontrêntầngnàysẽkếtnốivớitoànbộcác
5×5
Input 32×32
Convolution Subsamling Convolution Subsamling
Full connection
Gaussian
connection
Output (10)
37
nơroncủaảnhđầurathuộctầngliềntrước.Sốlượngcácnơronđầuracủa
tầngcuốicùngsẽđúngbằngsốlượngcáclớpđốitượngcầnnhậndạngcủa
bàitoán.Ngoàira,mộthàmkíchhoạt(thườnglàSoftmax)sẽđượcápdụng
đểchuẩnhóacácgiátrịđầuracủatầngnày.
Mộtcáchtổngquát,kiếntrúcmộtmạngCNNthườngđượctảdưới
dạngsau:
Trongđó:
- :tầngđầuvào,thườnglàảnhđầuvàocókíchthướccốđịnh
(cóthểlàảnhnhịphân,ảnhđacấpxámhoặcảnhmàu).
- :lớpnhânchập.
- :hàmkíchhoạt,cóthểlàhàm:tanh,ReLUhoặcsigmoid.
- :lớplấymẫu(Pooling/Subsampling)
- :tầngkếtnốiđầyđủ,mỗinơroncủatầngnàysẽkếtnốiđếnmọi
nơroncủaảnhđầuracủatầngliềntrước.
- sốlầnlặplạicáctầngtươngứng.Thôngthường,một
mạngDCNN(DeepCNN)thườngcó và .
Ngoàira,cácmạngCNNcũngrấtthườngđượcmôtảmộtcáchtrựcquan
bằngcáchsửdụngcáckhốihộpnhưsau(Hình2.15):
Hình 2.15. Kiến trúc dạng đồ họa của một mạng CNN
Trongđómỗikhốihộpđượcđặctảbởibathamsố: (width-chiều
38
rộng), (height-chiềucao)và (depth-chiềusâu).Ýnghĩacủabathamsố
đóđượcdiễngiảinhưsau:
- và :môtảkíchthướckhônggiancủaảnh(spatialplaneimage)hay
cácbảnđồđặctrưng(featuremaps).
- :thamsốchiềusâu,tuỳtừngtrườnghợpýnghĩakhácnhau.
Nếu khốihộpđầutiên(inputdata) thì mangý nghĩasố kênhmàu
(channels)củaảnh.Ví dụ:vớiảnhmàuthì ,ảnhđacấpxámthì .
Từkhốihộpthứhaitrởđithì mangýnghĩasốlượngcácmặtnạlọc
(filters)đượcsửdụngtronglớpnhânchập.Chúýrằngbảnthânmỗibộlọc
(filter)cũnglạilàmộtkhốihộpcókíchthước3chiều: trongđó và
kíchthướckhônggianbộlọc(spatialplane),thườngđượcchọnbằng
nhau (ví dụ hoặc ) còn được gọi trường tiếp nhận
(receptivefield);còn thamsốchiềusâucủabộlọcgiátrịđúngbằng
thamsố củakhốihộpliềntrước.
Ví dụ:Giảsửảnhđầuvàocókíchthước (ảnhmàucó3thành
phầnRGB)giảsửtầngnhânchậpthứnhấtsửdụng mặtnạvới
bướcnhảy thì:
- Nếukíchthướckhônggiancủamỗimặtnạ:
thìmỗibộlọcsẽcókíchthướctổngthể3chiềulà: bởivìkhốihộp
trướcđó(ảnhđầuvào)cóchiềusâu .
- Cácthamsốcủamỗibộlọcgồm trọngsố( )mộttham
39
sốđộlệch(BiasParameter).
- Khốihợpmớitạorasẽcókíchthướclà: trongđó
đượctínhdựavàothamsố nhưsau:
Trongđó: và làkíchthướckhônggiancủakhốihộptrướcđó.
Nhưvậy,khithiếtkếcáctầngnhânchập,chúngtaphảichọnkíchthước
củacácbộlọcchiềudàibướcnhảysaochokíchthướccủakhốihộpcủa
tầngtiếptheosẽlàcácsốnguyên.QuátrìnhhuấnluyệnmạngCNNvềcơbản
cũng dựa trên phương pháp đạo hàm riêng phần (Gradient Descent
Algorithm)nhưngkỹthuậtmini-batchthườngđượclựachọnđểướclượng
cácđạohàmriêngphần.Ngoàira,cómộtvấnđềhếtsứcquantrọngkhihuấn
luyệncácmạngCNNđóvấnđềhọcnhớquá(Overfitting).Đểgiảmảnh
hưởngcủavấnđềnày,ngườitathườngápdụngkỹthuậttêndrop-out
[23].Ýtưởngcơbảncủakỹthuậtnàyđólàthayvìhuấnluyệntoànbộmạng
CNNthìchỉhuấnluyệnmộtphầncủamạngtạimỗibướclặpcủaquátrình
huấnluyện.Dovậy,cácphầnkhácnhaucủamạngsẽđượchuấnluyệnđểhọc
mộtkhíacạnhkhácnhaucủadữliệu.Cụthể,tạimỗibướclặpcủaquátrình
huấnluyện,chúngtasẽchọnngẫunhiên ( )sốlượngcác
nơronởmỗitầngvàloạibỏ(drop-out)chúngkhỏiquátrìnhhuấnluyện.Khi
đãkếtthúcquátrìnhhuấnluyện,trongquátrìnhkiểmthửmạng(testing)thì
tấtcảcácnơronđềuđượcsửdụngđểraquyếtđịnhnhưngcáctrọngsốđầu
vàocủanhữngtầngđãtừngcácnơronbịdrop-outthìsẽđượcnhânvới
mộttrọngsố vớiýnghĩalấygiátrịkếtquảtrungbìnhcủacácphầnkhác
nhaucủamạng.
40
2.6. Một số hàm mục tiêu (loss) phổ biến
KiếntrúcmạngDNNnàysẽchođầuracủamạnggồm128giátrịthực.
Cácgiátrịnàyđượcgọilàmộtvectorchứacácđặctrưngcủakhuônmặt.
Việcchọnthamsố128phụthuộcvàonhiềuyếutố:quathửnghiệmtrên
nhiềutậpdữliệukhácnhau,kếtquả128chođộchínhxácđủtốtmặcsố
lớpđốitượngcóthểlênđếnhàngnghìnlớp.Hơnnữa,đểkhaitháckhảnăng
tínhtoánsongsongcủacácbộvixửlý,giátrị128thườngđượcchọn
chínhbằng2 vàdovậycóthểthựchiệntrêncáccâulệnhlàbộsốcủa8(bít).
7
Trongcácphầntiếptheo,chúngtôitrìnhbàymộtsốhàmmụctiêu(loss)
phổbiến.
2.6.1. Hàm Triplet Loss
Giảsửchúngtamộtsởdữliệu(CSDL)gồmNkhuônmặtkhác
nhau,chúngtasẽhuấnluyệnmạngDNNđểhọccácđặctrưngkhuônmặt
bằngcáchđiềuchỉnhcáctrọngsốcủamạngDNNtheoquyluậtnhưsau:
- Chọn3ảnhkhuônmặtbấtkỳtừCSDLtrongđóđảmbảohaiảnh
(đánhsố#1và#2)chứacùngmộtngườivàmộtảnh(đánhsố#3)chứangười
kháchaiảnhcònlại.
- ĐiềuchỉnhcáctrọngsốcủamạngDNNsaochođầuracủamạngsẽ
chohaivector128chiềukhágầnnhauđốivớihaiảnhđánhsố#1#2,
nhưngsẽchoramộtvector128chiềurấtkhácđốivớiảnhđánhsố#3.
- Lặplạicácbướctrênchođếnkhitấtcảcáccặp3ảnhđãđượcduyệt
hoặcđếnkhiđộchínhxácđãđặtmứcmongmuốn.
41
Hình 2.16. Nguyên tắc của quá trình huấn luyện mạng DNN
Saukhilặplạihàngtriệulầnchohàngtriệuảnhcủahàngnghìnngười
khácnhau,mạngnơronhọcsẽsinhra128sốđochomỗingười.Bấtkỳnhiều
ảnhkhácnhaucủacùngmộtngườisẽcùngvector128sốđotươngtự
nhau.Trongkỹthuậthọcmáy,chuỗisố128phầntửtrênmôtảcácthôngtin
củamỗikhuônmặtđượcgọilàbộmôtảhayvectorđặctrưng.
QuátrìnhhuấnluyệnchomạngDNNthựchiệnnhiệmvụnhưtrênsẽcần
tậpdữliệuhuấnluyệnlớnvàchạytrênnhữngmáycócấuhìnhmạnhmẽ,hỗ
trợkhảnăngxửlýđồhọacaocấp,vàthậmchícũngsẽcầnhàngtuầnmớikết
thúcquátrìnhhọc.Tuynhiên,khiđãhuấnluyệnxongmạngDNN,chúngta
cóthểsửdụngnóđểsinhracácvectorđặctrưngchomộtkhuônmặtbấtkỳ
trongthờigiancựckỳnhanh(khoảngvàichụcmiligiâytùythuộcvàocấu
hìnhmáytính).ĐâychínhlàmộtưuđiểmtuyệtvờicủacácmạngDNN.Hình
2.17minhhọacácgiátrịcủavectorđặctrưngtríchchọnđượcchomộtkhuôn
mặtđầuvào.
42
Hình 2.17. Mô phỏng bộ mô tả 128 giá trị của một khuôn mặt
Vậychínhxácnhữngphầnnàocủakhuônmặtđượcthểhiệntrong128số
đonày?Đóđiềukhôngthểphiêndịchđượcđốivớiconngười.Tuynhiên,
điềunàykhôngquantrọng.Quantrọnglàtấtcảnhữnggìchúngtaquantâmlà
mạngDNNsinhranhữngconsốgiốngnhaukhinhìnvào2bứcảnhkhácnhau
củacùngmộtngườivàcácconsốkhácnhauđốivớibứcảnhcủangườikhác.
2.6.2. Hàm Cross-Entropy Loss
Hàmmụctiêucross-entroyloss(cònđượcgọivớitênkháclàsoftmaxloss)
đượcgiớithiệutrong[24]vàđặcbiệthiệuquảtrongviệctựhọccácđặctrưng
tốtcủakhuônmặt,cókhảnăngloạibỏcácthôngtinnhiễutrênảnhkhuônmặt.
Đâyhàmlossđượcsửdụngkháphổbiếntrongbàitoánnhậndạngkhuôn
mặt.Vềmặttoánhọc,hàmcross-entropylossđượcđịnhnghĩanhưsau:
Trongđó,Nsốđiểmdữliệuhuấnluyện,Wmatrậntrọngsốcủa
mạng,blàhệsốbias,x
i
làđiểmdữliệuhuấnluyệnthứi, và làcáccột
thứjvày củamatrậnW.
i
Tronghàmcross-entroyloss,độđobiênEuclidean (Euclideanmargin)
Ảnh đầu vào
43
đượcsửdụngđểhọccácđặctrưngkhuônmặt.Tuynhiên,nhưđãchỉrabởi
[25],cácđặctrưngkhuônmặtxuhướnghìnhthànhphânbốbiêntheo
hướng(angularmargin).Dovậy,độđobiênEuclideancóthểkhônghiệuquả
trongnhữngtrườnghợpnhưvậy.Hình2.18minhhọacáctìnhhuốngnày.
Hình 2.18. Mô tả phân bố các đặc trưng khuôn mặt khi dùng độ đo biên
Euclidean
2.6.3. Hàm Angular-Softmax Loss
HàmmụctiêuAngular-SoftmaxLoss[25]cảitiếnhàmcross-entropyloss
bằng cách đưa thêm khái niệm học dựa trên hướng biên độ (marginal
learning).Tínhnăngnàyrấthữuích,đặcbiệtvớicácdữliệukhuônmặt,do
sựphânbổcủacácđặctrưngkhuônmặtcóxuhướngtạothànhcáccungkhác
nhautrênkhônggianđặctrưng.
Hình 2.19. (a) Minh họa phân bố của đặc trưng khuôn mặt khi dùng độ đo
biên theo góc (marginal learning), (b) Kết quả khi chiếu các đặc trưng ở (a)
44
sang không gian siêu cầu [25].
Hình2.19minhhọakhảnăngcủahàmbiênđộgóckhidùngđểhọccác
đặctrưngkhuônmặt.Nhưchúngtathểthấy,cácđặctrưngxuhướng
phânbốthànhcáccụmnhỏ,tậptrung,côđọngtrênkhônggiansiêucầu.Điều
nàygiúptăngcườngkhảnăngphânbiệtgiữacáclớpđốitượngkhácnhau.
ÝtưởngchínhcủahàmlossnàyđóbiếnđổimatrậntrọngsốWsang
khônggiansiêucầunhằmgiảmthiểucáchệsốcầnhọccủahệthống,quyvề
thamsốgóc(xácđịnhbiênđộgócgiữacáclớpđốitượngkhácnhau).Vềmặt
toánhọc,hàmAngular-Softmaxđượcđịnhnghĩanhưsau:
Trongđó:thamsốnguyênm1dùngđểđiềukhiểnkíchthước/độlớn
củabiênđộgóc;vàhàmbiênđộgócgiữacáclớpkhácnhauđượcđịnhnghĩa
nhưsau:
,
and .
địnhnghĩađộđobiêntheogócdùngđểhọccácđặctrưngkhuônmặt.
2.6.4. Hàm ArcFace Loss
HàmArcFaceLoss[10]cảitiếnhàmAngular-Softmaxlossbằngcách
giớithiệuđộđobiêntheogócmới,tênAdditiveAngularMarginLoss
(ArcFace).TronghàmArcFaceloss,hàmbiênđộgócđượcđịnhnghĩanhư
sau(giốngnhưtêngọicủanó):
Khithayvàohàmmụctiêu,chúngtacó:
45
Hình2.20minhhọaưuđiểmcủahàmArcFaceLosssovớihàmsoftmax
lossvớidữliệucủa8đốitượngkhácnhau.Nhưchúngtathểthấy,khi
chiếusangkhônggiansiêucầuvàdùnghàmArcFaceloss,cácđặctrưngcủa
8đốitượngđượcphântáchrấtràng(ngượclạivớikếtquảkhidùnghàm
softmaxloss).
Hình 2.20. Minh họa phân bố không gian đặc trưng của 8 đối tượng khác
nhau, dùng (a) hàm biên Euclidean (softmax loss) và (b) Additive Angular
Margin Loss (ArcFace loss).
2.7. Kết luận chương 2
Trongchươngnày,chúngtôiđãtrìnhbàynềntảngcơsởcủacáckỹthuật
mạnghọcsâuvàứngdụngcủanótrongnhậndạngkhuônmặt.Cáckiếntrúc
mạngnhânchậphọcsâuđãđượctrìnhbàyphântíchtrongngữcảnhcủa
bàitoánhọcđặctrưngkhuônmặt.Quátrìnhhọcthườngđượcthựchiệnbởi
quytắcbộbatừhàngtriệumẫuhọc.Mụctiêucủaquátrìnhnàykhôngphải
nhằmnhậndạnghayđánhnhãncácđốitượngtrongcơsởdữliệu,làhọc
độđokhuônmặt(FaceMetrics)saochonócókhảnăngphânbiệtcáckhuôn
mặtthuộccácđốitượngkhácnhau.Cụthể,mộtđộđokhuônmặttốtsẽtạora
cácvectorđặctrưnggiốngnhauhoặctươngtựnhauđốivớicáckhuônmặt
củacùngmộtđốitượng;ngượclại,sẽtạoracácđiểmxanhautrongkhông
gianđặctrưngđốivớicáckhuônmặtcủacácđốitượngkhácnhau.
Đểthựchiệnquátrìnhhọctrên,hàmmụctiêuđóngmộtvaitròquan
trọng.Chúngtôiđãtrìnhbàyvàphântích3hàmmụctiêuphổbiếnnhất
tiêntiếnnhất.Nhiềukếtquảthựcnghiệmđãđượcnghiêncứu,xâydựng
46
chứngtỏhàmmụctiêuarcfacelosschokếtquảhiệunăngcaonhất,tiềm
năngvượttrộisovớinănglựcconngười.Trongchươngtiếptheo,chúngtôi
sẽtrìnhbàyquátrìnhcảithiệnhiệunănghệthốngbằngcáchtíchhợpdữliệu
ngườiViệtvàoquátrìnhhuấnluyện.
47
Chương 3:
XÂY DỰNG KIẾN TRÚC MẠNG NƠRON NHẬN DẠNG
KHUÔN MẶT NGƯỜI
3.1. Thu thập và xây dựng tập dữ liệu huấn luyện
3.1.1. Bộ dữ liệu huấn luyện cho mô hình mạng theo chuẩn (benchmark)
3.1.1.1. Bộ CASIA-Webface
5
Đâylàbộdữliệucôngkhailớnthứhaicósẵnchocácvấnđềxácminhvà
nhậndạngkhuônmặt.BộdữliệuCASIA-WebFacebaogồm10.575người
vớitổngsố494.414hìnhảnh.
3.1.1.2. Labeled Faces in the Wild (LFW)
6
Bộdữliệunàybaogồmhơn13000hìnhảnhkhuônmặtcủa5749người
đượcthuthậptrênmạnginternet.Mỗikhuônmặtđãđượcgánnhãnvớitên
củangườitronghình.1680ngườitronghìnhcóhaihoặcnhiềuảnhkhácnhau
trongbộdữliệu.
3.1.1.3. WIDER FACE
7
BộdữliệuWINDERFACElàbộdữliệutheochuẩn(benchmark),trong
đóhìnhảnhđượcchọntừbộdữliệuWINDERcósẵncôngkhaivới32.203
hìnhảnhvàgánnhãn393.703khuônmặt.
3.1.2. Bộ dữ liệu huấn luyện người Việt
Nhưđãđềcậpởphầnmởđầu,mộttrongnhữngmụctiêuchínhcủaluận
vănlàxâydựnghệthốngAInhậndạngkhuônmặtvớisựtậptrungvàoviệc
họccáckhuônmặtChâuÁ,cụthểlàkhuônmặtcủangườiViệtNam.Vìvậy,
trongquátrìnhxâydựnghệthống,vớiđiềukiệncôngviệcgiảngdạy
trườngđạihọctôiđãlựachọnxâydựngbộdữliệukhuônmặttừdữliệuảnh
củasinhviênmàtôiđãthuthậpđược.
Vớiýtưởngxâydựngmộtphầnmềmđiểmdanhsinhviêntựđộngtránh
5
http://pgram.com/dataset/casia-webface/
6
http://vis-www.cs.umass.edu/lfw/
7
http://shuoyang1213.me/WIDERFACE/
48
tìnhtrạngđiểmdanhthay,họchộđồngthờigiúpchogiảngviêntiếtkiệm
đượcthờigiantrongmỗitiếthọc.
Dữliệuảnhkhuônmặtsinhviênsẽđượcthuthậpsaumỗibuổihọccủa
sinhviêncáclớptrongtrường.Toànbộcácthiếtbị(camera,máytính,…)
dùngđểthuthậpdữliệuđượclắpđặttạimộtphònglabkhoaCNTT&TT.Để
thựchiệnviệcthuthậpdữliệudùng2camerađặtở2góckhácnhau,đặt1ghế
phíatrướccamerasauđómỗisinhviênngồivàoghế,xoaymặttheocácgóc
khácnhautừ20–60giây.Dùngphầnmềmtựviết(videostreaming)đểlưudữ
liệucamthànhfilewebm.Saukhithuthậpdữliệu,ảnhsẽđượccắtratừcác
videođãthuthậpđược.Tậptinảnhđượccắtracóđịnhdạngđuôipng.
Hình 3.1. Quy trình thu thập dữ liệu
Chươngtrìnhvideostreaming
Tậphợpvideo
1FPS
1
2
…..
n(n>300)
Cam01
Cam02
49
Kếtthúcquátrìnhthuthậpdữliệuchúngtôicó:
Bảng 3.1. Thống kê quá trình thu thập dữ liệu
Tổng s
(người)
Giới tính Trung bình
ảnh/người
Độ nghiêng
ảnh
Tuổi
Nam Nữ 18 – 20 20+
496 242 254 300 0–30 346 150
Hình 3.2. Biểu đồ thống kê quá trình thu thập dữ liệu
Vídụminhhọacho5ngườigồm10ảnhvớicácgóckhácnhaucủakhuôn
mặt:
50
Hình 3.3. Ảnh gốc trong cơ sở dữ liệu thu thập
3.2. Kiến trúc tổng qu_t hệ thống nhận dạng khuôn mặt
Kiếntrúctổngquátcủahệthống,gồmcácphachínhsau(hình3.4):
- Dòtìmkhuônmặt(FaceDetection)
- Hiệuchỉnhkhuônmặt(LandmarkCorrection)
- Tríchchọnđặctrưng(FaceEmbedding)
- Phânlớp(SVM,KNN)
51
Hình 3.4. Kiến trúc tổng quát hệ thống nhận dạng khuôn mặt
Trongluậnvănnày,tácgiảchỉnghiêncứu,giảiquyếtcácpha3và4.Tuy
nhiên,đểphầntrìnhbàycótínhhệthống,tácgiảsẽmôtảngắngọncácpha1
và2trongcácphầntiếptheo.
3.3. Kiến trúc mạng nơron cho bài to_n ph_t hiện khuôn mặt
3.3.1. Phát biểu bài toán face detection
Pháthiệnkhuônmặt(facedetection)làbướcđầutiênvàcầnthiếtđểnhận
dạngkhuônmặtvàđượcsửdụngđểpháthiệnkhuônmặttrongảnh.Nócũng
mộtphầncủapháthiệnđốitượngđượcsửdụngtrongnhiềulĩnhvực
nhưbảomật,sinhtrắchọc,thựcthiphápluật,giảitrí,antoàncán à
cònđượcsửdụngđểpháthiệnkhuônmặttrongthờigianthựcđểgi à
ặc tượng. oàiramộtsốmạngx
ttoán dạn mặtđểp
chúng.
Facedetection
Landmark
Correction
FaceEmbedding
Classification
L
2
Norm
Diệu Linh 0.99
Input
CNN
Output
52
Hình 3.5. Quá trình phát hiện khuôn mặt trong ảnh
khánhiềuphươngphápđểpháthiệnkhuônmặtnhưthôngquamàu
sắc,cửđộnghoặcquagóccạnhtrongảnh,Vớihạnchếphầncứngcủa
mìnhvàthờigianthựchiệnluậnvănnênởphầnnàysẽchỉdừnglạiởviệcsử
dụngmôhìnhđãhuấnluyệntừtácgiả[19].
3.3.2. Kiến trúc mạng dò tìm khuôn mặt
Quytrìnhtìmkhuôn mặttrong luận vănđượcthựchiện dựatrên
nghiên cứu “FaceBoxes: A CPU Real-time Face Detector with High
Accuracy”đượcđềxuấtbởiShifengZhangcáccộngsự[19].Nhómtác
giảđãđềxuấtmộtmáytìmkhuônmặtmới,tênFaceBoxes,vớihiệu
suấtvượttrộicảvềtốcđộvàđộchínhxác.
KiếntrúcmạngdòtìmkhuônmặtFaceBoxesgồm2nhóm:
- Nhóm tích chập rút gọn nhanh (Rapidly Digested Convolutional
Layers):baogồm2lớptíchchập(convolutionallayer)và2lớprútgọn(pool)
cótácdụngrútgọnnhanhkíchthướccủafileđầuvàovàgiảmsốkênhđầura,
nhằmgiảmtốiđasứcnặngtínhtoánnếukíchthướcfileđầuvàoquálớn.Một
trongnhữngthuậtđểgiảmkhốilượngtínhtoáncủatíchchậplênfileđầu
vàolàsửdụngsốbướcnhảylớnchomỗitíchchập.Vídụvớinhómtíchchập
rútgọnnhanhtrongFaceBoxes,nhómtácgiảđãsửdụngsốbướcnhảycho
Conv1,Pool1,Conv2,Pool2lầnlượtlà4,2,2,2pixels.
- Nhóm tích chập đa kích thước (Multiple Scale Convolutional Layer):
baogồm3lớpInceptionlớptíchchậpdựatrênRPN(RegionalProposal
Network),nhómtíchchậpđakíchthướccảitiếnhiệunăngcủaphươngpháp
53
RPNtrongtrườnghợpdòtìmđơnlớp( dòtìmkhuônmặt)theohướngVí dụ:
khắcphục2nhượcđiểmcủaRPN:
Thiếtkếđakíchthướctheochiềudọccủamạng:AnchorscủaRPN
đượcnốivớilớptíchchậpcuốicùng,dođósốđặctrưngđộphân
giảicủaảnhkhôngcònđủđểxửlýsựbiếndạngkhuônmặttrênnhiều
kíchthướcảnh.MSCLgiảiquyếtvấnđềbằngcáchnốianchorsvớicác
lớpánhxạđặctrưngđakíchthước(Inception3,Conv3_2,Conv4_2)
giúptrảiđềucácanchorsởnhiềukíchthướcảnhkhácnhau.
Thiếtkếđakíchthướctheochiềungangcủamạng:đểhọcđượccácmẫu
trênnhiềukíchthướcảnhchúngtathườngphảicócáctrườngtiếpnhận
(receptivefield)trênnhiềukíchthướckhácnhau.Đểlàmđượcviệcnày,
MSCLsửdụngnhiềumoduleInception,mỗimoduleInceptionlạibao
gồmnhiềulớptíchchậpvớikíchthướckernelkhácnhau.
LossfunctionđượcsửdụnggiốngnhưRPN:sửdụngsoftmax2lớp
chobàitoánphânlớpvàsmoothL1chobàitoánhồiquy.
3.4. Kiến trúc mạng face landmark
3.4.1. Phát biểu bài toán
Facelandmarklàxácđịnhđượcnhữngđiểmchínhtạonênhìnhdạngcủa
đốitượngtrongmộtbứcảnh.Trongbàitoánxácđịnhfacelandmark,chúng
tasẽphảixácđịnhđượcnhữngđiểmchínhtrongbứcảnhtạonênhìnhdạng
khuônmặtngười.Facelandmarklàđầuvàochonhiềubàitoánkhácnhưdự
đoántưthếđầu,tráođổikhuônmặt,pháthiệnnháymắt,xoaychỉnhlạikhuôn
54
mặtđiểnhìnhcôngnghệnhậndạngkhuônmặtFaceIDđượcApple
trangbịtrêniphoneX.
Saukhixácđịnhđượckhuônmặttrongbứcảnh,chúngtasẽxácđịnhcấu
trúccủakhuônmặt.Córấtnhiềukiểucấutrúckhuônmặtkhácnhaunhưngvề
bản,chúngtasẽphảixácđịnhđượcnhữngphần:Miệng,lôngmàyphải,
lôngmàytrái,mắtphải,mắttrái,mũi,hàm.
Từvịtríboxescủakhuônmặtdòtìmđược,nhiệmvụtiếptheolàxácđịnh
vịtrícácđặctrưng(5điểmlandmark,68điểm)gồmcácvịtrínhưmắt,mũi,
miệng….Theomộtsốđánhgiáthìtrongluậnvănnày,chúngtôisửdụng5
điểmlandmarklàmđặctrưng.
Hình 3.6. Kiến trúc mạng Face Landmark
3.4.2. Kiến trúc mạng face landmark
Đểthểchuẩnhóađượccáckhuônmặt,chúngtađịnhnghĩamộtlưới
chuẩnphỏngcácvịtrítrênkhuônmặt.Hình3.7trìnhbàymộthình
lướigồm68điểmquantrọngtrênmỗikhuônmặt.Môhìnhlướinàyđượcđề
xuất bởi Vahid Kazemi Josephine Sullivan gọi “face landmark
estimation”[14]. Ýtưởngbảnchúngtađưara68điểmcụthể(điểm
đánhdấu)tồntạitrênkhuônmặtgồm:đầucằm,bênngoàimỗimắt,bêntrong
mỗilôngmày,…Sauđó,chúngtasẽhuấnluyệnmộtthuậttoán“Họcmáy”
đểcóthểtìmra68điểmcụthểtrênbấtkỳkhuônmặtnào:
Input
CNN
Output
55
Hình 3.7. Các điểm đánh dấu mẫu của một khuôn mặt (68 điểm)
Mộtkhiđãđãướclượngđượccácđiểmđánhdấutrênmỗikhuônmặt,
chúngtasẽbắtđầuchuẩnhóakhuônmặtđểsaochotâmcủakhuônmặtnằm
ởchínhgiữaảnh,kíchthướccủakhuônmặtđượcphóngtohoặcthunhỏvề
mộtkíchcỡ(150x150)vàmộtsốphépxoaynếucầnthiết.Chúýrằngchúng
tasẽkhôngbiếnđổiảnh3Dbởichúngsẽlàmméomóảnh.Chúngtachỉsử
dụngnhữngbiếnđổibảnnhưxoayphóngtothunhỏđểgiữnhững
đườngsongsong(gọibiếnđổiaffine).Hình3.8minhhọacácbướcxửlý
trunggiancủaquátrìnhnày[15].
56
Hình 3.8. Quá trình hiệu chỉnh khuôn mặt
Môhìnhlưới68điểmhoạtđộngkháchínhxáctrongtrườnghợpchúngta
thểướclượngđượcđầyđủcácđiểmđánhdấutrênkhuônmặt.Nóicách
khác,khigócquaycameracóthểthunhậnđầyđủkhuônmặt(trựcdiệnhoặc
gầntrựcdiện).hình3.9minhhoạmộtsốtrườnghợpchúngtathể
tìmđượcchínhxáccácvịtríđánhdấutrênkhuônmặt.
Ảnh đầu vào
AffineTransformation
Mô hình lưới
(Biến đổi Affine)
Ảnh kết quả
57
Hình 3.9. Minh họa kết quả ước lượng các điểm đánh dấu trên ảnh đầu
Tuynhiên,nếumộttrongcácđiểmđánhdấubịchekhuấtbởigócquay
camera,môhìnhlưới68điểmsẽhoạtđộngkémhiệuquảnhưminhhọatrên
hình3.10.Kếtquảhiệuchỉnhkhuônmặtdođócũngsẽbịảnhhưởng,làm
giảmđộchínhxáccủaquátrìnhnhậndạngsaunày.
Hình 3.10. Mô hình lưới 68 điểm cho kết quả không tốt với các trường hợp
mặt nghiêng
Vìvậy,chúngtôigợiýchỉnênápdụngmôhình68điểmchonhữngứng
dụngmàchúngtabiếtchắcchắnảnhchụpsẽtrựcdiệnvớicamera( ảnhVí dụ:
chứngminhthư,ảnhthẻdựthi,…).Đốivớicáctrườnghợpkhác,chúngtôi
ápdụnghìnhlướichỉgồm5điểmđánhdấuđượcxâydựngtừgần5000
khuônmặttạiđây[16].Môhìnhlưới5điểmgồm2điểmmôtảvịtríhaimắt,
mộtđiểmngaydướimũivà2điểmởmiệng.Hình3.11minhhoạtmộtsốkết
quảcủaviệcướclượng5điểmđánhdấuchocácảnhđầuvàovớigócquay
khácnhau.Nhưchúngtacóthểthấy,môhìnhnàychokếtquảkháchínhxác
58
ngaycảvớinhiềutrườnghợpkhôngtrựcdiệnvớigócquaycủacamera.
nh 3.11. Một số kết quả dò tìm các điểm đánh dấu củahình lưới 5 điểm
3.5. Kiến trúc mạng đặc trưng khuôn mặt (face embedding)
3.5.1. Phát biểu bài toán
Saukhiđãcóđặctrưngkhuônmặt(5điểmlandmark).Đểphânbiệtcác
khuônmặtkhácnhauthìmỗiảnhkhuônmặtcầnsinhra1bộđặctrưngmôtả
(featuresembedding).Bộđặctrưngtảthườnghaysửdụng1vector(128
hoặc512chiều).Vớimộtsốnghiêncứuthìchothấyrằngvector128làđủđộ
tincậychínhxácđểphânbiệtcáckhuônmặtvớinhau.thếchúngtôi
cũngsửdụngbộvector128làmcơsởmôtảchotừngkhuônmặt.
Đầuvào:Ảnhkhuônmặt(đãgắn5điểmlandmark)
Đầura:Vector128chiều
3.5.2. Kiến trúc mạng đặc trưng khuôn mặt
FaceNetmộthệthốngnhậndạngkhuônmặtđượcpháttriểnvàonăm
2015bởicácnhànghiêncứutạiGoogle,đãđạtđượckếtquảtiêntiếnnhất
trênmộtloạtcácbộdữliệuđiểmchuẩnnhậndạngkhuônmặtnhưLabeled
FacesintheWild(LFW)vớiđộchínhxáclà99,63%,YoutubeFacesDBvới
độchínhxáclà95,12%.HệthốngFaceNetcóthểđượcsửdụngrộngrãinhờ
nhiềutriểnkhaimôhìnhnguồnmởcủabênthứbavàsựsẵncócủacácpre-
trainedmodels.LợiíchcủahệthốngFaceNetlàmỗikhuônmặtđượcđạidiện
bởimộtvectorđặctrưng.Khiđó,quátrìnhnhậndạngkhuônmặttrởthành
vấnđềphânlớpcácvectorđă ctrưng.
Quytrìnhnhậndạngkhuônmặtthựchiệntrongluậnvăndựatrênnghiên
59
cứu“FaceNet:Mộthệthốngnhúngchoviệcnhậndạngphâncụmkhuôn
mặt”[17]đượcđềxuấtbởinhómtácgiảlàmviệctạiGoogleđóFlorian
Schroff,DmitryKalenichenkovàJamesPhilbin.
FaceNetdựatrênviệcnhúngmỗiảnhvàokhônggianEuclidebằngcách
sửdụngmạng CNN. Mạng được huấnluyệnsaochokhoảng cách bình
phươngL2trongkhônggiannhúngtươngứngvớikhoảngcáchgiữacác
khuônmặt:Khuônmặtcủacùngmộtngườikhoảngcáchnhỏkhuôn
mặtcủanhữngngườikhácnhaucókhoảngcáchlớn.Khiđó,mỗikhuônmặt
đượcđạidiệnbởimộtvectorđặctrưng128chiềuđượcchuyểnđổithành128
byte.Khikhônggiannhúngnàyđượctạora,thìnhiệmvụnhậndạngkhuôn
mặttrởthànhbàitoánphânlớpvectorđặctrưngdùngthuậttoánK-NN,mạng
nơronnhiềulớp.
Nhómtácgiảsửdụng2kiểukiếntrúckhácnhauđểphùhợptừngứng
dụngkhácnhau.dụnhómhìnhsố1sẽphùhợpchocáctrungtâmdữ
liệu,vớisốlượngthamsốlớn(đến140triệuthamsốcầnhuấnluyện),cần
sứcmạnhtínhtoánsốthực(FLOPS)rấtlớn,trongkhinhómmôhìnhsố2cần
huấnluyệnítthamsốhơn(íthơn20lần)đểcóthểsửdụngđượcvớibộnhớ
củađiệnthoạithôngminh.
Trongnhómmôhìnhsố1,nhómtácgiảthêmvàonhiềulớptíchchậpkích
thước1x1bêncạnhcáclớptíchchậpchuẩnZeilervàFergus[20],tạora
hình22lớp.Vớiđộsâuđó,chúngtacầnhuấnluyện140triệuthamsố,
cầnđếnsứcmạnhtínhtoán1.6tỉphéptoánsốthựcmỗigiây(FLOPS)cho
mỗihìnhảnhđầuvào.Bảng3.2môtảcấutrúccủamôhình,cácảnhđầuvào
vàđầuracókíchthướcsốdòngxsốcộtxsốbộlọc.Nhântíchchậpcókích
thướcsốdòngxsốcột,sốpixeldịchchuyểnvàmaxoutpoolingcókíchthước
p=2.
60
Bảng3.2.MôhìnhmạngNN1dựatrêncấutrúcmạngdoZeilervàFergusđề
xuất,vớicáclớp(layer),kíchthướcinput(size-in)vàoutput(size-out)có
dạng (sốdòng sốcột sốbộlọc),riêngphầnnhân
(kernel)là (số dòng số cột), stride (dòng cột,bướcsải)và
kíchthướcmaxoutpoolinglà [17].
61
Hình 3.12. Kiến trúc mạng NN1 dựa trên cấu trúc mạng do
Zeiler và Fergus đề xuất
Nhóm2sửdụngdựatrênGoogleNet(xembảng3.3)vớicáchình
Inception[21].Sốlượngthamsốcầnhuấnluyện6-7triệuthamsố,íthơn
Output
Conv1
Pool1
Rnorm1
Conv2a
Conv2
Rnorm2
Pool2
Conv3a
Conv3
Pool3 Conv4a
Conv4 Conv5a
Conv5
L2
fc7128
fc2
fc1
Concat
Pool4
Conv6
Conv6a
110x11064
64
64
64
192
192
192
192
55x55
55x55
55x55
55x55
128
128
128
128
256
256
256
256
1x1
1x1
1x32
1x32
7x7
7x7
14x14
14x14
55x55
28x28
28x28
28x28
384
14x14
14x14
14x14
14x14
14x14
384
384
256
256
256
Layer#Filter
Output
Layer#Filter
Output
#Filter
62
20lầnsovớinhómsố1,cùngsứcmạnhtínhtoáníthơn5lần,giúpgiảmkích
thướccủamôhình,dễdàngđưavàoứngdụngdiđộng.
Bảng3.3.FaceNetsửdụngmôhìnhInceptiontươngtựvới[21].Haiđiểm
khácbiệtchínhđólàFaceNetsửdụngL poolingthayvìmaxpooling.Kích
2
thướcpoolingluônlà3 3vàtínhsongsongvớimoduletíchchậptrong mỗi
moduleInception. dimensionalityreduction)thìpoolingsẽ Nếu giảm chiều (
đượckýhiệuvới . Các pooling kích thước 1 1, 3 3 và 5 5 được nối lại
để cho ra kết quả [17].
63
Hình 3.13. Kiến trúc mạng NN2 sử dụng mô hình Inception dựa trên
mạng GoogleNet
Hình 3.14. Cấu trúc của module Inception được dùng trong mô hình NN2,
giới thiệu lần đầu bởi Google trong mạng GoogleNet
Filter
Concatenation
3x3
convolutions
5x5
convolutions
maxpooling
1x1
convolutions
Previouslayer
Output
conv1(7x7x3,2)
maxpool+norm
inception(2)
norm+maxpool
inception(3a)
inception(3b)
inception(4a) inception(4c)
L2Normalization
fullyconn
avgpool
inception(5b)
inception(5a)
inception(4e)
112x11264
64
192
192
256
320
56x56
56x56
28x28
28x28
128
128
1024
1024
1024
1024
1x1
1x1
1x1
7x7
7x7
28x28
14x14
640
14x14 14x14
640
Layer#Filter
Output
Layer#Filter
#Filter
Output
inception(3c)
inception(4d)
640
640
14x14
14x14
640
7x7
inception(4b)
64
VớiFaceNet,nhómtácgiảsửdụngTripletLoss(hàmmụctiêutheobộ
ba).Bộbađâybaogồm:ảnhtruyvấn(queryimage),1ảnhkháccủacùng
ngườiđó(positive)ảnhcủangườikhác(negative).Mụcđíchcủahàm
TripletLosslàkéoảnhđặctrưng(anchorimage)củamộtngườivềgầnvớitất
cảảnhkháccủacùngngườiđó(positiveimage)kéodãnkhoảngcáchvới
ảnhcủanhữngcáthểcònlại(negativeimage),tươngứngvớiđiềukiện:
+ < ,
, , ) T.
HàmmụctiêucủaTripletlossvìthếđượcmôtảnhưsau:
(1)
Tuynhiênsốlượngbộbathỏađiềukiện1sẽrấtnhiều,dẫntớihiệntượng
hộitụchậmnếuchỉsửdụnghàmmụctiêunhưtrên.Vìvậychúngtacần
bướcchọnlọcbộba(TripletSelection)đểgiữlạichỉnhữngbộbatốtnhất
choquátrìnhhuấnluyện.
Đểhàmmấtmáthộitụnhanhvàthỏađượcđiềukiệnhuấnluyệnởtrên,
vớimỗiảnhđặctrưngcủamỗingười tacầnxácđịnhđượcảnhđúngcố
định(hardpositive) sao cho ,ảnhsaicố
định(hardnegative) saocho .
Việctìmargmaxargmincủacảtậpdữliệutốnrấtnhiềuthờigian,
khôngkhảthivớitậpdữliệulớnvìcóquánhiềubộbađượctạora.Có2cách
đểvượtquahạnchếnày:
- Tạorabộbangoạituyến(offline)lặplạimỗiNbước.
65
- Tạorabộbatrựctuyến(online)bằngcáchchọnraảnhđúngcốđịnhvà
ảnhsaicốđịnhchomỗimini-batch.
VớiFaceNet,nhómtácgiảchútrọngvàoviệctạobộbatrựctuyến,với
nhiềumini-batchcókíchthướcmẫuvàingànảnhvàchỉtínhargmax,argmin
trongmỗimini-batch.
Đểảnhđặctrưngcủamỗingườiđượckháchquanvàchínhxác,chúngta
cầnđảmbảosốảnhtốithiểucủamỗicánhântrongtậpmẫumini-batch(vídụ
40ảnh/người).
TrongFaceNetnhómtácgiảđãchọnchiếnlượcnhưsau:
- Cốđịnh ảnh đúng (hardanchor-positivepairs)chomỗi mini-batch
(thaychọnra1ảnhcốđịnhchomỗilớpkhuônmặt).Phươngphápnày
đượcchứngminhbằngthựcnghiệmchophéphàmmụctiêuhộitụnhanhhơn.
- Chọn ra ảnh sai “bán cố định”(semi-hard negative) cho mỗi cặp
anchor-positive: ảnh sai được chọn ra vẫn bằng hàm argmin:
,kèmtheođiềukiệnphải:
<
Điềukiệnnàygiúpchúngtatránhđượctrườnghợp“cựctiểuđịaphương”
(localminima).
Đ_nh gi_ ưu, nhược điểm của mô hình FaceNet:
FaceNettiệnlợihơncácphươngphápFaceEmbeddingkháckhisử
dụngquátrìnhhuấnluyệnxuyênsuốttừđầuđếncuối,saukhihuấnluyện
xongmôhìnhđãcóthểsửdụngngay,khôngcầncácphươngphápxửlýhậu
kỳ(post-processing)khác( dụ: nốicáchìnhlạivớinhau,phântích
thànhphầnchính–PCA,hoặcphânlớpvớiSVM).Mộtđiểmmạnhkhác
khisửdụngFaceNet,chúngtakhôngcầnphảicanhchỉnhkhuônmặtquá
66
chặt,khôngcầndùngcácphươngphápcanhchỉnh3chiềutốnkémvềchiphí
tínhtoán,màchỉnhcầnảnhcắtcậnkhuônmặtlàđủ.
Tuyvậy,hìnhhiệntạicầnđượccảitiếnthêm,khiquátrìnhhuấn
luyệnchiếmrấtnhiềuthờigiantàinguyêncủaCPU.Ngoàira,quátrình
huấnluyệnđượcthựchiệnvớikíchthướcảnh220x220,nhữngảnhjpgcóđộ
phângiảinhỏhơn(vídụ120x120,80x80vànhỏhơnthếnữa)khôngchokết
quảtốtnhưnhữngảnhcókíchthướclớn.
Cải tiến chất lượng mạng đã huấn luyện (pre-trained model):
ĐểcảithiệnchấtlượngmodelFacenetchotậpdữliệungườiViệt,chúng
tôitiếnhànhlàmmịn(fine-tuning)hayhuấnluyệnlạimodeltrêntậpdữliệu
sinhviênđãthuthậpđược.Quátrìnhnàyđượcthựchiệnnhưsau:
+ Chọn tập huấn luyện: từ 496nhân.Trungbình,mỗinhân
khoảng300ảnh,trongđóchúngtôisửdụng80%dữliệuchoviệchuấnluyện
và20%choviệctest.
+ Cấu hình tham số huấn luyện lại: Trongtấtcảcácthửnghiệmcủa
chúngtôi,chúngtôihuấnluyệnmạngCNNbằngcáchsửdụngthuậttoán
StochasticGradientDescent(SGD)vớicáctiêuchuẩnbackpropvàAdaGrad.
Cácthamsốhuấnluyệnmạnggồm:α=0.2,thamsốhọc(learningrate)=
0.05.ChúngtôithựchiệnhuấnluyệnlạimạngtrênmáycấuhìnhIntel®
Core™i3-6100UCPU@2.30GHz×4trongthờigian2tuần,sauđódừngvà
lưuthànhmodelmới.Trongsuốtquátrìnhhuấnluyện,thuậttoánpháthiện
khuônmặtđượcsửdụngđểtạorakhungảnhbaochặtquanhkhuônmặttrong
mỗiảnh.Sauđó,cácảnhkhuônmặtđượcthunhỏlạitheokíchthướcquyước
củamỗimôhình,từ96x96đến224x224pixels.
3.6. Kết luận chương 3
Nhưvậy,trongchương3chúngtôiđãthuthậpxâydựngbộdữliệu
huấnluyệnngườiViệtbaogồmquytrìnhthuthậpdữliệuvàcácbảngthống
kê,biểuđồthốngkêquátrìnhthuthậpdữliệu.Dữliệusaukhichúngtôithu
thậpđượctiếnhànhgánnhãnđểđưavàohuấnluyện.Tiếptheo,chúngtôi
67
trìnhbàykiếntrúctổngquátcủahệthốngnhậndạngkhuônmặtgồm4
pha.Trongđóchúngtôichỉtậptrungđisâuvàonghiêncứu,giảiquyếtcác
pha34là:kiếntrúcmạngđặctrưngkhuônmặt(faceembedding)vàquá
trìnhphânlớp(Classification).DựatrênhìnhmạngFaceNet[17],chúng
tôiđãphântíchưunhượcđiểmcủakiếntrúcmạng,quátrìnhhuấnluyện,từ
đóđềxuấtcáccảitiếnchấtlượngmạngđãhuấnluyện(pre-trainedmodel)
bằngcáchtiếnhànhlàmmịn(finetuning)hayhuấnluyệnlạimôhìnhtrênbộ
dữliệuhuấnluyệnsinhviênngườiViệtđãthuthậpđược.
Tiếptheochương4chúngtôisẽtrìnhbày1sốkếtquảthựcnghiệm
đánhgiámàchúngtôithuđượctừquátrìnhhuấnluyệnmạng.
68
Chương 4:
KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ
4.1. Môi trường cài đặt và ph_t triển ứng dụng
4.1.1. Phần cứng
Môitrườngđượcsửdụngđểhuấnluyệnhệthốngnhậndạngkhuônmặt
ngườilàmáytínhcócấuhìnhvới:
- Bộ xử lý:Intel®Core™i3-6100UCPU@2.30GHz×4
- Hệ điều hành:Ubuntu16.4LTS
- Bộ nhớ:4GBRAM
- Ổ cứng:SSD120GB
4.1.2. Phần mềm
Chươngtrìnhứngdụnghệthốngnhậndạngkhuônmặttrongluậnvăn
đượccàiđặttrongmôitrườngảohóaAnaconda,sửdụngthưviệnTensorflow
vàngônngữlậptrìnhPython.
4.1.2.1. Môi trường ảo hóa Anaconda
Anacondalàmộtnềntảng(platform)mãnguồnmởmiễnphícủangônngữ
lậptrìnhPythonthôngdụngnhấthiệnnay,sửdụngchokhoahọcdữdiệu,học
máycácứngdụng(xửdữliệuquylớn,phântíchdựđoánnh
toánkhoahọc,…)nhằmmụcđíchđơngiảnhóaviệcquảnlývàtriểnkhaicác
package, phù hợp với mọi người dùng. Hệ thống quản package của
AnacondalàConda.BảnphânphốiAnacondatínhđếnnayđượcsửdụnghơn
6triệungườivàđínhkèmhơn250góipackagekhoahọcdữliệuphùhợpcho
các hệđiều hànhWindows,LinuxMacOS. Lợiích củaviệcsửdụng
Anaconda:
- Dễdàngtải1500+packagesvềPython/Rchodatascience.
- Quảnlýthưviện,môitrườngvàdependencygiữacácthưviệndễdàng.
69
- Dễdàngpháttriểnmôhìnhmachinelearningdeeplearningvớicác
thưviệnscikit-learn,tensorflow,keras.
- Xửlýdữliệutốcđộcaovớicácthưviệnnumpy,pandas.
- HiệnthịkếtquảvớicácthưviệnMatplotlib,Bokeh.
Hình 4.1. Môi trường ảo hóa Anaconda
8
4.1.2.2. Thư viện Tensorflow
Tensorflow(TF)làmộtthưviệnnguồnmởdoGooglepháttriểnvào
tháng11/2015,TFcungcấpkhảnăngxửlítínhtoánsốhọcdựatrênbiểuđồ
môtảsựthayđổicủadữliệu.Tensorflowđượcsửdụngkhigiảiquyếtcácbài
toánsupervisedlearning,sửdụngtrongrấtnhiềuứngdụngcủaGooglenhư
phânloạiemailcủaGmail,nhậnbiếtphátâmdịchtựđộng,nhậnbiết
khuônmặttrongGooglePhoto,tốiưuhoákếtquảtìmkiếm,quảngcáotrong
Youtube,ĐặctrưngcủaTensorFlowxửđượctấtcảcácloạidữliệu
cóthểbiểudiễndướidạngbiểuđồluồngdữliệu(dataflowgraph)haylow
levelnhư xửchữ viết tay.TensorFlow được viếtbằngC++,thaotác
interfacebằngPythonthếhiệunăngrấttốt,dùngđượccảCPUlẫnGPU
8
https://www.anaconda.com/
70
nênTFcóthểchạytrêncảPCthôngthườnglẫn1servercựclớn,thậmchícả
smartphonecũngthểsửdụngđược.MộtchươngtrìnhTensorflowđược
chiathànhhaiphầnchính.Phầnthứnhấtxâydựnghìnhtínhtoán
(construction phase), phần thứ hai chạy hình vừa mới xây dựng
(executionphase)LợiíchcủaviệcsửdụngthưviệnTF:
- Tíchhợpsẵnrấtnhiềucácthưviệnmachinelearning.
- khảnăngtươngthíchmởrộngtốt,đượcGooglepháttriểncho
machinelearningphụcvụcảnghiêncứulẫnxâydựngcácứngdụngthựctế.
- Phổbiến.
Hình 4.2. Biểu đồ lượt star và repos trên github sử dụng TF
9
4.1.2.3. Ngôn ngữ lập trình python
Python mộtngôn ngữlậptrìnhthôngdịch(interpreted),hướngđối
tượng(object-oriented)mộtngônngữbậccao(high-level),ngữnghĩa
động(dynamicsemantics)đượctạorabởiGuidovanRossumvàonăm1991.
Python hỗtrợ các modulegói(packages),khuyếnkhíchchương trình
modulehóavàtáisửdụngmã.TrìnhthôngdịchPythonvàthưviệnchuẩnmở
rộngcósẵndướidạngnguồnhoặcdạngnhịphânmiễnphíchotấtcảcác
nềntảngchínhthểđượcphânphốitựdo.Ngàynay,Pythonđượcsử
9
https://nguyenvanhieu.vn/thu-vien-tensorflow/
71
dụngtrongcácmụcđíchnhưpháttriểnweb(trênmáychủ),pháttriểnphần
mềm,tínhtoán,khoahọc,lênkịchbảnchohệthống(systemscripting).Ưu
điểmcủaviệcsửdụngngônngữPython:
- Pythoncócúphápđơngiản,dễđọc,dễhọcvàdễnhớ.
- Pythonsửdụngtrìnhthôngdịchđểthựcthicode.Dođó,nhữngdòng
codethểđượcthựcthingaylậptứckhôngcầnbiêndịchtoànbộ
chươngtrình,giúpchúngtakiểmtracodenhanhchóng,dễdànghơn.
- Pythoncóthểkếtdễdàngkếtnốivớicácthànhphầnkhácnhưcácđối
tượngCOM, .NET(Ironpython, Python for .net) vàCORBA, Java,…
PythoncũngđượchỗtrợbởiInternetCommunicationsEngine(ICE)vànhiều
côngnghệkếtnốikhác.
- Pythonlàngônngữcókhảnăngchạytrênnhiềunềntảnghệđiềuhành
vớicùngmộtnguồngiốngnhaunhưWindows,Linux/Unix,OS/2,Mac,
Amiga,…mộtsốphiênbảncủaPythontrên.NET,máyảoJavavàđiệnthoại
diđộng(NokiaSeries60).
Hình 4.3. Ngôn ngữ lập trình Python
10
4.2. Bộ dữ liệu thực nghiệm
Bộdữliệuhuấnluyệnsửdụngtrongluậnvănlàcáchìnhảnhkhuônmặt
đãthuthậpđượcchúngtôiđãgiớithiệuchương3.Dữliệuthuthập
đượcgồm496cánhân,trongđóchúngtôisửdụng80%dữliệuchoviệchuấn
luyệnvà20%choviệctest.Trungbình,mỗicánhâncókhoảng300ảnh.
4.3. Phương ph_p đ_nh gi_, thử nghiệm
Mụctiêucủaquátrìnhhuấnluyệnlại(fine-tuning)môhìnhmạngFacenet
nhằmhoạtđộngtốthơnchotậpdữliệungườiViệtNam.vậy,chúngtôi
10
https://www.python.org/
72
đánhgiáchấtlượngmạnghuấnluyệnlạitrêntậpdữliệusinhviênđãthuthập
được(vớicácđộtuổikhácnhau).Đểđánhgiáđộchínhxácnhậndạng,các
vectorđặctrưngkhuônmặtcủatừngđốitượngsẽđượcquacácbộphânlớp
máyhọcgồmK-NNvàSVM.Phươngthứcđánhgiánhưsau:
- Mỗicánhânsẽsửdụng5–10ảnhlàmdữliệuhuấnluyệnbộphânlớp
- VớibộphânlớpK-NN,khoảngcáchcủaphầntửgầnnhấtvớiảnhtruy
vấnsẽđượcsosánhvớimộtngưỡng(0.7trongthựcnghiệmnày)đểquyết
địnhnhãncủađốitượngđó.Khoảngcáchlớnhơnngưỡngnàyđượcxemxét
đểphânloạinhãnunknownchoảnhtruyvấn.
- VớibộphânlớpSVM,nhãncủaảnhtruyvấnsẽđượctrảvềtừbộ
phânlớpSVM.Sauđó,chúngtôilọccácđốitượngunknownbằngcáchtính
lạikhoảngcáchEuclideangiữaphầntửgầnnhất(trảvềbởiSVM)vớicác
ảnhmẫuthuộclớpđó.Nếutồntạiảnhmẫuchokhoảngcáchbéhơnngưỡng
(0.7)thìkếtluậnnhãncủađốitượng.Ngượclại,gánnhãnunknownchođối
tượngđangxét.
4.4. Kết quả đ_nh gi_, thử nghiệm
Độchínhxác(Accuracy)đượcsửdụngđếđánhgiáhiệunăngcủamạng
đãđượchuấnluyện.Chúngtôitínhtoánđộchínhxácvớimỗilớpđốitượng
trongtậpđánhgiá,sauđótínhđộchínhxáctoàncụcbằngcáchlấytrungbình
cộngcủacácđộchínhxácthànhphần.Cụthể:
- VớimỗiđốitượngcủanhãnX,độchínhxáccủalớpXđượctính:
Trongđó:A làđộchínhxáctínhtoáncholớpđốitượngcónhãnX,N
x X
73
sốlượngảnhcủađốitượngXcótrongcơsởdữliệu,N làsốlượngảnhnhận
T
dạngđúngcủalớpX.
- Độchínhxáctoàncụcđượctính:
Trongđó,Nlàsốlượngcácnhãntrongcơsởdữliệu(N=496trongtập
dữliệudochúngtôithuthậpđược).
Cấuhìnhmáytínhchạythửnghiệmnhưsau:Intel®Core™i3-6100U
CPU@2.30GHz×4.
Kếtquảnhậndạngđượcthểhiệntrênbảng4.1chongẫunhiên10đối
tượng.Thờigiannhậndạngkhôngtínhthờigiandòtìmmặtvàhiệuchỉnhcác
điểmlandmarks,chỉtínhthờigiantríchchọnvectorđặctrưngkhuônmặt
(128chiều)thờigianphânlớp(KNNhoặcSVM).Thờigianđượcđodựa
trêngiảsửmỗiframecủavideochỉcómộtkhuônmặt.
Bảng 4.1. Minh họa kết quả nhận dạng 10 đối tượng
STT Ảnh đại diện đối tượng
Độ chính x_c A
x
(%)
Thời gian (ms)
KNN/SVM
KNN SVM
1 85.4 85.9 75/70
74
2 84.3 85.2 73/71
3 87.6 88.4 76/72
4 82.4 82.7 74/71
5 86.4 87.5 79/76
6 83.4 83.7 78/75
7 84.2 85.1 77/74
75
8 88.9 89.8 76/72
9 88.3 89.1 79/77
10 81.8 82.4 70/75
Độ chính x_c toàn cục A
(trên toàn bộ tập kiểm thử)
85.5 86.1
Đểsosánhvớimôhìnhmạngbanđầu,chúngtôithựchiệnthínghiệmthứ
haivớicùngcáchthức,nhưngsửdụnghìnhFaceNetbanđầu.Kếtquả
thựcnghiệmchothấymôhìnhhuấnluyệnlạichokếtquảtốthơnsovới
hìnhgốcbanđầutừ5–8%phụthuộcvàotừngđốitượng.
Mộtsốvídụtrựcquankếtquảnhậndạngnhưsau:
76
Hình 4.4. Ví dụ về kết quả nhận dạng khuôn mặt
4.5. Kết luận chương 4
Trongchươngnày,chúngtôiđãtrìnhbàymôitrườngthựcnghiệmhệ
thốngnhậndạngkhuônmặtbaogồmcấuhìnhmáy,môitrườngcàiđặt,thư
việnngônngữsửdụng.Tiếpđó,chúngtôiđưaraphươngphápđánhgiá
77
chấtlượngmạnghuấnluyệnlạitrêntậpdữliệusinhviênngườiViệtđãthu
thậpđượcvàkếtquảđánhgiá,thửnghiệmbộdữliệuhuấnluyệnlạisovới
môhìnhmạngbanđầu.
78
Chương 5:
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
1. Kết luận
Luậnvănđãnghiêncứu,tìmhiểubàitoánnhậndạngkhuônmặtngườivà
thựchiệnpháttriển,càiđặtchươngtrìnhchobàitoándựatrênsựthống
cáchướngtiếpcậnđãđượccôngbốquanhữngbàibáo,côngtrìnhkhoahọc
trênthếgiới.Cáckếtquảchínhluậnvănđãđạtđượctươngứngvớicác
mụctiêubanđầuđềranhưsau:
- Xâydựngbộcơsởdữliệuảnhphụcvụhuấnluyệnhọccácđặctrưng
khuônmặtcủangườiViệtNam.Bộdữliệuhuấnluyệnđượcthựchiệncho
496nhân,mỗinhân1-2video(độdài3060giây),saukhitrích
chọnxửlýsốlượngảnhtrungbìnhchomỗicánhânkhoảng300ảnh.
- Trìnhbàytổngquanvềhệthốngnhậndạngkhuônmặtngười.
- Phântíchbàitoánnhậndạngkhuônmặt,cácthuậttoánbảntrong
nhậndạngkhuônmặthiệnnaytrênthếgiớinhưPCA,LDA,SVMmạng
nơron. Nghiêncứucáckỹthuậthọcsâu,cácmạngnhânchậpchobàitoánnhận
dạngkhuônmặtngườiđểđềxuấtvàxâydựngkiếntrúcmạnghọcsâu,tổchức
huấnluyệnmôhìnhmạngvàsửdụngtrongnhậndạngkhuônmặtngười.
- Đặcbiệt,chúngtôiphântíchchitiếtkiếntrúcmạngFacenet,đánhgiá
cácưunhượcđiểm,sauđótiếnhànhcảitiếnchấtlượngmạng,fine-tuninglại
trêntậpdữliệuhuấnluyệnchúngtôiđãthuthập.
79
- Xâydựngthànhcônghệthốngdemoquátrìnhnhậndạngkhuônmặttừ
videovàbộdữliệuảnhđãthuthậpđược.Thựchiệncácthửnghiệmđánhgiá
chấtlượngmạngtrêntậpdữliệungườiViệtvàchokếtquảkhảquan.
2. Hướng ph_t triển
Hệthốngtựđộngnhậndạngkhuônmặttrongluậnvăncầntiếptụcđược
cảitiến,hoànthiệnđểtăngđộchínhxáckhilàmviệcvớicácCSDLchứa
hàngnghìnthậmchíhàngtriệungườidùng.Trongtươnglai,đểthểcải
thiệnđộchínhxácvàtốcđộxửlýcủahệthốngnhậndạng,chúngtôiđềxuất
càiđặtthửnghiệmvàđánhgiácácloạimôhìnhmạngmạnghọcsâuđãđược
huấnluyệntrước,đặcbiệtlàtăngsốtầngcủacácmạngđểkhảnănghọc
đượcnhiềuđặctrưnghơn,cảithiệnđộchínhxác.Bêncạnhđó,tốcđộnhận
dạngcũngmộtyêucầuquantrọngcủacáchệthốngtrongthựctế.vậy,
cácnghiêncứucảithiệntốcđộnhậndạngcũngsẽđượcđầunghiêncứu
trongthờigiantới.
80
TÀI LIỆU THAM KHẢO
Tài liệu tiếng Việt
[1] PhạmVănDũng(2016),Mạngnơrontrongbàitoánnhậndạngkhuôn
mặtvàứngdụng.
[2] PhạmThếBảo,NguyễnThànhNhựt,CaoMinhThịnh,TrầnAnhTuấn,
PhanPhúDoãn(2007),Tổngquancácphươngphápxácđịnhkhuônmặt
người.
Tài liệu tiếng Anh
[3] IonMarqués(2010),“FaceRecognitionAlgorihtms,”Universidaddel
PaísVasco.
[4] Byung-JooOh(2003),“FaceRecognitionbyUsingNeuralNetwork
ClassifiersbasedonPCAandLDA,”Daejeon,Korea.
[5] Sang-KiKim,YounJungPark,Kar-AnnToh,SangyounLee(2010),
“SVM-based feature extraction for face recognition,” Yonsei
University.
[6] ZhimingLiu,ChengjunLiu(2010),“Fusionofcolor,localspatialand
global frequency information for face recognition,” Department of
ComputerScience,NewJerseyInstituteofTechnology,Newark,NJ
07102,USA.
[7] SHUChan, DINGXiaoqing,FANGChi (2011),“Histogramofthe
Oriented Gradient for Face Recognition,” State Key Laboratory of
Intelligent Technology and System, Department of Electronic
Engineering,TsinghuaUniversity,Beijing100084,China.
[8] K. Ruba Soundar, K. Murugesan, “Preserving Global and Local
Features - a Combined Approach for Recognizing Face Images,”
InternationalJournalofPatternRecognitionandArtificialIntelligence,
Vol.24,No.1(2010)3953.
[9] Omkar M. Parkh, Andrea Vedaldi, Andrew Zisserman, “DeepFace
Recognition,” Department of Engineering Science, University of
81
Oxford.
[10] J.Deng,J.Guo,andS.Zafeiriou,“Arcface:Additiveangularmargin
lossfordeepfacerecognition,”arXivpreprintarXiv:1801.07698,2018.
[11] C. T. S. E. M. Jyh Shing Roger Jang, “Neuro fuzzy and Soft
Computing,”PrienticeHallInternational,Inc,2002.
[12] LeCun,Yann;LeonBottou;YoshuaBengio;PatrickHaffner(1998),
“Gradient-based learning applied to document recognition,” in
ProceedingsoftheIEEE.86(11):2278–2324,1998.
[13] ShifengZhang,XiangyuZhu,ZhenLei,HailinShi,XiaoboWangand
StanZ.Li,“FaceBoxes:ACPUReal-timeFaceDetectorwithHigh
Accuracy,”arXivpreprintarXiv:1708.05234,2017.
[14] Kazemi, Vahid and Sullivan, Josephine: “One Millisecond Face
AlignmentwithanEnsembleofRegressionTrees,”CVPR2014.
[15] Technical Report: Brandon Amos, Bartosz Ludwiczuk, Mahadev
Satyanarayanan,“OpenFace:Ageneral-purposefacerecognitionlibrary
withmobileapplications,”2016.
[16] [Online].Available:https://github.com/davisking/dlib-models.
[17] FlorianSchroff,DmitryKalenichenkoandJamesPhilbin,“FaceNet:A
Unified Embedding for Face Recognition and Clustering,” In
Proceedings of IEEE Conference on Computer Vision and Pattern
Recognition,pages815-823,2015.
[18] KaipengZhang,ZhanpengZhang,ZhifengLiandYuQiao,“JointFace
DetectionandAlignmentusingMulti-taskCascadedConvolutional
Networks,”IEEESignalProcessingLetters( ),vol.23,no.10,pp.SPL
1499-1503,2016.[Online].Available:
https://arxiv.org/ftp/arxiv/papers/1604/1604.02878.pdf.
[19] [Online].Available:https://arxiv.org/pdf/1708.05234.pdf.
[20] M. D. Zeiler and R. Fergus, “Visualizing and understanding
convolutionalnetworks,” European Conferenceon ComputerVision,
82
SpringerInternationalPublishing,pp.818-833,2014.
[21] C. Szegedy,W.Liu,Y.Jia,P.Sermanet,S.Reed,D.Anguelov,D.
Erhan, V. Vanhoucke, and A. Rabinovich, Going deeper with
convolutions,” in The IEEE Conference on Computer Vision and
PatternRecognition(CVPR),pp.1-9,2015.
[22] I.J.Goodfellow,D.Warde-Farley,M.Mirza,A.C.CourvilleandY.&
Bengio,“Maxoutnetworks,”ICML,vol.3,pp.1319-1327,2013.
[23] PierreBaldi,PeterJ.Sadowski,“UnderstandingDropout,”Publishedin
NIPS2013.
[24] Katarzyna Janocha and Wojciech Marian Czarnecki, “On Loss
FunctionsforDeepNeuralNetworksinClassification,”arXivpreprint
arXiv:1702.05659,2017.
[25] W.Liu,Y.Wen,Z.Yu,M.Li,B.Raj,andL.Song,“Sphereface:Deep
hypersphereembeddingforfacerecognition”,inTheIEEEConference
onComputerVisionandPatternRecognition(CVPR),vol.1,2017,p.
1.
[26] CorinnaCortesandVladimirVapnik(1995),“Support-Vector
Networks”,[Online].Available:
http://image.diku.dk/imagecanon/material/cortes_vapnik95.pdf.
[27] Warren S. McCulloch and Walter Harry Pitts (1943), “A Logical
CalculusofIdeasImmanentinNervousActivity,UniversityofIllinois,
College of Medicine,” Department of Psychiatry at the Illinois
NeuropsychiatricInstitute,UniversityofChicago,Chicago,U.S.A.
https://www.cs.cmu.edu/~./epxing/Class/10715/reading/
McCulloch.and.Pitts.pdf.
| 1/91

Preview text:

i LỜI CAM ĐOAN
Tất cả những nội dung nghiên cứu, kết quả trong luận văn này đều là do
tôi thực hiện dưới sự hướng dẫn khoa học của thầy TS. Phạm Thế Anh. Ngoài
ra, các tài liệu tham khảo được sử dụng trong luận văn đều được trích dẫn rõ
ràng tên tác giả, tên công trình, thời gian, địa điểm, …
Tôi xin cam đoan luận văn này không trùng lặp với các khóa luận, luận
văn, luận án và các công trình nghiên cứu đã công bố. Nếu sai tôi xin hoàn
toàn chịu trách nhiệm trước hội đồng khoa học và trước pháp luật.Người cam đoan Lê Diệu Linh ii LỜI CẢM ƠN
Trướchết,tôixinđượcgửilờicảmơnchânthànhvàsâusắcnhấttới
TS.PhạmThếAnh–giáoviênhướngdẫncủatôi,ngườiđãhếtlònghỗtrợ
vàgiúpđỡtôitrongquátrìnhnghiêncứuvàhoànthiệnluậnvănthạcsĩcủa mình.
Tôicũngxingửilờicảmơntớicácthầy,cáccôtrongKhoa CNTT&TT,
TrườngĐạihọcHồngĐứcđãtậntìnhdạydỗvàtrangbịchotôimộtnềntảng
kiếnthứcvữngchắcđểgiúptôihoànthànhluậnvănnày.Cảmơncácbạn,
cácanhchịlàhọcviêncaohọclớpKhoahọcmáytínhK10,trongquátrình
họcthạcsĩđãluôngiúpđỡvàchiasẻnhữngkinhnghiệmquýgiáchotôi.
Vàtôicũngxingửilờicảmơnđặcbiệttớimẹtôi,ngườiđãnuôinấng,
dạydỗ,chămlovàđộngviêntôihoànthànhkhóahọcthạcsĩvàluậnvănnày.
Mặcdùđãcốgắnghếtsứcđểhoànthànhluậnvănnhưngchắcchắnsẽ
khôngthểnàotránhkhỏinhữngsaisót.Kínhmongnhậnđượcsựcảmthông,
gópý,chỉbảocủaquýthầycôvàcácbạn.
Tôi xin chân thành cảm ơn!
Thanh Hóa, ngày…..tháng 10 năm 2019 Người cảm ơn Lê Diệu Linh iii MỤC LỤC Trang
LỜI CAM ĐOAN.............................................................................................i
LỜI CẢM ƠN..................................................................................................ii
MỤC LỤC.......................................................................................................iii
DANH MỤC CÁC HÌNH VẼ........................................................................vi
DANH MỤC CÁC BẢNG BIỂU...............................................................viii
DANH MỤC CÁC TỪ VIẾT TẮT...............................................................ix
MỞ ĐẦU..........................................................................................................1
1.Tínhcấpthiếtcủađềtài................................................................................1
2.Mụctiêunghiêncứucủađềtài.....................................................................2
3.Đốitượngvàphạmvinghiêncứu.................................................................3
4.Phươngphápnghiêncứu...............................................................................3
5.Dựkiếnkếtquảđạtđược..............................................................................3
6.Nộidungvàcấutrúccủaluậnvăn................................................................3
Chương 1: TỔNG QUAN VỀ NHẬN DẠNG KHUÔN MẶT NGƯỜI  ......5
1.1.TổngquanvềAIvàtiềmnăngứngdụng...................................................5
1.2.Bàitoánnhậndạngmặtngười....................................................................6
1.2.1.Kháiquátvềhệthốngnhậndạngmặtngười...........................................7
1.2.2.Nhữngkhókhăncủabàitoánnhậndạngkhuônmặtngười....................8
1.2.3.Mộtsốphươngphápnhậndạngmặtngười.............................................9
1.3.Cácứngdụngcủanhậndạngmặtngười..................................................11
1.4.Mộtsốphầnmềmthươngmạiliênquan..................................................13
1.5.Phạmvivàgiớihạncủađềtài.................................................................13
1.6.Kếtluậnchương1....................................................................................13
Chương 2: CƠ SỞ LÝ THUYẾT
.................................................................14
2.1.Kiếntrúctổngquáthệthống....................................................................14
2.2.Tìnhhìnhnghiêncứutrongvàngoàinước..............................................16
2.3.Mạngnơronsinhhọc................................................................................18 iv
2.4.Mạngnơronnhântạo...............................................................................19
2.4.1.Môhìnhtoánhọcmạngnơronnhântạo................................................20
2.4.2.Kiếntrúcmạngnơronnhântạo.............................................................22
2.4.3.Mộtsốkiểukiếntrúcmạngnơronnhântạo..........................................23
2.4.4.Cácứngdụngcủamạngnơronnhântạo...............................................25
2.4.5.Huấnluyệnmạngnơron........................................................................26
2.4.6.MạngnơronMLPvàứngdụngtrongnhậndạngảnh...........................28
2.5.Mạngnơrontíchchập(ConvolutionalNeuralNetworks–CNNs)..........30
2.6.Mộtsốhàmmụctiêu(loss)phổbiến.......................................................35
2.6.1.HàmTripletLoss...................................................................................35
2.6.2.HàmCross-EntropyLoss......................................................................37
2.6.3.HàmAngular-SoftmaxLoss..................................................................38
2.6.4.HàmArcFaceLoss................................................................................39
2.7.Kếtluậnchương2....................................................................................40
Chương 3: XÂY DỰNG KIẾN TRÚC MẠNG NƠRON NHẬN DẠNG  
KHUÔN MẶT NGƯỜI.................................................................................42
3.1.Thuthậpvàxâydựngtậpdữliệuhuấnluyện..........................................42
3.1.1.Bộdữliệuhuấnluyệnchomôhìnhmạngtheochuẩn(benchmark).....42
3.1.2.BộdữliệuhuấnluyệnngườiViệt.........................................................42
3.2.Kiếntrúctổngquáthệthốngnhậndạngkhuônmặt................................45
3.3.Kiếntrúcmạngnơronchobàitoánpháthiệnkhuônmặt........................45
3.3.1.Phátbiểubàitoánfacedetection...........................................................45
3.3.2.Kiếntrúcmạngdòtìmkhuônmặt.........................................................46
3.4.Kiếntrúcmạngfacelandmark.................................................................47
3.4.1.Phátbiểubàitoán..................................................................................47
3.4.2.Kiếntrúcmạngfacelandmark..............................................................48
3.5.Kiếntrúcmạngđặctrưngkhuônmặt(faceembedding)..........................51
3.5.1.Phátbiểubàitoán..................................................................................51
3.5.2.Kiếntrúcmạngđặctrưngkhuônmặt....................................................51 v
3.6.Kếtluậnchương3....................................................................................59
Chương 4: KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ  ........................61
4.1.Môitrườngcàiđặtvàpháttriểnứngdụng...............................................61
4.1.1.Phầncứng..............................................................................................61
4.1.2.Phầnmềm..............................................................................................61
4.2.Bộdữliệuthựcnghiệm............................................................................64
4.3.Phươngphápđánhgiá,thửnghiệm..........................................................64
4.4.Kếtquảđánhgiá,thửnghiệm..................................................................65
Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
................................70
1.Kếtluận.......................................................................................................70
2.Hướngpháttriển..........................................................................................70
TÀI LIỆU THAM KHẢO............................................................................72 vi
DANH MỤC CÁC HÌNH VẼ Trang
Hình1.1.Kiếntrúcđiểnhìnhcủamộthệthốngthịgiácmáy..........................7
Hình2.1.Sơđồkhốithuậttoándòtìmvànhậndạngkhuônmặt...................15
Hình2.2.Cấutrúccủamộtnơronsinhhọcđiểnhình.....................................18
Hình2.3.Môhìnhmộtnơronnhântạo...........................................................21
Hình2.4.Minhhọamộtkiếntrúcmạngnơronđiểnhình...............................23
Hình2.5.Môhìnhmạngnơronmộtlớp.........................................................23
Hình2.6.Môhìnhmạngnơron3lớptruyềnthẳng.........................................24
Hình2.7.Mạngtruyềnthẳng..........................................................................24
Hình2.8.Mạngphảnhồi.................................................................................25
Hình2.9.Môhìnhhuấnluyệnmạngcógiámsát...........................................27
Hình2.10.Môhìnhhuấnluyệnmạngkhôngcógiámsát..............................27
Hình2.11.Môhìnhhuấnluyệnmạngtăngcường..........................................28
Hình2.12.KiếntrúcmạngMLP....................................................................29
Hình2.13.Mạngnơronlantruyềnngược.......................................................30
Hình2.14.KiếntrúcmộtmạngCNNđiểnhình[12]......................................32
Hình2.15.KiếntrúcdạngđồhọacủamộtmạngCNN..................................33
Hình2.16.NguyêntắccủaquátrìnhhuấnluyệnmạngDNN........................36
Hình2.17.Môphỏngbộmôtả128giátrịcủamộtkhuônmặt......................37
Hình2.18.Môtảphânbốcácđặctrưngkhuônmặtkhidùngđộđobiên
Euclidean.........................................................................................................38
Hình2.19.(a)Minhhọaphânbốcủađặctrưngkhuônmặtkhidùngđộđo
biêntheogóc(marginallearning),(b)Kếtquảkhichiếucácđặctrưngở(a)
sangkhônggiansiêucầu[25].........................................................................39
Hình2.20.Minhhọaphânbốkhônggianđặctrưngcủa8đốitượngkhác
nhau,dùng(a)hàmbiênEuclidean(softmaxloss)và(b)AdditiveAngular
MarginLoss(ArcFaceloss)............................................................................40 vii
Hình3.1.Quytrìnhthuthậpdữliệu...............................................................43
Hình3.2.Biểuđồthốngkêquátrìnhthuthậpdữliệu....................................44
Hình3.3.Ảnhgốctrongcơsởdữliệuthuthập..............................................44
Hình3.4.Kiếntrúctổngquáthệthốngnhậndạngkhuônmặt.......................45
Hình3.5.Quátrìnhpháthiệnkhuônmặttrongảnh........................................46
Hình3.6.KiếntrúcmạngFaceLandmark......................................................48
Hình3.7.Cácđiểmđánhdấumẫucủamộtkhuônmặt(68điểm)..................48
Hình3.8.Quátrìnhhiệuchỉnhkhuônmặt......................................................49
Hình3.9.Minhhọakếtquảướclượngcácđiểmđánhdấutrênảnhđầu........50
Hình3.10.Môhìnhlưới68điểmchokếtquảkhôngtốtvớicáctrườnghợp
mặtnghiêng.....................................................................................................50
Hình3.11.Mộtsốkếtquảdòtìmcácđiểmđánhdấucủamôhìnhlưới5
điểm.................................................................................................................51
Hình3.12.KiếntrúcmạngNN1dựatrêncấutrúcmạngdo..........................54
ZeilervàFergusđềxuất..................................................................................54
Hình3.13.KiếntrúcmạngNN2sửdụngmôhìnhInceptiondựatrên...........56
Hình3.14.CấutrúccủamoduleInceptionđượcdùngtrongmôhìnhNN2,
giớithiệulầnđầubởiGoogletrongmạngGoogleNet....................................56
Hình4.1.MôitrườngảohóaAnaconda..........................................................62
Hình4.2.BiểuđồlượtstarvàrepostrêngithubsửdụngTF..........................63
Hình4.3.NgônngữlậptrìnhPython..............................................................64
Hình4.4.Vídụvềkếtquảnhậndạngkhuônmặt...........................................68 viii
DANH MỤC CÁC BẢNG BIỂU Trang
Bảng3.1.Thốngkêquátrìnhthuthậpdữliệu................................................44
Bảng3.2.MôhìnhmạngNN1dựatrêncấutrúcmạngdoZeilervàFergusđề
xuất,vớicáclớp(layer),kíchthướcinput(size-in)vàoutput(size-out)có dạng   
(sốdòng sốcột sốbộlọc),riêngphầnnhân (kernel)là 
(sốdòng sốcột),stride(dòng cột,bướcsải)và
kíchthướcmaxoutpoolinglà
[17].......................................................53
Bảng3.3.FaceNetsửdụngmôhìnhInceptiontươngtựvới[21].Haiđiểm
khácbiệtchínhđólàFaceNetsửdụngL2poolingthayvìmaxpooling.Kích
thướcpoolingluônlà3 3vàtínhsongsongvớimoduletíchchậptrongmỗi
moduleInception.Nếugiảmchiều(dimensionalityreduction)thìpoolingsẽ
đượckýhiệuvới .Cácpoolingkíchthước1 1,3 3và5 5đượcnốilạiđể
chorakếtquả[17]...........................................................................................55
Bảng4.1.Minhhọakếtquảnhậndạng10đốitượng.....................................66 ix
DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt Từ tiếng Anh Nghĩa tiếng Việt AI ArtificialIntelligence Trítuệnhântạo ANN ArtificialNeuralNetworks
Mạngnơronnhântạo CNN
ConvolutionalNeuralNetwork Mạngnơrontíchchập DCNN
DeepConvolutionalNeural
Mạngnơrontíchchậpsâu Networks DNN DeepNeuralNetworks Mạngnơronsâu FRS FaceRecognitionSystem
Hệthốngnhậndạngkhuônmặt LDA
LinearDiscriminantAnalysis
Phươngphápphântíchphân táchtuyếntính MLP MultiLayerPerceptron
Mạngtruyềnthẳngcónhiều lớp PCA
PrincipalComponentAnalysis Phươngphápphântíchthành phầnchính SVM SupportVectorMachine Máyhỗtrợvector 1 MỞ ĐẦU
1. Tính cấp thiết của đề tài
Ngàynaycùngvớinhữngtiếnbộvượtbậcvàsựpháttriểncủakhoahọc
kỹthuật,lĩnhvựckhoahọcxửlýảnhđãvàđangđạtđượcnhữngthànhtựuto
lớnvàchứngminhvaitròkhôngthểthiếutrongnhữngứngdụngthiếtyếu
củakhoahọckỹthuậtvàđờisốngxãhội.Vàđặcbiệt,chúngtađãchứngkiến
đượcnhiềuthànhtựuvượtbậctronglĩnhvựcthịgiácmáytính(Computer
Vision).Lĩnhvựcnàyhiệnđãvàđangthuhútrấtnhiềusựquantâmcủacác
nhànghiêncứu,cáchọcgiảtrongvàngoàinước.
AI(ArtificialIntelligence)–Trítuệnhântạolàsựmôphỏngcácquátrình
hoạtđộngtrítuệcủaconngườibằngmáymóc,đặcbiệtlàcáchệthốngmáy
tính.Cácquytrìnhnàybaogồmhọctập(thunhậnthôngtinvàquytắcsử
dụngthôngtin),lýluận(sửdụngquytắcđểđạtđượckếtluậngầnđúnghoặc
xácđịnh)vàtựđiềuchỉnh.MộtsốứngdụngđặcbiệtcủaAIbaogồmhệ
chuyêngia,nhậndạnggiọngnóivàthịgiácmáy.Ngàynay,AIđãđượcứng
dụngtrongrấtnhiềulĩnhvực,ngànhnghềvàcôngviệckhácnhaunhưchăm
sócsứckhỏe,kinhdoanh,giáodục,tàichính,phápluật,sảnxuất,…cóthểkể
đến1sốứngdụngđiểnhìnhcủaAInhưtrợlýảo,nhàthôngminh,nhậndiện
khuônmặtngườidùng,pháttriểnxetựláihaydronegiaohàngtựđộng,…
NhữngứngdụngcủaAItrongthựctếcóthểgiúpconngườinângcaonăng
suấtlaođộng,tiếtkiệm,thờigian,chiphítừđócảithiệnchấtlượngcuộc
sống.Tuynhiên,bêncạnhnhữnglợiíchmàAImanglạithìsựpháttriểnquá
nhanhcủanócũngmanglạichoconngườinhữngmốilolắngnhấtđịnhmà
chúngtakhôngthểlườngtrướcđượchậuquảvàthíchnghikịpthời.Khimà
cácquytrìnhđềuđượctựđộnghóavàmọicôngviệchàngngàyđềudongười
máythựchiệnthìmốilongạitrítuệnhântạocótiềmnăngpháttriểnnhanh 2
hơntríthôngminhcủaloàingườivàkhichúngtakhôngthểkiểmsoátđược
chúngthìrấtcóthểchúngsẽnổiloạnvàquaylạikiểmsoátchúngta.Ngoài
ra,trướcsựpháttriểnchóngmặtcủaAI,cáccôngviệcsẽđượchoànthành
vớitốcđộnhanhhơn,đồngnghĩavớiviệcnhiềungườisẽbịmấtviệclàm.
Trongtươnglaigần,nhữngcôngviệchàngngàymangtínhchấtlặplại,dây
chuyềnsẽđượcthựchiệnbởimáymóc,chúngsẽdầnthaythếconngườicho
nhữngvịtríđólàmgiatăngtỷlệthấtnghiệp.
MộttrongsốnhữngtiếnbộmớinhấtcủaAItrongvàinămqualànhận
dạngkhuônmặtngười.Nhậndạngkhuônmặtngườilàmộtcôngnghệtrong
lĩnhvựcthịgiácmáyvàđượcứngdụngrộngrãitrongđờisốnghàngngày
củaconngườinhưcáchệthốnggiámsát,theodõivàbảovệ,quảnlývàora,
điềutratộiphạm,kiểmtrahànhkháchởsânbay,xácthựctruycậpvàohệ
thống,…Córấtnhiềuthuậttoánđãđượcnghiêncứunhằmmụcđíchcải
thiệnđộchínhxáccủahệthốngtrongquátrìnhnhậndạngkhuônmặtngười.
Trongđósửdụngphươngphápdeeplearninglàmộtphầntrongnhómcác
phươngpháphọcmáyvới1sốcáckiếntrúchọcnhưMạngnơronsâu(Neural
Networks),Mạngniềmtinsâu(DeepBeliefNetworks–DBN),Mạngnơron
tíchchập(ConvolutionalNeuralNetwork-CNNs),…Mỗihệthốngđềucó
ưuđiểmriêng.TuynhiênhạnchếcủacáchệthốngAIhiệntạivềnhậndạng
khuônmặtngườivẫncònnhưthiếudữliệuđặcthùvềvùngmiền,cụthểdữ
liệukhuônmặtChâuÁ,ngườiViệtNam,…
Dođó,tôiđãlựachọnđềtài“Nghiên cứu các kỹ thuật học sâu và ứng
dụng trong bài toán nhận dạng khuôn mặt người”nhằmxâydựnghệthống
AInhậndạngkhuônmặtvớisựtậptrungvàoviệchọccáckhuônmặtChâu
Á,cụthểlàngườiViệtNam,gópphầncảithiệnđộchínhxáccaocủahệ
thốngAInhậndạngkhuônmặtngườihiệnnay. 3
2. Mục tiêu nghiên cứu của đề tài -
Nghiêncứucáckỹthuậthọcsâu,cácmạngnhânchậpchobàitoán
nhậndạngđốitượng. -
Xâydựngthànhcônghệthốngtrítuệnhântạonhậndạngkhuônmặt
trêncơsởđịnhhướnghọccácđặctrưngkhuônmặtcủangườiChâuÁ,cụthể làngườiViệtNam.
3. Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu của đề tài: -
Hệthốngnhậndạngkhuônmặtngười. -
Nghiêncứuvềcáckỹthuậthọcsâuvàứngdụngtrongbàitoánnhận
dạngkhuônmặtngười.
Phạm vi nghiên cứu: -
Nghiêncứuvềxửlýảnh,trítuệnhântạo,cácmạngnhânchập. -
Ápdụngkỹthuậthọcsâutrongnhậndạngkhuônmặtngười. -
Xâydựngthửnghiệmhệthốngnhậndạng.
4. Phương ph_p nghiên cứu -
Phương pháp nghiên cứu lý thuyết:
Tìmhiểuvànghiêncứucáctàiliệuliênquanđếnđềtàitrongđóbaogồm 4
cácbàibáo,cáccôngtrìnhnghiêncứutrongvàngoàinước.Từđócóthể
phântíchcácưunhượcđiểmcủatừngcáchtiếpcận. -
Phương pháp nghiên cứu thực nghiệm:
Thiếtkếvàhuấnluyệnkiếntrúcmạngnơrontrêntậpdữliệuchuẩn;tổ
chứcđánhgiávàhiệuchỉnh,hoànthiệnkiếntrúcmạng,cácthamsốmạng,…
đểđạtkếtquảcaonhấtvềđộchínhxácvàtốcđộxửlý.
5. Dự kiến kết quả đạt được -
TậpdữliệuhuấnluyệnhọccácđặctrưngkhuônmặtcủangườiViệt Nam. -
Thiếtkếkiếntrúcmạngnơronphụcvụhọccácđặctrưngkhuônmặt. -
Xâydựnghệthốngdemoquátrìnhnhậndạngkhuônmặttừvideovà dữliệuảnh.
6. Nội dung và cấu trúc của luận văn
Đềtài “Nghiên cứu các kỹ thuật học sâu và ứng dụng trong bài toán nhận
dạng khuôn mặt người”gồm5chương:
Chương 1: Tổng quan về nhận dạng khuôn mặt người 5
GiớithiệutổngquanvềAI,bàitoánnhậndạngkhuônmặt,cácphương
phápvàcácứngdụngcủanhậndạngkhuônmặt.
Chương 2: Cơ sở lý thuyết
Trìnhbàycơsởlýthuyếtcủabàitoánnhậndạngkhuônmặt.Giớithiệu
tổngquanvềhệthốngnhậndạngkhuônmặt,tìnhhìnhnghiêncứutrongvà
ngoàinước.Nghiêncứu cáckỹthuậthọcsâu,cácmạngnhânchậpvàứng
dụngchobàitoánnhậndạngkhuônmặt,mộtsốhàmmụctiêu(lossfunction) phổbiến.
Chương 3: Xây dựng kiến trúc mạng nơron nhận dạng khuôn mặt người
Trìnhbàyquytrìnhthuthậpvàxâydựngbộdữliệuhuấnluyệnngười
Việt.Kiếntrúctổngquancủahệthốngnhậndạngkhuônmặt,phântíchưu
nhượcđiểm,quátrìnhhuấnluyện,từđóđềxuấtcáccảitiếnchấtlượngmạng
đãhuấnluyện(pre-trainedmodel)chobộdữliệuhuấnluyệnngườiViệtđã thuthậpđược.
Chương 4: Kết quả thực nghiệm và hướng ph_t triển
Trìnhbàykếtquảthựcnghiệm,môitrườngcàiđặt,bộdữliệuhuấnluyện
ngườiViệtvàphươngphápđánhgiá,thửnghiệm.
Chương 5: Kết luận và hướng ph_t triển
Tổngkếtcácnộidungđãtrìnhbàytrongluậnvăn,từđóđềxuấtcác
phươnghướngnghiêncứutiếptheođểtiếptụccảithiệnchấtlượngnhậndạng củahệthống. 6 Chương 1:
TỔNG QUAN VỀ NHẬN DẠNG KHUÔN MẶT NGƯỜI
1.1. Tổng quan về AI và tiềm năng ứng dụng
Ngaytừkhiphátminhrachiếcmáytínhđiệntửđầutiên,khảnăngthực
hiệncáccôngviệckhácnhaucủaconngườiđãtănglêntheocấpsốnhân.Con
ngườiđãpháttriểnsứcmạnhcủacáchệthốngmáytínhvớicáclĩnhvựclàm
việcđadạng,tốcđộngàycàngtăngvàgiảmkíchthướctheothờigian.
MộtbộphậncủaKhoahọcmáytínhcótênlàTrítuệnhântạotheođuổi
việctạoracácmáytínhhoặcmáymócthôngminhnhưconngười.
Trítuệnhântạo(ArtificialIntelligence–AI)haytríthôngminhnhântạo
làsựmôphỏngcácquátrìnhhoạtđộngtrítuệcủaconngườibằngmáymóc,
đặcbiệtlàcáchệthốngmáytính.Cácquytrìnhnàybaogồmhọctập(thu
nhậnthôngtinvàquytắcsửdụngthôngtin),lýluận(sửdụngquytắcđểđạt
đượckếtluậngầnđúnghoặcxácđịnh)vàtựđiềuchỉnh.AIchiếmưuthế
trongcáclĩnhvựckhácnhaunhưxửlýngônngữtựnhiên,hệchuyêngia,
nhậndạnggiọngnóivàthịgiácmáy,…
Vậynhưthếnàolàtrítuệnhântạo?
TheochađẻcủaTrítuệnhântạo,JohnMcCarthy,trítuệnhântạolà
“Khoahọcvàkỹthuậtchếtạomáymócthôngminh,đặcbiệtlàcácchương
trìnhmáytínhthôngminh”.
Trongquátrìnhsửdụngvàkhaithácsứcmạnhcủacáchệthốngmáytính
conngườiđãtựđặtracâuhỏi:Làmthếnàođểchếtạoramộtchiếcmáytính
haymộtrobotcócáchsuynghĩ,tưduy,họchỏitươngtựnhưtrítuệcon
người?TừđósựpháttriểncủaAIbắtđầuvớimụcđíchtạoracáchệchuyên
giavàcácmáymóccótrítuệnhưconngười.
Trítuệnhântạomanglạirấtnhiềugiátrịchocuộcsốngcủaconngười.
tuynhiênbêncạnhđótiềmẩnnhiềunguycơ,rủiro.Khimàtrítuệnhântạo
pháttriểnđạttớimộtngưỡngnhấtđịnhthìđócũnglàthờiđiểmloàingườibị 7 diệtvong.
1.2. Bài to_n nhận dạng mặt người
Nhậndạngmặtngười(FaceRecognition)làmộthướngnghiêncứuthuộc
lĩnhvựcthịgiácmáy(ComputerVision)đãđượcpháttriểntừđầunhữngnăm
90củathếkỷtrước.Chotớinayđâyvẫnlàmộthướngnghiêncứunhậnđược
sựquantâmcủarấtnhiềunhàkhoahọcvàcácnhómnghiêncứuđếntừnhiều
lĩnhvựcnghiêncứukhácnhaunhưnhậndạngmẫu(PatternRecognition),học
máy(MachineLearning),thốngkê(Statistics),sinhtrắchọc(Biometrics).
Hệthốngnhậndạngkhuônmặtlàmộtcôngnghệcókhảnăngxácđịnhhoặc
xácminhmộtngườitừhìnhảnhkỹthuậtsốhoặcmộtkhunghìnhvideotrong
mộtvideo.Cáchệthốngnhậndạngkhuônmặtcónhiềucáchthứchoạtđộng,
nhưngnóichung,chúnghoạtđộngbằngcáchsosánhcácđặcđiểmkhuônmặt
đượcchọntừhìnhảnhđãchovớikhuônmặttrongcơsởdữliệu.Nócũngđược
môtảnhưmộtứngdụngdựatrêntrítuệnhântạovềsinhtrắchọccóthểnhận
dạngmộtngườiduynhấtbằngcáchphântíchcácmẫudựatrênkếtcấuvàhình
dạngkhuônmặtcủangườiđó.Hệthốngnhậndạngkhuônmặtcómộtsốlợithế
sovớicácphươngthứcsinhtrắchọckhácnhưcáchệthốngnhậndạngvântay
(FingerprintRecognition)vànhậndạngmốngmắt(IrisRecognition):
- Mộthệthốngnhậndạngkhuônmặtkhôngđòihỏiphảicósựtươngtác
trựctiếpgiữađốitượngđượcnhậndạngvàhệthống.
- Việcthunhậndữliệuchoquátrìnhnhậndạngmộtkhuônmặtdễthựchiện
hơnsovớithunhậncácđặcđiểmsinhtrắchọckhác(dấuvântay,mốngmắt).
- Dosựrađời,pháttriểnmạnhmẽcủacácmạngxãhội(Facebook,
Instagram,Twitter,…),cáctrangweb,ứngdụngchiasẻdữliệuđaphương
tiện  (Youtube,  Zalo,  …)  cùng  với  các  thiết  bị  chụp  hình  thông  minh
(Smartphone,Ipad,…)màdữliệuvềkhuônmặtphổbiếnhơnsovớicácđặc 8 trưngkhác.
- Từkhuônmặtcủamộtngườichúngtacóthểkhaithácnhiềuthôngtin
liênquanđếnngườiđóchẳnghạnnhưgiớitính,màuda,sứckhỏe,độtuổi, cảmxúc,…
1.2.1. Khái quát về hệ thống nhận dạng mặt người
Đểgiảiquyếtbàitoánnhậndạngkhuônmặt,chúngtacầnápdụngcác
côngnghệtiêntiếnvềthịgiácmáy(ComputerVision),xửlýảnh(Image
Processing),máyhọc(MachineLearning)vàtrítuệnhântạo(cụthểlàcác
mạnghọcsâu–DeepLearning).Thịgiácmáy(ComputerVision)làmộttrong
nhữnghướngnghiêncứutrọngtâmcủangànhKhoahọcmáytính,nhằmgiải
quyếtcácbàitoánnhậndạng,giúpmáytínhcókhảnăng“nhìn”vànhậndạng
đốitượngthôngquaảnhchụphayvideo.Đểcóthểphântíchvànhậndạng
đượcđốitượng,cácchươngtrìnhmáytínhphảitríchchọnmộttậpcácđặc
trưng(FeatureVector)haybộmôtả(Descriptors)vềđốitượngtrongảnh.Các
bộmôtảsauđóđượcđốisánh(Matching)vớimộtcơsởdữliệu(CSDL)chứa
cácbảnmẫuđểtìmkiếmđốitượnggầnnhất(còngọilàphânlớp).Hình1.1
minhhọakiếntrúcđiểnhìnhcủamộthệthốngthịgiácmáygồm4thànhphần
chính:dòtìmđiểmkhóa(KeypointDetection),môtảđiểmkhóa(Keypoint
Description),lậpchỉmụccácbộmôtả(DescriptorIndexing)vàcuốicùnglà
đốisánh(Matching).Trongđó,haithànhphần:môtảđiểmkhóavàlậpchỉ
mụcchiếmvaitròquyếtđịnhđếnsựthànhcôngcủamộthệthốngnhậndạng
thịgiácmáybởivìchúngảnhhưởngđếnđộchínhxácnhậndạngvàthờigian
xửlý(củaquátrìnhđốisánh).Vớiýnghĩaquantrọngnhưvậy,cácnghiêncứu
vềtríchchọnđặctrưngvàđốisánhmẫuluônchiếmmộtvaitròquantrọng
trongcáclĩnhvựcthịgiácmáy,xửlýảnhvànhậndạngmẫu. 9 CSDL Dòtìm Môtảđiểm Lậpchỉmục Dữliệuđã điểmkhóa khóa cácbộmôtả ảnh lậpchỉmục Đốisánh Ảnhđầuvào Cácứngdụng
LuồngxửlýOffline
LuồngxửlýOnline
Hình 1.1. Kiến trúc điển hình của một hệ thống thị giác máy
Hiệnnay,vớisựpháttriểnmạnhmẽcủacácnềntảngphầncứngvàsự
phổbiếncủacácmạngxãhội,việcchiasẻdữliệuđãđượcthựchiệndễdàng
hơnbaogiờhết.Kếtquảcủasựpháttriểnnàyđólàmộtlượngdữliệukhổng
lồ(ảnh,video,giọngnói,…)đượcchiasẻvàlưutrữtrêncáctrangmạngxã
hội(Facebook,GooglePlus,Twitter,…).Nhờcónguồndữliệukhổnglồ
này,cácthuậttoánmáyhọcvàcụthểlàtrítuệnhântạomạnghọcsâu(Deep
Learning)đãcónhiềutiếnbộvượtbậc,cóthểứngdụngđểgiảiquyếtnhiều
bàitoánkhóđãtồntạitừnhiềunămtrướcđây.Mộttrongnhữngthànhquả
củasựpháttriểnnàylàbàitoándòtìmvànhậndạngkhuônmặt.
1.2.2. Những khó khăn của bài toán nhận dạng khuôn mặt người
Bàitoánnhậndạngmặtngườilàbàitoánđãđượcnghiêncứutừnhững
năm70.Tuynhiênviệcxâydựngmộthệthốngnhậndạngmặtngườihoàn
toàntựđộngvớikhảnăngnhậndạngchínhxáccaothựcsựlàmộttháchthức
đốivớicácnhómnghiêncứuvàcácnhàkhoahọc.Điềunàylàdocácyếutố
chủquanvàkháchquanlàmảnhhưởngtớiquátrìnhthunhậnảnhvàtạora
cácbứcảnhcósựkhácnhaurấtlớncủacùngmộtkhuônmặt.Cácyếutốchủ
yếuảnhhưởngtớiđộchínhxáccủamộthệthốngnhậndạngkhuônmặtcóthể kểđếnnhưsau:
- Về tư thế, góc chụp:ảnhchụpkhuônmặtcóthểbịthayđổirấtnhiều
dogócchụpgiữacameravàkhuônmặt.Vídụnhưchụpthẳng,chụpnghiêng
bêntrái450haynghiêngbênphải450,chụptừtrênxuống,chụptừdướilên, 10
…việcnhậndạngcácảnhcógócchụpthẳngcókếtquảtốthơnnhiềusovới
cácảnhđượcchụpởgócnghiênglớnhơn450.
- Sự xuất hiện hoặc thiếu một số thành phần của khuôn mặt:cácđặc
trưngnhưriamép,râu,mắt,nốtruồi,…cóthểxuấthiệnhoặckhông.Vấnđề
nàylàmchoquátrìnhnhậndạnggặpkhókhănhơnrấtnhiều.
- Sự biểu cảm của khuôn mặt:ởcáctrạngtháibiểucảmkhácnhaucủa
khuônmặt(cười,khóc,tứcgiận,…)cóthểlàmchocácbộphậntrênkhuôn
mặtbịbiếndạngvàdẫntớikếtquảnhậndạngsai.
- Sự che khuất: khuônmặtcóthểbịchekhuấtbởicácvậtchắntrước
mặthoặccácphụkiệntrênkhuônmặt(khẩutrang,kínhmắt)vàlàmchoquá
trìnhnhậndạngbịsai.
- Điều kiện của ảnh:ảnhđượcchụptrongcácđiềukiệnkhácnhauvề
điềukiệnchiếusáng,chấtlượngcamera(camerakỹthuậtsố,camerahồng
ngoại,…)ảnhhưởngrấtnhiềuđếnchấtlượngảnhkhuônmặt.Vídụ,mộtsự
thayđổinhỏtrongđiềukiệnánhsángluônđượcbiếtlàgâyratácđộnglớn
đếnkếtquảcủanó.Nếucườngđộchiếusángcóxuhướngthayđổithìngay
cảkhicùngmộtcánhânbịđượcchụpvớicùngmộtcảmxúcvàvớibiểucảm
vàtưthếkhuônmặtgầnnhưgiốnghệtnhau,kếtquảxuấthiệncóthểxuất hiệnkhákhácnhau.
1.2.3. Một số phương pháp nhận dạng mặt người
Hiệnnaycókhánhiềuphươngphápgiúpxácđịnhkhuônmặtngười.Dựa
vàotínhchấtcủacácphươngphápxácđịnhkhuônmặtngườicóthểchia
thành2hướngtiếpcậnchính:
- Hướng tiếp cận dựa trên thị gi_c m_y (khôngdùngcácmạngnơron
nhânchập)vớimôhìnhchuẩngồm:tríchchọncácđặctrưngkhuônmặt,phân
lớp(ápdụngcáckỹthuậtmáyhọc). 11
- Hướng tiếp cận dựa trên c_c mạng nơron nhân chập:quátrìnhtrích
chọncácđặctrưngkhuônmặtđượcthựchiệnbằngcácmạngCNNnhân
chập,theosaubởiquátrìnhphânlớpbằngcáckỹthuậtK-NNhoặcSVM.
1.2.3.1. Hướng tiếp cận dựa trên thị giác máy
Theohướngtiếpcậndựatrênthịgiácmáycóthểphânlàm2nhómchính nhưsau:
- Nhận dạng dựa trên các đặc trưng tổng thể của khuôn mặt
(Appearance based face recognition): nộidungchínhcủahướngtiếpcậnnày
làxemmỗiảnhcókíchthướcRxClàmộtvectortrongkhônggianRxCchiều.
Tasẽxâydựngmộtkhônggianmớicóchiềunhỏhơnsaochokhibiểudiễn
trongkhônggianđócácđặcđiểmchínhcủamộtkhuônmặtkhôngbịmấtđi.
Trongkhônggianđó,cácảnhcủacùngmộtngườisẽđượctậptrunglạithành
mộtnhómgầnnhauvàcáchxacácnhómkhác.Mộtsốphươngphápthường
đượcsửdụngtronghướngtiếpcậnnày:
Phương pháp trích chọn các đặc trưng tuyến tính:PCA,LDA.
Phương pháp trích chọn các đặc trưng phi tuyến: KPCA, ISOMAP.
Ưuđiểmcủaphươngphápnàyđólàkhôngcầnphảiphântíchnhiềuvề
đặcđiểmkhuônmặt.Dođó,phươngpháptiếpcậnnàytươngđốidễcàiđặt
hơnvàcũngkháhiệuquảtrongviệcnhậndạng.
Nhượcđiểmcủaphươngpháptiếpcậnnày:tùytheophươngphápsửdụng 12
(PCA,LDA)đểđánhgiánhượcđiểm.
- Nhận dạng dựa trên các đặc trưng của các phần trên khuôn mặt
(Feature based face recognition):
Đâylàphươngphápnhậndạngkhuônmặtdựatrênviệcxácđịnhcácđặc
trưnghìnhhọccủacácchitiếttrênmộtkhuônmặt(vịtrí,diệntích,hìnhdạng
củamắt,mũi,miệng,…)vàmốiquanhệgiữachúng(khoảngcáchcủahai
mắt,khoảngcáchcủahailôngmày,…).Mộtsốphươngphápđượcdùngcho loạinày:
Nhận dạng 2D:ElasticBunchGraph,ActiveAppearanceModel.
Nhận dạng 3D:3DMorphableModel.
Ưuđiểmcủaphươngphápnàylànógầnvớicáchmàconngườisửdụng
đểnhậnbiếtkhuônmặt.Hơnnữavớiviệcxácđịnhđặctínhvàcácmốiquan
hệ,phươngphápnàycóthểchokếtquảtốttrongcáctrườnghợpảnhcónhiều
nhiễunhưbịnghiêng,bịxoayhoặcánhsángthayđổi.
Nhượcđiểmcủaphươngphápnàylàcàiđặtthuậttoánphứctạpdoviệc
xácđịnhmốiquanhệgiữacácđặctínhđòihỏicácthuậttoánphứctạp.Mặt
khác,vớicácảnhkíchthướcbéthìcácđặctínhsẽkhóphânbiệtdođókhó
tínhtoánđượccácđặctrưngtrênkhuônmặt.
1.2.3.2. Hướng tiếp cận dựa trên các mạng nơron nhân chập
Theohướngtiếpcậndựatrêncácmạngnơronnhânchập(địnhhướngra
quyếtđịnh)cómộtsốhướngtiếpcậnnhưsau:
- SVM  (Support  Vector  Machine)  là  phương  pháp  nhận  dạng  do 13
VladimirN.Vapnikđềxuấtnăm1995[26].SVMlàphươngphápnhậndạng
dựatrênlýthuyếthọcthốngkêngàycàngđượcsửdụngphổbiếntrongnhiều
lĩnhvực,đặcbiệtlàlĩnhvựcphânloạimẫuvànhậndạngmẫu.Đồngthờicó
nhiềutínhnăngưuviệtsovớicácphươngphápcổđiểnkhác:dễdàngxửlý,
xửlývớitínhổnđịnhcaotrêndữliệuphứctạp,cóthểcósốchiềulớnvà
quantrọnghơncảlàkhảnăngxửlýtổngquát.
- Mạng nơronđược sử dụng rộng rãi  trong các  hệ thống  nhận dạng
khuônmặt.Kỹthuậtmạngnơronmôphỏnghoạtđộngcủacácnơrontrongbộ
nãongười.Mạngnơroncókhảnăngđiềuchỉnhcáctrọngsốdựatrêncácmẫu
họctrongquátrìnhhuấnluyện.Kếtquảlàmạngđạtđượchiệuquảcaotrong
việcphânloạicáclớp,dựatrêndữliệumẫukhảtáchtuyếntínhhoặcphi
tuyến.Chínhvìvậy,luậnvănlựachọngiảiphápsửdụngmạngnơronchoquá
trìnhnhậndạngvàphânloại.Nhượcđiểmcủaphươngphápnàylàcàiđặt
thuậttoánphứctạpdoviệcxácđịnhmốiquanhệgiữacácđặctínhđòihỏi
cácthuậttoánphứctạp.Mặtkhác,vớicácảnhkíchthướcbéthìcácđặctính
sẽkhóphânbiệt[1].
1.3. C_c ứng dụng của nhận dạng mặt người
Bàitoánnhậndạngkhuônmặtluônlàmộtbàitoánnhậnđượcsựquantâm
rấtlớntừcácnhómnghiêncứuvàcácnhàkhoahọcvìtínhphứctạpvàđòihỏi
khảnăngnhậndạngchínhxáccaocủahệthốngvàcũngbởivìnhữngứng
dụnghếtsứcthiếtthựccủanóđốivớiđờisốngconngườihiệnnay.Mộtsố
nhữngứngdụngthựctếcủahệthốngnhậndạngkhuônmặtcóthểkểđếnnhư: -
Hệthốnggiaotiếpthôngminhgiữangườivàmáy:conngườicóthểtạo
racáchệthốnggiaotiếpgiúpchonhữngngườibịkhuyếttậthaynhữngngười
dùngngônngữbằngtaycóthểtrao đổi,giaotiếpvớinhữngngườibình thường,… 14 -
Cáchệthốngtracứuthôngtin,nhậndạng,giámsátbằngcamerađể
pháthiệntộiphạmtạicáckhuvựccôngcộng. -
Cáchệthốngquansát,theodõivàbảovệconngười.Cáchệthống
camerasẽxácđịnhđốitượngvàtheodõingườiđóxemhọcóviphạmgì không,… -
Hệthốngđiềukhiển,ravàocáccơquanvănphòngkếthợpthêmvớihệ
thốngvântayvàmốngmắt:chophépnhânviênvàoracácnơiquantrọngmà
khôngcầnphảinhớtênđăngnhập,mậtkhẩuhaydùngthẻmàchỉcầnxác
thựcthôngquakhuônmặt. -
Hệthốngtìmkiếmconngườidựatrêncơsởdữliệucósẵn. -
Cáchệthốngphântíchcảmxúckhuônmặtconngười. -
Cáchệthốngkiểmtracácđặctrưngtrênkhuônmặtdựavàocácloại
thẻthôngminhtíchhợpsẵncácđặctrưngcủangườisửdụngtrênđó.Khibị
ngườikhácsửdụngđểtruycập,hệthốngsẽđượcyêucầukiểmtrathôngtin
củangườidùngvớithôngtintrênthẻđểbiếtđâycóphảilàchủthẻhay không. -
CáchệthốnglưutrữthẻATM. -
Hệthốnglưutrữhìnhảnhtrongđiệnthoạidiđộng:xácđịnhkhuônmặt
ngườivàdựavàocácđặctrưngcủatừngkhuônmặtđểsắpxếp,lưutrữgiúp
chongườidùngdễdàngtìmthấyhìnhảnhtrongquátrìnhsửdụng. -
Thẻcăncước,chứngminhnhândân(FaceIdentification). 15 -
Cáchệthốnganninhsânbay,xuấtnhậpcảnhdùngđểxácthựcngười
xuấtnhậpcảnhvàkiểmtraxemđócóphảilàtộiphạm,haynhânvậtkhủng bốkhông. -
Hệthốngkiểmtrangườiláixecósửdụngđồuốngcócồn,ngủgật
hoặcmấttậptrunghaykhôngvàhỗtrợthôngbáochongườiláikhigặpnguy hiểm. -
Cáchệthốngtronglĩnhvựctựđộnghóa,điềukhiểnrobot. - v/v…
1.4. Một số phần mềm thương mại liên quan
Mộtsốphầnmềmvớikhảnăngnhậndạngkhuônmặtnổibậtvàđộchính xáccaobaogồm: - digiKam 
(KDE):https://kde.org/applications/graphics/digikam/ - iPhoto 
(Apple):https://www.apple.com/macos/photos/ - OpenCV 
(OpenSource):https://opencv.org/ - PhotoshopElements  (AdobeSystems):
https://www.adobe.com/products/photoshop-elements.html - Picasa 
(củaGoogle):https://picasa.google.com/
- PictureMotionBrowser  (Sony):
https://www.sony.com/electronics/support/downloads/W0005134
hoặchttp://support.d-imaging.sony.co.jp/www/disoft/int/pmb/index2.html
- WindowsLivePhotoGallery 
(Microsoft):http://  gallery.live.com  /
1.5. Phạm vi và giới hạn của đề tài
TrongphạmvicủađềtàichúngtôixâydựnghệthốngAInhậndạng
khuônmặtvớisựtậptrungvàoviệchọccáckhuônmặtChâuÁ,cụthểlà
khuônmặtcủangườiViệtNamnhằmcảithiệnđộchínhxáccaocủahệthống 16
nhậndạngkhuônmặtngườihiệnnay.
1.6. Kết luận chương 1
Trongchươngnày,cácvấnđềtổngquanvềAI,bàitoánnhậndạngkhuôn
mặt,mộtsốphươngpháp,cácứngdụngvànhữngkhókhăncủabàitoánnhận
dạngkhuônmặtđãđượcchúngtôitrìnhbày.Chúngtôicũngđãgiớithiệu
mộtsốsảnphẩmthươngmạiđượcứngdụngrộngrãitrongvàngoàinước.
Cácđánhgiátổngquannhưtrênchothấylĩnhvựcbàitoánnàycórấtnhiều
ứngdụngtiềmnăngtrongthựctế.
Chươngtiếptheocủaluậnvănsẽtrìnhbàychitiếtvềcơsởlýthuyếtcủa
bàitoánnhậndạngkhuônmặt. 17 Chương 2: CƠ SỞ LÝ THUYẾT
2.1. Kiến trúc tổng qu_t hệ thống
Đểgiảiquyếtbàitoándòtìmkhuônmặtvànhậndạngkhuônmặt,chúng
tacầnápdụngcáccôngnghệtiêntiếnvềthịgiácmáy(ComputerVision),xử
lýảnh(ImageProcessing),máyhọc(MachineLearning)vàtrítuệnhântạo
(cụthểlàcácmạnghọcsâu–DeepLearning).
Trênhình2.1,cáckhunghìnhthunhậntừcamerasẽđượctruyềnvào
moduledòtìmkhuônmặtđểtríchxuấtcácvịtrítiềmnăngchứakhuônmặt.
Mỗikhuônmặtsauđóđượcxửlýđểchuẩnhóabằngcáchhiệuchỉnhđộ
nghiêng,thunhỏvềmộtkíchcỡ(thườnglà150x150).Cácảnhkhuônmặtsau
khichuẩnhóađượcchoquamoduletríchchọnđặctrưngnhằmtìmracácđiểm
đặctrưngnổibậtcủatừngkhuônmặt.Thôngthường,kếtquảcủabướcnàysẽ
choramộtvectorcácgiátrịsốmôtảcácđặctrưngmàhệthốngtríchchọn
được.Đểcóthểphânbiệthàngngànkhuônmặtkhácnhau,chúngtôiápdụng
mạnghọcsâu(DeepLearning)đểtríchchọncácđặctrưngnày.Cácvectorđặc
trưngđósẽđượchuấnluyệnbởimộtthuậttoánmáyhọc(MachineLearning)
đểphânlớpcáckhuônmặtvềcácđốitượngkhácnhau.Thuậttoánchúngtôi
chọnởđâylàmáyhỗtrợvector(SupportVectorMachine)vìcótốcđộxửlý
nhanh,cóthểhoạtđộngtốtngaycảkhitậpdữliệuhuấnluyệnnhỏ.Cácbước
môtảtrênđượcthựchiệnmộtlầnđểhuấnluyệncácthamsốcủahệthống.Khi
đưavàohoạtđộngtrongthựctế(Online),chúngtaápdụngquytrìnhtươngtự
chođếnbướctríchchọnđặctrưng.Sauđó,sẽthựchiệnquátrìnhđốisánhvà
phânlớpđểdựđoánnhãncủacáckhuônmặt.Cuốicùng,mộtbướcxácthựcsẽ
đượcthựchiệnđểđưaradanhsáchnhậndạngcuốicùng. 18 Hường Liên Khung hình từ video Đình M_y học (SVM) Quyên Mai Dò tìm Trích chọn Học đặc khuôn mặt đặc trưng trưng Hường Liên
Kết quả nhận dạng Đối sánh phân lớp Đình Quyên Mai Xác thực
Hình 2.1. Sơ đồ khối thuật toán dò tìm và nhận dạng khuôn mặt
Hiệnnay,vớisựpháttriểnmạnhmẽcủacácnềntảngphầncứngvàsự
phổbiếncủacácmạngxãhội,việcchiasẻdữliệuđãđượcthựchiệndễdàng
hơnbaogiờhết.Kếtquảcủasựpháttriểnnàyđólàmộtlượngdữliệukhổng
lồ(ảnh,video,giọngnói,…)đượcchiasẻvàlưutrữtrêncáctrangmạngxã
hội(Facebook,GooglePlus,Twitter,…).Nhờcónguồndữliệukhổnglồ
này,cácthuậttoánmáyhọcvàcụthểlàtrítuệnhântạomạnghọcsâu(Deep
Learning)đãcónhiềutiếnbộvượtbậc,cóthểứngdụngđểgiảiquyếtnhiều
bàitoánkhóđãtồntạitừnhiềunămtrướcđây.Mộttrongnhữngthànhquả
củasựpháttriểnnàylàbàitoándòtìmkhuônmặtvànhậndạngkhuônmặt.
Tuynhiên,hạnchếcủakỹthuậtnàyđólàcầnmộtmáytínhcókhảnăngxửlý
cựcmạnh.Đâylàđiềuchưakhảthiđểtriểnkhaitrênphạmvịrộngtrongthực
tế.Hơnnữa,nhiềukhuônmặtxuấthiệntrongảnhvớiđộphângiảirấtthấp.
Chodùchúngtadòtìmđượccáckhuônmặtđó,việcnhậndạngđólàaisẽlà
rấtkhókhăn.Vìvậy,trongphạmvicủađềtàinày,chúngtôiđềxuấtmột 19
cáchtiếpcậnphùhợphơnvàkhaitháccácđặctrưngcủakhuônmặtngười châuÁ.
2.2. Tình hình nghiên cứu trong và ngoài nước
Vớisựpháttriểncủathịgiácmáytính(ComputerVision)đãcórấtnhiều
phươngphápnhậndạngkhuônmặtđượcnghiêncứuvàápdụng.Mụctiêu
chungcủacácphươngphápnàylàxâydựngmộtmôhìnhhệthốngnhậndạng
khuônmặtvớiđộchínhxáccao.Hiệnnaycórấtnhiềuphươngphápnghiên
cứunhằmnângcaohiệusuấtnhậndạngvàtốiưuhóahệthống.
Có2phươngphápnhậndạngkhuônmặtphổbiếnhiệnnaylànhậndạng
dựa trên  đặc  trưng của  các  phần tử  trên  khuôn mặt  như  biến đổi  Gabor
WaveletvàmạngNeural,SVM(SupportVectorMachine),…vànhậndạng
dựatrênxéttổngthểtoànkhuônmặtnhưphươngphápPCA,LDA,LFA[3]
[2].Trongđó,PCAlàphươngpháptríchrútđặctrưngnhằmgiảmsốchiều
củaảnhtuyđơngiảnnhưngmanglạihiệuquảtốt.Nhậndạngkhuônmặt
dùngPCAkếthợpvớimạngnơronlàphươngphápmanglạihiệuquảnhận
dạngcaobởinópháthuyđượcưuđiểmcủaPCAvàmạngnơron[4].Hệ
thốnghoạtđộngổnđịnhvàcótínhthíchnghicaokhidữliệuđầuvàothayđổi
nhiều.Bêncạnhđó,nhậndạngkhuônmặtdựatrêncácđặctrưngcủacác
phầntửtrênkhuônmặtcũngthuhútđượcnhiềunhàkhoahọcnghiêncứu.
Sang-KiKim,YounJungPark,Kar-AnnToh,SangyounLeeđãsửdụng
phươngphápSVM(SuportVectorMachine)[5]đểnhậndạngmặtngười.
Nhómtácgiảđãđưaramộtgiảiphápứngdụngđộphântángiữacáclớp
(margin-based)(độphântánđượctínhbởikhoảngcáchmặtphẳngphâncách)
vàquytrìnhđiềutiết(regularizationprocess)đểgiảiquyếtnhữngvấnđềcủa
phươngphápLDA1truyềnthống.Trênhết,nhómtácgiảđãthiếtkếlạima
trậnđộphân tángiữa cáclớp (Between-ClassScatter matrix) dựatrênlề
(margin–khoảngcáchphântáchtừ1lớpđếnmặtphẳngphântách)của
phươngphápSVMđểphântáchcácđặctrưngmộtcáchhiệuquảvàđángtin
1LinearDiscriminantAnalysis(Phươngphápphântíchphântáchtuyếntính) 20
cậy.Sauđó,quátrìnhđiềutiếtsẽđượcápdụnglênmatrậnphântántrong
cùng1lớp(within-classscattermatrix).Cácthínghiệmmởrộngđượcdùng
đểsosánhphươngphápđềxuấtvớinhiềubiếnthểkháccủaphươngpháp
LDA,sửdụngbộdữliệucủaFERET,ARvàCMU-PIE.
ZhimingLiu,ChengjunLiuđãgiớithiệumộtphươngphápnhậndạng
khuônmặtmớisửdụngviệctrộnmàu(FusingColor)[6],thôngtinvềkhông
giancụcbộvàtầnsốtoàncục.Cụthểhơn,phươngphápđềxuấtsẽhòatrộn
cácđặctrưngtừkhônggianmàuhybrid,cácmẫunhịphâncụcbộ(LBP)và
biếnđổicô-sinrờirạc(DCT)củahìnhảnhđầuvào.
SHU  Chan,  DING  Xiaoqing,  FANG  Chi  sử  dụng  đặc  trưng  HOG
(HistogramofOrientedGradient)[7]choviệcnhậndạngkhuônmặt.
K.RubaSoundarvàK.Murugesanđãsửdụngkỹthuật bảo toànđặc
trưng  toàn  cục  là  phân  tích  phân  tách  tuyến  tính  (Linear  Discriminant
Analysis–LDA)[8]đểtríchchọncácđặctrưngphânlớp,giảmkíchthước
ảnhđầuvàomanglạikếtquảhìnhảnhkhuônmặtđượccảithiện.
OmkarM.Parkh,AndreaVedaldivàAndrewZissermanđãdùngmạng
nơrontíchchập(ConvolutionalNeuralNetworks–CNNs)[9]đểnhậndạng
khuônmặt.Mụctiêucủaphươngpháplànhậndạngkhuônmặttừmộtbức
ảnhhoặctừmộttậpcáckhuônmặtđượctheodõitrongmộtvideo.Đầutiên,
họđưaramộttậpdữliệuquymôrấtlớn(2,6triệuhìnhảnhvớihơn2,6K
người).Tiếptheo,nhómtácgiảgiớithiệumộtmạngnơrontíchchậpvớimột
quytrìnhhuấnluyệntươngứngđểđạtđượcđộchínhxácnhậndạngkhuôn
mặttươngđươngcủakếtquảtrêncáctiêuchuẩnLabeledFacesintheWild
(LFW)vàYouTubeFacesDataset(YFD).
FlorianSchroff,DmitryKalenichenkovà James 
Philbinđãtrìnhbàymột
hệthốngđượcgọilàFaceNet[17],hệthốngđósẽtrựctiếpánhxạtừhìnhảnh
khuônmặtđếnmộtkhônggianEuclide.
Trêncơsởnghiêncứuvềbàitoánnhậndạngkhuônmặtngười,luậnvăn
đãnghiêncứucáckỹthuậthọcsâu,cácmạngnhânchậpvàápdụngcáckỹ
thuậthọcsâutrongviệcxâydựnghệthốngtrítuệnhântạonhậndạngkhuôn 21
mặttrêncơsởđịnhhướnghọccácđặctrưngkhuônmặtcủangườiChâuÁ,cụ
thểlàngườiViệtNam.
2.3. Mạng nơron sinh học
Đốivớingànhsinhhọcnghiêncứuvềbộnãongườinơronlàmộtđơnvị
xửlýthôngtinnhỏnhất,bộnãoconngườicótrungbìnhkhoảng86tỉnơron
kếthợplàmviệcvớinhaumộtcáchsongsongvàphứctạp,giúpconngườicó
thểsuynghĩ,học,nói,...vàlàmnhữngcôngviệckhác.
Trongbộnãoconngườicókhoảng1011–1012tếbàothầnkinhđượcgọilà
cácnơronvàmỗinơroncóthểliênkếtvới104nơronkhácthôngquacáckhớp
nốithầnkinh(synapse).Cácnơroncócấutrúcvàchứcnăngtươngđốiđồng
nhất,ngoàirachúngcòncónhữngkhảnăngmàcáctếbàokháckhôngcó
được,đólàkhảnăngnhận,xửlývàtruyềncáctínhiệuđiệnhóatrêncácđường
nơron,cácconđườngnàytạonênhệthốnggiaotiếpcủabộnão.
Hình 2.2. Cấu trúc của một nơron sinh học điển hình2
Quanghiêncứucủacácnhàkhoahọccấutrúccủamộtnơronsinhhọc
điểnhìnhtrongbộnãoconngườiđượcchiathànhbaphầncơbản:
- Thân tế bào (cell body):tổnghợpcáctínhiệuđếnđểtạođầuvào.
2https://www.xenonstack.com/blog/artificial-neural-network-applications/ 22
- Các nhánh tín hiệu vào hình cây (dendrites):thunhậnthôngtintừcác
tếbàothầnkinhkhác.
- Sợi trục thần kinh ra (axon): đưatínhiệuravàtruyềntớicácnơron
khácthôngquacáckhớpkếtnối(synapse).
Nhưvậynơronsinhhọctrongnãobộconngườihoạtđộngnhưsau:Các
nhánhvàohìnhcâynhậnthôngtintừcáctếbàothầnkinhkháctruyềnđến
thântếbào.Thântếbàotổnghợpvàxửlýchocáctínhiệuđira.Sợitrục
truyềntínhiệuratừthântếbàonàysangnơronkhác.Kếtnốigiữasợitrục
củanơronnàyvớinhánhhìnhcâycủanơronkhácgọilàsynapse.Hệthống
dâythầnkinhtiếpnhậntạothànhmộtmạnglướidàyđặcxungquanhthântế
bào(chiếmdiệntíchkhoảng0.25mm2).Chúnglàđầuvàođểđưacáctínhiệu
điệnđếnthântếbào.Thântếbàocónhânbêntrongsẽtổnghợpcáctínhiệu
vàovàlàmthayđổiđiệnthếcủabảnthânnó.Khiđiệnthếnàyvượtquámột
mứcngưỡngthìnhântếbàosẽkíchthíchđưamộtxungđiệnravàtínhiệu
truyềnxuốngsợitrụcđếncácnơronkhác.
Quaquátrìnhtìmhiểu,nghiêncứucấutrúcvàhoạtđộngcủabộnão
người,cácnhàkhoahọcđãvàđangxâydựngvàpháttriểncácmôhìnhxửlý
thôngtinmôphỏnghoạtđộngcủabộnãongười.Đóchínhlàmôhìnhmạng nơronnhântạo.
2.4. Mạng nơron nhân tạo
Máytínhrấtgiỏitrongviệcgiảicácbàitoánvàthuậttoán,nhưngthường
thìthếgiớikhôngthểdễdàngđượcđịnhnghĩabằngthuậttoántoánhọc.
Nhậndạngkhuônmặtvàxửlýngônngữlàmộtvàivídụvềcácvấnđềkhông
thểdễ dàngđịnh lượng thànhthuật toán,tuy nhiên nhữngnhiệm vụnày 23
khôngthựcsựquantrọngđốivớiconngười.Mạngnơronnhântạo(Artificial
NeuralNetworks–ANN)rađờixuấtpháttừýtưởngmôphỏnghoạtđộng
củabộnãoconngười.Chìakhóacủamạngnơronnhântạolàthiếtkếcủa
chúngchophépchúngxửlýthôngtintheocáchtươngtựnhưbộnãosinhhọc
củaconngười,bằngcáchlấycảmhứngtừcáchthứchoạtđộngcủahệthống
thầnkinhcủaconngười.Điềunàylàmchochúngtrởthànhcôngcụhữuích
đểgiảiquyếtcácvấnđềnhưnhậndạngkhuônmặt,điềumàbộnãosinhhọc
củaconngườicóthểlàmdễdàng.
Mạngnơronnhântạolàmộthệthốngđượcthiếtkếđểhoạtđộnggiống
nhưbộnãocủaconngười.Quátrìnhxửlýthôngtincủaconngườidiễnra
thôngquasựtươngtáccủahàngtỷtếbàothầnkinhđượckếtnốivớinhaugửi
tínhiệuđếncáctếbàothầnkinhkhác.Tươngtựnhưbộnãocủaconngười,
mạngnơronlàmộtmạnglướicáctếbàothầnkinhnhântạo,nhưđượctìm
thấytrongbộnãocủaconngười,đểgiảiquyếtcácvấnđềvềtrítuệnhântạo
nhưnhậndạnghìnhảnh.Chúngcóthểlàmộtthiếtbịvậtlýhoặccáccấutrúc
toánhọc.Nóicáchkhác,mạngnơronnhântạolàmộthệthốngtínhtoánsong
songbaogồmnhiềuthànhphầnxửlýđơngiảnđượckếtnốiđểthựchiệnmột nhiệmvụcụthể.
Mạngnơronnhântạobaogồmnhiềunơronđộclậpliênkếtvớinhau.
Nơronnhântạođượclấycảmhứngtừnơronsinhhọc.Mộtnơronnhântạo
phảnánhcáctínhchấtcơbảncủanơronsinhhọc.Mỗinơronnhântạolàmột
đơnvịxửlíthôngtinlàmcơsởchohoạtđộngcủamộtmạngnơron.Nócó
chứcnăngnhậntínhiệuvào,tổnghợpvàxửlýcáctínhiệuvàođểtínhtín hiệura.
2.4.1. Mô hình toán học mạng nơron nhân tạo
Môhìnhtoánhọccủamạngnơronnhântạođượcđềxuấtbởinhàthần 24
kinhhọcWarrenMcCullochvànhàlogichọcWalterPittsvàonăm1943với
bàibáo“ALogicalCalculusofIdeasImmanentinNervousActivity”[27].
Nhómtácgiảđãmôtảcáchthứccácnơronhoạtđộngvàhọđãtiếnhànhxây
dựngmộtmạngnơronđơngiảnbằngcácmạchđiện.Cácnơronởđâyđược
xemnhưlàcácthiếtbịnhịphânvớingưỡngcốđịnh.Kếtquảcủacácmôhình
nàylàcáchàmlogicđơngiảnvídụnhư“aORb”hoặc“aANDb”.
MôhìnhtoánhọccủamạngnơronthườngđượcgọilànơronM-P,ngoài
ranó cònđược gọi làphần tửxử lý vàđược kýhiệu làPE (Processing Element).
Mộtmạngnơronnhântạogồmcócácthànhphầnnhưsau:trọngsố,hệsố
biasvàhàmkíchhoạt. Weights Inputs bj X1 W1j W2 X Transferfunction 2 j ∑=WijX . . f(.) Yj . j . . . Output Summations Xi Wij θj Threshold
Hình 2.3. Mô hình một nơron nhân tạo Trongđó: -
Xi với i = 1,2, …, n:Cáctínhiệuđầuvào; -
Wij với i = 1,2, …, n:Cáctrọngsốtươngứngvớiđầuvào; -
θj:Ngưỡngkíchhoạtcủanơronj; -
f(.):Hàmkíchhoạt(hayhàmtruyền); -
Yj:Tínhiệuracủanơronj; 25 -
bj:Hệsốbias.
Giảithíchcácthànhphầntrên:
- Inputs (dữ liệu vào):Làcáctínhiệuvàocủanơron,cáctínhiệunày
thườngđượcđưavàodướidạngmộtvectormchiều.
- Output (kết quả):Làtínhiệuđầuracủamộtnơron,vớimỗinơronsẽ
cótốiđamộtđầura.
- Weights (Trọng số):Mỗi liên kết được thể hiện  bởi một  trọng  số
(thườngđượcgọilàtrọngsốliênkết–Synaptic Weights).Trọngsốliênkết
giữatínhiệuvàothứjvớinơronithườngđượckýhiệulàWij.Thôngthường,
cáctrọngsốnàyđượckhởitạomộtcáchngẫunhiênởthờiđiểmkhởitạo
mạngvàđượccậpnhậtliêntụctrongquátrìnhhọcmạng.
- Threshold (Ngưỡng):  Ngưỡng  này  thường  được  đưa vào  như  một
thànhphầncủahàmtruyền.
- Summation Function (Hàm tổng):dùngđểtínhtổngtrọngsốcủatất
cảcácinputđượcđưavàomỗinơronvớitrọngsốliênkết.Hàmtổngcủamột
nơronđốivớininputđượctínhtheocôngthứcsau: -
Transfer Function (Hàm truyền):Hàmnàydùngđểgiớihạnphạm
viđầuracủamỗinơron.Nónhậnđầuvàolàkếtquảcủahàmtổngvàngưỡng
đãcho.Thôngthường,phạmviđầuracủamỗinơronđượcgiớihạntrong
đoạn[0,1]hoặc[-1,1].Cáchàmtruyềnrấtđadạng,cóthểlàcáchàmtuyến
tínhhoặcphituyến.Việclựachọnhàmtruyềntùythuộcvàotừngbàitoánvà
kinhnghiệmcủangườithiếtkếmạng,cótácđộnglớnđếnkếtquảcủaANN.
2.4.2. Kiến trúc mạng nơron nhân tạo
Kiếntrúcchungcủamộtmạngnơronnhântạo(ArtificialNeuralNetwork
–  ANN)  gồm  3  thành  phần  đó  là:Input  Layer,Hidden  Layer  vàOutput 26
Layer(Hình2.4).Cácnơrontrongmộtlớpnốivớicácnơronlớptiếptheo,
khôngchophépcócácliênkếtgiữacácnơrontrongcùngmộtlớp. Trongđó:
- Lớp đầu vào (Input Layer):thựchiệntiếpnhậncácdữliệuvào.
- Lớp ẩn (Hidden Layer):gồmcácnơronnhậndữliệuvàotừcácnơron
ởlớptrướcđóvàchuyểnđổicácdữliệuvàonàychocáclớpxửlýtiếptheo.
Trongmộtmạngnơroncóthểcónhiềulớpẩn.
- Lớp ra (Output Layer):thựchiệnđưadữliệura. Hidden Input Output
Hình 2.4. Minh họa một kiến trúc mạng nơron điển hình
2.4.3. Một số kiểu kiến trúc mạng nơron nhân tạo
Liênkếtcácđầuvàovàracủanhiềunơronvớinhautađượcmộtmạng
nơron.Nguyênlýcấutạocủamộtmạngnơronbaogồmmộthoặcnhiềulớp.
Mỗilớpbaogồmnhiềunơroncócùngmộtchứcnăngtrongmạng.Dựavào
sốlớphaysựliênkếtgiữacáclớptrongmạngmàngườitaphânmạngnơron
nhântạothànhcácnhómkhácnhau.
Dựatheosốlớpthìmạngnơrongồmhailoại:mạngmộtlớpvàmạng nhiềulớp. -
Mạng một lớp:Mạngmộtlớpcấuthànhtừmộtlớpmạng,nóvừalà
lớpvàovừalàlớpra. 27 y x 1 1 y x 2 2 y x m n
Hình 2.5. Mô hình mạng nơron một lớp -
Mạng nhiều lớp:đượccấuthànhtừnhiềulớpliênkếtvớinhau,bao
gồmmộtlớpvào,lớpẩnvàmộtlớpra.Trongđó,lớpnhậntínhiệuđầuvào
đượcgọilàlớpvào.Cáctínhiệuđầuracủamạngđượcsảnsinhbởilớpra
củamạng.Cáclớpnằmgiữalớpvàovàlớprađượcgọilàlớpẩn(Hidden
layers).Lớpẩnlàthànhphầnnộitạicủamạng,nókhôngcóbấtkỳtiếpxúc
nàovớimôitrườngbênngoài.Sốlượnglớpẩncóthểdaođộngtừ0đếnmột
vàilớp.Tuynhiênthựctếchothấychỉcầnmộtlớpẩnlàmạngđãđủđểgiải
quyếtcácbàitoánphứctạp. x1 y1 x2 y2 x y n m Lớp Lớp Lớp vào ẩn ra
Hình 2.6. Mô hình mạng nơron 3 lớp truyền thẳng
Ngoàira,sựliênkếttrongmạngnơrontuỳthuộcvàonguyênlýtươngtác
giữađầuracủatừngnơronriêngbiệtvớinơronkhácvàtạoracấutrúcmạng
nơron.Vềnguyêntắcsẽcórấtnhiềukiểuliênkếtgiữacácnơron,nhưngchỉ
cómộtsốcấutrúcmạngthườnggặpsau: 28 -
Mạng truyền thẳng (Feedforward Artificial Neural Networks)
Mạngtruyềnthẳngchophéptínhiệutruyềnđimộtchiều,dữliệutừcác
nơronđầuvàođếncácnơronđầurachỉđượctruyềnthẳng.Việcxửlýdữliệu
cóthểmởrộngranhiềulớp,nhưngkhôngcócácliênkếtngược.Tứclà,
khôngcócácliênkếttừcácđơnvịđầuratớicácđơnvịđầuvàotrongcùng
mộtlớphaycáclớptrướcđó.Mạngtruyềnthẳngđượcsửdụngrộngrãitrong
lĩnhvựcnhậndạngmẫu. Tầng vào Tầng ẩn Tầng ra
Hình 2.7. Mạng truyền thẳng -
Mạng phản hồi (Feedback Artificial Neural Network): làmạngcó
cáckếtnốitừnơronđầuratớinơronđầuvào(cóchứacácliênkếtngược).
Mạnglưulạicáctrạngtháitrướcđóvàtrạngtháitiếptheokhôngchỉphụ
thuộcvàocáctínhiệuđầuvàomàcònphụthuộcvàocáctrạngtháitrướcđó
củamạng.Mạngphảnhồithườngcónhiềukhảnănghơnmạngtruyềnthẳng. Nơron ẩn Nơron vào Nơron ra Hình 2.8. Mạng phản hồi 29
2.4.4. Các ứng dụng của mạng nơron nhân tạo
Mạngnơronnhântạođãđượcứngdụngtrongnhiềulĩnhvựckhácnhau
nhưsosánhvàphânloạimẫu,dựbáovàđiềukhiển,…Mộtsốứngdụngcụ
thểcủamạngnơron[11]:
- Không gian vũ trụ:điềukhiểnmáybaykhôngngườilái,chếđộtựbay
nângcao;môphỏngcácđườngbayvàcácbộphậncủamáybay;hệthống
điềukhiểncủamáybayvàhệthốngpháthiệnsaihỏng.
- Dự đo_n tài chính kinh tế:Dựđoángiácảbiếnđộngcổphiếu.Dự
đoáncấpsốthờigiantrongthịtrườngtàichính.Cácứngdụngvềđiềuhành
vốn.Dựđoánthịtrườngngoạihối.Đánhgiádựđoánrủiro.Dựđoántình
hìnhkinhtế.Đánhgiáhiệusuấtvốnvayvàvốnđầutư.
- Hoạt động ngân hàng:Dựđoánkhảnăngphásản.Hệthốngthẻđọc
ngânhàng,thẻtíndụng.
- Hệ thống phòng thủ: Hệthốngđiềukhiểnvũkhídòtìmmụctiêu,
nhậndạngmụctiêu.Điềukhiểnđườngđạn.Xửlývànhậndạngtínhiệuảnh, radar,siêuâm.
- Điện tử viễn thông:Dựđoánchuỗimã.Bốtrímạchtíchhợptrênchip.
Phântíchlỗimạchtíchhợp.Nhìnbằngmáy.Nhậndạngvàtổnghợptiếng
nói.Nhậndạngchữviếttayvàchữký.Xửlýảnh,nénảnhvànénsốliệu.Các
dịchvụthôngtintựđộng.Dịchngônngữnóithờigianthực.Hệthốngxửlý
thanhtoáncủakháchhàng.ĐịnhtuyếnvàchuyểnmạchchomạngATM.
- Qu_ trình sản xuất và người m_y: Điềukhiểnquátrìnhsảnxuất.
Thiếtkếvàphântíchsảnphẩm.Chuẩnđoánvàgiámsátquátrìnhmáymóc.
Hệthốngkiểmđịnh34chấtlượng.Hệthốnglậpkếhoạchvàđiềuhành.Điều
khiểnvậnđộngvàhệthốngnhìncủarobot.
- Y tế:Phântíchtếbàoungthưvú.Phântíchđiệnnãođồ.Thiếtkếbộ 30
phậnthaythế.Tốiưuhoáthờigiancấyghép.Dòtìmvàđánhgiácáchiện tượngyhọc.
- Vận tải: Hệthốngchuẩnđoánphanhxetải.Hệthốngđịnhtuyếnvà
lịchtrìnhchocácphươngtiệngiaothông.
- Giải trí:Cáchiệuứngchuyểnđộng,cáctròchơi,…
2.4.5. Huấn luyện mạng nơron
Mạngnơronnhântạophỏngtheoviệcxửlýthôngtincủabộnãongười,do
vậyđặctrưngcơbảncủamạnglàcókhảnănghọc,khảnăngtáitạocáchình
ảnhvàdữliệukhiđãhọc.Trongtrạngtháihọcthôngtinđượclantruyềntheo
haichiềunhiềulầnđểhọccáctrọngsố.Có3phươngpháphọcphổbiến,mỗi
phươngpháphọctươngứngvớimộtnhiệmvụhọctrừutượng.Đólàhọccó
giámsát(SupervisedLearning),họckhônggiámsát(UnsupervisedLearning)
vàhọctăng cường(ReinforcementLearning).Thôngthườngloạikiếntrúc
mạngnàocũngcóthểdùngđượcchocácnhiệmvụ. 2.4.5.1. Học có giám sát
Làquátrìnhhọcđượcthựchiệndướisựthamgiagiámsátcủamộtngười
thầy(ởbênngoàihệthống).Ngườithầynàycókiếnthứcvềmôitrườngthể
hiệnquamộttậphợpcáccặpđầuvào-đầurađãđượcbiếttrước.Hệthống
học(ởđâylàmạngnơron)sẽphảitìmcáchthayđổicácthamsốbêntrong
củamình(cáctrọngsốvàcácngưỡng)đểtạonênmộtánhxạcókhảnăngánh
xạcácđầuvàothànhcácđầuramongmuốn.Sựthayđổinàyđượctiếnhành
nhờviệcsosánhgiữađầurathựcsựvàđầuramongmuốn.Điểnhìnhcho
phươngphápnàylàmạngnơronlantruyềnngược.
Ví dụ:tronglĩnhvựcnhậndạngmẫu,mộtgiáoviênhoặchuấnluyệnviên
sẽđưaracâutrảlờichomạngnơronvàmạngnơronđưaradựđoántrongkhi
nhậndạng.Sauđó,mạngsosánhdựđoáncủamìnhvớicâutrảlờiđúngcủa 31
giáoviênvàđiềuchỉnhchophùhợpđểcóđượcđầuramongmuốnbằngcách loạibỏlỗi. Mạng Đầurathựctế nơron
Hiệuchỉnhtrọngsố Đầuramongmuốn Sosánh
Hình 2.9. Mô hình huấn luyện mạng có giám sát
2.4.5.2. Học không giám sát
Làquátrìnhhọckhôngcầncóngườigiámsáthaychuyêngianào.
Tronghọckhôngcógiámsát,tađượcchotrướcmộtsốdữliệuxvàhàm
chiphícầnđượccựctiểuhóacóthểlàmộthàmbấtkỳcủadữliệuxvàđầura
củamạng,f–hàmchiphíđượcquyếtđịnhbởiphátbiểucủabàitoán.Phần
lớncácứngdụngnằmtrongvùngcủacácbàitoánướclượngnhưmôhình
hóathốngkê,nén,lọc,phâncụm. Đầuvào Đầurathựctế Mạng nơron
Hiệuchỉnhtrọngsố
Hình 2.10. Mô hình huấn luyện mạng không có giám sát 2.4.5.3. Học tăng cường
Trongkỹthuậthọccógiámsát,cácgiátrịđầurađượcbiếtchínhxácđối
vớimỗiđầuvào.Tuynhiên,trongthựctếcómộtsốtrườnghợpchỉbiếtít
thôngtinchitiết,chẳnghạnmạngchỉbiếtrằnggiátrịđầurathựcsựquácao
haycóthểmạngchỉcóđượcthôngtinphảnhồibáorằngđầurađúnghaysai.
Kỹthuậthọcdựatrênthôngtinđánhgiánàyđượcgọilàkỹthuậthọccủng 32
cố,thôngtinphảnhồiđượcgọilàtínhiệutăngcường.
Trongkỹthuậthọcnày,cácgiátrịđầurakhôngđượcbiếtchínhxác.Quá
trìnhhọcđượcxâydựngdựatrêncácquansát,mạngđưaraquyếtđịnhbằng
cáchquansátmôitrườngtừbênngoài. Đầuvào Đầurathựctế Mạng nơron
Hiệuchỉnhtrọngsố
Tínhiệutăngcường Tínhiệu hồitiếp
Hình 2.11. Mô hình huấn luyện mạng tăng cường
2.4.6. Mạng nơron MLP và ứng dụng trong nhận dạng ảnh
Mạngtruyềnthẳngcónhiềulớp(MLP-MultiLayerPerceptron)làmột
trongnhữngmạngtruyềnthẳngđiểnhình,thườngđượcsửdụngtrongcáchệ thốngnhậndạng.
2.4.6.1. Kiến trúc mạng MLP
Cuốithậpniên1950,FrankRosenblattđãpháttriểnmộtmạngnơroncó
tênlàmạngPerceptron,lấycảmhứngtừnhữngýtưởngtrướcđócủa2cộng
sựlàWarrenMcCullochvàWalterPitts.Tronghọcmáy,Perceptronlàmột
thuậttoánhọccógiámsát(SupervisedLearning)giúpgiảiquyếtcácbàitoán
phânlớpnhịphân.ThuậttoánPerceptronđượcphátminhvàonăm1957tại
phòngthínghiệmCornellAeronauticalbởiFrankRosenblatt,đượctàitrợbởi
VănphòngnghiêncứuhảiquânHoaKỳ(U.SOfficeofNavalResearch–từ
một cơ quan liên quan đến quân sự)3.
Mộtmạngnơrontruyềnthẳngnhiềulớpbaogồmmộtlớpvào,mộtlớpra
vàmộthoặcnhiềulớpẩn.Môhìnhmạngnơronđượcsửdụngrộngrãinhấtlà
môhìnhmạngnhiềutầngtruyềnthẳng.KiếntrúctổngquátcủamạngMLP 3Theowiki 33 chobởihình2.12. HiddenLayer InputLayer OutputLayer x1 Input1 Output1 x2 Input2 Outputn xp Inputn
Hình 2.12. Kiến trúc mạng MLP 4 Trongđó:
Đầuvàolàcácvector(x1,x2,…,xp)
Mỗinơrontầngsauliênkếtvớitấtcảcácnơronthuộctầngtrướcđó.
Đầuracủanơrontầngtrướclànơronđầuvàocủatầngliềnsaunó.
HoạtđộngcủamạngMLPđượcmôtảnhưsau:
Tạitầngđầuvàocácnơronnhậntínhiệuvàoxửlý,tínhtổngtrọngsố,gửi
tớihàmtruyềnrồichorakếtquả,kếtquảnàysẽđượctruyềntớicácnơron
4 https://www.researchgate.net/figure/Structure-of-a-one-hidden-layer-MLP-Network_fig1_260321700 34
thuộctầngẩnthứnhất;cácnơrontạiđâytiếpnhậnnhưlàtínhiệuđầuvào,xử
lývàgửikếtquảđếntầngẩnthứ2,…quátrìnhtiếptụcchođếnkhicác
nơronthuộctầngrachokếtquả.
2.4.6.2. Mạng lan truyền ngược (Back-Propagation Network)
Trongphầnnàychúngtôitrìnhbàyvềmạnglantruyềnngượcvàcáccông
dụngcủanótrongmạnghọcsâu.Hình2.13minhhọamộtkiếntrúctổngquát
củamạnglantruyềnngược. Input(s) Output(s) InputLayer HiddenLayer(s) OutputLayer
Hình 2.13. Mạng nơron lan truyền ngược
Mạnglantruyềnngượcgồmcó3lớp.Trongđó:
- Lớp vào (Input Layer):sốnodevàolàthuộctínhcủađốitượngcần phânlớp.
- Lớp ra (Output Layer):Sốnoderalàsốđặcđiểmcầnhướngtớicủa
đốitượng(giátrịracầnhướngđến–họccógiámsát).
- Lớp ẩn (Hidden Layer):Sốnodeẩnthườnglàkhôngxácđịnhtrước,
nóthườnglàdokinhnghiệmcủangườithiếtkếmạng,nếusốnodeẩn
quánhiềumạngsẽcồngkềnh,quátrìnhhọcsẽchậm,cònnếusốnode 35
ẩnquáítlàmmạnghọckhôngchínhxác.
Thuậttoánlantruyềnngượclàthuậttoánthườnggặptrongcácmôhình
mạnghọcsâu(DeepLearning),thuậttoánnàytínhtoánđạohàmthànhphần
phầntrêncácnútcủamôhình(Ví dụ: Convnet,NeuralNetwork).Cácđạo
hàmthànhphầnnàyđượcsửdụngtrongsuốtquátrìnhhuấnluyệnmạng.
Mụctiêucủathuậttoánbackpropagationlàcungcấpcơchếtínhtoáncác
vectorđạohàmriêngphầngradientcủahàmmụctiêuđốivớicácthamsố
trongmạngnơron.Việcphátminhramạnglantruyềnngượclàmộtkếtquả
quantrọngcủalĩnhvựchọcmáybởitrướcđâyquátrìnhtínhtoánđạohàm
ngượclàmộtvấnđếkháphứctạpvàkhảthi.
2.5. Mạng nơron tích chập (Convolutional Neural Networks – CNNs)
MạngnhânchậpCNNđượcthiếtkếđểđặcbiệtthíchhợpvớicácứng
dụngcủalĩnhvựcthịgiácmáy,xửlýảnhvànhậndạng.Nhưtêngọicủanó,
cácmạngCNNsửdụngcácmặtnạnhânchập(ConvolutionalMasks)cókích
thướcnhỏhơnnhiềukíchthướcảnhđầuvàolàmthànhtốchínhcủamạng
nhằmkhaitháchiệuquảtínhphânbốthôngtincụcbộtrêncácvùngảnhvà
tínhtươngquancaocủacácđiểmảnhlâncậnnhau.MạngnhânchậpCNN
đầutiênđượcđềxuấtbởiLecuncótêngọilàLeNet5[12]chomụcđíchnhận
dạngcáckýtựsốviếttayvàđãtạoramộthiệunăngvượttrộisovớicáccách
tiếpcậnkháclúcbấygiờ.MộtmạngCNNcũngcócấutạogồmmộttầngđầu
vào,cáctầngẩnvàmộttầngđầura.Trongđó,mỗitầngẩncủamạngCNN
thườngđượcxếpchồngluânphiênbởicáclớpnhưsau(Hình2.14):
- Lớpnhânchập(Convolution):gồmnhiềumặtnạnhânchậpcókích
thướcnhỏhơnnhiềusovớikíchthướcảnhđầuvào.Mỗimặtnạnhânchậpsẽ
đượcquéttrêntoànảnhđầuvào(từtrênxuốngdưới,tráisangphải)nhưngcó 36
thểvớimộtbướcnhảy(stride)nàođó(vídụ,
).Cácmặtnạnhân
chậpsẽđóngvaitròlàcácbộtríchchọnđặctrưngvàdovậykếtquảcủaviệc
nhânchập mộtmặt nạ vớiảnh đầu vàosẽcho ra mộtbản đồđặc trưng
(FeatureMap)tươngứng.
- Lớpkíchhoạt(Activation):ngaysaulớpnhânchập,chúngtacóthể
thiếtkếmộtlớpkíchhoạtđểchuẩnhóagiátrịcủacácbảnđồđặctrưng.Tuy
nhiên,kỹthuậtnàylàtùychọn.
- Lớplấymẫu(Pooling/Subsampling):đểxâydựngkhảnănghọcphân
cấpcácđặctrưngcủađốitượng,cácmạngCNNthườngsửdụngkỹthuậtlấy
mẫu(PoolinghaySubsampling)đểgiảmkíchthướccủacácbảnđồđặctrưng.
Thôngthường,lớplấymẫusẽthựchiệnchọnmộtgiátrịtừmỗivùngcókích thước 
trongbảnđồđặctrưng.Dođó,kíchthướccủaảnhsaukhilấy
mẫusẽgiảmđimộtnửa. Input 32×32 Output (10) 5×5 Gaussian Full connection connection Convolution Subsamling Convolution Subsamling
Hình 2.14. Kiến trúc một mạng CNN điển hình [12]
Mỗinơrontrêntầngẩnthườngđượcthiếtkếđểlàmviệctrênmộtvùng
ảnhnhỏ(vídụcácvùngcókíchthước
)củaảnhđầuvàonhưngsẽquét
từtrênxuốngdướiđểlàmviệcvớitoànbộcácvùngtrênảnhđầuvào.Kỹ
thuậtnàycònđượcbiếtđếnvớitêngọilàchiasẻtrọngsố(WeightSharings)
giúpgiảmthiểuđángkểsốlượngcácthamsốdùngtrongmạng.Cáctầng
cuối  cùng  của  một  mạng  CNN  thường  là  các  tầng  kết  nối  đầy  đủ  (Full
Connection)vàdovậymỗinơrontrêntầngnàysẽkếtnốivớitoànbộcác 37
nơroncủaảnhđầurathuộctầngliềntrước.Sốlượngcácnơronđầuracủa
tầngcuốicùngsẽđúngbằngsốlượngcáclớpđốitượngcầnnhậndạngcủa
bàitoán.Ngoàira,mộthàmkíchhoạt(thườnglàSoftmax)sẽđượcápdụng
đểchuẩnhóacácgiátrịđầuracủatầngnày.
Mộtcáchtổngquát,kiếntrúcmộtmạngCNNthườngđượcmôtảdưới dạngsau: Trongđó: -
:tầngđầuvào,thườnglàảnhđầuvàocókíchthướccốđịnh
(cóthểlàảnhnhịphân,ảnhđacấpxámhoặcảnhmàu). - :lớpnhânchập. -
:hàmkíchhoạt,cóthểlàhàm:tanh,ReLUhoặcsigmoid. -
:lớplấymẫu(Pooling/Subsampling) -
:tầngkếtnốiđầyđủ,mỗinơroncủatầngnàysẽkếtnốiđếnmọi
nơroncủaảnhđầuracủatầngliềntrước. -
 và   làsốlầnlặplạicáctầngtươngứng.Thôngthường,một
mạngDCNN(DeepCNN)thườngcó và .
Ngoàira,cácmạngCNNcũngrấtthườngđượcmôtảmộtcáchtrựcquan
bằngcáchsửdụngcáckhốihộpnhưsau(Hình2.15):
Hình 2.15. Kiến trúc dạng đồ họa của một mạng CNN
Trongđómỗikhốihộpđượcđặctảbởibathamsố:   (width-chiều 38
rộng), (height-chiềucao)và (depth-chiềusâu).Ýnghĩacủabathamsố
đóđượcdiễngiảinhưsau: -
và :môtảkíchthướckhônggiancủaảnh(spatialplaneimage)hay
cácbảnđồđặctrưng(featuremaps). -
:thamsốchiềusâu,tuỳtừngtrườnghợpmàcóýnghĩakhácnhau.
Nếu là khối  hộp  đầu  tiên (input data)  thì   mang  ý  nghĩa  số kênh màu
(channels)củaảnh.Ví dụ:vớiảnhmàuthì
,ảnhđacấpxámthì .
Từkhốihộpthứhaitrởđithì   mangýnghĩalàsốlượngcácmặtnạlọc
(filters)đượcsửdụngtronglớpnhânchập.Chúýrằngbảnthânmỗibộlọc
(filter)cũnglạilàmộtkhốihộpcókíchthước3chiều: trongđó và
 làkíchthướckhônggianbộlọc(spatialplane),thườngđượcchọnbằng nhau  (ví  dụ  hoặc 
)  và  còn  được  gọi  là  trường  tiếp  nhận
(receptivefield);còn làthamsốchiềusâucủabộlọccógiátrịđúngbằng
thamsố củakhốihộpliềntrước.
Ví dụ:Giảsửảnhđầuvàocókíchthước
(ảnhmàucó3thành
phầnRGB)vàgiảsửtầngnhânchậpthứnhấtsửdụng   mặtnạvới bướcnhảy thì:
- Nếukíchthướckhônggiancủamỗimặtnạ:
thìmỗibộlọcsẽcókíchthướctổngthể3chiềulà:
bởivìkhốihộp
trướcđó(ảnhđầuvào)cóchiềusâu .
- Cácthamsốcủamỗibộlọcgồm trọngsố( )vàmộttham 39
sốđộlệch(BiasParameter).
- Khốihợpmớitạorasẽcókíchthướclà: trongđó và
đượctínhdựavàothamsố nhưsau:
Trongđó: và làkíchthướckhônggiancủakhốihộptrướcđó.
Nhưvậy,khithiếtkếcáctầngnhânchập,chúngtaphảichọnkíchthước
củacácbộlọcvàchiềudàibướcnhảysaochokíchthướccủakhốihộpcủa
tầngtiếptheosẽlàcácsốnguyên.QuátrìnhhuấnluyệnmạngCNNvềcơbản
cũng  dựa  trên  phương  pháp  đạo  hàm  riêng  phần  (Gradient  Descent
Algorithm)nhưngkỹthuậtmini-batchthườngđượclựachọnđểướclượng
cácđạohàmriêngphần.Ngoàira,cómộtvấnđềhếtsứcquantrọngkhihuấn
luyệncácmạngCNNđólàvấnđềhọcnhớquá(Overfitting).Đểgiảmảnh
hưởngcủavấnđềnày,ngườitathườngápdụngkỹthuậtcótênlàdrop-out
[23].Ýtưởngcơbảncủakỹthuậtnàyđólàthayvìhuấnluyệntoànbộmạng
CNNthìchỉhuấnluyệnmộtphầncủamạngtạimỗibướclặpcủaquátrình
huấnluyện.Dovậy,cácphầnkhácnhaucủamạngsẽđượchuấnluyệnđểhọc
mộtkhíacạnhkhácnhaucủadữliệu.Cụthể,tạimỗibướclặpcủaquátrình
huấnluyện,chúngtasẽchọnngẫunhiên   ( )sốlượngcác
nơronởmỗitầngvàloạibỏ(drop-out)chúngkhỏiquátrìnhhuấnluyện.Khi
đãkếtthúcquátrìnhhuấnluyện,trongquátrìnhkiểmthửmạng(testing)thì
tấtcảcácnơronđềuđượcsửdụngđểraquyếtđịnhnhưngcáctrọngsốđầu
vàocủanhữngtầngđãtừngcócácnơronbịdrop-outthìsẽđượcnhânvới
mộttrọngsố vớiýnghĩalấygiátrịkếtquảtrungbìnhcủacácphầnkhác nhaucủamạng. 40
2.6. Một số hàm mục tiêu (loss) phổ biến
KiếntrúcmạngDNNnàysẽchođầuracủamạnggồm128giátrịthực.
Cácgiátrịnàyđượcgọilàmộtvectorchứacácđặctrưngcủakhuônmặt.
Việcchọnthamsố128phụthuộcvàonhiềuyếutố:quathửnghiệmtrên
nhiềutậpdữliệukhácnhau,kếtquả128chođộchínhxácđủtốtmặcdùsố
lớpđốitượngcóthểlênđếnhàngnghìnlớp.Hơnnữa,đểkhaitháckhảnăng
tínhtoánsongsongcủacácbộvixửlý,giátrị128thườngđượcchọnvìnó
chínhbằng27vàdovậycóthểthựchiệntrêncáccâulệnhlàbộsốcủa8(bít).
Trongcácphầntiếptheo,chúngtôitrìnhbàymộtsốhàmmụctiêu(loss) phổbiến. 2.6.1. Hàm Triplet Loss
Giảsửchúngtacómộtcơsởdữliệu(CSDL)gồmNkhuônmặtkhác
nhau,chúngtasẽhuấnluyệnmạngDNNđểhọccácđặctrưngkhuônmặt
bằngcáchđiềuchỉnhcáctrọngsốcủamạngDNNtheoquyluậtnhưsau: -
Chọn3ảnhkhuônmặtbấtkỳtừCSDLtrongđóđảmbảocóhaiảnh
(đánhsố#1và#2)chứacùngmộtngườivàmộtảnh(đánhsố#3)chứangười
kháchaiảnhcònlại. -
ĐiềuchỉnhcáctrọngsốcủamạngDNNsaochođầuracủamạngsẽ
chohaivector128chiềukhágầnnhauđốivớihaiảnhđánhsố#1và#2,
nhưngsẽchoramộtvector128chiềurấtkhácđốivớiảnhđánhsố#3. -
Lặplạicácbướctrênchođếnkhitấtcảcáccặp3ảnhđãđượcduyệt
hoặcđếnkhiđộchínhxácđãđặtmứcmongmuốn. 41
Hình 2.16. Nguyên tắc của quá trình huấn luyện mạng DNN
Saukhilặplạihàngtriệulầnchohàngtriệuảnhcủahàngnghìnngười
khácnhau,mạngnơronhọcsẽsinhra128sốđochomỗingười.Bấtkỳnhiều
ảnhkhácnhaucủacùngmộtngườisẽcócùngvectorcó128sốđotươngtự
nhau.Trongkỹthuậthọcmáy,chuỗisố128phầntửtrênmôtảcácthôngtin
củamỗikhuônmặtđượcgọilàbộmôtảhayvectorđặctrưng.
QuátrìnhhuấnluyệnchomạngDNNthựchiệnnhiệmvụnhưtrênsẽcần
tậpdữliệuhuấnluyệnlớnvàchạytrênnhữngmáycócấuhìnhmạnhmẽ,hỗ
trợkhảnăngxửlýđồhọacaocấp,vàthậmchícũngsẽcầnhàngtuầnmớikết
thúcquátrìnhhọc.Tuynhiên,khiđãhuấnluyệnxongmạngDNN,chúngta
cóthểsửdụngnóđểsinhracácvectorđặctrưngchomộtkhuônmặtbấtkỳ
trongthờigiancựckỳnhanh(khoảngvàichụcmiligiâytùythuộcvàocấu
hìnhmáytính).ĐâychínhlàmộtưuđiểmtuyệtvờicủacácmạngDNN.Hình
2.17minhhọacácgiátrịcủavectorđặctrưngtríchchọnđượcchomộtkhuôn mặtđầuvào. 42 Ảnh đầu vào
Hình 2.17. Mô phỏng bộ mô tả 128 giá trị của một khuôn mặt
Vậychínhxácnhữngphầnnàocủakhuônmặtđượcthểhiệntrong128số
đonày?Đólàđiềukhôngthểphiêndịchđượcđốivớiconngười.Tuynhiên,
điềunàykhôngquantrọng.Quantrọnglàtấtcảnhữnggìchúngtaquantâmlà
mạngDNNsinhranhữngconsốgiốngnhaukhinhìnvào2bứcảnhkhácnhau
củacùngmộtngườivàcácconsốkhácnhauđốivớibứcảnhcủangườikhác. 2.6.2. Hàm Cross-Entropy Loss
Hàmmụctiêucross-entroyloss(cònđượcgọivớitênkháclàsoftmaxloss)
đượcgiớithiệutrong[24]vàđặcbiệthiệuquảtrongviệctựhọccácđặctrưng
tốtcủakhuônmặt,cókhảnăngloạibỏcácthôngtinnhiễutrênảnhkhuônmặt.
Đâylàhàmlossđượcsửdụngkháphổbiếntrongbàitoánnhậndạngkhuôn
mặt.Vềmặttoánhọc,hàmcross-entropylossđượcđịnhnghĩanhưsau:
Trongđó,Nlàsốđiểmdữliệuhuấnluyện,Wlàmatrậntrọngsốcủa
mạng,blàhệsốbias,xilàđiểmdữliệuhuấnluyệnthứi, và làcáccột
thứjvày icủamatrậnW.
Tronghàm cross-entroyloss,độđobiênEuclidean (Euclideanmargin) 43
đượcsửdụngđểhọccácđặctrưngkhuônmặt.Tuynhiên,nhưđãchỉrabởi
[25],cácđặctrưngkhuônmặtcóxuhướnghìnhthànhphânbốbiêntheo
hướng(angularmargin).Dovậy,độđobiênEuclideancóthểkhônghiệuquả
trongnhữngtrườnghợpnhưvậy.Hình2.18minhhọacáctìnhhuốngnày.
Hình 2.18. Mô tả phân bố các đặc trưng khuôn mặt khi dùng độ đo biên Euclidean
2.6.3. Hàm Angular-Softmax Loss
HàmmụctiêuAngular-SoftmaxLoss[25]cảitiếnhàmcross-entropyloss
bằng  cách  đưa  thêm  khái  niệm  học  dựa  trên  hướng  biên  độ  (marginal
learning).Tínhnăngnàyrấthữuích,đặcbiệtvớicácdữliệukhuônmặt,do
sựphânbổcủacácđặctrưngkhuônmặtcóxuhướngtạothànhcáccungkhác
nhautrênkhônggianđặctrưng.
Hình 2.19. (a) Minh họa phân bố của đặc trưng khuôn mặt khi dùng độ đo
biên theo góc (marginal learning), (b) Kết quả khi chiếu các đặc trưng ở (a) 44
sang không gian siêu cầu [25].
Hình2.19minhhọakhảnăngcủahàmbiênđộgóckhidùngđểhọccác
đặctrưngkhuônmặt.Nhưchúngtacóthểthấy,cácđặctrưngcóxuhướng
phânbốthànhcáccụmnhỏ,tậptrung,côđọngtrênkhônggiansiêucầu.Điều
nàygiúptăngcườngkhảnăngphânbiệtgiữacáclớpđốitượngkhácnhau.
ÝtưởngchínhcủahàmlossnàyđólàbiếnđổimatrậntrọngsốWsang
khônggiansiêucầunhằmgiảmthiểucáchệsốcầnhọccủahệthống,quyvề
thamsốgóc(xácđịnhbiênđộgócgiữacáclớpđốitượngkhácnhau).Vềmặt
toánhọc,hàmAngular-Softmaxđượcđịnhnghĩanhưsau:
Trongđó:thamsốnguyênm≥1dùngđểđiềukhiểnkíchthước/độlớn
củabiênđộgóc;vàhàmbiênđộgócgiữacáclớpkhácnhauđượcđịnhnghĩa nhưsau: , and .
địnhnghĩađộđobiêntheogócdùngđểhọccácđặctrưngkhuônmặt. 2.6.4. Hàm ArcFace Loss
HàmArcFaceLoss[10]cảitiếnhàmAngular-Softmaxlossbằngcách
giớithiệuđộđobiêntheogócmới,cótênlàAdditiveAngularMarginLoss
(ArcFace).TronghàmArcFaceloss,hàmbiênđộgócđượcđịnhnghĩanhư
sau(giốngnhưtêngọicủanó):
Khithayvàohàmmụctiêu,chúngtacó: 45
Hình2.20minhhọaưuđiểmcủahàmArcFaceLosssovớihàmsoftmax
lossvớidữliệucủa8đốitượngkhácnhau.Nhưchúngtacóthểthấy,khi
chiếusangkhônggiansiêucầuvàdùnghàmArcFaceloss,cácđặctrưngcủa
8đốitượngđượcphântáchrấtrõràng(ngượclạivớikếtquảkhidùnghàm softmaxloss).
Hình 2.20. Minh họa phân bố không gian đặc trưng của 8 đối tượng khác
nhau, dùng (a) hàm biên Euclidean (softmax loss) và (b) Additive Angular Margin Loss (ArcFace loss).
2.7. Kết luận chương 2
Trongchươngnày,chúngtôiđãtrìnhbàynềntảngcơsởcủacáckỹthuật
mạnghọcsâuvàứngdụngcủanótrongnhậndạngkhuônmặt.Cáckiếntrúc
mạngnhânchậphọcsâuđãđượctrìnhbàyvàphântíchtrongngữcảnhcủa
bàitoánhọcđặctrưngkhuônmặt.Quátrìnhhọcthườngđượcthựchiệnbởi
quytắcbộbatừhàngtriệumẫuhọc.Mụctiêucủaquátrìnhnàykhôngphải
nhằmnhậndạnghayđánhnhãncácđốitượngtrongcơsởdữliệu,màlàhọc
độđokhuônmặt(FaceMetrics)saochonócókhảnăngphânbiệtcáckhuôn
mặtthuộccácđốitượngkhácnhau.Cụthể,mộtđộđokhuônmặttốtsẽtạora
cácvectorđặctrưnggiốngnhauhoặctươngtựnhauđốivớicáckhuônmặt
củacùngmộtđốitượng;ngượclại,sẽtạoracácđiểmxanhautrongkhông
gianđặctrưngđốivớicáckhuônmặtcủacácđốitượngkhácnhau.
Đểthựchiệnquátrìnhhọctrên,hàmmụctiêuđóngmộtvaitròquan
trọng.Chúngtôiđãtrìnhbàyvàphântích3hàmmụctiêuphổbiếnnhấtvà
tiêntiếnnhất.Nhiềukếtquảthựcnghiệmđãđượcnghiêncứu,xâydựngvà 46
chứngtỏhàmmụctiêuarcfacelosschokếtquảhiệunăngcaonhất,cótiềm
năngvượttrộisovớinănglựcconngười.Trongchươngtiếptheo,chúngtôi
sẽtrìnhbàyquátrìnhcảithiệnhiệunănghệthốngbằngcáchtíchhợpdữliệu
ngườiViệtvàoquátrìnhhuấnluyện. 47 Chương 3:
XÂY DỰNG KIẾN TRÚC MẠNG NƠRON NHẬN DẠNG KHUÔN MẶT NGƯỜI
3.1. Thu thập và xây dựng tập dữ liệu huấn luyện
3.1.1. Bộ dữ liệu huấn luyện cho mô hình mạng theo chuẩn (benchmark) 3.1.1.1. Bộ CASIA-Webface5
Đâylàbộdữliệucôngkhailớnthứhaicósẵnchocácvấnđềxácminhvà
nhậndạngkhuônmặt.BộdữliệuCASIA-WebFacebaogồm10.575người
vớitổngsố494.414hìnhảnh.
3.1.1.2. Labeled Faces in the Wild (LFW)6
Bộdữliệunàybaogồmhơn13000hìnhảnhkhuônmặtcủa5749người
đượcthuthậptrênmạnginternet.Mỗikhuônmặtđãđượcgánnhãnvớitên
củangườitronghình.1680ngườitronghìnhcóhaihoặcnhiềuảnhkhácnhau
trongbộdữliệu. 3.1.1.3. WIDER FACE7
BộdữliệuWINDERFACElàbộdữliệutheochuẩn(benchmark),trong
đóhìnhảnhđượcchọntừbộdữliệuWINDERcósẵncôngkhaivới32.203
hìnhảnhvàgánnhãn393.703khuônmặt.
3.1.2. Bộ dữ liệu huấn luyện người Việt
Nhưđãđềcậpởphầnmởđầu,mộttrongnhữngmụctiêuchínhcủaluận
vănlàxâydựnghệthốngAInhậndạngkhuônmặtvớisựtậptrungvàoviệc
họccáckhuônmặtChâuÁ,cụthểlàkhuônmặtcủangườiViệtNam.Vìvậy,
trongquátrìnhxâydựnghệthống,vớiđiềukiệnvàcôngviệcgiảngdạyở
trườngđạihọctôiđãlựachọnxâydựngbộdữliệukhuônmặttừdữliệuảnh
củasinhviênmàtôiđãthuthậpđược.
Vớiýtưởngxâydựngmộtphầnmềmđiểmdanhsinhviêntựđộngtránh
5http://pgram.com/dataset/casia-webface/
6http://vis-www.cs.umass.edu/lfw/
7http://shuoyang1213.me/WIDERFACE/ 48
tìnhtrạngđiểmdanhthay,họchộđồngthờigiúpchogiảngviêntiếtkiệm
đượcthờigiantrongmỗitiếthọc.
Dữliệuảnhkhuônmặtsinhviênsẽđượcthuthậpsaumỗibuổihọccủa
sinhviêncáclớptrongtrường.Toànbộcácthiếtbị(camera,máytính,…)
dùngđểthuthậpdữliệuđượclắpđặttạimộtphònglabkhoaCNTT&TT.Để
thựchiệnviệcthuthậpdữliệudùng2camerađặtở2góckhácnhau,đặt1ghế
phíatrướccamerasauđómỗisinhviênngồivàoghế,xoaymặttheocácgóc
khácnhautừ20–60giây.Dùngphầnmềmtựviết(videostreaming)đểlưudữ
liệucamthànhfilewebm.Saukhithuthậpdữliệu,ảnhsẽđượccắtratừcác
videođãthuthậpđược.Tậptinảnhđượccắtracóđịnhdạngđuôipng. Cam01 Tậphợpvideo
Chươngtrìnhvideostreaming Cam02 1FPS ….. 1 2 n(n>300)
Hình 3.1. Quy trình thu thập dữ liệu 49
Kếtthúcquátrìnhthuthậpdữliệuchúngtôicó:
Bảng 3.1. Thống kê quá trình thu thập dữ liệu Tổng số Giới tính Trung bình Độ nghiêng Tuổi (người) Nam Nữ ảnh/người ảnh 18 – 20 20+ 496 242 254 300 0–30 346 150
Hình 3.2. Biểu đồ thống kê quá trình thu thập dữ liệu
Vídụminhhọacho5ngườigồm10ảnhvớicácgóckhácnhaucủakhuôn mặt: 50
Hình 3.3. Ảnh gốc trong cơ sở dữ liệu thu thập
3.2. Kiến trúc tổng qu_t hệ thống nhận dạng khuôn mặt
Kiếntrúctổngquátcủahệthống,gồmcácphachínhsau(hình3.4): -
Dòtìmkhuônmặt(FaceDetection) -
Hiệuchỉnhkhuônmặt(LandmarkCorrection) -
Tríchchọnđặctrưng(FaceEmbedding) - Phânlớp(SVM,KNN) 51 Landmark Facedetection Correction FaceEmbedding L2Norm Classification Diệu Linh 0.99
Hình 3.4. Kiến trúc tổng quát hệ thống nhận dạng khuôn mặt
Trongluậnvănnày,tácgiảchỉnghiêncứu,giảiquyếtcácpha3và4.Tuy
nhiên,đểphầntrìnhbàycótínhhệthống,tácgiảsẽmôtảngắngọncácpha1
và2trongcácphầntiếptheo.
3.3. Kiến trúc mạng nơron cho bài to_n ph_t hiện khuôn mặt
3.3.1. Phát biểu bài toán face detection
Pháthiệnkhuônmặt(facedetection)làbướcđầutiênvàcầnthiếtđểnhận
dạngkhuônmặtvàđượcsửdụngđểpháthiệnkhuônmặttrongảnh.Nócũng
làmộtphầncủapháthiệnđốitượngvàđượcsửdụngtrongnhiềulĩnhvực nhưbảo Inp u mật, t
sinhtrắchọc,thựcthiphápluật,giảitrí,antoàncán Output à CNN
cònđượcsửdụngđểpháthiệnkhuônmặttrongthờigianthựcđểgi à ặc tượng.
oàiramộtsốmạngx ttoán dạn mặtđểp chúng. 52
Hình 3.5. Quá trình phát hiện khuôn mặt trong ảnh
Cókhánhiềuphươngphápđểpháthiệnkhuônmặtnhưthôngquamàu
sắc,cửđộnghoặcquagóccạnhtrongảnh,…Vớihạnchếphầncứngcủa
mìnhvàthờigianthựchiệnluậnvănnênởphầnnàysẽchỉdừnglạiởviệcsử
dụngmôhìnhđãhuấnluyệntừtácgiả[19].
3.3.2. Kiến trúc mạng dò tìm khuôn mặt
Quytrình dò tìm khuôn mặt trong luận  vănđược  thực hiện dựa trên
nghiên  cứu  “FaceBoxes:  A  CPU  Real-time  Face  Detector  with  High
Accuracy”đượcđềxuấtbởiShifengZhangvàcáccộngsự[19].Nhómtác
giảđãđềxuấtmộtmáydòtìmkhuônmặtmới,cótênFaceBoxes,vớihiệu
suấtvượttrộicảvềtốcđộvàđộchínhxác.
KiếntrúcmạngdòtìmkhuônmặtFaceBoxesgồm2nhóm: -
Nhóm tích chập rút gọn nhanh (Rapidly Digested Convolutional
Layers):baogồm2lớptíchchập(convolutionallayer)và2lớprútgọn(pool)
cótácdụngrútgọnnhanhkíchthướccủafileđầuvàovàgiảmsốkênhđầura,
nhằmgiảmtốiđasứcnặngtínhtoánnếukíchthướcfileđầuvàoquálớn.Một
trongnhữngkĩthuậtđểgiảmkhốilượngtínhtoáncủatíchchậplênfileđầu
vàolàsửdụngsốbướcnhảylớnchomỗitíchchập.Vídụvớinhómtíchchập
rútgọnnhanhtrongFaceBoxes,nhómtácgiảđãsửdụngsốbướcnhảycho
Conv1,Pool1,Conv2,Pool2lầnlượtlà4,2,2,2pixels. -
Nhóm tích chập đa kích thước (Multiple Scale Convolutional Layer):
baogồm3lớpInceptionvàlớptíchchậpdựatrênRPN(RegionalProposal
Network),nhómtíchchậpđakíchthướccảitiếnhiệunăngcủaphươngpháp 53
RPNtrongtrườnghợpdòtìmđơnlớp(Ví dụ:dòtìmkhuônmặt)theohướng
khắcphục2nhượcđiểmcủaRPN:
Thiếtkếđakíchthướctheochiềudọccủamạng:AnchorscủaRPN
đượcnốivớilớptíchchậpcuốicùng,dođósốđặctrưngvàđộphân
giảicủaảnhkhôngcònđủđểxửlýsựbiếndạngkhuônmặttrênnhiều
kíchthướcảnh.MSCLgiảiquyếtvấnđềbằngcáchnốianchorsvớicác
lớpánhxạđặctrưngđakíchthước(Inception3,Conv3_2,Conv4_2)
giúptrảiđềucácanchorsởnhiềukíchthướcảnhkhácnhau.
Thiếtkếđakíchthướctheochiềungangcủamạng:đểhọcđượccácmẫu
trênnhiềukíchthướcảnhchúngtathườngphảicócáctrườngtiếpnhận
(receptivefield)trênnhiềukíchthướckhácnhau.Đểlàmđượcviệcnày,
MSCLsửdụngnhiềumoduleInception,mỗimoduleInceptionlạibao
gồmnhiềulớptíchchậpvớikíchthướckernelkhácnhau.
LossfunctionđượcsửdụnggiốngnhưRPN:sửdụngsoftmax2lớp
chobàitoánphânlớpvàsmoothL1chobàitoánhồiquy.
3.4. Kiến trúc mạng face landmark 3.4.1. Phát biểu bài toán
Facelandmarklàxácđịnhđượcnhữngđiểmchínhtạonênhìnhdạngcủa
đốitượngtrongmộtbứcảnh.Trongbàitoánxácđịnhfacelandmark,chúng
tasẽphảixácđịnhđượcnhữngđiểmchínhtrongbứcảnhtạonênhìnhdạng
khuônmặtngười.Facelandmarklàđầuvàochonhiềubàitoánkhácnhưdự
đoántưthếđầu,tráođổikhuônmặt,pháthiệnnháymắt,xoaychỉnhlạikhuôn 54
mặtvàđiểnhìnhlàcôngnghệnhậndạngkhuônmặtFaceIDđượcApple
trangbịtrêniphoneX.
Saukhixácđịnhđượckhuônmặttrongbứcảnh,chúngtasẽxácđịnhcấu
trúccủakhuônmặt.Córấtnhiềukiểucấutrúckhuônmặtkhácnhaunhưngvề
cơbản,chúngtasẽphảixácđịnhđượcnhữngphần:Miệng,lôngmàyphải,
lôngmàytrái,mắtphải,mắttrái,mũi,hàm.
Từvịtríboxescủakhuônmặtdòtìmđược,nhiệmvụtiếptheolàxácđịnh
vịtrícácđặctrưng(5điểmlandmark,68điểm)gồmcácvịtrínhưmắt,mũi,
miệng….Theomộtsốđánhgiáthìtrongluậnvănnày,chúngtôisửdụng5
điểmlandmarklàmđặctrưng. Input CNN Output
Hình 3.6. Kiến trúc mạng Face Landmark
3.4.2. Kiến trúc mạng face landmark
Đểcóthểchuẩnhóađượccáckhuônmặt,chúngtađịnhnghĩamộtlưới
chuẩnmôphỏngcácvịtrítrênkhuônmặt.Hình3.7trìnhbàymộtmôhình
lướigồm68điểmquantrọngtrênmỗikhuônmặt.Môhìnhlướinàyđượcđề
xuất  bởi Vahid  Kazemi  và  Josephine  Sullivan  gọi  là  “face  landmark
estimation”[14]. Ýtưởngcơbảnlàchúngtađưara68điểmcụthể(điểm
đánhdấu)tồntạitrênkhuônmặtgồm:đầucằm,bênngoàimỗimắt,bêntrong
mỗilôngmày,…Sauđó,chúngtasẽhuấnluyệnmộtthuậttoán“Họcmáy”
đểcóthểtìmra68điểmcụthểtrênbấtkỳkhuônmặtnào: 55
Hình 3.7. Các điểm đánh dấu mẫu của một khuôn mặt (68 điểm)
Mộtkhiđãđãướclượngđượccácđiểmđánhdấutrênmỗikhuônmặt,
chúngtasẽbắtđầuchuẩnhóakhuônmặtđểsaochotâmcủakhuônmặtnằm
ởchínhgiữaảnh,kíchthướccủakhuônmặtđượcphóngtohoặcthunhỏvề
mộtkíchcỡ(150x150)vàmộtsốphépxoaynếucầnthiết.Chúýrằngchúng
tasẽkhôngbiếnđổiảnh3Dbởichúngsẽlàmméomóảnh.Chúngtachỉsử
dụngnhữngbiếnđổicơbảnnhưxoayvàphóngto–thunhỏđểgiữnhững
đườngsongsong(gọilàbiếnđổiaffine).Hình3.8minhhọacácbướcxửlý
trunggiancủaquátrìnhnày[15]. 56 Ảnh đầu vào Mô hình lưới AffineTransformation (Biến đổi Affine) Ảnh kết quả
Hình 3.8. Quá trình hiệu chỉnh khuôn mặt
Môhìnhlưới68điểmhoạtđộngkháchínhxáctrongtrườnghợpchúngta
cóthểướclượngđượcđầyđủcácđiểmđánhdấutrênkhuônmặt.Nóicách
khác,khigócquaycameracóthểthunhậnđầyđủkhuônmặt(trựcdiệnhoặc
gầntrựcdiện).hình3.9minhhoạmộtsốtrườnghợpmàchúngtacóthểdò
tìmđượcchínhxáccácvịtríđánhdấutrênkhuônmặt. 57
Hình 3.9. Minh họa kết quả ước lượng các điểm đánh dấu trên ảnh đầu
Tuynhiên,nếumộttrongcácđiểmđánhdấubịchekhuấtbởigócquay
camera,môhìnhlưới68điểmsẽhoạtđộngkémhiệuquảnhưminhhọatrên
hình3.10.Kếtquảhiệuchỉnhkhuônmặtdođócũngsẽbịảnhhưởng,làm
giảmđộchínhxáccủaquátrìnhnhậndạngsaunày.
Hình 3.10. Mô hình lưới 68 điểm cho kết quả không tốt với các trường hợp mặt nghiêng
Vìvậy,chúngtôigợiýchỉnênápdụngmôhình68điểmchonhữngứng
dụngmàchúngtabiếtchắcchắnảnhchụpsẽtrựcdiệnvớicamera(Ví dụ:ảnh
chứngminhthư,ảnhthẻdựthi,…).Đốivớicáctrườnghợpkhác,chúngtôi
ápdụngmôhìnhlướichỉgồm5điểmđánhdấuđượcxâydựngtừgần5000
khuônmặttạiđây[16].Môhìnhlưới5điểmgồm2điểmmôtảvịtríhaimắt,
mộtđiểmngaydướimũivà2điểmởmiệng.Hình3.11minhhoạtmộtsốkết
quảcủaviệcướclượng5điểmđánhdấuchocácảnhđầuvàovớigócquay
khácnhau.Nhưchúngtacóthểthấy,môhìnhnàychokếtquảkháchínhxác 58
ngaycảvớinhiềutrườnghợpkhôngtrựcdiệnvớigócquaycủacamera.
Hình 3.11. Một số kết quả dò tìm các điểm đánh dấu của mô hình lưới 5 điểm
3.5. Kiến trúc mạng đặc trưng khuôn mặt (face embedding) 3.5.1. Phát biểu bài toán
Saukhiđãcóđặctrưngkhuônmặt(5điểmlandmark).Đểphânbiệtcác
khuônmặtkhácnhauthìmỗiảnhkhuônmặtcầnsinhra1bộđặctrưngmôtả
(featuresembedding).Bộđặctrưngmôtảthườnghaysửdụng1vector(128
hoặc512chiều).Vớimộtsốnghiêncứuthìchothấyrằngvector128làđủđộ
tincậyvàchínhxácđểphânbiệtcáckhuônmặtvớinhau.Vìthếchúngtôi
cũngsửdụngbộvector128làmcơsởmôtảchotừngkhuônmặt.
Đầuvào:Ảnhkhuônmặt(đãgắn5điểmlandmark)
Đầura:Vector128chiều
3.5.2. Kiến trúc mạng đặc trưng khuôn mặt
FaceNetlàmộthệthốngnhậndạngkhuônmặtđượcpháttriểnvàonăm
2015bởicácnhànghiêncứutạiGoogle,đãđạtđượckếtquảtiêntiếnnhất
trênmộtloạtcácbộdữliệuđiểmchuẩnnhậndạngkhuônmặtnhưLabeled
FacesintheWild(LFW)vớiđộchínhxáclà99,63%,YoutubeFacesDBvới
độchínhxáclà95,12%.HệthốngFaceNetcóthểđượcsửdụngrộngrãinhờ
nhiềutriểnkhaimôhìnhnguồnmởcủabênthứbavàsựsẵncócủacácpre-
trainedmodels.LợiíchcủahệthốngFaceNetlàmỗikhuônmặtđượcđạidiện
bởimộtvectorđặctrưng.Khiđó,quátrìnhnhậndạngkhuônmặttrởthành
vấnđềphânlớpcácvectorđă ›ctrưng.
Quytrìnhnhậndạngkhuônmặtthựchiệntrongluậnvăndựatrênnghiên 59
cứu“FaceNet:Mộthệthốngnhúngchoviệcnhậndạngvàphâncụmkhuôn
mặt”[17]đượcđềxuấtbởinhómtácgiảlàmviệctạiGoogleđólàFlorian
Schroff,DmitryKalenichenkovàJamesPhilbin.
FaceNetdựatrênviệcnhúngmỗiảnhvàokhônggianEuclidebằngcách
sử  dụng  mạng  CNN.  Mạng  được  huấn  luyện  sao  cho  khoảng  cách  bình
phươngL2trongkhônggiannhúngtươngứngvớikhoảngcáchgiữacác
khuônmặt:Khuônmặtcủacùngmộtngườicókhoảngcáchnhỏvàkhuôn
mặtcủanhữngngườikhácnhaucókhoảngcáchlớn.Khiđó,mỗikhuônmặt
đượcđạidiệnbởimộtvectorđặctrưng128chiềuđượcchuyểnđổithành128
byte.Khikhônggiannhúngnàyđượctạora,thìnhiệmvụnhậndạngkhuôn
mặttrởthànhbàitoánphânlớpvectorđặctrưngdùngthuậttoánK-NN,mạng nơronnhiềulớp.
Nhómtácgiảsửdụng2kiểukiếntrúckhácnhauđểphùhợptừngứng
dụngkhácnhau.Vídụnhómmôhìnhsố1sẽphùhợpchocáctrungtâmdữ
liệu,vớisốlượngthamsốlớn(đến140triệuthamsốcầnhuấnluyện),cần
sứcmạnhtínhtoánsốthực(FLOPS)rấtlớn,trongkhinhómmôhìnhsố2cần
huấnluyệnítthamsốhơn(íthơn20lần)đểcóthểsửdụngđượcvớibộnhớ
củađiệnthoạithôngminh.
Trongnhómmôhìnhsố1,nhómtácgiảthêmvàonhiềulớptíchchậpkích
thước1x1bêncạnhcáclớptíchchậpchuẩnZeilervàFergus[20],tạoramô
hìnhcó22lớp.Vớiđộsâuđó,chúngtacầnhuấnluyện140triệuthamsố,
cầnđếnsứcmạnhtínhtoán1.6tỉphéptoánsốthựcmỗigiây(FLOPS)cho
mỗihìnhảnhđầuvào.Bảng3.2môtảcấutrúccủamôhình,cácảnhđầuvào
vàđầuracókíchthướcsốdòngxsốcộtxsốbộlọc.Nhântíchchậpcókích
thướcsốdòngxsốcột,sốpixeldịchchuyểnvàmaxoutpoolingcókíchthước p=2. 60
Bảng3.2.MôhìnhmạngNN1dựatrêncấutrúcmạngdoZeilervàFergusđề
xuất,vớicáclớp(layer),kíchthướcinput(size-in)vàoutput(size-out)có dạng
(sốdòng sốcột sốbộlọc),riêngphầnnhân (kernel)là
(số dòng số cột), stride (dòng cột,bướcsải)và
kíchthướcmaxoutpoolinglà [17]. 61 #Filter Layer Output #Filter Layer Output 64 Conv1 110x110 128 L2 1x1 64 Pool1 55x55 128 fc7128 1x1 64 Rnorm1 55x55 128 fc2 1x32 64 Conv2a 55x55 128 fc1 1x32 192 Conv2 55x55 256 Concat 7x7 Rnorm2 192 55x55 256 Pool4 7x7 192 Pool2 28x28 256 Conv6 14x14 192 Conv3a 28x28 256 Conv6a 14x14 384 Conv3 28x28 256 Conv5 14x14 #Filter 384 384 256 256 Pool3 Conv4a Conv4 Conv5a Output 14x14 14x14 14x14 14x14
Hình 3.12. Kiến trúc mạng NN1 dựa trên cấu trúc mạng do Zeiler và Fergus đề xuất
Nhóm2sửdụngdựatrênGoogleNet(xembảng3.3)vớicácmôhình
Inception[21].Sốlượngthamsốcầnhuấnluyệnlà6-7triệuthamsố,íthơn 62
20lầnsovớinhómsố1,cùngsứcmạnhtínhtoáníthơn5lần,giúpgiảmkích
thướccủamôhình,dễdàngđưavàoứngdụngdiđộng.
Bảng3.3.FaceNetsửdụngmôhìnhInceptiontươngtựvới[21].Haiđiểm
khácbiệtchínhđólàFaceNetsửdụngL2poolingthayvìmaxpooling.Kích
thướcpoolingluônlà3 3vàtínhsongsongvớimoduletíchchậptrong mỗi moduleInception. dimensionalityr Nếu giảm chiều (
eduction)thìpoolingsẽ
đượckýhiệuvới . Các pooling kích thước 1 1, 3 3 và 5 5 được nối lại để cho ra kết quả [17]. 63 #Filter Layer Output #Filter Layer Output 64 conv1(7x7x3,2) 112x112 128 L2Normalization 1x1 64 maxpool+norm 56x56 128 fullyconn 1x1 192 inception(2) 56x56 1024 avgpool 1x1 192 norm+maxpool 28x28 1024 inception(5b) 7x7 256 inception(3a) 28x28 1024 inception(5a) 7x7 320 inception(3b) 28x28 1024 inception(4e) 7x7 640 inception(3c) 14x14 640 inception(4d) 14x14 #Filter 640 640 640 inception(4a) inception(4b) inception(4c) Output 14x14 14x14 14x14
Hình 3.13. Kiến trúc mạng NN2 sử dụng mô hình Inception dựa trên mạng GoogleNet Filter Concatenation 1x1 3x3 5x5 maxpooling convolutions convolutions convolutions Previouslayer
Hình 3.14. Cấu trúc của module Inception được dùng trong mô hình NN2,
giới thiệu lần đầu bởi Google trong mạng GoogleNet 64
VớiFaceNet,nhómtácgiảsửdụngTripletLoss(hàmmụctiêutheobộ
ba).Bộbaởđâybaogồm:ảnhtruyvấn(queryimage),1ảnhkháccủacùng
ngườiđó(positive)vàảnhcủangườikhác(negative).Mụcđíchcủahàm
TripletLosslàkéoảnhđặctrưng(anchorimage)củamộtngườivềgầnvớitất
cảảnhkháccủacùngngườiđó(positiveimage)vàkéodãnkhoảngcáchvới
ảnhcủanhữngcáthểcònlại(negativeimage),tươngứngvớiđiềukiện: + < , , , ) T.
HàmmụctiêucủaTripletlossvìthếđượcmôtảnhưsau: (1)
Tuynhiênsốlượngbộbathỏađiềukiện1sẽrấtnhiều,dẫntớihiệntượng
hộitụchậmnếuchỉsửdụnghàmmụctiêunhưtrên.Vìvậychúngtacầncó
bướcchọnlọcbộba(TripletSelection)đểgiữlạichỉnhữngbộbatốtnhất
choquátrìnhhuấnluyện.
Đểhàmmấtmáthộitụnhanhvàthỏađượcđiềukiệnhuấnluyệnởtrên,
vớimỗiảnhđặctrưngcủamỗingười tacầnxácđịnhđượcảnhđúngcố
định(hardpositive)   sao cho  ,vàảnhsaicố định(hardnegative) saocho .
Việctìmargmaxvàargmincủacảtậpdữliệutốnrấtnhiềuthờigian,
khôngkhảthivớitậpdữliệulớnvìcóquánhiềubộbađượctạora.Có2cách
đểvượtquahạnchếnày: -
Tạorabộbangoạituyến(offline)lặplạimỗiNbước. 65 -
Tạorabộbatrựctuyến(online)bằngcáchchọnraảnhđúngcốđịnhvà
ảnhsaicốđịnhchomỗimini-batch.
VớiFaceNet,nhómtácgiảchútrọngvàoviệctạobộbatrựctuyến,với
nhiềumini-batchcókíchthướcmẫuvàingànảnhvàchỉtínhargmax,argmin trongmỗimini-batch.
Đểảnhđặctrưngcủamỗingườiđượckháchquanvàchínhxác,chúngta
cầnđảmbảosốảnhtốithiểucủamỗicánhântrongtậpmẫumini-batch(vídụ 40ảnh/người).
TrongFaceNetnhómtácgiảđãchọnchiếnlượcnhưsau: -
Cố  định  ảnh  đúng  (hard  anchor-positive  pairs)  cho  mỗi  mini-batch
(thayvìchọnra1ảnhcốđịnhchomỗilớpkhuônmặt).Phươngphápnày
đượcchứngminhbằngthựcnghiệmchophéphàmmụctiêuhộitụnhanhhơn. -
Chọn  ra  ảnh  sai  “bán  cố  định”  (semi-hard  negative)  cho  mỗi  cặp
anchor-positive:  ảnh  sai  được  chọn  ra  vẫn  bằng  hàm  argmin:
,kèmtheođiềukiệnphải: <
Điềukiệnnàygiúpchúngtatránhđượctrườnghợp“cựctiểuđịaphương” (localminima).
Đ_nh gi_ ưu, nhược điểm của mô hình FaceNet:
FaceNetcótiệnlợihơncácphươngphápFaceEmbeddingkháckhisử
dụngquátrìnhhuấnluyệnxuyênsuốttừđầuđếncuối,saukhihuấnluyện
xongmôhìnhđãcóthểsửdụngngay,khôngcầncácphươngphápxửlýhậu
kỳ(post-processing)khác(Ví dụ: nốicácmôhìnhlạivớinhau,phântích
thànhphầnchính–PCA,hoặcphânlớpvớiSVM).Mộtđiểmmạnhkháclà
khisửdụngFaceNet,chúngtakhôngcầnphảicanhchỉnhkhuônmặtquá 66
chặt,khôngcầndùngcácphươngphápcanhchỉnh3chiềutốnkémvềchiphí
tínhtoán,màchỉnhcầnảnhcắtcậnkhuônmặtlàđủ.
Tuyvậy,môhìnhhiệntạicầnđượccảitiếnthêm,khiquátrìnhhuấn
luyệnchiếmrấtnhiềuthờigianvàtàinguyêncủaCPU.Ngoàira,quátrình
huấnluyệnđượcthựchiệnvớikíchthướcảnh220x220,nhữngảnhjpgcóđộ
phângiảinhỏhơn(vídụ120x120,80x80vànhỏhơnthếnữa)khôngchokết
quảtốtnhưnhữngảnhcókíchthướclớn.
Cải tiến chất lượng mạng đã huấn luyện (pre-trained model):
ĐểcảithiệnchấtlượngmodelFacenetchotậpdữliệungườiViệt,chúng
tôitiếnhànhlàmmịn(fine-tuning)hayhuấnluyệnlạimodeltrêntậpdữliệu
sinhviênđãthuthậpđược.Quátrìnhnàyđượcthựchiệnnhưsau:
+ Chọn tập huấn luyện: từ 496cánhân.Trungbình,mỗicánhâncó
khoảng300ảnh,trongđóchúngtôisửdụng80%dữliệuchoviệchuấnluyện
và20%choviệctest.
+ Cấu hình tham số huấn luyện lại: Trongtấtcảcácthửnghiệmcủa
chúngtôi,chúngtôihuấnluyệnmạngCNNbằngcáchsửdụngthuậttoán
StochasticGradientDescent(SGD)vớicáctiêuchuẩnbackpropvàAdaGrad.
Cácthamsốhuấnluyệnmạnggồm:α=0.2,thamsốhọc(learningrate)=
0.05.ChúngtôithựchiệnhuấnluyệnlạimạngtrênmáycócấuhìnhIntel®
Core™i3-6100UCPU@2.30GHz×4trongthờigian2tuần,sauđódừngvà
lưuthànhmodelmới.Trongsuốtquátrìnhhuấnluyện,thuậttoánpháthiện
khuônmặtđượcsửdụngđểtạorakhungảnhbaochặtquanhkhuônmặttrong
mỗiảnh.Sauđó,cácảnhkhuônmặtđượcthunhỏlạitheokíchthướcquyước
củamỗimôhình,từ96x96đến224x224pixels.
3.6. Kết luận chương 3
Nhưvậy,trongchương3chúngtôiđãthuthậpvàxâydựngbộdữliệu
huấnluyệnngườiViệtbaogồmquytrìnhthuthậpdữliệuvàcácbảngthống
kê,biểuđồthốngkêquátrìnhthuthậpdữliệu.Dữliệusaukhichúngtôithu
thậpđượctiếnhànhgánnhãnđểđưavàohuấnluyện.Tiếptheo,chúngtôi 67
trìnhbàykiếntrúctổngquátcủahệthốngnhậndạngkhuônmặtgồmcó4
pha.Trongđóchúngtôichỉtậptrungđisâuvàonghiêncứu,giảiquyếtcác
pha3và4là:kiếntrúcmạngđặctrưngkhuônmặt(faceembedding)vàquá
trìnhphânlớp(Classification).DựatrênmôhìnhmạngFaceNet[17],chúng
tôiđãphântíchưunhượcđiểmcủakiếntrúcmạng,quátrìnhhuấnluyện,từ
đóđềxuấtcáccảitiếnchấtlượngmạngđãhuấnluyện(pre-trainedmodel)
bằngcáchtiếnhànhlàmmịn(finetuning)hayhuấnluyệnlạimôhìnhtrênbộ
dữliệuhuấnluyệnsinhviênngườiViệtđãthuthậpđược.
Tiếptheochương4chúngtôisẽtrìnhbày1sốkếtquảthựcnghiệmvà
đánhgiámàchúngtôithuđượctừquátrìnhhuấnluyệnmạng. 68 Chương 4:
KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ
4.1. Môi trường cài đặt và ph_t triển ứng dụng 4.1.1. Phần cứng
Môitrườngđượcsửdụngđểhuấnluyệnhệthốngnhậndạngkhuônmặt
ngườilàmáytínhcócấuhìnhvới: -
Bộ xử lý:Intel®Core™i3-6100UCPU@2.30GHz×4 -
Hệ điều hành:Ubuntu16.4LTS -
Bộ nhớ:4GBRAM -
Ổ cứng:SSD120GB 4.1.2. Phần mềm
Chươngtrìnhứngdụnghệthốngnhậndạngkhuônmặttrongluậnvăn
đượccàiđặttrongmôitrườngảohóaAnaconda,sửdụngthưviệnTensorflow
vàngônngữlậptrìnhPython.
4.1.2.1. Môi trường ảo hóa Anaconda
Anacondalàmộtnềntảng(platform)mãnguồnmởmiễnphícủangônngữ
lậptrìnhPythonthôngdụngnhấthiệnnay,sửdụngchokhoahọcdữdiệu,học
máyvàcácứngdụng(xửlýdữliệuquymôlớn,phântíchdựđoánvàtính
toánkhoahọc,…)nhằmmụcđíchđơngiảnhóaviệcquảnlývàtriểnkhaicác
package,  phù  hợp  với  mọi  người  dùng.  Hệ  thống  quản  lí  package  của
AnacondalàConda.BảnphânphốiAnacondatínhđếnnayđượcsửdụnghơn
6triệungườivàđínhkèmhơn250góipackagekhoahọcdữliệuphùhợpcho
các hệ điều hành Windows, Linux  vàMacOS.  Lợi ích của việc sử  dụng Anaconda:
- Dễdàngtải1500+packagesvềPython/Rchodatascience.
- Quảnlýthưviện,môitrườngvàdependencygiữacácthưviệndễdàng. 69
- Dễdàngpháttriểnmôhìnhmachinelearningvàdeeplearningvớicác
thưviệnscikit-learn,tensorflow,keras.
- Xửlýdữliệutốcđộcaovớicácthưviệnnumpy,pandas.
- HiệnthịkếtquảvớicácthưviệnMatplotlib,Bokeh.
Hình 4.1. Môi trường ảo hóa Anaconda8
4.1.2.2. Thư viện Tensorflow
Tensorflow(TF)làmộtthưviệnmãnguồnmởdoGooglepháttriểnvào
tháng11/2015,TFcungcấpkhảnăngxửlítínhtoánsốhọcdựatrênbiểuđồ
môtảsựthayđổicủadữliệu.Tensorflowđượcsửdụngkhigiảiquyếtcácbài
toánsupervisedlearning,sửdụngtrongrấtnhiềuứngdụngcủaGooglenhư
phânloạiemailcủaGmail,nhậnbiếtphátâmvàdịchtựđộng,nhậnbiết
khuônmặttrongGooglePhoto,tốiưuhoákếtquảtìmkiếm,quảngcáotrong
Youtube,…ĐặctrưngcủaTensorFlowlàxửlýđượctấtcảcácloạidữliệu
cóthểbiểudiễndướidạngbiểuđồluồngdữliệu(dataflowgraph)haylow
level  như  xử  lý  chữ viết  tay.  TensorFlow  được  viết  bằng  C++,  thao  tác
interfacebằngPythonvìthếhiệunăngrấttốt,dùngđượccảCPUlẫnGPU 8https://www.anaconda.com/ 70
nênTFcóthểchạytrêncảPCthôngthườnglẫn1servercựclớn,thậmchícả
smartphonecũngcóthểsửdụngđược.MộtchươngtrìnhTensorflowđược
chiathànhhaiphầnchính.Phầnthứnhấtlàxây dựngmôhình tính toán
(construction  phase),  phần  thứ  hai  là  chạy  mô  hình  vừa  mới  xây  dựng
(executionphase)LợiíchcủaviệcsửdụngthưviệnTF: -
Tíchhợpsẵnrấtnhiềucácthưviệnmachinelearning. -
Cókhảnăngtươngthíchvàmởrộngtốt,đượcGooglepháttriểncho
machinelearningphụcvụcảnghiêncứulẫnxâydựngcácứngdụngthựctế. - Phổbiến.
Hình 4.2. Biểu đồ lượt star và repos trên github sử dụng TF9
4.1.2.3. Ngôn ngữ lập trình python
Python là  một ngôn ngữ  lập trình  thông dịch  (interpreted), hướng  đối
tượng(object-oriented)vàlàmộtngônngữbậccao(high-level),ngữnghĩa
động(dynamicsemantics)đượctạorabởiGuidovanRossumvàonăm1991.
Python hỗ trợ các  module và  gói (packages), khuyến khích  chương trình
modulehóavàtáisửdụngmã.TrìnhthôngdịchPythonvàthưviệnchuẩnmở
rộngcósẵndướidạngmãnguồnhoặcdạngnhịphânmiễnphíchotấtcảcác
nềntảngchínhvàcóthểđượcphânphốitựdo.Ngàynay,Pythonđượcsử
9https://nguyenvanhieu.vn/thu-vien-tensorflow/ 71
dụngtrongcácmụcđíchnhưpháttriểnweb(trênmáychủ),pháttriểnphần
mềm,tínhtoán,khoahọc,lênkịchbảnchohệthống(systemscripting).Ưu
điểmcủaviệcsửdụngngônngữPython:
- Pythoncócúphápđơngiản,dễđọc,dễhọcvàdễnhớ.
- Pythonsửdụngtrìnhthôngdịchđểthựcthicode.Dođó,nhữngdòng
codecóthểđượcthựcthingaylập tứcmàkhông cầnbiêndịchtoànbộ
chươngtrình,giúpchúngtakiểmtracodenhanhchóng,dễdànghơn.
- Pythoncóthểkếtdễdàngkếtnốivớicácthànhphầnkhácnhưcácđối
tượngCOM, .NET(Ironpython,  Python  for  .net)  vàCORBA, Java,…
PythoncũngđượchỗtrợbởiInternetCommunicationsEngine(ICE)vànhiều
côngnghệkếtnốikhác.
- Pythonlàngônngữcókhảnăngchạytrênnhiềunềntảnghệđiềuhành
vớicùngmộtmãnguồngiốngnhaunhưWindows,Linux/Unix,OS/2,Mac,
Amiga,…mộtsốphiênbảncủaPythontrên.NET,máyảoJavavàđiệnthoại
diđộng(NokiaSeries60).
Hình 4.3. Ngôn ngữ lập trình Python10
4.2. Bộ dữ liệu thực nghiệm
Bộdữliệuhuấnluyệnsửdụngtrongluậnvănlàcáchìnhảnhkhuônmặt
đãthuthậpđượcmàchúngtôiđãgiớithiệuởchương3.Dữliệuthuthập
đượcgồm496cánhân,trongđóchúngtôisửdụng80%dữliệuchoviệchuấn
luyệnvà20%choviệctest.Trungbình,mỗicánhâncókhoảng300ảnh.
4.3. Phương ph_p đ_nh gi_, thử nghiệm
Mụctiêucủaquátrìnhhuấnluyệnlại(fine-tuning)môhìnhmạngFacenet
nhằmhoạtđộngtốthơnchotậpdữliệungườiViệtNam.Vìvậy,chúngtôi 10https://www.python.org/ 72
đánhgiáchấtlượngmạnghuấnluyệnlạitrêntậpdữliệusinhviênđãthuthập
được(vớicácđộtuổikhácnhau).Đểđánhgiáđộchínhxácnhậndạng,các
vectorđặctrưngkhuônmặtcủatừngđốitượngsẽđượcquacácbộphânlớp
máyhọcgồmK-NNvàSVM.Phươngthứcđánhgiánhưsau: -
Mỗicánhânsẽsửdụng5–10ảnhlàmdữliệuhuấnluyệnbộphânlớp -
VớibộphânlớpK-NN,khoảngcáchcủaphầntửgầnnhấtvớiảnhtruy
vấnsẽđượcsosánhvớimộtngưỡng(0.7trongthựcnghiệmnày)đểquyết
địnhnhãncủađốitượngđó.Khoảngcáchlớnhơnngưỡngnàyđượcxemxét
đểphânloạinhãnunknownchoảnhtruyvấn. -
 VớibộphânlớpSVM,nhãncủaảnhtruyvấnsẽđượctrảvềtừbộ
phânlớpSVM.Sauđó,chúngtôilọccácđốitượngunknownbằngcáchtính
lạikhoảngcáchEuclideangiữaphầntửgầnnhất(trảvềbởiSVM)vớicác
ảnhmẫuthuộclớpđó.Nếutồntạiảnhmẫuchokhoảngcáchbéhơnngưỡng
(0.7)thìkếtluậnnhãncủađốitượng.Ngượclại,gánnhãnunknownchođối tượngđangxét.
4.4. Kết quả đ_nh gi_, thử nghiệm
Độchínhxác(Accuracy)đượcsửdụngđếđánhgiáhiệunăngcủamạng
đãđượchuấnluyện.Chúngtôitínhtoánđộchínhxácvớimỗilớpđốitượng
trongtậpđánhgiá,sauđótínhđộchínhxáctoàncụcbằngcáchlấytrungbình
cộngcủacácđộchínhxácthànhphần.Cụthể: -
VớimỗiđốitượngcủanhãnX,độchínhxáccủalớpXđượctính: Trongđó:A 
xlàđộchínhxáctínhtoáncholớpđốitượngcónhãnX,NX là 73
sốlượngảnhcủađốitượngXcótrongcơsởdữliệu,N Tlàsốlượngảnhnhận
dạngđúngcủalớpX. -
Độchínhxáctoàncụcđượctính:
Trongđó,Nlàsốlượngcácnhãntrongcơsởdữliệu(N=496trongtập
dữliệudochúngtôithuthậpđược).
Cấuhìnhmáytínhchạythửnghiệmnhưsau:Intel®Core™i3-6100U CPU@2.30GHz×4.
Kếtquảnhậndạngđượcthểhiệntrênbảng4.1chongẫunhiên10đối
tượng.Thờigiannhậndạngkhôngtínhthờigiandòtìmmặtvàhiệuchỉnhcác
điểmlandmarks,chỉtínhthờigiantríchchọnvectorđặctrưngkhuônmặt
(128chiều)vàthờigianphânlớp(KNNhoặcSVM).Thờigianđượcđodựa
trêngiảsửmỗiframecủavideochỉcómộtkhuônmặt.
Bảng 4.1. Minh họa kết quả nhận dạng 10 đối tượng
Độ chính x_c Ax (%) Thời gian (ms) STT
Ảnh đại diện đối tượng KNN SVM KNN/SVM 1 85.4 85.9 75/70 74 2 84.3 85.2 73/71 3 87.6 88.4 76/72 4 82.4 82.7 74/71 5 86.4 87.5 79/76 6 83.4 83.7 78/75 7 84.2 85.1 77/74 75 8 88.9 89.8 76/72 9 88.3 89.1 79/77 10 81.8 82.4 70/75
Độ chính x_c toàn cục A 85.5 86.1
(trên toàn bộ tập kiểm thử)
Đểsosánhvớimôhìnhmạngbanđầu,chúngtôithựchiệnthínghiệmthứ
haivớicùngcáchthức,nhưngsửdụngmôhìnhFaceNetbanđầu.Kếtquả
thựcnghiệmchothấymôhìnhhuấnluyệnlạichokếtquảtốthơnsovớimô
hìnhgốcbanđầutừ5–8%phụthuộcvàotừngđốitượng.
Mộtsốvídụtrựcquankếtquảnhậndạngnhưsau: 76
Hình 4.4. Ví dụ về kết quả nhận dạng khuôn mặt
4.5. Kết luận chương 4
Trongchươngnày,chúngtôiđãtrìnhbàymôitrườngthựcnghiệmhệ
thốngnhậndạngkhuônmặtbaogồmcấuhìnhmáy,môitrườngcàiđặt,thư
việnvàngônngữsửdụng.Tiếpđó,chúngtôiđưaraphươngphápđánhgiá 77
chấtlượngmạnghuấnluyệnlạitrêntậpdữliệusinhviênngườiViệtđãthu
thậpđượcvàkếtquảđánhgiá,thửnghiệmbộdữliệuhuấnluyệnlạisovới
môhìnhmạngbanđầu. 78 Chương 5:
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 1. Kết luận
Luậnvănđãnghiêncứu,tìmhiểubàitoánnhậndạngkhuônmặtngườivà
thựchiệnpháttriển,càiđặtchươngtrìnhchobàitoándựatrênsựthốngkê
cáchướngtiếpcậnđãđượccôngbốquanhữngbàibáo,côngtrìnhkhoahọc
trênthếgiới.Cáckếtquảchínhmàluậnvănđãđạtđượctươngứngvớicác
mụctiêubanđầuđềranhưsau: -
Xâydựngbộcơsởdữliệuảnhphụcvụhuấnluyệnhọccácđặctrưng
khuônmặtcủangườiViệtNam.Bộdữliệuhuấnluyệnđượcthựchiệncho
496cánhân,mỗicánhâncó1-2video(độdài30–60giây),saukhitrích
chọnxửlýsốlượngảnhtrungbìnhchomỗicánhânkhoảng300ảnh. -
Trìnhbàytổngquanvềhệthốngnhậndạngkhuônmặtngười. -
Phântíchbàitoánnhậndạngkhuônmặt,cácthuậttoáncơbảntrong
nhậndạngkhuônmặthiệnnaytrênthếgiớinhưPCA,LDA,SVMvàmạng nơron. N
ghiêncứucáckỹthuậthọcsâu,cácmạngnhânchậpchobàitoánnhận
dạngkhuônmặtngườiđểđềxuấtvàxâydựngkiếntrúcmạnghọcsâu,tổchức
huấnluyệnmôhìnhmạngvàsửdụngtrongnhậndạngkhuônmặtngười. -
Đặcbiệt,chúngtôiphântíchchitiếtkiếntrúcmạngFacenet,đánhgiá
cácưunhượcđiểm,sauđótiếnhànhcảitiếnchấtlượngmạng,fine-tuninglại
trêntậpdữliệuhuấnluyệnchúngtôiđãthuthập. 79 -
Xâydựngthànhcônghệthốngdemoquátrìnhnhậndạngkhuônmặttừ
videovàbộdữliệuảnhđãthuthậpđược.Thựchiệncácthửnghiệmđánhgiá
chấtlượngmạngtrêntậpdữliệungườiViệtvàchokếtquảkhảquan.
2. Hướng ph_t triển
Hệthốngtựđộngnhậndạngkhuônmặttrongluậnvăncầntiếptụcđược
cảitiến,hoànthiệnđểtăngđộchínhxáckhilàmviệcvớicácCSDLchứa
hàngnghìnthậmchíhàngtriệungườidùng.Trongtươnglai,đểcóthểcải
thiệnđộchínhxácvàtốcđộxửlýcủahệthốngnhậndạng,chúngtôiđềxuất
càiđặtthửnghiệmvàđánhgiácácloạimôhìnhmạngmạnghọcsâuđãđược
huấnluyệntrước,đặcbiệtlàtăngsốtầngcủacácmạngđểcókhảnănghọc
đượcnhiềuđặctrưnghơn,cảithiệnđộchínhxác.Bêncạnhđó,tốcđộnhận
dạngcũnglàmộtyêucầuquantrọngcủacáchệthốngtrongthựctế.Vìvậy,
cácnghiêncứucảithiệntốcđộnhậndạngcũngsẽđượcđầutưnghiêncứu trongthờigiantới. 80 TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt
[1] PhạmVănDũng(2016),Mạngnơrontrongbàitoánnhậndạngkhuôn mặtvàứngdụng.
[2] PhạmThếBảo,NguyễnThànhNhựt,CaoMinhThịnh,TrầnAnhTuấn,
PhanPhúDoãn(2007),Tổngquancácphươngphápxácđịnhkhuônmặt người. Tài liệu tiếng Anh
[3] IonMarqués(2010),“FaceRecognitionAlgorihtms,”Universidaddel PaísVasco.
[4] Byung-JooOh (2003), “Face Recognition by Using Neural Network
ClassifiersbasedonPCAandLDA,”Daejeon,Korea.
[5] Sang-KiKim,YounJungPark,Kar-AnnToh,SangyounLee(2010),
“SVM-based  feature  extraction  for  face  recognition,”  Yonsei University.
[6] ZhimingLiu,ChengjunLiu(2010),“Fusionofcolor,localspatialand
global  frequency  information  for  face  recognition,”  Department  of
ComputerScience, New JerseyInstitute of Technology,Newark, NJ 07102,USA.
[7] SHU  Chan,  DING  Xiaoqing,  FANG  Chi  (2011),  “Histogram  of  the
Oriented  Gradient  for  Face  Recognition,”  State  Key  Laboratory  of
Intelligent  Technology  and  System,  Department  of  Electronic
Engineering,TsinghuaUniversity,Beijing100084,China.
[8] K.  Ruba  Soundar,  K.  Murugesan,  “Preserving  Global  and  Local
Features  -  a  Combined  Approach  for  Recognizing  Face  Images,”
InternationalJournalofPatternRecognitionandArtificialIntelligence,
Vol.24,No.1(2010)3953.
[9] Omkar  M.  Parkh,  Andrea  Vedaldi,  Andrew  Zisserman,  “Deep  Face
Recognition,”  Department  of  Engineering  Science,  University  of 81 Oxford.
[10] J.Deng,J.Guo,andS.Zafeiriou,“Arcface:Additiveangularmargin
lossfordeepfacerecognition,”arXivpreprintarXiv:1801.07698,2018.
[11] C.  T.  S.  E.  M.  Jyh  Shing  Roger  Jang,  “Neuro  fuzzy  and  Soft
Computing,”PrienticeHallInternational,Inc,2002.
[12] LeCun,Yann;LeonBottou;YoshuaBengio;PatrickHaffner(1998),
“Gradient-based  learning  applied  to  document  recognition,”  in
ProceedingsoftheIEEE.86(11):2278–2324,1998.
[13] ShifengZhang,XiangyuZhu,ZhenLei,HailinShi,XiaoboWangand
StanZ.Li,“FaceBoxes:ACPUReal-timeFaceDetectorwithHigh
Accuracy,”arXivpreprintarXiv:1708.05234,2017.
[14] Kazemi,  Vahid  and  Sullivan,  Josephine:  “One  Millisecond  Face
AlignmentwithanEnsembleofRegressionTrees,”CVPR2014.
[15] Technical  Report:  Brandon  Amos,  Bartosz  Ludwiczuk,  Mahadev
Satyanarayanan,“OpenFace:Ageneral-purposefacerecognitionlibrary
withmobileapplications,”2016.
[16] [Online].Available:https://github.com/davisking/dlib-models.
[17] FlorianSchroff,DmitryKalenichenkoandJamesPhilbin,“FaceNet:A
Unified  Embedding  for  Face  Recognition  and  Clustering,”  In
Proceedings  of  IEEE  Conference  on  Computer  Vision  and  Pattern
Recognition,pages815-823,2015.
[18] KaipengZhang,ZhanpengZhang,ZhifengLiandYuQiao,“JointFace
DetectionandAlignmentusingMulti-taskCascadedConvolutional
Networks,”IEEESignalProcessingLetters(SPL),vol.23,no.10,pp.
1499-1503,2016.[Online].Available:
https://arxiv.org/ftp/arxiv/papers/1604/1604.02878.pdf.
[19] [Online].Available:https://arxiv.org/pdf/1708.05234.pdf.
[20] M.  D.  Zeiler  and  R.  Fergus,  “Visualizing  and  understanding
convolutional  networks,” European Conference on  Computer Vision, 82
SpringerInternationalPublishing,pp.818-833,2014.
[21] C. Szegedy,W.Liu,Y.Jia,P.Sermanet,S.Reed,D.Anguelov,D.
Erhan,  V.  Vanhoucke,  and  A.  Rabinovich,  “Going  deeper  with
convolutions,” in  The  IEEE  Conference  on Computer  Vision  and
PatternRecognition(CVPR),pp.1-9,2015.
[22] I.J.Goodfellow,D.Warde-Farley,M.Mirza,A.C.CourvilleandY.&
Bengio,“Maxoutnetworks,”ICML,vol.3,pp.1319-1327,2013.
[23] PierreBaldi,PeterJ.Sadowski,“UnderstandingDropout,”Publishedin NIPS2013.
[24] Katarzyna  Janocha  and  Wojciech  Marian  Czarnecki,  “On  Loss
FunctionsforDeepNeuralNetworksinClassification,”arXivpreprint arXiv:1702.05659,2017.
[25] W.Liu,Y.Wen,Z.Yu,M.Li,B.Raj,andL.Song,“Sphereface:Deep
hypersphereembeddingforfacerecognition”,inTheIEEEConference
onComputerVisionandPatternRecognition(CVPR),vol.1,2017,p. 1.
[26] CorinnaCortesandVladimirVapnik(1995),“Support-Vector
Networks”,[Online].Available:
http://image.diku.dk/imagecanon/material/cortes_vapnik95.pdf.
[27] Warren  S.  McCulloch  and  Walter  Harry  Pitts  (1943),  “A  Logical
CalculusofIdeasImmanentinNervousActivity,UniversityofIllinois,
College  of  Medicine,”  Department  of  Psychiatry  at  the  Illinois
NeuropsychiatricInstitute,UniversityofChicago,Chicago,U.S.A.
https://www.cs.cmu.edu/~./epxing/Class/10715/reading/ McCulloch.and.Pitts.pdf.