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!
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ướchết,tôixinđượcgửilờicảmơnchânthànhvàsâusắcnhấttới
TS.PhạmThếAnh–giáoviênhướngdẫncủatôi,ngườiđãhếtlònghỗtrợ
vàgiúpđỡtôitrongquátrìnhnghiêncứuvàhoànthiệnluậnvănthạcsĩcủa mình.
Tôicũngxingửilờicảmơntớicácthầy,cáccôtrongKhoa CNTT&TT,
TrườngĐạihọcHồngĐứcđãtậntìnhdạydỗvàtrangbịchotôimộtnềntảng
kiếnthứcvữngchắcđểgiúptôihoànthànhluậnvănnày.Cảmơncácbạn,
cácanhchịlàhọcviêncaohọclớpKhoahọcmáytínhK10,trongquátrình
họcthạcsĩđãluôngiúpđỡvàchiasẻnhữngkinhnghiệmquýgiáchotôi.
Vàtôicũngxingửilờicảmơnđặcbiệttớimẹtôi,ngườiđãnuôinấng,
dạydỗ,chămlovàđộngviêntôihoànthànhkhóahọcthạcsĩvàluậnvănnày.
Mặcdùđãcốgắnghếtsứcđểhoànthànhluậnvănnhưngchắcchắnsẽ
khôngthểnàotránhkhỏinhữngsaisót.Kínhmongnhậnđượcsựcảmthông,
gópý,chỉbảocủaquýthầycôvàcácbạ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ínhcấpthiếtcủađềtài................................................................................1
2.Mụctiêunghiêncứucủađềtài.....................................................................2
3.Đốitượngvàphạmvinghiêncứu.................................................................3
4.Phươngphápnghiêncứu...............................................................................3
5.Dựkiếnkếtquảđạtđược..............................................................................3
6.Nộidungvàcấutrúccủaluậnvăn................................................................3
Chương 1: TỔNG QUAN VỀ NHẬN DẠNG KHUÔN MẶT NGƯỜI ......5
1.1.TổngquanvềAIvàtiềmnăngứngdụng...................................................5
1.2.Bàitoánnhậndạngmặtngười....................................................................6
1.2.1.Kháiquátvềhệthốngnhậndạngmặtngười...........................................7
1.2.2.Nhữngkhókhăncủabàitoánnhậndạngkhuônmặtngười....................8
1.2.3.Mộtsốphươngphápnhậndạngmặtngười.............................................9
1.3.Cácứngdụngcủanhậndạngmặtngười..................................................11
1.4.Mộtsốphầnmềmthươngmạiliênquan..................................................13
1.5.Phạmvivàgiớihạncủađềtài.................................................................13
1.6.Kếtluậnchương1....................................................................................13
Chương 2: CƠ SỞ LÝ THUYẾT
.................................................................14
2.1.Kiếntrúctổngquáthệthống....................................................................14
2.2.Tìnhhìnhnghiêncứutrongvàngoàinước..............................................16
2.3.Mạngnơronsinhhọc................................................................................18 iv
2.4.Mạngnơronnhântạo...............................................................................19
2.4.1.Môhìnhtoánhọcmạngnơronnhântạo................................................20
2.4.2.Kiếntrúcmạngnơronnhântạo.............................................................22
2.4.3.Mộtsốkiểukiếntrúcmạngnơronnhântạo..........................................23
2.4.4.Cácứngdụngcủamạngnơronnhântạo...............................................25
2.4.5.Huấnluyệnmạngnơron........................................................................26
2.4.6.MạngnơronMLPvàứngdụngtrongnhậndạngảnh...........................28
2.5.Mạngnơrontíchchập(ConvolutionalNeuralNetworks–CNNs)..........30
2.6.Mộtsốhàmmụctiêu(loss)phổbiến.......................................................35
2.6.1.HàmTripletLoss...................................................................................35
2.6.2.HàmCross-EntropyLoss......................................................................37
2.6.3.HàmAngular-SoftmaxLoss..................................................................38
2.6.4.HàmArcFaceLoss................................................................................39
2.7.Kếtluậnchương2....................................................................................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.Thuthậpvàxâydựngtậpdữliệuhuấnluyện..........................................42
3.1.1.Bộdữliệuhuấnluyệnchomôhìnhmạngtheochuẩn(benchmark).....42
3.1.2.BộdữliệuhuấnluyệnngườiViệt.........................................................42
3.2.Kiếntrúctổngquáthệthốngnhậndạngkhuônmặt................................45
3.3.Kiếntrúcmạngnơronchobàitoánpháthiệnkhuônmặt........................45
3.3.1.Phátbiểubàitoánfacedetection...........................................................45
3.3.2.Kiếntrúcmạngdòtìmkhuônmặt.........................................................46
3.4.Kiếntrúcmạngfacelandmark.................................................................47
3.4.1.Phátbiểubàitoán..................................................................................47
3.4.2.Kiếntrúcmạngfacelandmark..............................................................48
3.5.Kiếntrúcmạngđặctrưngkhuônmặt(faceembedding)..........................51
3.5.1.Phátbiểubàitoán..................................................................................51
3.5.2.Kiếntrúcmạngđặctrưngkhuônmặt....................................................51 v
3.6.Kếtluậnchương3....................................................................................59
Chương 4: KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ ........................61
4.1.Môitrườngcàiđặtvàpháttriểnứngdụng...............................................61
4.1.1.Phầncứng..............................................................................................61
4.1.2.Phầnmềm..............................................................................................61
4.2.Bộdữliệuthựcnghiệm............................................................................64
4.3.Phươngphápđánhgiá,thửnghiệm..........................................................64
4.4.Kếtquảđánhgiá,thửnghiệm..................................................................65
Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
................................70
1.Kếtluận.......................................................................................................70
2.Hướngpháttriển..........................................................................................70
TÀI LIỆU THAM KHẢO............................................................................72 vi
DANH MỤC CÁC HÌNH VẼ Trang
Hình1.1.Kiếntrúcđiểnhìnhcủamộthệthốngthịgiácmáy..........................7
Hình2.1.Sơđồkhốithuậttoándòtìmvànhậndạngkhuônmặt...................15
Hình2.2.Cấutrúccủamộtnơronsinhhọcđiểnhình.....................................18
Hình2.3.Môhìnhmộtnơronnhântạo...........................................................21
Hình2.4.Minhhọamộtkiếntrúcmạngnơronđiểnhình...............................23
Hình2.5.Môhìnhmạngnơronmộtlớp.........................................................23
Hình2.6.Môhìnhmạngnơron3lớptruyềnthẳng.........................................24
Hình2.7.Mạngtruyềnthẳng..........................................................................24
Hình2.8.Mạngphảnhồi.................................................................................25
Hình2.9.Môhìnhhuấnluyệnmạngcógiámsát...........................................27
Hình2.10.Môhìnhhuấnluyệnmạngkhôngcógiámsát..............................27
Hình2.11.Môhìnhhuấnluyệnmạngtăngcường..........................................28
Hình2.12.KiếntrúcmạngMLP....................................................................29
Hình2.13.Mạngnơronlantruyềnngược.......................................................30
Hình2.14.KiếntrúcmộtmạngCNNđiểnhình[12]......................................32
Hình2.15.KiếntrúcdạngđồhọacủamộtmạngCNN..................................33
Hình2.16.NguyêntắccủaquátrìnhhuấnluyệnmạngDNN........................36
Hình2.17.Môphỏngbộmôtả128giátrịcủamộtkhuônmặt......................37
Hình2.18.Môtảphânbốcácđặctrưngkhuônmặtkhidùngđộđobiên
Euclidean.........................................................................................................38
Hình2.19.(a)Minhhọaphânbốcủađặctrưngkhuônmặtkhidùngđộđo
biêntheogóc(marginallearning),(b)Kếtquảkhichiếucácđặctrưngở(a)
sangkhônggiansiêucầu[25].........................................................................39
Hình2.20.Minhhọaphânbốkhônggianđặctrưngcủa8đốitượngkhác
nhau,dùng(a)hàmbiênEuclidean(softmaxloss)và(b)AdditiveAngular
MarginLoss(ArcFaceloss)............................................................................40 vii
Hình3.1.Quytrìnhthuthậpdữliệu...............................................................43
Hình3.2.Biểuđồthốngkêquátrìnhthuthậpdữliệu....................................44
Hình3.3.Ảnhgốctrongcơsởdữliệuthuthập..............................................44
Hình3.4.Kiếntrúctổngquáthệthốngnhậndạngkhuônmặt.......................45
Hình3.5.Quátrìnhpháthiệnkhuônmặttrongảnh........................................46
Hình3.6.KiếntrúcmạngFaceLandmark......................................................48
Hình3.7.Cácđiểmđánhdấumẫucủamộtkhuônmặt(68điểm)..................48
Hình3.8.Quátrìnhhiệuchỉnhkhuônmặt......................................................49
Hình3.9.Minhhọakếtquảướclượngcácđiểmđánhdấutrênảnhđầu........50
Hình3.10.Môhìnhlưới68điểmchokếtquảkhôngtốtvớicáctrườnghợp
mặtnghiêng.....................................................................................................50
Hình3.11.Mộtsốkếtquảdòtìmcácđiểmđánhdấucủamôhìnhlưới5
điểm.................................................................................................................51
Hình3.12.KiếntrúcmạngNN1dựatrêncấutrúcmạngdo..........................54
ZeilervàFergusđềxuất..................................................................................54
Hình3.13.KiếntrúcmạngNN2sửdụngmôhìnhInceptiondựatrên...........56
Hình3.14.CấutrúccủamoduleInceptionđượcdùngtrongmôhìnhNN2,
giớithiệulầnđầubởiGoogletrongmạngGoogleNet....................................56
Hình4.1.MôitrườngảohóaAnaconda..........................................................62
Hình4.2.BiểuđồlượtstarvàrepostrêngithubsửdụngTF..........................63
Hình4.3.NgônngữlậptrìnhPython..............................................................64
Hình4.4.Vídụvềkếtquảnhậndạngkhuônmặt...........................................68 viii
DANH MỤC CÁC BẢNG BIỂU Trang
Bảng3.1.Thốngkêquátrìnhthuthậpdữliệu................................................44
Bảng3.2.MôhìnhmạngNN1dựatrêncấutrúcmạngdoZeilervàFergusđề
xuất,vớicáclớp(layer),kíchthướcinput(size-in)vàoutput(size-out)có dạng
(sốdòng sốcột sốbộlọc),riêngphầnnhân (kernel)là
(sốdòng sốcột),stride(dòng cột,bướcsải)và
kíchthướcmaxoutpoolinglà
[17].......................................................53
Bảng3.3.FaceNetsửdụngmôhìnhInceptiontươngtựvới[21].Haiđiểm
khácbiệtchínhđólàFaceNetsửdụngL2poolingthayvìmaxpooling.Kích
thướcpoolingluônlà3 3vàtínhsongsongvớimoduletíchchậptrongmỗi
moduleInception.Nếugiảmchiều(dimensionalityreduction)thìpoolingsẽ
đượckýhiệuvới .Cácpoolingkíchthước1 1,3 3và5 5đượcnốilạiđể
chorakếtquả[17]...........................................................................................55
Bảng4.1.Minhhọakếtquảnhậndạng10đốitượ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 ArtificialIntelligence Trítuệnhântạo ANN ArtificialNeuralNetworks
Mạngnơronnhântạo CNN
ConvolutionalNeuralNetwork Mạngnơrontíchchập DCNN
DeepConvolutionalNeural
Mạngnơrontíchchậpsâu Networks DNN DeepNeuralNetworks Mạngnơronsâu FRS FaceRecognitionSystem
Hệthốngnhậndạngkhuônmặt LDA
LinearDiscriminantAnalysis
Phươngphápphântíchphân táchtuyếntính MLP MultiLayerPerceptron
Mạngtruyềnthẳngcónhiều lớp PCA
PrincipalComponentAnalysis Phươngphápphântíchthành phầnchính SVM SupportVectorMachine Máyhỗtrợvector 1 MỞ ĐẦU
1. Tính cấp thiết của đề tài
Ngàynaycùngvớinhữngtiếnbộvượtbậcvàsựpháttriểncủakhoahọc
kỹthuật,lĩnhvựckhoahọcxửlýảnhđãvàđangđạtđượcnhữngthànhtựuto
lớnvàchứngminhvaitròkhôngthểthiếutrongnhữngứngdụngthiếtyếu
củakhoahọckỹthuậtvàđờisốngxãhội.Vàđặcbiệt,chúngtađãchứngkiến
đượcnhiềuthànhtựuvượtbậctronglĩnhvựcthịgiácmáytính(Computer
Vision).Lĩnhvựcnàyhiệnđãvàđangthuhútrấtnhiềusựquantâmcủacác
nhànghiêncứu,cáchọcgiảtrongvàngoàinước.
AI(ArtificialIntelligence)–Trítuệnhântạolàsựmôphỏngcácquátrình
hoạtđộngtrítuệcủaconngườibằngmáymóc,đặcbiệtlàcáchệthốngmáy
tính.Cácquytrìnhnàybaogồmhọctập(thunhậnthôngtinvàquytắcsử
dụngthôngtin),lýluận(sửdụngquytắcđểđạtđượckếtluậngầnđúnghoặc
xácđịnh)vàtựđiềuchỉnh.MộtsốứngdụngđặcbiệtcủaAIbaogồmhệ
chuyêngia,nhậndạnggiọngnóivàthịgiácmáy.Ngàynay,AIđãđượcứng
dụngtrongrấtnhiềulĩnhvực,ngànhnghềvàcôngviệckhácnhaunhưchăm
sócsứckhỏe,kinhdoanh,giáodục,tàichính,phápluật,sảnxuất,…cóthểkể
đến1sốứngdụngđiểnhìnhcủaAInhưtrợlýảo,nhàthôngminh,nhậndiện
khuônmặtngườidùng,pháttriểnxetựláihaydronegiaohàngtựđộng,…
NhữngứngdụngcủaAItrongthựctếcóthểgiúpconngườinângcaonăng
suấtlaođộng,tiếtkiệm,thờigian,chiphítừđócảithiệnchấtlượngcuộc
sống.Tuynhiên,bêncạnhnhữnglợiíchmàAImanglạithìsựpháttriểnquá
nhanhcủanócũngmanglạichoconngườinhữngmốilolắngnhấtđịnhmà
chúngtakhôngthểlườngtrướcđượchậuquảvàthíchnghikịpthời.Khimà
cácquytrìnhđềuđượctựđộnghóavàmọicôngviệchàngngàyđềudongười
máythựchiệnthìmốilongạitrítuệnhântạocótiềmnăngpháttriểnnhanh 2
hơntríthôngminhcủaloàingườivàkhichúngtakhôngthểkiểmsoátđược
chúngthìrấtcóthểchúngsẽnổiloạnvàquaylạikiểmsoátchú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.
Trongtươnglaigần,nhữngcôngviệchàngngàymangtínhchấtlặplại,dây
chuyềnsẽđượcthựchiệnbởimáymóc,chúngsẽdầnthaythếconngườicho
nhữngvịtríđólàmgiatăngtỷlệthấtnghiệp.
MộttrongsốnhữngtiếnbộmớinhấtcủaAItrongvàinămqualànhận
dạngkhuônmặtngười.Nhậndạngkhuônmặtngườilàmộtcôngnghệtrong
lĩnhvựcthịgiácmáyvàđượcứngdụngrộngrãitrongđờisốnghàngngày
củaconngườinhưcáchệthốnggiámsát,theodõivàbảovệ,quảnlývàora,
điềutratộiphạm,kiểmtrahànhkháchởsânbay,xácthựctruycậpvàohệ
thống,…Córấtnhiềuthuậttoánđãđượcnghiêncứunhằmmụcđíchcải
thiệnđộchínhxáccủahệthốngtrongquátrìnhnhậndạngkhuônmặtngười.
Trongđósửdụngphươngphápdeeplearninglàmộtphầntrongnhómcác
phươngpháphọcmáyvới1sốcáckiếntrúchọcnhưMạngnơronsâu(Neural
Networks),Mạngniềmtinsâu(DeepBeliefNetworks–DBN),Mạngnơron
tíchchập(ConvolutionalNeuralNetwork-CNNs),…Mỗihệthốngđềucó
ưuđiểmriêng.TuynhiênhạnchếcủacáchệthốngAIhiệntạivềnhậndạng
khuônmặtngườivẫncònnhưthiếudữliệuđặcthùvềvùngmiền,cụthểdữ
liệukhuônmặtChâuÁ,ngườiViệtNam,…
Dođó,tôiđãlựachọ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ằmxâydựnghệthống
AInhậndạngkhuônmặtvớisựtậptrungvàoviệchọccáckhuônmặtChâu
Á,cụthểlàngườiViệtNam,gópphầncảithiệnđộchínhxáccaocủahệ
thốngAInhậndạngkhuônmặtngườihiệnnay. 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ậndạngđốitượng. -
Xâydựngthànhcônghệthốngtrítuệnhântạonhậndạngkhuônmặt
trêncơsởđịnhhướnghọccácđặctrưngkhuônmặtcủangườiChâuÁ,cụthể làngườiViệtNam.
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ốngnhậndạngkhuônmặtngười. -
Nghiêncứuvềcáckỹthuậthọcsâuvàứngdụngtrongbàitoánnhận
dạngkhuônmặtngười.
Phạm vi nghiên cứu: -
Nghiêncứuvềxửlýảnh,trítuệnhântạo,cácmạngnhânchập. -
Ápdụngkỹthuậthọcsâutrongnhậndạngkhuônmặtngười. -
Xâydựngthửnghiệmhệthốngnhậndạng.
4. Phương ph_p nghiên cứu -
Phương pháp nghiên cứu lý thuyết:
Tìmhiểuvànghiêncứucáctàiliệuliênquanđếnđềtàitrongđóbaogồm 4
cácbàibáo,cáccôngtrìnhnghiêncứutrongvàngoàinước.Từđócóthể
phântíchcácưunhượcđiểmcủatừngcáchtiếpcận. -
Phương pháp nghiên cứu thực nghiệm:
Thiếtkếvàhuấnluyệnkiếntrúcmạngnơrontrêntậpdữliệuchuẩn;tổ
chứcđánhgiávàhiệuchỉnh,hoànthiệnkiếntrúcmạng,cácthamsốmạng,…
đểđạtkếtquảcaonhấtvềđộchínhxácvà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ếtkếkiếntrúcmạngnơronphụcvụhọccácđặctrưngkhuônmặt. -
Xâydựnghệthốngdemoquátrìnhnhậndạngkhuônmặttừvideovà 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ồm5chương:
Chương 1: Tổng quan về nhận dạng khuôn mặt người 5
GiớithiệutổngquanvềAI,bàitoánnhậndạngkhuônmặt,cácphương
phápvàcácứngdụngcủanhậndạngkhuônmặt.
Chương 2: Cơ sở lý thuyết
Trìnhbàycơsởlýthuyếtcủabàitoánnhậndạngkhuônmặt.Giớithiệu
tổngquanvềhệthốngnhậndạngkhuônmặt,tìnhhìnhnghiêncứutrongvà
ngoàinước.Nghiêncứu cáckỹthuậthọcsâu,cácmạngnhânchậpvàứng
dụngchobàitoánnhậndạngkhuônmặt,mộtsốhàmmụctiêu(lossfunction) 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ậpvàxâ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ìnhhuấnluyện,từđóđềxuấtcáccảitiếnchấtlượngmạng
đãhuấnluyện(pre-trainedmodel)chobộdữliệuhuấnluyệnngườiViệtđã thuthậpđược.
Chương 4: Kết quả thực nghiệm và hướng ph_t triển
Trìnhbàykếtquảthựcnghiệm,môitrườngcàiđặt,bộdữliệuhuấnluyện
ngườiViệtvàphươngphápđánhgiá,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ươnghướngnghiêncứutiếptheođểtiếptụccảithiệnchấtlượngnhậndạng củahệ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
Ngaytừkhiphátminhrachiếcmáytínhđiệntửđầutiên,khảnăngthực
hiệncáccôngviệckhácnhaucủaconngườiđãtănglêntheocấpsốnhân.Con
ngườiđãpháttriểnsứcmạnhcủacáchệthốngmáytínhvớicáclĩnhvựclàm
việcđadạng,tốcđộngàycàngtăngvàgiảmkíchthướctheothờigian.
MộtbộphậncủaKhoahọcmáytínhcótênlàTrítuệnhântạotheođuổi
việctạoracácmáytínhhoặcmáymócthôngminhnhưconngười.
Trítuệnhântạo(ArtificialIntelligence–AI)haytríthôngminhnhântạo
làsựmôphỏngcácquátrìnhhoạtđộngtrítuệcủaconngườibằngmáymóc,
đặcbiệtlàcáchệthốngmáytính.Cácquytrìnhnàybaogồmhọctập(thu
nhậnthôngtinvàquytắcsửdụngthôngtin),lýluận(sửdụngquytắcđểđạt
đượckếtluậngầnđúnghoặcxácđịnh)vàtựđiềuchỉnh.AIchiếmưuthế
trongcáclĩnhvựckhácnhaunhưxửlýngônngữtựnhiên,hệchuyêngia,
nhậndạnggiọngnóivàthịgiácmáy,…
Vậynhưthếnàolàtrítuệnhântạo?
TheochađẻcủaTrítuệnhântạo,JohnMcCarthy,trítuệnhântạolà
“Khoahọcvàkỹthuậtchếtạomáymócthôngminh,đặcbiệtlàcácchương
trìnhmáytínhthôngminh”.
Trongquátrìnhsửdụngvàkhaithácsứcmạnhcủacáchệthốngmáytính
conngườiđãtựđặtracâuhỏi:Làmthếnàođểchếtạoramộtchiếcmáytính
haymộtrobotcócáchsuynghĩ,tưduy,họchỏitươngtựnhưtrítuệcon
người?TừđósựpháttriểncủaAIbắtđầuvớimụcđíchtạoracáchệchuyên
giavàcácmáymóccótrítuệnhưconngười.
Trítuệnhântạomanglạirấtnhiềugiátrịchocuộcsốngcủaconngười.
tuynhiênbêncạnhđótiềmẩnnhiềunguycơ,rủiro.Khimàtrítuệnhântạo
pháttriểnđạttớimộtngưỡngnhấtđịnhthìđócũnglàthờiđiểmloàingườibị 7 diệtvong.
1.2. Bài to_n nhận dạng mặt người
Nhậndạngmặtngười(FaceRecognition)làmộthướngnghiêncứuthuộc
lĩnhvựcthịgiácmáy(ComputerVision)đãđượcpháttriểntừđầunhữngnăm
90củathếkỷtrước.Chotớinayđâyvẫnlàmộthướngnghiêncứunhậnđược
sựquantâmcủarấtnhiềunhàkhoahọcvàcácnhómnghiêncứuđếntừnhiều
lĩnhvựcnghiêncứukhácnhaunhưnhậndạngmẫu(PatternRecognition),học
máy(MachineLearning),thốngkê(Statistics),sinhtrắchọc(Biometrics).
Hệthốngnhậndạngkhuônmặtlàmộtcôngnghệcókhảnăngxácđịnhhoặc
xácminhmộtngườitừhìnhảnhkỹthuậtsốhoặcmộtkhunghìnhvideotrong
mộtvideo.Cáchệthốngnhậndạngkhuônmặtcónhiềucáchthứchoạtđộng,
nhưngnóichung,chúnghoạtđộngbằngcáchsosánhcácđặcđiểmkhuônmặt
đượcchọntừhìnhảnhđãchovớikhuônmặttrongcơsởdữliệu.Nócũngđược
môtảnhưmộtứngdụngdựatrêntrítuệnhântạovềsinhtrắchọccóthểnhận
dạngmộtngườiduynhấtbằngcáchphântíchcácmẫudựatrênkếtcấuvàhình
dạngkhuônmặtcủangườiđó.Hệthốngnhậndạngkhuônmặtcómộtsốlợithế
sovớicácphươngthứcsinhtrắchọckhácnhưcáchệthốngnhậndạngvântay
(FingerprintRecognition)vànhậndạngmốngmắt(IrisRecognition):
- Mộthệthốngnhậndạngkhuônmặtkhôngđòihỏiphảicósựtươngtác
trựctiếpgiữađốitượngđượcnhậndạngvàhệthống.
- Việcthunhậndữliệuchoquátrìnhnhậndạngmộtkhuônmặtdễthựchiện
hơnsovớithunhậncácđặcđiểmsinhtrắchọckhác(dấuvântay,mốngmắt).
- Dosựrađời,pháttriểnmạnhmẽcủacácmạngxãhộ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ệuvềkhuônmặtphổbiếnhơnsovớicácđặc 8 trưngkhác.
- Từkhuônmặtcủamộtngườichúngtacóthểkhaithácnhiềuthôngtin
liênquanđếnngườiđóchẳnghạnnhưgiớitính,màuda,sứckhỏe,độtuổi, cảmxú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ửlýảnh(Image
Processing),máyhọc(MachineLearning)vàtrítuệnhântạo(cụthểlàcác
mạnghọcsâu–DeepLearning).Thịgiácmáy(ComputerVision)làmộttrong
nhữnghướngnghiêncứutrọngtâmcủangànhKhoahọcmáytính,nhằmgiải
quyếtcácbàitoánnhậndạng,giúpmáytínhcókhảnăng“nhìn”vànhậndạng
đốitượngthôngquaảnhchụphayvideo.Đểcóthểphântíchvànhậndạng
đượcđốitượng,cácchươngtrìnhmáytínhphảitríchchọnmộttậpcácđặc
trưng(FeatureVector)haybộmôtả(Descriptors)vềđốitượngtrongảnh.Các
bộmôtảsauđóđượcđốisánh(Matching)vớimộtcơsởdữliệu(CSDL)chứa
cácbảnmẫuđểtìmkiếmđốitượnggầnnhất(còngọilàphânlớp).Hình1.1
minhhọakiếntrúcđiểnhìnhcủamộthệthốngthịgiácmáygồm4thànhphần
chính:dòtìmđiểmkhóa(KeypointDetection),môtảđiểmkhóa(Keypoint
Description),lậpchỉmụccácbộmôtả(DescriptorIndexing)vàcuốicùnglà
đốisánh(Matching).Trongđó,haithànhphần:môtảđiểmkhóavàlậpchỉ
mụcchiếmvaitròquyếtđịnhđếnsựthànhcôngcủamộthệthốngnhậndạng
thịgiácmáybởivìchúngảnhhưởngđếnđộchínhxácnhậndạngvàthờigian
xửlý(củaquátrìnhđốisánh).Vớiýnghĩaquantrọngnhưvậy,cácnghiêncứu
vềtríchchọnđặctrưngvàđốisánhmẫuluônchiếmmộtvaitròquantrọng
trongcáclĩnhvựcthịgiácmáy,xửlýảnhvànhậndạngmẫu. 9 CSDL Dòtìm Môtảđiểm Lậpchỉmục Dữliệuđã điểmkhóa khóa cácbộmôtả ảnh lậpchỉmục Đốisánh Ảnhđầuvào Cácứngdụng
LuồngxửlýOffline
Luồngxử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ệnnay,vớisựpháttriểnmạnhmẽcủacácnềntảngphầncứngvàsự
phổbiếncủacácmạngxãhội,việcchiasẻdữliệuđãđượcthựchiệndễdàng
hơnbaogiờhết.Kếtquảcủasựpháttriểnnàyđólàmộtlượngdữliệukhổng
lồ(ảnh,video,giọngnói,…)đượcchiasẻvàlưutrữtrêncáctrangmạngxã
hội(Facebook,GooglePlus,Twitter,…).Nhờcónguồndữliệukhổnglồ
này,cácthuậttoánmáyhọcvàcụthểlàtrítuệnhântạomạnghọcsâu(Deep
Learning)đãcónhiềutiếnbộvượtbậc,cóthểứngdụngđểgiảiquyếtnhiều
bàitoánkhóđãtồntạitừnhiềunămtrướcđây.Mộttrongnhữngthànhquả
củasựpháttriểnnàylàbàitoándòtìmvànhậndạngkhuônmặ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ườilàbàitoánđãđượcnghiêncứutừnhững
năm70.Tuynhiênviệcxâydựngmộthệthốngnhậndạngmặtngườihoàn
toàntựđộngvớikhảnăngnhậndạngchínhxáccaothựcsựlàmộttháchthức
đốivớicácnhómnghiêncứuvàcácnhàkhoahọc.Điềunàylàdocácyếutố
chủquanvàkháchquanlàmảnhhưởngtớiquátrìnhthunhậnảnhvàtạora
cácbứcảnhcósựkhácnhaurấtlớncủacùngmộtkhuônmặt.Cácyếutốchủ
yếuảnhhưởngtớiđộchínhxáccủamộthệthốngnhậndạngkhuônmặtcóthể kểđếnnhưsau:
- Về tư thế, góc chụp:ảnhchụpkhuônmặtcóthểbịthayđổirấtnhiều
dogócchụpgiữacameravàkhuônmặt.Vídụnhưchụpthẳng,chụpnghiêng
bêntrái450haynghiêngbênphải450,chụptừtrênxuống,chụptừdướilên, 10
…việcnhậndạngcácảnhcógócchụpthẳngcókếtquảtốthơnnhiềusovới
cácảnhđượcchụpởgócnghiênglớnhơn450.
- 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ưngnhưriamép,râu,mắt,nốtruồi,…cóthểxuấthiệnhoặckhông.Vấnđề
nàylàmchoquátrìnhnhậndạnggặpkhókhănhơnrấtnhiều.
- Sự biểu cảm của khuôn mặt:ởcáctrạngtháibiểucảmkhácnhaucủa
khuônmặt(cười,khóc,tứcgiận,…)cóthểlàmchocácbộphậntrênkhuôn
mặtbịbiếndạngvàdẫntớikếtquảnhậndạngsai.
- Sự che khuất: khuônmặtcóthểbịchekhuấtbởicácvậtchắntrước
mặthoặccácphụkiệntrênkhuônmặt(khẩutrang,kínhmắt)vàlàmchoquá
trìnhnhậndạngbị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ưởngrấtnhiềuđếnchấtlượngảnhkhuônmặt.Vídụ,mộtsự
thayđổinhỏtrongđiềukiệnánhsángluônđượcbiếtlàgâyratácđộnglớn
đếnkếtquảcủanó.Nếucườngđộchiếusángcóxuhướngthayđổithìngay
cảkhicùngmộtcánhânbịđượcchụpvớicùngmộtcảmxúcvàvớibiểucảm
vàtưthếkhuônmặtgầnnhưgiốnghệtnhau,kếtquảxuấthiệncóthểxuất hiệnkhákhácnhau.
1.2.3. Một số phương pháp nhận dạng mặt người
Hiệnnaycókhánhiềuphươngphápgiúpxácđịnhkhuônmặtngười.Dựa
vàotínhchấtcủacácphươngphápxácđịnhkhuônmặtngườicóthểchia
thành2hướngtiếpcậnchính:
- Hướng tiếp cận dựa trên thị gi_c m_y (khôngdùngcácmạngnơron
nhânchập)vớimôhìnhchuẩngồm:tríchchọncácđặctrưngkhuônmặt,phân
lớp(ápdụngcáckỹthuậtmáyhọc). 11
- Hướng tiếp cận dựa trên c_c mạng nơron nhân chập:quátrìnhtrích
chọncácđặctrưngkhuônmặtđượcthựchiệnbằngcácmạngCNNnhân
chập,theosaubởiquátrìnhphânlớpbằngcáckỹthuậtK-NNhoặcSVM.
1.2.3.1. Hướng tiếp cận dựa trên thị giác máy
Theohướngtiếpcậndựatrênthịgiácmáycóthểphânlàm2nhómchí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ộidungchínhcủahướngtiếpcậnnày
làxemmỗiảnhcókíchthướcRxClàmộtvectortrongkhônggianRxCchiều.
Tasẽxâydựngmộtkhônggianmớicóchiềunhỏhơnsaochokhibiểudiễn
trongkhônggianđócácđặcđiểmchínhcủamộtkhuônmặtkhôngbịmấtđi.
Trongkhônggianđó,cácảnhcủacùngmộtngườisẽđượctậptrunglạithành
mộtnhómgầnnhauvàcáchxacácnhómkhác.Mộtsốphươngphápthường
đượcsửdụngtronghướngtiếpcậnnà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đólàkhôngcầnphảiphântíchnhiềuvề
đặcđiểmkhuônmặt.Dođó,phươngpháptiếpcậnnàytươngđốidễcàiđặt
hơnvàcũngkháhiệuquảtrongviệcnhậndạng.
Nhượcđiểmcủaphươngpháptiếpcậnnày:tùytheophươngphápsửdụng 12
(PCA,LDA)đểđánhgiá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):
Đâylàphươngphápnhậndạngkhuônmặtdựatrênviệcxácđịnhcácđặc
trưnghìnhhọccủacácchitiếttrênmộtkhuônmặt(vịtrí,diệntích,hìnhdạng
củamắt,mũi,miệng,…)vàmốiquanhệgiữachúng(khoảngcáchcủahai
mắt,khoảngcáchcủahailôngmày,…).Mộtsốphươngphápđượcdùngcho loạinày:
Nhận dạng 2D:ElasticBunchGraph,ActiveAppearanceModel.
Nhận dạng 3D:3DMorphableModel.
Ưuđiểmcủaphươngphápnàylànógầnvớicáchmàconngườisửdụng
đểnhậnbiếtkhuônmặt.Hơnnữavớiviệcxácđịnhđặctínhvàcácmốiquan
hệ,phươngphápnàycóthểchokếtquảtốttrongcáctrườnghợpảnhcónhiều
nhiễunhưbịnghiêng,bịxoayhoặcánhsángthayđổi.
Nhượcđiểmcủaphươngphápnàylàcàiđặtthuậttoánphứctạpdoviệc
xácđịnhmốiquanhệgiữacácđặctínhđòihỏicácthuậttoánphứctạp.Mặt
khác,vớicácảnhkíchthướcbéthìcácđặctínhsẽkhóphânbiệtdođókhó
tínhtoánđượccácđặctrưngtrênkhuônmặ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
Theohướngtiếpcậndựatrêncácmạngnơronnhânchập(địnhhướngra
quyếtđịnh)cómộtsốhướngtiếpcậnnhưsau:
- SVM (Support Vector Machine) là phương pháp nhận dạng do 13
VladimirN.Vapnikđềxuấtnăm1995[26].SVMlàphươngphápnhậndạng
dựatrênlýthuyếthọcthốngkêngàycàngđượcsửdụngphổbiếntrongnhiều
lĩnhvực,đặcbiệtlàlĩnhvựcphânloạimẫuvànhậndạngmẫu.Đồngthờicó
nhiềutínhnăngưuviệtsovớicácphươngphápcổđiểnkhác:dễdàngxửlý,
xửlývớitínhổnđịnhcaotrêndữliệuphứctạp,cóthểcósốchiềulớnvà
quantrọnghơncảlàkhảnăngxửlýtổngquát.
- Mạng nơronđược sử dụng rộng rãi trong các hệ thống nhận dạng
khuônmặt.Kỹthuậtmạngnơronmôphỏnghoạtđộngcủacácnơrontrongbộ
nãongười.Mạngnơroncókhảnăngđiềuchỉnhcáctrọngsốdựatrêncácmẫu
họctrongquátrìnhhuấnluyện.Kếtquảlàmạngđạtđượchiệuquảcaotrong
việcphânloạicáclớp,dựatrêndữliệumẫukhảtáchtuyếntínhhoặcphi
tuyến.Chínhvìvậy,luậnvănlựachọngiảiphápsửdụngmạngnơronchoquá
trìnhnhậndạngvàphânloại.Nhượcđiểmcủaphươngphápnàylàcàiđặt
thuậttoánphứctạpdoviệcxácđịnhmốiquanhệgiữacácđặctínhđòihỏi
cácthuậttoánphứctạp.Mặtkhác,vớicácảnhkíchthướcbéthìcácđặctính
sẽkhóphânbiệt[1].
1.3. C_c ứng dụng của nhận dạng mặt người
Bàitoánnhậndạngkhuônmặtluônlàmộtbàitoánnhậnđượcsựquantâm
rấtlớntừcácnhómnghiêncứuvàcácnhàkhoahọcvìtínhphứctạpvàđòihỏi
khảnăngnhậndạngchínhxáccaocủahệthốngvàcũngbởivìnhữngứng
dụnghếtsứcthiếtthựccủanóđốivớiđờisốngconngườihiệnnay.Mộtsố
nhữngứngdụngthựctếcủahệthốngnhậndạngkhuônmặtcóthểkểđếnnhư: -
Hệthốnggiaotiếpthôngminhgiữangườivàmáy:conngườicóthểtạo
racáchệthốnggiaotiếpgiúpchonhữngngườibịkhuyếttậthaynhữngngười
dùngngônngữbằngtaycóthể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áthiệntộiphạmtạicáckhuvựccôngcộng. -
Cáchệthốngquansát,theodõivàbảovệconngười.Cáchệthống
camerasẽxácđịnhđốitượngvàtheodõingườiđóxemhọcóviphạmgì không,… -
Hệthốngđiềukhiển,ravàocáccơquanvănphòngkếthợpthêmvớihệ
thốngvântayvàmốngmắt:chophépnhânviênvàoracácnơiquantrọngmà
khôngcầnphảinhớtênđăngnhập,mậtkhẩuhaydùngthẻmàchỉcầnxác
thựcthôngquakhuônmặt. -
Hệthốngtìmkiếmconngườidựatrêncơsởdữliệucósẵn. -
Cáchệthốngphântíchcảmxúckhuônmặtconngười. -
Cáchệthốngkiểmtracácđặctrưngtrênkhuônmặtdựavàocácloại
thẻthôngminhtíchhợpsẵncácđặctrưngcủangườisửdụngtrênđó.Khibị
ngườikhácsửdụngđểtruycập,hệthốngsẽđượcyêucầukiểmtrathôngtin
củangườidùngvớithôngtintrênthẻđểbiếtđâycóphảilàchủthẻhay không. -
CáchệthốnglưutrữthẻATM. -
Hệthốnglưutrữhìnhảnhtrongđiệnthoạidiđộng:xácđịnhkhuônmặt
ngườivàdựavàocácđặctrưngcủatừngkhuônmặtđểsắpxếp,lưutrữgiúp
chongườidùngdễdàngtìmthấyhìnhảnhtrongquátrìnhsửdụng. -
Thẻcăncước,chứngminhnhândân(FaceIdentification). 15 -
Cáchệthốnganninhsânbay,xuấtnhậpcảnhdùngđểxácthựcngười
xuấtnhậpcảnhvàkiểmtraxemđócóphảilàtộiphạm,haynhânvậtkhủng bốkhông. -
Hệthốngkiểmtrangườiláixecósửdụngđồuốngcócồn,ngủgật
hoặcmấttậptrunghaykhôngvàhỗtrợthôngbáochongườiláikhigặpnguy hiểm. -
Cáchệthốngtronglĩnhvựctựđộnghóa,điềukhiểnrobot. - v/v…
1.4. Một số phần mềm thương mại liên quan
Mộtsốphầnmềmvớikhảnăngnhậndạngkhuônmặtnổibậtvàđộchính xáccaobaogồm: - digiKam
(KDE):https://kde.org/applications/graphics/digikam/ - iPhoto
(Apple):https://www.apple.com/macos/photos/ - OpenCV
(OpenSource):https://opencv.org/ - PhotoshopElements (AdobeSystems):
https://www.adobe.com/products/photoshop-elements.html - Picasa
(củaGoogle):https://picasa.google.com/
- PictureMotionBrowser (Sony):
https://www.sony.com/electronics/support/downloads/W0005134
hoặchttp://support.d-imaging.sony.co.jp/www/disoft/int/pmb/index2.html
- WindowsLivePhotoGallery
(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ểlà
khuônmặtcủangườiViệtNamnhằmcảithiệnđộchínhxáccaocủahệthống 16
nhậndạngkhuônmặtngườihiệnnay.
1.6. Kết luận chương 1
Trongchươngnày,cácvấnđềtổngquanvềAI,bàitoánnhậndạngkhuôn
mặt,mộtsốphươngpháp,cácứngdụngvànhữngkhókhăncủabàitoánnhậ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ãitrongvàngoàinước.
Cácđánhgiátổngquannhưtrênchothấylĩnhvựcbàitoánnàycórấtnhiều
ứngdụngtiềmnăngtrongthựctế.
Chươngtiếptheocủaluậnvănsẽtrìnhbàychitiếtvềcơsởlýthuyếtcủa
bàitoánnhậndạngkhuônmặt. 17 Chương 2: CƠ SỞ LÝ THUYẾT
2.1. Kiến trúc tổng qu_t hệ thống
Đểgiảiquyếtbàitoándòtìmkhuônmặtvànhậndạngkhuônmặt,chúng
tacầnápdụngcáccôngnghệtiêntiếnvềthịgiácmáy(ComputerVision),xử
lýảnh(ImageProcessing),máyhọc(MachineLearning)vàtrítuệnhântạo
(cụthểlàcácmạnghọcsâu–DeepLearning).
Trênhình2.1,cáckhunghìnhthunhậntừcamerasẽđượctruyềnvào
moduledòtìmkhuônmặtđểtríchxuấtcácvịtrítiềmnăngchứakhuônmặt.
Mỗikhuônmặtsauđóđượcxửlýđểchuẩnhóabằngcáchhiệuchỉnhđộ
nghiêng,thunhỏvềmộtkíchcỡ(thườnglà150x150).Cácảnhkhuônmặtsau
khichuẩnhóađượcchoquamoduletríchchọnđặctrưngnhằmtìmracácđiểm
đặctrưngnổibậtcủatừngkhuônmặt.Thôngthường,kếtquảcủabướcnàysẽ
choramộtvectorcácgiátrịsốmôtảcácđặctrưngmàhệthốngtríchchọn
được.Đểcóthểphânbiệthàngngànkhuônmặtkhácnhau,chúngtôiápdụng
mạnghọcsâu(DeepLearning)đểtríchchọncácđặctrưngnày.Cácvectorđặc
trưngđósẽđượchuấnluyệnbởimộtthuậttoánmáyhọc(MachineLearning)
đểphânlớpcáckhuônmặtvềcácđốitượngkhácnhau.Thuậttoánchúngtôi
chọnởđâylàmáyhỗtrợvector(SupportVectorMachine)vìcótốcđộxửlý
nhanh,cóthểhoạtđộngtốtngaycảkhitậpdữliệuhuấnluyệnnhỏ.Cácbước
môtảtrênđượcthựchiệnmộtlầnđểhuấnluyệncácthamsốcủahệthống.Khi
đưavàohoạtđộngtrongthựctế(Online),chúngtaápdụngquytrìnhtươngtự
chođếnbướctríchchọnđặctrưng.Sauđó,sẽthựchiệnquátrìnhđốisánhvà
phânlớpđểdựđoánnhãncủacáckhuônmặt.Cuốicùng,mộtbướcxácthựcsẽ
đượcthựchiệnđểđưaradanhsáchnhậndạngcuốicù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ệnnay,vớisựpháttriểnmạnhmẽcủacácnềntảngphầncứngvàsự
phổbiếncủacácmạngxãhội,việcchiasẻdữliệuđãđượcthựchiệndễdàng
hơnbaogiờhết.Kếtquảcủasựpháttriểnnàyđólàmộtlượngdữliệukhổng
lồ(ảnh,video,giọngnói,…)đượcchiasẻvàlưutrữtrêncáctrangmạngxã
hội(Facebook,GooglePlus,Twitter,…).Nhờcónguồndữliệukhổnglồ
này,cácthuậttoánmáyhọcvàcụthểlàtrítuệnhântạomạnghọcsâu(Deep
Learning)đãcónhiềutiếnbộvượtbậc,cóthểứngdụngđểgiảiquyếtnhiều
bàitoánkhóđãtồntạitừnhiềunămtrướcđây.Mộttrongnhữngthànhquả
củasựpháttriểnnàylàbàitoándòtìmkhuônmặtvànhậndạngkhuônmặt.
Tuynhiên,hạnchếcủakỹthuậtnàyđólàcầnmộtmáytínhcókhảnăngxửlý
cựcmạnh.Đâylàđiềuchưakhảthiđểtriểnkhaitrênphạmvịrộngtrongthực
tế.Hơnnữa,nhiềukhuônmặtxuấthiệntrongảnhvớiđộphângiảirấtthấp.
Chodùchúngtadòtìmđượccáckhuônmặtđó,việcnhậndạngđólàaisẽlà
rấtkhókhăn.Vìvậy,trongphạmvicủađềtàinày,chúngtôiđềxuấtmột 19
cáchtiếpcậnphùhợphơnvàkhaithá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ớisựpháttriểncủathịgiácmáytính(ComputerVision)đãcórấtnhiều
phươngphápnhậndạngkhuônmặtđượcnghiêncứuvàápdụng.Mụctiêu
chungcủacácphươngphápnàylàxâydựngmộtmôhìnhhệthốngnhậndạng
khuônmặtvớiđộchínhxáccao.Hiệnnaycórấtnhiềuphươngphápnghiên
cứunhằmnângcaohiệusuấtnhậndạngvàtốiưuhóahệthống.
Có2phươngphápnhậndạngkhuônmặtphổbiếnhiệnnaylànhậndạ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
WaveletvàmạngNeural,SVM(SupportVectorMachine),…vànhậndạng
dựatrênxéttổngthểtoànkhuônmặtnhưphươngphápPCA,LDA,LFA[3]
[2].Trongđó,PCAlàphươ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ùngPCAkếthợpvớimạngnơronlàphươngphápmanglạihiệuquảnhận
dạngcaobởinópháthuyđượcưuđiểmcủaPCAvàmạngnơron[4].Hệ
thốnghoạtđộngổnđịnhvàcótínhthíchnghicaokhidữliệuđầuvàothayđổi
nhiều.Bêncạnhđó,nhậndạngkhuônmặtdựatrêncácđặctrưngcủacác
phầntửtrênkhuônmặtcũngthuhútđượcnhiềunhàkhoahọcnghiêncứu.
Sang-KiKim,YounJungPark,Kar-AnnToh,SangyounLeeđã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ântánđượctínhbởikhoảngcáchmặtphẳngphâncách)
vàquytrìnhđiềutiết(regularizationprocess)đểgiảiquyếtnhữngvấnđềcủa
phươngphápLDA1truyềnthống.Trênhết,nhómtácgiảđãthiếtkếlạima
trậnđộphân tángiữa cáclớp (Between-ClassScatter matrix) dựatrênlề
(margin–khoảngcáchphântáchtừ1lớpđếnmặtphẳngphântách)của
phươngphápSVMđểphântáchcácđặctrưngmộtcáchhiệuquảvàđángtin
1LinearDiscriminantAnalysis(Phươngphápphântíchphântáchtuyếntính) 20
cậy.Sauđó,quátrìnhđiềutiếtsẽđượcápdụnglênmatrậnphântántrong
cùng1lớp(within-classscattermatrix).Cácthínghiệmmởrộngđượcdùng
đểsosánhphươngphápđềxuấtvớinhiềubiếnthểkháccủaphươngpháp
LDA,sửdụngbộdữliệucủaFERET,ARvàCMU-PIE.
ZhimingLiu,ChengjunLiuđãgiớithiệumộtphươngphápnhậndạng
khuônmặtmớisửdụngviệctrộnmàu(FusingColor)[6],thôngtinvềkhông
giancụcbộvàtầnsốtoàncục.Cụthểhơn,phươngphápđềxuấtsẽhòatrộn
cácđặctrưngtừkhônggianmàuhybrid,cácmẫunhịphâncụcbộ(LBP)và
biếnđổicô-sinrờirạc(DCT)củahìnhảnhđầuvào.
SHU Chan, DING Xiaoqing, FANG Chi sử dụng đặc trưng HOG
(HistogramofOrientedGradient)[7]choviệcnhậndạngkhuônmặt.
K.RubaSoundarvàK.Murugesanđãsửdụngkỹ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íchchọncácđặctrưngphânlớp,giảmkíchthước
ảnhđầuvàomanglạikếtquảhìnhảnhkhuônmặtđượccảithiện.
OmkarM.Parkh,AndreaVedaldivàAndrewZissermanđãdùngmạng
nơrontíchchập(ConvolutionalNeuralNetworks–CNNs)[9]đểnhậndạng
khuônmặt.Mụctiêucủaphươngpháplànhậndạngkhuônmặttừmộtbức
ảnhhoặctừmộttậpcáckhuônmặtđượctheodõitrongmộtvideo.Đầutiên,
họđưaramộttậpdữliệuquymôrấtlớn(2,6triệuhìnhảnhvớihơn2,6K
người).Tiếptheo,nhómtácgiảgiớithiệumộtmạngnơrontíchchậpvớimột
quytrìnhhuấnluyệntươngứngđểđạtđượcđộchínhxácnhậndạngkhuôn
mặttươngđươngcủakếtquảtrêncáctiêuchuẩnLabeledFacesintheWild
(LFW)vàYouTubeFacesDataset(YFD).
FlorianSchroff,DmitryKalenichenkovà James
Philbinđãtrìnhbàymột
hệthốngđượcgọilàFaceNet[17],hệthốngđósẽtrựctiếpánhxạtừhìnhảnh
khuônmặtđếnmộtkhônggianEuclide.
Trêncơsởnghiêncứuvềbàitoánnhậndạngkhuônmặtngười,luậnvăn
đãnghiêncứucáckỹthuậthọcsâu,cácmạngnhânchậpvàápdụngcáckỹ
thuậthọcsâutrongviệcxâydựnghệthốngtrítuệnhântạonhậndạngkhuôn 21
mặttrêncơsởđịnhhướnghọccácđặctrưngkhuônmặtcủangườiChâuÁ,cụ
thểlàngườiViệtNam.
2.3. Mạng nơron sinh học
Đốivớingànhsinhhọcnghiêncứuvềbộnãongườinơronlàmộtđơnvị
xửlýthôngtinnhỏnhất,bộnãoconngườicótrungbìnhkhoảng86tỉnơron
kếthợplàmviệcvớinhaumộtcáchsongsongvàphứctạp,giúpconngườicó
thểsuynghĩ,học,nói,...vàlàmnhữngcôngviệckhác.
Trongbộnãoconngườicókhoảng1011–1012tếbàothầnkinhđượcgọilà
cácnơronvàmỗinơroncóthểliênkếtvới104nơronkhácthôngquacáckhớp
nốithầnkinh(synapse).Cácnơroncócấutrúcvàchứcnăngtươngđốiđồng
nhất,ngoàirachúngcòncónhữngkhảnăngmàcáctếbàokháckhôngcó
được,đólàkhảnăngnhận,xửlývàtruyềncáctínhiệuđiệnhóatrêncácđường
nơron,cácconđườngnàytạonênhệthốnggiaotiếpcủabộnão.
Hình 2.2. Cấu trúc của một nơron sinh học điển hình2
Quanghiêncứucủacácnhàkhoahọccấutrúccủamộtnơronsinhhọc
điểnhìnhtrongbộnãoconngườiđượcchiathànhbaphầncơbản:
- Thân tế bào (cell body):tổnghợpcáctínhiệuđếnđểtạođầuvào.
2https://www.xenonstack.com/blog/artificial-neural-network-applications/ 22
- Các nhánh tín hiệu vào hình cây (dendrites):thunhậnthôngtintừcác
tếbàothầnkinhkhác.
- Sợi trục thần kinh ra (axon): đưatínhiệuravàtruyềntớicácnơron
khácthôngquacáckhớpkếtnối(synapse).
Nhưvậynơronsinhhọctrongnãobộconngườihoạtđộngnhư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ợpvàxửlý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ọilàsynapse.Hệthống
dâythầnkinhtiếpnhậntạothànhmộtmạnglướidàyđặcxungquanhthântế
bào(chiếmdiệntíchkhoảng0.25mm2).Chúnglàđầuvàođểđưacáctínhiệu
điệnđếnthântếbào.Thântếbàocónhânbêntrongsẽtổnghợpcáctínhiệu
vàovàlàmthayđổiđiệnthếcủabảnthânnó.Khiđiệnthếnàyvượtquámột
mứcngưỡngthìnhântếbàosẽkíchthíchđưamộtxungđiệnravàtínhiệu
truyềnxuốngsợitrụcđếncácnơronkhác.
Quaquátrìnhtìmhiểu,nghiêncứucấutrúcvàhoạtđộngcủabộnão
người,cácnhàkhoahọcđãvàđangxâydựngvàpháttriểncácmôhìnhxửlý
thôngtinmôphỏnghoạtđộngcủabộnãongười.Đóchínhlàmôhìnhmạng nơronnhântạo.
2.4. Mạng nơron nhân tạo
Máytínhrấtgiỏitrongviệcgiảicácbàitoánvàthuậttoán,nhưngthường
thìthếgiớikhôngthểdễdàngđượcđịnhnghĩabằngthuậttoántoánhọc.
Nhậndạngkhuônmặtvàxửlýngônngữlàmộtvàivídụvềcácvấnđềkhông
thểdễ dàngđịnh lượng thànhthuật toán,tuy nhiên nhữngnhiệm vụnày 23
khôngthựcsựquantrọngđốivớiconngười.Mạngnơronnhântạo(Artificial
NeuralNetworks–ANN)rađờixuấtpháttừýtưởngmôphỏnghoạtđộng
củabộnãoconngười.Chìakhóacủamạngnơronnhântạolàthiếtkếcủa
chúngchophépchúngxửlýthôngtintheocáchtươngtựnhưbộnãosinhhọc
củaconngười,bằngcáchlấycảmhứngtừcáchthứchoạtđộngcủahệthống
thầnkinhcủaconngười.Điềunàylàmchochúngtrởthànhcôngcụhữuích
đểgiảiquyếtcácvấnđềnhưnhậndạngkhuônmặt,điềumàbộnãosinhhọc
củaconngườicóthểlàmdễdàng.
Mạngnơronnhântạolàmộthệthốngđượcthiếtkếđểhoạtđộnggiống
nhưbộnãocủaconngười.Quátrìnhxửlýthôngtincủaconngườidiễnra
thôngquasựtươngtáccủahàngtỷtếbàothầnkinhđượckếtnốivớinhaugửi
tínhiệuđếncáctếbàothầnkinhkhác.Tươngtựnhưbộnãocủaconngười,
mạngnơronlàmộtmạnglướicáctếbàothầnkinhnhântạo,nhưđượctìm
thấytrongbộnãocủaconngười,đểgiảiquyếtcácvấnđềvềtrítuệnhântạo
nhưnhậndạnghìnhảnh.Chúngcóthểlàmộtthiếtbịvậtlýhoặccáccấutrúc
toánhọc.Nóicáchkhác,mạngnơronnhântạolàmộthệthốngtínhtoánsong
songbaogồmnhiềuthànhphầnxửlýđơngiảnđượckếtnốiđểthựchiệnmột nhiệmvụ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ánhcáctínhchấtcơbảncủanơronsinhhọc.Mỗinơronnhântạolàmột
đơnvịxửlíthôngtinlàmcơsởchohoạtđộngcủamộtmạngnơron.Nócó
chứcnăngnhậntínhiệuvào,tổnghợpvàxửlýcáctínhiệuvàođểtínhtín hiệura.
2.4.1. Mô hình toán học mạng nơron nhân tạo
Môhìnhtoánhọccủamạngnơronnhântạođượcđềxuấtbởinhàthần 24
kinhhọcWarrenMcCullochvànhàlogichọcWalterPittsvàonăm1943với
bàibáo“ALogicalCalculusofIdeasImmanentinNervousActivity”[27].
Nhómtácgiảđãmôtảcáchthứccácnơronhoạtđộngvàhọđãtiếnhànhxây
dựngmộtmạngnơronđơngiảnbằngcácmạchđiện.Cácnơronởđâyđược
xemnhưlàcácthiếtbịnhịphânvớingưỡngcốđịnh.Kếtquảcủacácmôhình
nàylàcáchàmlogicđơngiảnvídụnhư“aORb”hoặc“aANDb”.
MôhìnhtoánhọccủamạngnơronthườngđượcgọilànơronM-P,ngoài
ranó cònđược gọi làphần tửxử lý vàđược kýhiệu làPE (Processing Element).
Mộtmạngnơronnhântạogồmcócácthànhphầnnhưsau:trọngsố,hệsố
biasvàhàmkíchhoạt. Weights Inputs bj X1 W1j W2 X Transferfunction 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áctínhiệuđầuvào; -
Wij với i = 1,2, …, n:Cáctrọngsốtươngứngvớiđầuvào; -
θj:Ngưỡngkíchhoạtcủanơronj; -
f(.):Hàmkíchhoạt(hayhàmtruyền); -
Yj:Tínhiệuracủanơronj; 25 -
bj:Hệsốbias.
Giảithíchcácthànhphầntrên:
- Inputs (dữ liệu vào):Làcáctínhiệuvàocủanơron,cáctínhiệunày
thườngđượcđưavàodướidạngmộtvectormchiều.
- Output (kết quả):Làtínhiệuđầuracủamộtnơron,vớimỗinơronsẽ
cótốiđamộtđầura.
- Weights (Trọng số):Mỗi liên kết được thể hiện bởi một trọng số
(thườngđượcgọilàtrọngsốliênkết–Synaptic Weights).Trọngsốliênkết
giữatínhiệuvàothứjvớinơronithườngđượckýhiệulàWij.Thôngthường,
cáctrọngsốnàyđượckhởitạomộtcáchngẫunhiênởthờiđiểmkhởitạo
mạngvàđượccậpnhậtliêntụctrongquátrìnhhọcmạng.
- Threshold (Ngưỡng): Ngưỡng này thường được đưa vào như một
thànhphầncủahàmtruyền.
- Summation Function (Hàm tổng):dùngđểtínhtổngtrọngsốcủatất
cảcácinputđượcđưavàomỗinơronvớitrọngsốliênkết.Hàmtổngcủamột
nơronđốivớininputđượctínhtheocôngthứcsau: -
Transfer Function (Hàm truyền):Hàmnàydùngđểgiớihạnphạm
viđầuracủamỗinơron.Nónhậnđầuvàolàkếtquảcủahàmtổngvà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àmtruyềnrấtđadạng,cóthểlàcáchàmtuyến
tínhhoặcphituyến.Việclựachọnhàmtruyềntùythuộcvàotừngbàitoánvà
kinhnghiệmcủangườithiếtkếmạng,cótácđộnglớnđếnkếtquảcủaANN.
2.4.2. Kiến trúc mạng nơron nhân tạo
Kiếntrúcchungcủamộtmạngnơronnhântạo(ArtificialNeuralNetwork
– ANN) gồm 3 thành phần đó là:Input Layer,Hidden Layer vàOutput 26
Layer(Hình2.4).Cácnơrontrongmộtlớpnốivớicácnơronlớptiếptheo,
khôngchophépcócácliênkếtgiữacácnơrontrongcùngmộtlớp. Trongđó:
- Lớp đầu vào (Input Layer):thựchiệntiếpnhậncácdữliệuvào.
- Lớp ẩn (Hidden Layer):gồmcácnơronnhậndữliệuvàotừcácnơron
ởlớptrướcđóvàchuyểnđổicácdữliệuvàonàychocáclớpxửlýtiếptheo.
Trongmộtmạngnơroncóthểcónhiềulớpẩn.
- Lớp ra (Output Layer):thựchiệnđưadữliệura. 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ênkếtcácđầuvàovàracủanhiềunơronvớinhautađượcmộtmạng
nơron.Nguyênlýcấutạocủamộtmạngnơronbaogồmmộthoặcnhiềulớp.
Mỗilớpbaogồmnhiềunơroncócùngmộtchứcnăngtrongmạng.Dựavào
sốlớphaysựliênkếtgiữacáclớptrongmạngmàngườitaphânmạngnơron
nhântạothànhcácnhómkhácnhau.
Dựatheosốlớpthìmạngnơrongồmhailoại:mạngmộtlớpvàmạng nhiềulớp. -
Mạng một lớp:Mạngmộtlớpcấuthànhtừmộtlớpmạng,nóvừalà
lớpvàovừalàlớpra. 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:đượccấuthànhtừnhiềulớpliênkếtvớinhau,bao
gồmmộtlớpvào,lớpẩnvàmộtlớpra.Trongđó,lớpnhậntínhiệuđầuvào
đượcgọilàlớpvào.Cáctínhiệuđầuracủamạngđượcsảnsinhbởilớpra
củamạng.Cáclớpnằmgiữalớpvàovàlớprađượcgọilàlớpẩn(Hidden
layers).Lớpẩnlàthànhphầnnộitạicủamạng,nókhôngcóbấtkỳtiếpxúc
nàovớimôitrườngbênngoài.Sốlượnglớpẩncóthểdaođộngtừ0đếnmột
vàilớp.Tuynhiênthựctếchothấychỉcầnmộtlớpẩnlàmạngđãđủđểgiải
quyếtcácbàitoánphứctạ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àira,sựliênkếttrongmạngnơrontuỳthuộcvàonguyênlýtươngtác
giữađầuracủatừngnơronriêngbiệtvớinơronkhácvàtạoracấutrúcmạng
nơron.Vềnguyêntắcsẽcórấtnhiềukiểuliênkếtgiữacácnơron,nhưngchỉ
cómộtsốcấutrúcmạngthườnggặpsau: 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đầuvàođếncácnơronđầurachỉđượctruyềnthẳng.Việcxửlýdữliệu
cóthểmởrộngranhiềulớp,nhưngkhôngcócácliênkếtngược.Tứclà,
khôngcócácliênkếttừcácđơnvịđầuratớicácđơnvịđầuvàotrongcùng
mộtlớphaycáclớptrướcđó.Mạngtruyềnthẳngđượcsửdụngrộngrãitrong
lĩnhvựcnhậndạngmẫ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ạngcó
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đóvàtrạngtháitiếptheokhôngchỉphụ
thuộcvàocáctínhiệuđầuvàomàcònphụthuộcvàocáctrạngtháitrướcđó
củamạng.Mạngphảnhồithườngcónhiềukhảnănghơnmạngtruyềnthẳ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ạngnơronnhântạođãđượcứngdụngtrongnhiềulĩnhvựckhácnhau
nhưsosánhvàphânloạimẫu,dựbáovàđiềukhiển,…Mộtsốứngdụngcụ
thểcủamạngnơron[11]:
- Không gian vũ trụ:điềukhiểnmáybaykhôngngườilái,chếđộtựbay
nângcao;môphỏngcácđườngbayvàcácbộphậncủamáybay;hệthống
điềukhiểncủamáybayvàhệthốngpháthiệnsaihỏng.
- Dự đo_n tài chính kinh tế:Dựđoángiácảbiếnđộngcổphiếu.Dự
đoáncấpsốthờigiantrongthịtrườngtàichính.Cácứngdụngvềđiềuhành
vốn.Dựđoánthịtrườngngoạihối.Đánhgiádựđoánrủiro.Dựđoántình
hìnhkinhtế.Đánhgiáhiệusuấtvốnvayvàvốnđầutư.
- Hoạt động ngân hàng:Dựđoánkhảnăngphásản.Hệthốngthẻđọc
ngânhàng,thẻtíndụng.
- Hệ thống phòng thủ: Hệthốngđiềukhiểnvũkhídòtìmmụctiêu,
nhậndạngmụctiêu.Điềukhiểnđườngđạn.Xửlývànhậndạngtínhiệuảnh, radar,siêuâm.
- Điện tử viễn thông:Dựđoánchuỗimã.Bốtrímạchtíchhợptrênchip.
Phântíchlỗimạchtíchhợp.Nhìnbằngmáy.Nhậndạngvàtổnghợptiếng
nói.Nhậndạngchữviếttayvàchữký.Xửlýảnh,nénảnhvànénsốliệu.Các
dịchvụthôngtintựđộng.Dịchngônngữnóithờigianthực.Hệthốngxửlý
thanhtoáncủakháchhàng.ĐịnhtuyếnvàchuyểnmạchchomạngATM.
- Qu_ trình sản xuất và người m_y: Điềukhiểnquátrìnhsảnxuất.
Thiếtkếvàphântíchsảnphẩm.Chuẩnđoánvàgiámsátquátrìnhmáymóc.
Hệthốngkiểmđịnh34chấtlượng.Hệthốnglậpkếhoạchvàđiềuhành.Điều
khiểnvậnđộngvàhệthốngnhìncủarobot.
- 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.Dòtìmvàđánhgiácáchiện tượngyhọc.
- Vận tải: Hệthốngchuẩnđoánphanhxetải.Hệthốngđịnhtuyếnvà
lịchtrìnhchocácphươngtiệngiaothông.
- Giải trí:Cáchiệuứngchuyểnđộng,cáctròchơi,…
2.4.5. Huấn luyện mạng nơron
Mạngnơronnhântạophỏngtheoviệcxửlýthôngtincủabộnãongười,do
vậyđặctrưngcơbảncủamạnglàcókhảnănghọc,khảnăngtáitạocáchình
ảnhvàdữliệukhiđãhọc.Trongtrạngtháihọcthôngtinđượclantruyềntheo
haichiềunhiềulầnđểhọccáctrọngsố.Có3phươngpháphọcphổbiến,mỗi
phươngpháphọctươngứngvớimộtnhiệmvụhọctrừutượng.Đólàhọccó
giámsát(SupervisedLearning),họckhônggiámsát(UnsupervisedLearning)
vàhọctăng cường(ReinforcementLearning).Thôngthườngloạikiếntrúc
mạngnàocũngcóthểdùngđượcchocácnhiệmvụ. 2.4.5.1. Học có giám sát
Làquátrìnhhọcđượcthựchiệndướisựthamgiagiámsátcủamộtngười
thầy(ởbênngoàihệthống).Ngườithầynàycókiếnthứcvềmôitrườngthể
hiệnquamộttậphợpcáccặpđầuvào-đầurađãđượcbiếttrước.Hệthống
học(ởđâylàmạngnơron)sẽphảitìmcáchthayđổicácthamsốbêntrong
củamình(cáctrọngsốvàcácngưỡng)đểtạonênmộtánhxạcókhảnăngánh
xạcácđầuvàothànhcácđầuramongmuốn.Sựthayđổinàyđượctiếnhành
nhờviệcsosánhgiữađầurathựcsựvàđầuramongmuốn.Điểnhìnhcho
phươngphápnàylàmạngnơronlantruyềnngược.
Ví dụ:tronglĩnhvựcnhậndạngmẫu,mộtgiáoviênhoặchuấnluyệnviên
sẽđưaracâutrảlờichomạngnơronvàmạngnơronđưaradựđoántrongkhi
nhậndạng.Sauđó,mạngsosánhdựđoáncủamìnhvớicâutrảlờiđúngcủa 31
giáoviênvàđiềuchỉnhchophùhợpđểcóđượcđầuramongmuốnbằngcách loạibỏlỗi. Mạng Đầurathựctế nơron
Hiệuchỉnhtrọngsố Đầuramongmuốn Sosá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ìnhhọckhôngcầncóngườigiámsáthaychuyêngianào.
Tronghọckhôngcógiámsát,tađượcchotrướcmộtsốdữliệuxvàhàm
chiphícầnđượccựctiểuhóacóthểlàmộthàmbấtkỳcủadữliệuxvàđầura
củamạng,f–hàmchiphíđượcquyếtđịnhbởiphátbiểucủabàitoán.Phần
lớncácứngdụngnằmtrongvùngcủacácbàitoánướclượngnhưmôhình
hóathốngkê,nén,lọc,phâncụm. Đầuvào Đầurathựctế Mạng nơron
Hiệuchỉnhtrọngsố
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
Trongkỹthuậthọccógiámsát,cácgiátrịđầurađượcbiếtchínhxácđối
vớimỗiđầuvào.Tuynhiên,trongthựctếcómộtsốtrườnghợpchỉbiếtít
thôngtinchitiết,chẳnghạnmạngchỉbiếtrằnggiátrịđầurathựcsựquácao
haycóthểmạngchỉcóđượcthôngtinphảnhồibáorằngđầurađúnghaysai.
Kỹthuậthọcdựatrênthôngtinđánhgiánàyđượcgọilàkỹthuậthọccủng 32
cố,thôngtinphảnhồiđượcgọilàtínhiệutăngcường.
Trongkỹthuậthọcnày,cácgiátrịđầurakhôngđượcbiếtchínhxác.Quá
trìnhhọcđượcxâydựngdựatrêncácquansát,mạngđưaraquyếtđịnhbằng
cáchquansátmôitrườngtừbênngoài. Đầuvào Đầurathựctế Mạng nơron
Hiệuchỉnhtrọngsố
Tínhiệutăngcường Tínhiệu hồitiế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ạngtruyềnthẳngcónhiềulớp(MLP-MultiLayerPerceptron)làmột
trongnhữngmạngtruyềnthẳngđiểnhình,thườngđượcsửdụngtrongcáchệ thốngnhậndạng.
2.4.6.1. Kiến trúc mạng MLP
Cuốithậpniên1950,FrankRosenblattđãpháttriểnmộtmạngnơroncó
tênlàmạngPerceptron,lấycảmhứngtừnhữngýtưởngtrướcđócủa2cộng
sựlàWarrenMcCullochvàWalterPitts.Tronghọcmáy,Perceptronlàmột
thuậttoánhọccógiámsát(SupervisedLearning)giúpgiảiquyếtcácbàitoán
phânlớpnhịphân.ThuậttoánPerceptronđượcphátminhvàonăm1957tại
phòngthínghiệmCornellAeronauticalbởiFrankRosenblatt,đượctàitrợbởi
VănphòngnghiêncứuhảiquânHoaKỳ(U.SOfficeofNavalResearch–từ
một cơ quan liên quan đến quân sự)3.
Mộtmạngnơrontruyềnthẳngnhiềulớpbaogồmmộtlớpvào,mộtlớpra
vàmộthoặcnhiềulớpẩn.Môhìnhmạngnơronđượcsửdụngrộngrãinhấtlà
môhìnhmạngnhiềutầngtruyềnthẳng.KiếntrúctổngquátcủamạngMLP 3Theowiki 33 chobởihình2.12. HiddenLayer InputLayer OutputLayer x1 Input1 Output1 x2 Input2 Outputn xp Inputn
Hình 2.12. Kiến trúc mạng MLP 4 Trongđó:
Đầuvàolàcácvector(x1,x2,…,xp)
Mỗinơrontầngsauliênkếtvớitấtcảcácnơronthuộctầngtrướcđó.
Đầuracủanơrontầngtrướclànơronđầuvàocủatầngliềnsaunó.
HoạtđộngcủamạngMLPđượcmôtảnhưsau:
Tạitầngđầuvàocácnơronnhậntínhiệuvàoxửlý,tínhtổngtrọngsố,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 34
thuộctầngẩnthứnhất;cácnơrontạiđâytiếpnhậnnhưlàtínhiệuđầuvào,xử
lývàgửikếtquảđếntầngẩnthứ2,…quátrìnhtiếptụcchođếnkhicác
nơronthuộctầngrachokếtquả.
2.4.6.2. Mạng lan truyền ngược (Back-Propagation Network)
Trongphầnnàychúngtôitrìnhbàyvềmạnglantruyềnngượcvàcáccông
dụngcủanótrongmạnghọcsâu.Hình2.13minhhọamộtkiếntrúctổngquát
củamạnglantruyềnngược. Input(s) Output(s) InputLayer HiddenLayer(s) OutputLayer
Hình 2.13. Mạng nơron lan truyền ngược
Mạnglantruyềnngượcgồmcó3lớp.Trongđó:
- Lớp vào (Input Layer):sốnodevàolàthuộctínhcủađốitượngcần phânlớp.
- Lớp ra (Output Layer):Sốnoderalàsốđặcđiểmcầnhướngtớicủa
đốitượng(giátrịracầnhướngđến–họccógiámsát).
- Lớp ẩn (Hidden Layer):Sốnodeẩnthườnglàkhôngxácđịnhtrước,
nóthườnglàdokinhnghiệmcủangườithiếtkếmạng,nếusốnodeẩn
quánhiềumạngsẽcồngkềnh,quátrìnhhọcsẽchậm,cònnếusốnode 35
ẩnquáítlàmmạnghọckhôngchínhxác.
Thuậttoánlantruyềnngượclàthuậttoánthườnggặptrongcácmôhình
mạnghọcsâu(DeepLearning),thuậttoánnàytínhtoánđạohàmthànhphần
phầntrêncácnútcủamôhình(Ví dụ: Convnet,NeuralNetwork).Cácđạo
hàmthànhphầnnàyđượcsửdụngtrongsuốtquátrìnhhuấnluyệnmạng.
Mụctiêucủathuậttoánbackpropagationlàcungcấpcơchếtínhtoáncác
vectorđạohàmriêngphầngradientcủahàmmụctiêuđốivớicácthamsố
trongmạngnơron.Việcphátminhramạnglantruyềnngượclàmộtkếtquả
quantrọngcủalĩnhvựchọcmáybởitrướcđâyquátrìnhtínhtoánđạohàm
ngượclàmộtvấnđếkháphứctạpvà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ụngcủalĩnhvựcthịgiácmáy,xửlýảnhvànhậndạng.Nhưtêngọicủanó,
cácmạngCNNsửdụngcácmặtnạnhânchập(ConvolutionalMasks)cókích
thướcnhỏhơnnhiềukíchthướcảnhđầuvàolàmthànhtốchínhcủamạng
nhằmkhaitháchiệuquảtínhphânbốthôngtincụcbộtrêncácvùngảnhvà
tínhtươngquancaocủacácđiểmảnhlâncậnnhau.MạngnhânchậpCNN
đầutiênđượcđềxuấtbởiLecuncótêngọilàLeNet5[12]chomụcđíchnhận
dạngcáckýtựsốviếttayvàđãtạoramộthiệunăngvượttrộisovớicáccách
tiếpcậnkháclúcbấygiờ.MộtmạngCNNcũngcócấutạogồmmộttầngđầu
vào,cáctầngẩnvàmộttầngđầura.Trongđó,mỗitầngẩncủamạngCNN
thườngđượcxếpchồngluânphiênbởicáclớpnhưsau(Hình2.14):
- Lớpnhânchập(Convolution):gồmnhiềumặtnạnhânchậpcókích
thướcnhỏhơnnhiềusovớikíchthướcảnhđầuvào.Mỗimặtnạnhânchậpsẽ
đượcquéttrêntoànảnhđầuvào(từtrênxuốngdưới,tráisangphải)nhưngcó 36
thểvớimộtbướcnhảy(stride)nàođó(vídụ,
).Cácmặtnạnhân
chậpsẽđóngvaitròlàcácbộtríchchọnđặctrưngvàdovậykếtquảcủaviệc
nhânchập mộtmặt nạ vớiảnh đầu vàosẽcho ra mộtbản đồđặc trưng
(FeatureMap)tươngứng.
- Lớpkíchhoạt(Activation):ngaysaulớpnhânchập,chúngtacóthể
thiếtkếmộtlớpkíchhoạtđểchuẩnhóagiátrịcủacácbảnđồđặctrưng.Tuy
nhiên,kỹthuậtnàylàtùychọn.
- Lớplấymẫu(Pooling/Subsampling):đểxâydựngkhảnănghọcphân
cấpcácđặctrưngcủađốitượng,cácmạngCNNthườngsửdụngkỹthuậtlấy
mẫu(PoolinghaySubsampling)đểgiảmkíchthướccủacácbảnđồđặctrưng.
Thôngthường,lớplấymẫusẽthựchiệnchọnmộtgiátrịtừmỗivùngcókích thước
trongbảnđồđặctrưng.Dođó,kíchthướccủaảnhsaukhilấy
mẫusẽgiảmđimộtnử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ỗinơrontrêntầngẩnthườngđượcthiếtkếđểlàmviệctrênmộtvùng
ảnhnhỏ(vídụcácvùngcókíchthước
)củaảnhđầuvàonhưngsẽquét
từtrênxuốngdướiđểlàmviệcvớitoànbộcácvùngtrênảnhđầuvào.Kỹ
thuậtnàycònđượcbiếtđếnvớitêngọilàchiasẻtrọngsố(WeightSharings)
giúpgiảmthiểuđángkểsốlượngcácthamsốdùngtrongmạng.Cáctầ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àdovậymỗinơrontrêntầngnàysẽkếtnốivớitoànbộcác 37
nơroncủaảnhđầurathuộctầngliềntrước.Sốlượngcácnơronđầuracủa
tầngcuốicùngsẽđúngbằngsốlượngcáclớpđốitượngcầnnhậndạngcủa
bàitoán.Ngoàira,mộthàmkíchhoạt(thườnglàSoftmax)sẽđượcápdụng
đểchuẩnhóacácgiátrịđầuracủatầngnày.
Mộtcáchtổngquát,kiếntrúcmộtmạngCNNthườngđượcmôtảdưới dạngsau: Trongđó: -
:tầngđầuvào,thườnglàảnhđầuvàocókíchthướccốđịnh
(cóthểlàảnhnhịphân,ảnhđacấpxámhoặcảnhmàu). - :lớpnhânchập. -
:hàmkíchhoạt,cóthểlàhàm:tanh,ReLUhoặcsigmoid. -
:lớplấymẫu(Pooling/Subsampling) -
:tầngkếtnốiđầyđủ,mỗinơroncủatầngnàysẽkếtnốiđếnmọi
nơroncủaảnhđầuracủatầngliềntrước. -
và làsốlầnlặplạicáctầngtươngứng.Thôngthường,một
mạngDCNN(DeepCNN)thườngcó và .
Ngoàira,cácmạngCNNcũngrấtthườngđượcmôtảmộtcáchtrựcquan
bằngcáchsửdụngcáckhốihộpnhưsau(Hình2.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ềucao)và (depth-chiềusâu).Ýnghĩacủabathamsố
đóđượcdiễngiảinhưsau: -
và :môtảkíchthướckhônggiancủaảnh(spatialplaneimage)hay
cácbảnđồđặctrưng(featuremaps). -
:thamsốchiềusâu,tuỳtừngtrườnghợpmàcóýnghĩakhácnhau.
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ảnhmàuthì
,ảnhđacấpxámthì .
Từkhốihộpthứhaitrởđithì mangýnghĩalàsốlượngcácmặtnạlọc
(filters)đượcsửdụngtronglớpnhânchập.Chúýrằngbảnthânmỗibộlọc
(filter)cũnglạilàmộtkhốihộpcókíchthước3chiều: trongđó và
làkíchthướckhônggianbộlọc(spatialplane),thườngđượcchọnbằng nhau (ví dụ hoặc
) và còn được gọi là trường tiếp nhận
(receptivefield);còn làthamsốchiềusâucủabộlọccógiátrịđúngbằng
thamsố củakhốihộpliềntrước.
Ví dụ:Giảsửảnhđầuvàocókíchthước
(ảnhmàucó3thành
phầnRGB)vàgiảsửtầngnhânchậpthứnhấtsửdụng mặtnạvới bướcnhảy thì:
- Nếukíchthướckhônggiancủamỗimặtnạ:
thìmỗibộlọcsẽcókíchthướctổngthể3chiềulà:
bởivìkhốihộp
trướcđó(ảnhđầuvào)cóchiềusâu .
- Cácthamsốcủamỗibộlọcgồm trọngsố( )vàmộttham 39
sốđộlệch(BiasParameter).
- Khốihợpmớitạorasẽcókíchthướclà: trongđó và
đượctínhdựavàothamsố nhưsau:
Trongđó: và làkíchthướckhônggiancủakhốihộptrướcđó.
Nhưvậy,khithiếtkếcáctầngnhânchập,chúngtaphảichọnkíchthước
củacácbộlọcvàchiềudàibướcnhảysaochokíchthướccủakhốihộpcủa
tầngtiếptheosẽlàcácsốnguyên.QuátrìnhhuấnluyệnmạngCNNvề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đạohàmriêngphần.Ngoàira,cómộtvấnđềhếtsứcquantrọngkhihuấn
luyệncácmạngCNNđólàvấnđềhọcnhớquá(Overfitting).Đểgiảmảnh
hưởngcủavấnđềnày,ngườitathườngápdụngkỹthuậtcótênlàdrop-out
[23].Ýtưởngcơbảncủakỹthuậtnàyđólàthayvìhuấnluyệntoànbộmạng
CNNthìchỉhuấnluyệnmộtphầncủamạngtạimỗibướclặpcủaquátrình
huấnluyện.Dovậy,cácphầnkhácnhaucủamạngsẽđượchuấnluyệnđểhọc
mộtkhíacạnhkhácnhaucủadữliệu.Cụthể,tạimỗibướclặpcủaquátrình
huấnluyện,chúngtasẽchọnngẫunhiên ( )sốlượngcác
nơronởmỗitầngvàloạibỏ(drop-out)chúngkhỏiquátrìnhhuấnluyện.Khi
đãkếtthúcquátrìnhhuấnluyện,trongquátrìnhkiểmthử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ócá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 nhaucủamạng. 40
2.6. Một số hàm mục tiêu (loss) phổ biến
KiếntrúcmạngDNNnàysẽchođầuracủamạnggồ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ềutậpdữliệukhácnhau,kếtquả128chođộchínhxácđủtốtmặcdùsố
lớpđốitượngcóthểlênđếnhàngnghìnlớp.Hơnnữa,đểkhaitháckhảnăng
tínhtoánsongsongcủacácbộvixửlý,giátrị128thườngđượcchọnvìnó
chínhbằng27vàdovậycóthểthựchiệntrêncáccâulệnhlàbộsốcủa8(bít).
Trongcácphầntiếptheo,chúngtôitrìnhbàymộtsốhàmmụctiêu(loss) phổbiến. 2.6.1. Hàm Triplet Loss
Giảsửchúngtacómộtcơsởdữliệu(CSDL)gồmNkhuônmặtkhác
nhau,chúngtasẽhuấnluyệnmạngDNNđểhọccácđặctrưngkhuônmặt
bằngcáchđiềuchỉnhcáctrọngsốcủamạngDNNtheoquyluậtnhưsau: -
Chọn3ảnhkhuônmặtbấtkỳtừCSDLtrongđóđảmbảocóhaiảnh
(đánhsố#1và#2)chứacùngmộtngườivàmộtảnh(đánhsố#3)chứangười
kháchaiảnhcònlại. -
ĐiềuchỉnhcáctrọngsốcủamạngDNNsaochođầuracủamạngsẽ
chohaivector128chiềukhágầnnhauđốivớihaiảnhđánhsố#1và#2,
nhưngsẽchoramộtvector128chiềurấtkhácđốivớiảnhđánhsố#3. -
Lặplạicácbướctrênchođếnkhitấtcảcáccặp3ảnhđãđượcduyệt
hoặcđếnkhiđộchínhxácđãđặtmứcmongmuố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ácnhau,mạngnơronhọcsẽsinhra128sốđochomỗingười.Bấtkỳnhiều
ảnhkhácnhaucủacùngmộtngườisẽcócùngvectorcó128sốđotươngtự
nhau.Trongkỹthuậthọcmáy,chuỗisố128phầntửtrênmôtảcácthôngtin
củamỗikhuônmặtđượcgọilàbộmôtảhayvectorđặctrưng.
QuátrìnhhuấnluyệnchomạngDNNthựchiệnnhiệmvụnhưtrênsẽcần
tậpdữliệuhuấnluyệnlớnvàchạytrênnhữngmáycócấuhìnhmạnhmẽ,hỗ
trợkhảnăngxửlýđồhọacaocấp,vàthậmchícũngsẽcầnhàngtuầnmớikết
thúcquátrìnhhọc.Tuynhiên,khiđãhuấnluyệnxongmạngDNN,chúngta
cóthểsửdụngnóđểsinhracácvectorđặctrưngchomộtkhuônmặtbấtkỳ
trongthờigiancựckỳnhanh(khoảngvàichụcmiligiâytùythuộcvàocấu
hìnhmáytính).ĐâychínhlàmộtưuđiểmtuyệtvờicủacácmạngDNN.Hình
2.17minhhọacácgiátrịcủavectorđặctrưngtríchchọnđượcchomộtkhuôn mặtđầuvà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ậychínhxácnhữngphầnnàocủakhuônmặtđượcthểhiệntrong128số
đonày?Đólàđiềukhôngthểphiêndịchđượcđốivớiconngười.Tuynhiên,
điềunàykhôngquantrọng.Quantrọnglàtấtcảnhữnggìchúngtaquantâmlà
mạngDNNsinhranhữngconsốgiốngnhaukhinhìnvào2bứcảnhkhácnhau
củacùngmộtngườivàcácconsốkhácnhauđốivớibứcảnhcủangườikhác. 2.6.2. Hàm Cross-Entropy Loss
Hàmmụctiêucross-entroyloss(cònđượcgọivớitênkháclàsoftmaxloss)
đượcgiớithiệutrong[24]vàđặcbiệthiệuquảtrongviệctựhọccácđặctrưng
tốtcủakhuônmặt,cókhảnăngloạibỏcácthôngtinnhiễutrênảnhkhuônmặt.
Đâylàhàmlossđượcsửdụngkháphổbiếntrongbàitoánnhậndạngkhuôn
mặt.Vềmặttoánhọc,hàmcross-entropylossđượcđịnhnghĩanhưsau:
Trongđó,Nlàsốđiểmdữliệuhuấnluyện,Wlàmatrậntrọngsốcủa
mạng,blàhệsốbias,xilàđiểmdữliệuhuấnluyệnthứi, và làcáccột
thứjvày icủamatrậnW.
Tronghàm cross-entroyloss,độđobiênEuclidean (Euclideanmargin) 43
đượcsửdụngđểhọccácđặctrưngkhuônmặt.Tuynhiên,nhưđãchỉrabởi
[25],cácđặctrưngkhuônmặtcóxuhướnghìnhthànhphânbốbiêntheo
hướng(angularmargin).Dovậy,độđobiênEuclideancóthểkhônghiệuquả
trongnhữngtrườnghợpnhưvậy.Hình2.18minhhọacáctìnhhuốngnà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àmmụctiêuAngular-SoftmaxLoss[25]cảitiếnhàmcross-entropyloss
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ăngnàyrấthữuích,đặcbiệtvớicácdữliệukhuônmặt,do
sựphânbổcủacácđặctrưngkhuônmặtcóxuhướngtạothànhcáccungkhác
nhautrênkhônggianđặctrư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ình2.19minhhọakhảnăngcủahàmbiênđộgóckhidùngđểhọccác
đặctrưngkhuônmặt.Nhưchúngtacóthểthấy,cácđặctrưngcóxuhướng
phânbốthànhcáccụmnhỏ,tậptrung,côđọngtrênkhônggiansiêucầu.Điều
nàygiúptăngcườngkhảnăngphânbiệtgiữacáclớpđốitượngkhácnhau.
ÝtưởngchínhcủahàmlossnàyđólàbiếnđổimatrậntrọngsốWsang
khônggiansiêucầunhằmgiảmthiểucáchệsốcầnhọccủahệthống,quyvề
thamsốgóc(xácđịnhbiênđộgócgiữacáclớpđốitượngkhácnhau).Vềmặt
toánhọc,hàmAngular-Softmaxđượcđịnhnghĩanhưsau:
Trongđó:thamsốnguyênm≥1dùngđểđiềukhiểnkíchthước/độlớn
củabiênđộgóc;vàhàmbiênđộgócgiữacáclớpkhácnhauđượcđịnhnghĩa nhưsau: , and .
địnhnghĩađộđobiêntheogócdùngđểhọccácđặctrưngkhuônmặt. 2.6.4. Hàm ArcFace Loss
HàmArcFaceLoss[10]cảitiếnhàmAngular-Softmaxlossbằngcách
giớithiệuđộđobiêntheogócmới,cótênlàAdditiveAngularMarginLoss
(ArcFace).TronghàmArcFaceloss,hàmbiênđộgócđượcđịnhnghĩanhư
sau(giốngnhưtêngọicủanó):
Khithayvàohàmmụctiêu,chúngtacó: 45
Hình2.20minhhọaưuđiểmcủahàmArcFaceLosssovớihàmsoftmax
lossvớidữliệucủa8đốitượngkhácnhau.Nhưchúngtacóthểthấy,khi
chiếusangkhônggiansiêucầuvàdùnghàmArcFaceloss,cácđặctrưngcủa
8đốitượngđượcphântáchrấtrõràng(ngượclạivớikếtquảkhidùnghàm softmaxloss).
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
Trongchươngnày,chúngtôiđãtrìnhbàynềntảngcơsởcủacáckỹthuật
mạnghọcsâuvàứngdụngcủanótrongnhậndạngkhuônmặt.Cáckiếntrúc
mạngnhânchậphọcsâuđãđượctrìnhbàyvàphântíchtrongngữcảnhcủa
bàitoánhọcđặctrưngkhuônmặt.Quátrìnhhọcthườngđượcthựchiệnbởi
quytắcbộbatừhàngtriệumẫuhọc.Mụctiêucủaquátrìnhnàykhôngphải
nhằmnhậndạnghayđánhnhãncácđốitượngtrongcơsởdữliệu,màlàhọc
độđokhuônmặt(FaceMetrics)saochonócókhảnăngphânbiệtcáckhuôn
mặtthuộccácđốitượngkhácnhau.Cụthể,mộtđộđokhuônmặttốtsẽtạora
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đặctrưngđốivớicáckhuônmặtcủacácđốitượngkhácnhau.
Đểthựchiệnquátrìnhhọctrên,hàmmụctiêuđóngmộtvaitròquan
trọng.Chúngtôiđãtrìnhbàyvàphântích3hàmmụctiêuphổbiếnnhấtvà
tiêntiếnnhất.Nhiềukếtquảthựcnghiệmđãđượcnghiêncứu,xâydựngvà 46
chứngtỏhàmmụctiêuarcfacelosschokếtquảhiệunăngcaonhất,cótiềm
năngvượttrộisovớinănglựcconngười.Trongchươngtiếptheo,chúngtôi
sẽtrìnhbàyquátrìnhcảithiệnhiệunănghệthốngbằngcáchtíchhợpdữliệu
ngườiViệtvàoquátrìnhhuấnluyệ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
Đâylàbộdữliệucôngkhailớnthứhaicósẵnchocácvấnđềxácminhvà
nhậndạngkhuônmặt.BộdữliệuCASIA-WebFacebaogồm10.575người
vớitổngsố494.414hìnhảnh.
3.1.1.2. Labeled Faces in the Wild (LFW)6
Bộdữliệunàybaogồmhơn13000hìnhảnhkhuônmặtcủa5749người
đượcthuthậptrênmạnginternet.Mỗikhuônmặtđãđượcgánnhãnvớitên
củangườitronghình.1680ngườitronghìnhcóhaihoặcnhiềuảnhkhácnhau
trongbộdữliệu. 3.1.1.3. WIDER FACE7
BộdữliệuWINDERFACElàbộdữliệutheochuẩn(benchmark),trong
đóhìnhảnhđượcchọntừbộdữliệuWINDERcósẵncôngkhaivới32.203
hìnhảnhvàgánnhãn393.703khuônmặt.
3.1.2. Bộ dữ liệu huấn luyện người Việt
Nhưđãđềcậpởphầnmởđầu,mộttrongnhữngmụctiêuchínhcủaluận
vănlàxâydựnghệthốngAInhậndạngkhuônmặtvớisựtậptrungvàoviệc
họccáckhuônmặtChâuÁ,cụthểlàkhuônmặtcủangườiViệtNam.Vìvậy,
trongquátrìnhxâydựnghệthống,vớiđiềukiệnvàcôngviệcgiảngdạyở
trườngđạihọctôiđãlựachọnxâydựngbộdữliệukhuônmặttừdữliệuảnh
củasinhviênmàtôiđãthuthậpđược.
Vớiýtưởngxâydựngmộtphầnmềmđiểmdanhsinhviêntựđộngtránh
5http://pgram.com/dataset/casia-webface/
6http://vis-www.cs.umass.edu/lfw/
7http://shuoyang1213.me/WIDERFACE/ 48
tìnhtrạngđiểmdanhthay,họchộđồngthờigiúpchogiảngviêntiếtkiệm
đượcthờigiantrongmỗitiếthọc.
Dữliệuảnhkhuônmặtsinhviênsẽđượcthuthậpsaumỗibuổihọccủa
sinhviêncáclớptrongtrường.Toànbộcácthiếtbị(camera,máytính,…)
dùngđểthuthậpdữliệuđượclắpđặttạimộtphònglabkhoaCNTT&TT.Để
thựchiệnviệcthuthậpdữliệudùng2camerađặtở2góckhácnhau,đặt1ghế
phíatrướccamerasauđómỗisinhviênngồivàoghế,xoaymặttheocácgóc
khácnhautừ20–60giây.Dùngphầnmềmtựviết(videostreaming)đểlưudữ
liệucamthànhfilewebm.Saukhithuthậpdữliệu,ảnhsẽđượccắtratừcác
videođãthuthậpđược.Tậptinảnhđượccắtracóđịnhdạngđuôipng. Cam01 Tậphợpvideo
Chươngtrìnhvideostreaming Cam02 1FPS ….. 1 2 n(n>300)
Hình 3.1. Quy trình thu thập dữ liệu 49
Kếtthúcquátrìnhthuthậpdữliệuchúngtôicó:
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ụminhhọacho5ngườigồm10ảnhvớicácgóckhácnhaucủakhuô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ếntrúctổngquátcủahệthống,gồmcácphachínhsau(hình3.4): -
Dòtìmkhuônmặt(FaceDetection) -
Hiệuchỉnhkhuônmặt(LandmarkCorrection) -
Tríchchọnđặctrưng(FaceEmbedding) - Phânlớp(SVM,KNN) 51 Landmark Facedetection Correction FaceEmbedding L2Norm 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
Trongluậnvănnày,tácgiảchỉnghiêncứu,giảiquyếtcácpha3và4.Tuy
nhiên,đểphầntrìnhbàycótínhhệthống,tácgiảsẽmôtảngắngọncácpha1
và2trongcácphầntiếptheo.
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áthiệnkhuônmặt(facedetection)làbướcđầutiênvàcầnthiếtđểnhận
dạngkhuônmặtvàđượcsửdụngđểpháthiệnkhuônmặttrongảnh.Nócũng
làmộtphầncủapháthiệnđốitượngvàđượcsửdụngtrongnhiềulĩnhvực nhưbảo Inp u mật, t
sinhtrắchọc,thựcthiphápluật,giảitrí,antoàncán Output à CNN
cònđượcsửdụngđểpháthiệnkhuônmặttrongthờigianthựcđểgi à ặc tượng.
oàiramộtsốmạngx ttoá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ề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ìnhvàthờigianthựchiệnluậnvănnênởphầnnàysẽchỉdừnglạiởviệcsử
dụngmôhìnhđãhuấnluyệntừtácgiả[19].
3.3.2. Kiến trúc mạng dò tìm khuôn mặt
Quytrì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ấtbởiShifengZhangvàcáccộngsự[19].Nhómtác
giảđãđềxuấtmộtmáydòtìmkhuônmặtmới,cótênFaceBoxes,vớihiệu
suấtvượttrộicảvềtốcđộvàđộchínhxác.
KiếntrúcmạngdòtìmkhuônmặtFaceBoxesgồm2nhóm: -
Nhóm tích chập rút gọn nhanh (Rapidly Digested Convolutional
Layers):baogồm2lớptíchchập(convolutionallayer)và2lớprútgọn(pool)
cótácdụngrútgọnnhanhkíchthướccủafileđầuvàovàgiảmsốkênhđầura,
nhằmgiảmtốiđasứcnặngtínhtoánnếukíchthướcfileđầuvàoquálớn.Một
trongnhữngkĩthuậtđểgiảmkhốilượngtínhtoáncủatíchchậplênfileđầu
vàolàsửdụngsốbướcnhảylớnchomỗitíchchập.Vídụvớinhómtíchchập
rútgọnnhanhtrongFaceBoxes,nhómtácgiảđãsửdụngsốbướcnhảycho
Conv1,Pool1,Conv2,Pool2lầnlượtlà4,2,2,2pixels. -
Nhóm tích chập đa kích thước (Multiple Scale Convolutional Layer):
baogồm3lớpInceptionvàlớptíchchậpdựatrênRPN(RegionalProposal
Network),nhómtíchchậpđakíchthướccảitiếnhiệunăngcủaphươngpháp 53
RPNtrongtrườnghợpdòtìmđơnlớp(Ví dụ:dòtìmkhuônmặt)theohướng
khắcphục2nhượcđiểmcủaRPN:
Thiếtkếđakíchthướctheochiềudọccủamạng:AnchorscủaRPN
đượcnốivớilớptíchchậpcuốicùng,dođósốđặctrưngvàđộphân
giảicủaảnhkhôngcònđủđểxửlýsựbiếndạngkhuônmặttrênnhiều
kíchthướcảnh.MSCLgiảiquyếtvấnđềbằngcáchnốianchorsvớicác
lớpánhxạđặctrưngđakíchthước(Inception3,Conv3_2,Conv4_2)
giúptrảiđềucácanchorsởnhiềukíchthướcảnhkhácnhau.
Thiếtkếđakíchthướctheochiềungangcủamạng:đểhọcđượccácmẫu
trênnhiềukíchthướcảnhchúngtathườngphảicócáctrườngtiếpnhận
(receptivefield)trênnhiềukíchthướckhácnhau.Đểlàmđượcviệcnày,
MSCLsửdụngnhiềumoduleInception,mỗimoduleInceptionlạibao
gồmnhiềulớptíchchậpvớikíchthướckernelkhácnhau.
LossfunctionđượcsửdụnggiốngnhưRPN:sửdụngsoftmax2lớp
chobàitoánphânlớpvàsmoothL1chobàitoánhồiquy.
3.4. Kiến trúc mạng face landmark 3.4.1. Phát biểu bài toán
Facelandmarklàxácđịnhđượcnhữngđiểmchínhtạonênhìnhdạngcủa
đốitượngtrongmộtbứcảnh.Trongbàitoánxácđịnhfacelandmark,chúng
tasẽphảixácđịnhđượcnhữngđiểmchínhtrongbứcảnhtạonênhìnhdạng
khuônmặtngười.Facelandmarklàđầuvàochonhiềubàitoánkhácnhưdự
đoántưthếđầu,tráođổikhuônmặt,pháthiệnnháymắt,xoaychỉnhlạikhuôn 54
mặtvàđiểnhìnhlàcôngnghệnhậndạngkhuônmặtFaceIDđượcApple
trangbịtrêniphoneX.
Saukhixácđịnhđượckhuônmặttrongbứcảnh,chúngtasẽxácđịnhcấu
trúccủakhuônmặt.Córấtnhiềukiểucấutrúckhuônmặtkhácnhaunhưngvề
cơbản,chúngtasẽphảixácđịnhđượcnhữngphần:Miệng,lôngmàyphải,
lôngmàytrái,mắtphải,mắttrái,mũi,hàm.
Từvịtríboxescủakhuônmặtdòtìmđược,nhiệmvụtiếptheolàxácđịnh
vịtrícácđặctrưng(5điểmlandmark,68điểm)gồmcácvịtrínhưmắt,mũi,
miệng….Theomộtsốđánhgiáthìtrongluậnvănnày,chúngtôisửdụng5
điểmlandmarklàmđặctrư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ẩnhóađượccáckhuônmặt,chúngtađịnhnghĩamộtlưới
chuẩnmôphỏngcácvịtrítrênkhuônmặt.Hình3.7trìnhbàymộtmôhình
lướigồm68điểmquantrọngtrênmỗikhuônmặt.Môhìnhlướinàyđượcđề
xuất bởi Vahid Kazemi và Josephine Sullivan gọi là “face landmark
estimation”[14]. Ýtưởngcơbảnlàchúngtađưara68điểmcụthể(điểm
đánhdấu)tồntạitrênkhuônmặtgồm:đầucằm,bênngoàimỗimắt,bêntrong
mỗilôngmày,…Sauđó,chúngtasẽhuấnluyệnmộtthuậttoán“Họcmáy”
đểcóthểtìmra68điểmcụthểtrênbấtkỳkhuônmặtnà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ộtkhiđãđãướclượngđượccácđiểmđánhdấutrênmỗikhuônmặt,
chúngtasẽbắtđầuchuẩnhóakhuônmặtđểsaochotâmcủakhuônmặtnằm
ởchínhgiữaảnh,kíchthướccủakhuônmặtđượcphóngtohoặcthunhỏvề
mộtkíchcỡ(150x150)vàmộtsốphépxoaynếucầnthiết.Chúýrằngchúng
tasẽkhôngbiếnđổiảnh3Dbởichúngsẽlàmméomóảnh.Chúngtachỉsử
dụngnhữngbiếnđổicơbảnnhưxoayvàphóngto–thunhỏđểgiữnhững
đườngsongsong(gọilàbiếnđổiaffine).Hình3.8minhhọacácbướcxửlý
trunggiancủaquátrìnhnày[15]. 56 Ảnh đầu vào Mô hình lưới AffineTransformation (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ìnhlưới68điểmhoạtđộngkháchínhxáctrongtrườnghợpchúngta
cóthểướclượngđượcđầyđủcácđiểmđánhdấutrênkhuônmặt.Nóicách
khác,khigócquaycameracóthểthunhậnđầyđủkhuônmặt(trựcdiệnhoặc
gầntrựcdiện).hình3.9minhhoạmộtsốtrườnghợpmàchúngtacóthểdò
tìmđượcchínhxáccácvịtríđánhdấutrênkhuônmặ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
Tuynhiên,nếumộttrongcácđiểmđánhdấubịchekhuấtbởigócquay
camera,môhìnhlưới68điểmsẽhoạtđộngkémhiệuquảnhưminhhọatrên
hình3.10.Kếtquảhiệuchỉnhkhuônmặtdođócũngsẽbịảnhhưởng,làm
giảmđộchínhxáccủaquátrìnhnhậndạngsaunà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úngtôigợiýchỉnênápdụngmôhình68điểmchonhữngứng
dụngmàchúngtabiếtchắcchắnảnhchụpsẽtrựcdiệnvớicamera(Ví dụ:ảnh
chứngminhthư,ảnhthẻdựthi,…).Đốivớicáctrườnghợpkhác,chúngtôi
ápdụngmôhìnhlướichỉgồm5điểmđánhdấuđượcxâydựngtừgần5000
khuônmặttạiđây[16].Môhìnhlưới5điểmgồm2điểmmôtảvịtríhaimắt,
mộtđiểmngaydướimũivà2điểmởmiệng.Hình3.11minhhoạtmộtsốkết
quảcủaviệcướclượng5điểmđánhdấuchocácảnhđầuvàovớigócquay
khácnhau.Nhưchúngtacóthểthấy,môhìnhnàychokếtquảkháchínhxác 58
ngaycảvớinhiềutrườnghợpkhôngtrựcdiệnvớigócquaycủacamera.
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
Saukhiđãcóđặctrưngkhuônmặt(5điểmlandmark).Đểphânbiệtcác
khuônmặtkhácnhauthìmỗiảnhkhuônmặtcầnsinhra1bộđặctrưngmôtả
(featuresembedding).Bộđặctrưngmôtảthườnghaysửdụng1vector(128
hoặc512chiều).Vớimộtsốnghiêncứuthìchothấyrằngvector128làđủđộ
tincậyvàchínhxácđểphânbiệtcáckhuônmặtvớinhau.Vìthếchúngtôi
cũngsửdụngbộvector128làmcơsởmôtảchotừngkhuônmặt.
Đầuvào:Ảnhkhuônmặt(đãgắn5điểmlandmark)
Đầura:Vector128chiều
3.5.2. Kiến trúc mạng đặc trưng khuôn mặt
FaceNetlàmộ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
FacesintheWild(LFW)vớiđộchínhxáclà99,63%,YoutubeFacesDBvới
độchínhxáclà95,12%.HệthốngFaceNetcóthểđượcsửdụngrộngrãinhờ
nhiềutriểnkhaimôhìnhnguồnmởcủabênthứbavàsựsẵncócủacácpre-
trainedmodels.LợiíchcủahệthốngFaceNetlàmỗikhuônmặtđượcđạidiện
bởimộtvectorđặctrưng.Khiđó,quátrìnhnhậndạngkhuônmặttrởthành
vấnđềphânlớpcácvectorđă ›ctrưng.
Quytrìnhnhậndạngkhuônmặtthựchiệntrongluậnvăndựatrênnghiên 59
cứu“FaceNet:Mộthệthốngnhúngchoviệcnhậndạngvàphâncụmkhuôn
mặt”[17]đượcđềxuấtbởinhómtácgiảlàmviệctạiGoogleđólàFlorian
Schroff,DmitryKalenichenkovàJamesPhilbin.
FaceNetdựatrênviệcnhúngmỗiảnhvàokhônggianEuclidebằngcách
sử dụng mạng CNN. Mạng được huấn luyện sao cho khoả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ườicókhoảngcáchnhỏvàkhuôn
mặtcủanhữngngườikhácnhaucókhoảngcáchlớn.Khiđó,mỗikhuônmặt
đượcđạidiệnbởimộtvectorđặctrưng128chiềuđượcchuyểnđổithành128
byte.Khikhônggiannhúngnàyđượctạora,thìnhiệmvụnhậndạngkhuôn
mặttrởthànhbàitoánphânlớpvectorđặctrưngdùngthuậttoánK-NN,mạng nơronnhiềulớp.
Nhómtácgiảsửdụng2kiểukiếntrúckhácnhauđểphùhợptừngứng
dụngkhácnhau.Vídụnhómmôhìnhsố1sẽphùhợpchocáctrungtâmdữ
liệu,vớisốlượngthamsốlớn(đến140triệuthamsốcầnhuấnluyện),cần
sứcmạnhtínhtoánsốthực(FLOPS)rấtlớn,trongkhinhómmôhìnhsố2cần
huấnluyệnítthamsốhơn(íthơn20lần)đểcóthểsửdụngđượcvớibộnhớ
củađiệnthoạithôngminh.
Trongnhómmôhìnhsố1,nhómtácgiảthêmvàonhiềulớptíchchậpkích
thước1x1bêncạnhcáclớptíchchậpchuẩnZeilervàFergus[20],tạoramô
hìnhcó22lớp.Vớiđộsâuđó,chúngtacầnhuấnluyện140triệuthamsố,
cầnđếnsứcmạnhtínhtoán1.6tỉphéptoánsốthựcmỗigiây(FLOPS)cho
mỗihìnhảnhđầuvào.Bảng3.2môtảcấutrúccủamôhình,cácảnhđầuvào
vàđầuracókíchthướcsốdòngxsốcộtxsốbộlọc.Nhântíchchậpcókích
thướcsốdòngxsốcột,sốpixeldịchchuyểnvàmaxoutpoolingcókíchthước p=2. 60
Bảng3.2.MôhìnhmạngNN1dựatrêncấutrúcmạngdoZeilervàFergusđề
xuất,vớicáclớp(layer),kíchthướcinput(size-in)vàoutput(size-out)có dạng
(sốdòng sốcột sốbộlọc),riêngphầnnhân (kernel)là
(số dòng số cột), stride (dòng cột,bướcsải)và
kíchthướcmaxoutpoolinglà [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óm2sửdụngdựatrênGoogleNet(xembảng3.3)vớicácmôhình
Inception[21].Sốlượngthamsốcầnhuấnluyệnlà6-7triệuthamsố,íthơn 62
20lầnsovớinhómsố1,cùngsứcmạnhtínhtoáníthơn5lần,giúpgiảmkích
thướccủamôhình,dễdàngđưavàoứngdụngdiđộng.
Bảng3.3.FaceNetsửdụngmôhìnhInceptiontươngtựvới[21].Haiđiểm
khácbiệtchínhđólàFaceNetsửdụngL2poolingthayvìmaxpooling.Kích
thướcpoolingluônlà3 3vàtínhsongsongvớimoduletíchchậptrong mỗi moduleInception. dimensionalityr Nếu giảm chiều (
eduction)thìpoolingsẽ
đượckýhiệuvớ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 L2Normalization 1x1 64 maxpool+norm 56x56 128 fullyconn 1x1 192 inception(2) 56x56 1024 avgpool 1x1 192 norm+maxpool 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 maxpooling convolutions convolutions convolutions Previouslayer
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ớiFaceNet,nhómtácgiảsửdụngTripletLoss(hàmmụctiêutheobộ
ba).Bộbaởđâybaogồm:ảnhtruyvấn(queryimage),1ảnhkháccủacùng
ngườiđó(positive)vàảnhcủangườikhác(negative).Mụcđíchcủahàm
TripletLosslàkéoảnhđặctrưng(anchorimage)củamộtngườivềgầnvớitất
cảảnhkháccủacùngngườiđó(positiveimage)vàkéodãnkhoảngcáchvới
ảnhcủanhữngcáthểcònlại(negativeimage),tươngứngvớiđiềukiện: + < , , , ) T.
HàmmụctiêucủaTripletlossvìthếđượcmôtảnhưsau: (1)
Tuynhiênsốlượngbộbathỏađiềukiện1sẽrấtnhiều,dẫntớihiệntượng
hộitụchậmnếuchỉsửdụnghàmmụctiêunhưtrên.Vìvậychúngtacầncó
bướcchọnlọcbộba(TripletSelection)đểgiữlạichỉnhữngbộbatốtnhất
choquátrìnhhuấnluyện.
Đểhàmmấtmáthộitụnhanhvàthỏađượcđiềukiệnhuấnluyệnởtrên,
vớimỗiảnhđặctrưngcủamỗingười tacầnxácđịnhđượcảnhđúngcố
định(hardpositive) sao cho ,vàảnhsaicố định(hardnegative) saocho .
Việctìmargmaxvàargmincủacảtậpdữliệutốnrấtnhiềuthờigian,
khôngkhảthivớitậpdữliệulớnvìcóquánhiềubộbađượctạora.Có2cách
đểvượtquahạnchếnày: -
Tạorabộbangoạituyến(offline)lặplạimỗiNbước. 65 -
Tạorabộbatrựctuyến(online)bằngcáchchọnraảnhđúngcốđịnhvà
ảnhsaicốđịnhchomỗimini-batch.
VớiFaceNet,nhómtácgiảchútrọngvàoviệctạobộbatrựctuyến,với
nhiềumini-batchcókíchthướcmẫuvàingànảnhvàchỉtínhargmax,argmin trongmỗimini-batch.
Đểảnhđặctrưngcủamỗingườiđượckháchquanvàchínhxác,chúngta
cầnđảmbảosốảnhtốithiểucủamỗicánhântrongtậpmẫumini-batch(vídụ 40ảnh/người).
TrongFaceNetnhómtácgiảđãchọnchiếnlượcnhưsau: -
Cố định ảnh đúng (hard anchor-positive pairs) cho mỗi mini-batch
(thayvìchọnra1ảnhcốđịnhchomỗilớpkhuônmặt).Phươngphápnày
đượcchứngminhbằngthựcnghiệmchophéphàmmụctiêuhộitụnhanhhơ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èmtheođiềukiệnphải: <
Điềukiệnnàygiúpchúngtatránhđượctrườnghợp“cựctiểuđịaphương” (localminima).
Đ_nh gi_ ưu, nhược điểm của mô hình FaceNet:
FaceNetcótiệnlợihơncácphươngphápFaceEmbeddingkháckhisử
dụngquátrìnhhuấnluyệnxuyênsuốttừđầuđếncuối,saukhihuấnluyện
xongmôhìnhđãcóthểsửdụngngay,khôngcầncácphươngphápxửlýhậu
kỳ(post-processing)khác(Ví dụ: nốicácmôhìnhlạivớinhau,phântích
thànhphầnchính–PCA,hoặcphânlớpvớiSVM).Mộtđiểmmạnhkháclà
khisửdụngFaceNet,chúngtakhôngcầnphảicanhchỉnhkhuônmặtquá 66
chặt,khôngcầndùngcácphươngphápcanhchỉnh3chiềutốnkémvềchiphí
tínhtoán,màchỉnhcầnảnhcắtcậnkhuônmặtlàđủ.
Tuyvậy,môhìnhhiệntạicầnđượccảitiếnthêm,khiquátrìnhhuấn
luyệnchiếmrấtnhiềuthờigianvàtàinguyêncủaCPU.Ngoàira,quátrình
huấnluyệnđượcthựchiệnvớikíchthướcảnh220x220,nhữngảnhjpgcóđộ
phângiảinhỏhơn(vídụ120x120,80x80vànhỏhơnthếnữa)khôngchokết
quảtốtnhưnhữngảnhcókíchthướclớn.
Cải tiến chất lượng mạng đã huấn luyện (pre-trained model):
ĐểcảithiệnchấtlượngmodelFacenetchotậpdữliệungườiViệt,chúng
tôitiếnhànhlàmmịn(fine-tuning)hayhuấnluyệnlạimodeltrêntậpdữliệu
sinhviênđãthuthậpđược.Quátrìnhnàyđượcthựchiệnnhưsau:
+ Chọn tập huấn luyện: từ 496cánhân.Trungbình,mỗicánhâncó
khoảng300ảnh,trongđóchúngtôisửdụng80%dữliệuchoviệchuấnluyện
và20%choviệctest.
+ 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
StochasticGradientDescent(SGD)vớicáctiêuchuẩnbackpropvà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ócấuhìnhIntel®
Core™i3-6100UCPU@2.30GHz×4trongthờigian2tuần,sauđódừngvà
lưuthànhmodelmới.Trongsuốtquátrìnhhuấnluyện,thuậttoánpháthiện
khuônmặtđượcsửdụngđểtạorakhungảnhbaochặtquanhkhuônmặttrong
mỗiảnh.Sauđó,cácảnhkhuônmặtđượcthunhỏlạitheokíchthướcquyước
củamỗimôhình,từ96x96đến224x224pixels.
3.6. Kết luận chương 3
Nhưvậy,trongchương3chúngtôiđãthuthậpvàxâydựngbộdữliệu
huấnluyệnngườiViệtbaogồmquytrìnhthuthậpdữliệuvàcácbảngthống
kê,biểuđồthốngkêquátrìnhthuthậpdữliệu.Dữliệusaukhichúngtôithu
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ồmcó4
pha.Trongđóchúngtôichỉtậptrungđisâuvàonghiêncứu,giảiquyếtcác
pha3và4là:kiếntrúcmạngđặctrưngkhuônmặt(faceembedding)vàquá
trìnhphânlớp(Classification).DựatrênmôhìnhmạngFaceNet[17],chúng
tôiđãphântíchưunhượcđiểmcủakiếntrúcmạng,quátrìnhhuấnluyện,từ
đóđềxuấtcáccảitiếnchấtlượngmạngđãhuấnluyện(pre-trainedmodel)
bằngcáchtiếnhànhlàmmịn(finetuning)hayhuấnluyệnlạimôhìnhtrênbộ
dữliệuhuấnluyệnsinhviênngườiViệtđãthuthậpđược.
Tiếptheochương4chúngtôisẽtrìnhbày1sốkếtquảthựcnghiệmvà
đánhgiámàchúngtôithuđượctừquátrìnhhuấnluyệnmạ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ườilàmáytínhcócấuhìnhvới: -
Bộ xử lý:Intel®Core™i3-6100UCPU@2.30GHz×4 -
Hệ điều hành:Ubuntu16.4LTS -
Bộ nhớ:4GBRAM -
Ổ cứng:SSD120GB 4.1.2. Phần mềm
Chươngtrìnhứngdụnghệthốngnhậndạngkhuônmặttrongluậnvăn
đượccàiđặttrongmôitrườngảohóaAnaconda,sửdụngthưviệnTensorflow
vàngônngữlậptrìnhPython.
4.1.2.1. Môi trường ảo hóa Anaconda
Anacondalàmộtnềntảng(platform)mãnguồnmởmiễnphícủangônngữ
lậptrìnhPythonthôngdụngnhấthiệnnay,sửdụngchokhoahọcdữdiệu,học
máyvàcácứngdụng(xửlýdữliệuquymôlớn,phântíchdựđoánvàtính
toánkhoahọc,…)nhằmmụcđíchđơngiảnhóaviệcquảnlývàtriểnkhaicác
package, phù hợp với mọi người dùng. Hệ thống quản lí package của
AnacondalàConda.BảnphânphốiAnacondatínhđếnnayđượcsửdụnghơn
6triệungườivàđínhkèmhơn250góipackagekhoahọcdữliệuphùhợpcho
các hệ điều hành Windows, Linux vàMacOS. Lợi ích của việc sử dụng Anaconda:
- Dễdàngtải1500+packagesvềPython/Rchodatascience.
- Quảnlýthưviện,môitrườngvàdependencygiữacácthưviệndễdàng. 69
- Dễdàngpháttriểnmôhìnhmachinelearningvàdeeplearningvớicác
thưviệnscikit-learn,tensorflow,keras.
- Xửlýdữliệutốcđộcaovớicácthưviệnnumpy,pandas.
- HiệnthịkếtquảvớicácthưviệnMatplotlib,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ộtthưviệnmãnguồnmởdoGooglepháttriểnvào
tháng11/2015,TFcungcấpkhảnăngxửlítínhtoánsốhọcdựatrênbiểuđồ
môtảsựthayđổicủadữliệu.Tensorflowđượcsửdụngkhigiảiquyếtcácbài
toánsupervisedlearning,sửdụngtrongrấtnhiềuứngdụngcủaGooglenhư
phânloạiemailcủaGmail,nhậnbiếtphátâmvàdịchtựđộng,nhậnbiết
khuônmặttrongGooglePhoto,tốiưuhoákếtquảtìmkiếm,quảngcáotrong
Youtube,…ĐặctrưngcủaTensorFlowlàxửlýđượctấtcảcácloạidữliệu
cóthểbiểudiễndướidạngbiểuđồluồngdữliệu(dataflowgraph)haylow
level như xử lý chữ viết tay. TensorFlow được viết bằng C++, thao tác
interfacebằngPythonvìthếhiệunăngrấttốt,dùngđượccảCPUlẫnGPU 8https://www.anaconda.com/ 70
nênTFcóthểchạytrêncảPCthôngthườnglẫn1servercựclớn,thậmchícả
smartphonecũngcóthểsửdụngđược.MộtchươngtrìnhTensorflowđược
chiathànhhaiphầnchính.Phầnthứnhấtlàxây dựngmô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
(executionphase)LợiíchcủaviệcsửdụngthưviệnTF: -
Tíchhợpsẵnrấtnhiềucácthưviệnmachinelearning. -
Cókhảnăngtươngthíchvàmởrộngtốt,đượcGooglepháttriểncho
machinelearningphụcvụcảnghiêncứulẫnxâydựngcácứngdụngthựctế. - 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ộtngônngữbậccao(high-level),ngữnghĩa
động(dynamicsemantics)đượctạorabởiGuidovanRossumvàonăm1991.
Python hỗ trợ các module và gói (packages), khuyến khích chương trình
modulehóavàtáisửdụngmã.TrìnhthôngdịchPythonvàthưviệnchuẩnmở
rộngcósẵndướidạngmãnguồnhoặcdạngnhịphânmiễnphíchotấtcảcác
nềntảngchínhvàcóthểđượcphânphốitựdo.Ngàynay,Pythonđượcsử
9https://nguyenvanhieu.vn/thu-vien-tensorflow/ 71
dụngtrongcácmụcđíchnhưpháttriểnweb(trênmáychủ),pháttriểnphần
mềm,tínhtoán,khoahọc,lênkịchbảnchohệthống(systemscripting).Ưu
điểmcủaviệcsửdụngngônngữPython:
- Pythoncócúphápđơngiản,dễđọc,dễhọcvàdễnhớ.
- Pythonsửdụngtrìnhthôngdịchđểthựcthicode.Dođó,nhữngdòng
codecóthểđượcthựcthingaylập tứcmàkhông cầnbiêndịchtoànbộ
chươngtrình,giúpchúngtakiểmtracodenhanhchóng,dễdànghơn.
- Pythoncóthểkếtdễdàngkếtnốivớicácthànhphầnkhácnhưcácđối
tượngCOM, .NET(Ironpython, Python for .net) vàCORBA, Java,…
PythoncũngđượchỗtrợbởiInternetCommunicationsEngine(ICE)vànhiều
côngnghệkếtnốikhác.
- Pythonlàngônngữcókhảnăngchạytrênnhiềunềntảnghệđiềuhành
vớicùngmộtmãnguồngiốngnhaunhưWindows,Linux/Unix,OS/2,Mac,
Amiga,…mộtsốphiênbảncủaPythontrên.NET,máyảoJavavàđiệnthoại
diđộng(NokiaSeries60).
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ệuhuấnluyệnsửdụngtrongluậnvănlàcáchìnhảnhkhuônmặt
đãthuthậpđượcmàchúngtôiđãgiớithiệuởchương3.Dữliệuthuthập
đượcgồm496cánhân,trongđóchúngtôisửdụng80%dữliệuchoviệchuấn
luyệnvà20%choviệctest.Trungbình,mỗicánhâncókhoảng300ảnh.
4.3. Phương ph_p đ_nh gi_, thử nghiệm
Mụctiêucủaquátrìnhhuấnluyệnlại(fine-tuning)môhìnhmạngFacenet
nhằmhoạtđộngtốthơnchotậpdữliệungườiViệtNam.Vìvậy,chúngtôi 10https://www.python.org/ 72
đánhgiáchấtlượngmạnghuấnluyệnlạitrêntậpdữliệusinhviênđãthuthập
được(vớicácđộtuổikhácnhau).Đểđánhgiáđộchínhxácnhậndạng,các
vectorđặctrưngkhuônmặtcủatừngđốitượngsẽđượcquacácbộphânlớp
máyhọcgồmK-NNvàSVM.Phươngthứcđánhgiánhưsau: -
Mỗicánhânsẽsửdụng5–10ảnhlàmdữliệuhuấnluyệnbộphânlớp -
VớibộphânlớpK-NN,khoảngcáchcủaphầntửgầnnhấtvớiảnhtruy
vấnsẽđượcsosánhvớimộtngưỡng(0.7trongthựcnghiệmnày)đểquyết
địnhnhãncủađốitượngđó.Khoảngcáchlớnhơnngưỡngnàyđượcxemxét
đểphânloạinhãnunknownchoảnhtruyvấn. -
VớibộphânlớpSVM,nhãncủaảnhtruyvấnsẽđượctrảvềtừbộ
phânlớpSVM.Sauđó,chúngtôilọccácđốitượngunknownbằngcáchtính
lạikhoảngcáchEuclideangiữaphầntửgầnnhất(trảvềbởiSVM)vớicác
ảnhmẫuthuộclớpđó.Nếutồntạiảnhmẫuchokhoảngcáchbéhơnngưỡng
(0.7)thìkếtluậnnhãncủađốitượng.Ngượclại,gánnhãnunknownchođối tượngđangxét.
4.4. Kết quả đ_nh gi_, thử nghiệm
Độchínhxác(Accuracy)đượcsửdụngđếđánhgiáhiệunăngcủamạng
đãđượchuấnluyện.Chúngtôitínhtoánđộchínhxácvớimỗilớpđốitượng
trongtậpđánhgiá,sauđótínhđộchínhxáctoàncụcbằngcáchlấytrungbình
cộngcủacácđộchínhxácthànhphần.Cụthể: -
VớimỗiđốitượngcủanhãnX,độchínhxáccủalớpXđượctính: Trongđó:A
xlàđộchínhxáctínhtoáncholớpđốitượngcónhãnX,NX là 73
sốlượngảnhcủađốitượngXcótrongcơsởdữliệu,N Tlàsốlượngảnhnhận
dạngđúngcủalớpX. -
Độchínhxáctoàncụcđượctính:
Trongđó,Nlàsốlượngcácnhãntrongcơsởdữliệu(N=496trongtập
dữliệudochúngtôithuthậ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ờigiannhậndạngkhôngtínhthờigiandòtìmmặtvàhiệuchỉnhcác
điểmlandmarks,chỉtínhthờigiantríchchọnvectorđặctrưngkhuônmặt
(128chiều)vàthờigianphânlớp(KNNhoặcSVM).Thờigianđượcđodựa
trêngiảsửmỗiframecủavideochỉcómộtkhuônmặ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ử)
Đểsosánhvớimôhìnhmạngbanđầu,chúngtôithựchiệnthínghiệmthứ
haivớicùngcáchthức,nhưngsửdụngmôhìnhFaceNetbanđầu.Kếtquả
thựcnghiệmchothấymôhìnhhuấnluyệnlạichokếtquảtốthơnsovớimô
hìnhgốcbanđầutừ5–8%phụthuộcvàotừngđốitượng.
Mộtsốvídụtrựcquankếtquảnhậndạngnhư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ốngnhậndạngkhuônmặtbaogồmcấuhìnhmáy,môitrườngcàiđặt,thư
việnvàngônngữsửdụng.Tiếpđó,chúngtôiđưaraphươngphápđánhgiá 77
chấtlượngmạnghuấnluyệnlạitrêntậpdữliệusinhviênngườiViệtđãthu
thậpđượcvàkếtquảđánhgiá,thửnghiệmbộdữliệuhuấnluyệnlạisovới
môhìnhmạngbanđầu. 78 Chương 5:
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 1. Kết luận
Luậnvănđãnghiêncứu,tìmhiểubàitoánnhậndạngkhuônmặtngườivà
thựchiệnpháttriển,càiđặtchươngtrìnhchobàitoándựatrênsựthốngkê
cáchướngtiếpcậnđãđượccôngbốquanhữngbàibáo,côngtrìnhkhoahọc
trênthếgiới.Cáckếtquảchínhmàluậnvănđãđạtđượctươngứngvớicác
mụctiêubanđầuđềranhưsau: -
Xâydựngbộcơsởdữliệuảnhphụcvụhuấnluyệnhọccácđặctrưng
khuônmặtcủangườiViệtNam.Bộdữliệuhuấnluyệnđượcthựchiệncho
496cánhân,mỗicánhâncó1-2video(độdài30–60giây),saukhitrích
chọnxửlýsốlượngảnhtrungbìnhchomỗicánhânkhoảng300ảnh. -
Trìnhbàytổngquanvềhệthốngnhậndạngkhuônmặtngười. -
Phântíchbàitoánnhậndạngkhuônmặt,cácthuậttoáncơbảntrong
nhậndạngkhuônmặthiệnnaytrênthếgiớinhưPCA,LDA,SVMvàmạng nơron. N
ghiêncứucáckỹthuậthọcsâu,cácmạngnhânchậpchobàitoánnhận
dạngkhuônmặtngườiđểđềxuấtvàxâydựngkiếntrúcmạnghọcsâu,tổchức
huấnluyệnmôhìnhmạngvàsửdụngtrongnhậndạngkhuônmặtngười. -
Đặcbiệt,chúngtôiphântíchchitiếtkiếntrúcmạngFacenet,đánhgiá
cácưunhượcđiểm,sauđótiếnhànhcảitiếnchấtlượngmạng,fine-tuninglại
trêntậpdữliệuhuấnluyệnchúngtôiđãthuthập. 79 -
Xâydựngthànhcônghệthốngdemoquátrìnhnhậndạngkhuônmặttừ
videovàbộdữliệuảnhđãthuthậpđược.Thựchiệncácthửnghiệmđánhgiá
chấtlượngmạngtrêntậpdữliệungườiViệtvàchokếtquảkhảquan.
2. Hướng ph_t triển
Hệthốngtựđộngnhậndạngkhuônmặttrongluậnvăncầntiếptụ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,đểcóthểcải
thiệnđộchínhxácvàtốcđộxửlýcủahệthốngnhậndạng,chúngtôiđềxuất
càiđặtthửnghiệmvàđánhgiácácloạimôhìnhmạngmạnghọcsâuđãđược
huấnluyệntrước,đặcbiệtlàtăngsốtầngcủacácmạngđểcókhảnănghọc
đượcnhiềuđặctrưnghơn,cảithiệnđộchínhxác.Bêncạnhđó,tốcđộnhận
dạngcũnglàmộtyêucầuquantrọngcủacáchệthốngtrongthựctế.Vìvậy,
cácnghiêncứucảithiệntốcđộnhậndạngcũngsẽđượcđầutưnghiêncứu trongthờigiantớ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ặtvàứngdụng.
[2] PhạmThếBảo,NguyễnThànhNhựt,CaoMinhThịnh,TrầnAnhTuấn,
PhanPhúDoãn(2007),Tổngquancácphươngphápxácđịnhkhuônmặt người. Tài liệu tiếng Anh
[3] IonMarqués(2010),“FaceRecognitionAlgorihtms,”Universidaddel PaísVasco.
[4] Byung-JooOh (2003), “Face Recognition by Using Neural Network
ClassifiersbasedonPCAandLDA,”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, New JerseyInstitute 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,TsinghuaUniversity,Beijing100084,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, “Deep Face
Recognition,” Department of Engineering Science, University of 81 Oxford.
[10] J.Deng,J.Guo,andS.Zafeiriou,“Arcface:Additiveangularmargin
lossfordeepfacerecognition,”arXivpreprintarXiv:1801.07698,2018.
[11] C. T. S. E. M. Jyh Shing Roger Jang, “Neuro fuzzy and Soft
Computing,”PrienticeHallInternational,Inc,2002.
[12] LeCun,Yann;LeonBottou;YoshuaBengio;PatrickHaffner(1998),
“Gradient-based learning applied to document recognition,” in
ProceedingsoftheIEEE.86(11):2278–2324,1998.
[13] ShifengZhang,XiangyuZhu,ZhenLei,HailinShi,XiaoboWangand
StanZ.Li,“FaceBoxes:ACPUReal-timeFaceDetectorwithHigh
Accuracy,”arXivpreprintarXiv:1708.05234,2017.
[14] Kazemi, Vahid and Sullivan, Josephine: “One Millisecond Face
AlignmentwithanEnsembleofRegressionTrees,”CVPR2014.
[15] Technical Report: Brandon Amos, Bartosz Ludwiczuk, Mahadev
Satyanarayanan,“OpenFace:Ageneral-purposefacerecognitionlibrary
withmobileapplications,”2016.
[16] [Online].Available:https://github.com/davisking/dlib-models.
[17] FlorianSchroff,DmitryKalenichenkoandJamesPhilbin,“FaceNet:A
Unified Embedding for Face Recognition and Clustering,” In
Proceedings of IEEE Conference on Computer Vision and Pattern
Recognition,pages815-823,2015.
[18] KaipengZhang,ZhanpengZhang,ZhifengLiandYuQiao,“JointFace
DetectionandAlignmentusingMulti-taskCascadedConvolutional
Networks,”IEEESignalProcessingLetters(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
SpringerInternationalPublishing,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
PatternRecognition(CVPR),pp.1-9,2015.
[22] I.J.Goodfellow,D.Warde-Farley,M.Mirza,A.C.CourvilleandY.&
Bengio,“Maxoutnetworks,”ICML,vol.3,pp.1319-1327,2013.
[23] PierreBaldi,PeterJ.Sadowski,“UnderstandingDropout,”Publishedin NIPS2013.
[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,andL.Song,“Sphereface:Deep
hypersphereembeddingforfacerecognition”,inTheIEEEConference
onComputerVisionandPatternRecognition(CVPR),vol.1,2017,p. 1.
[26] CorinnaCortesandVladimirVapnik(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
CalculusofIdeasImmanentinNervousActivity,UniversityofIllinois,
College of Medicine,” Department of Psychiatry at the Illinois
NeuropsychiatricInstitute,UniversityofChicago,Chicago,U.S.A.
https://www.cs.cmu.edu/~./epxing/Class/10715/reading/ McCulloch.and.Pitts.pdf.