陸正球



摘要:隨著深度學(xué)習(xí)技術(shù)的發(fā)展,人臉識(shí)別成為身份識(shí)別最常用的生物特征識(shí)別技術(shù)。針對(duì)移動(dòng)終端計(jì)算資源不足的實(shí)際情況和特點(diǎn),該文在MobileNet模型的基礎(chǔ)上,構(gòu)建基于MobileFaceNet的人臉檢測(cè)和識(shí)別模型。首先,使用MTCNN模型對(duì)傳入的人臉進(jìn)行檢測(cè),然后采用MobileFaceNet模型進(jìn)行人臉特征提取,最后通過構(gòu)建本地人臉庫,完成對(duì)人臉圖像識(shí)別。實(shí)驗(yàn)結(jié)果表明,該方法在常見的人臉數(shù)據(jù)庫中具有較好的識(shí)別準(zhǔn)確率。
關(guān)鍵詞:人臉識(shí)別;MobileFaceNet;人臉檢測(cè);MTCNN
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2024)05-0012-03
0 引言
人臉識(shí)別是計(jì)算機(jī)視覺領(lǐng)域的關(guān)鍵技術(shù),在電子金融、視頻監(jiān)控、智慧安防、個(gè)人生活等方面有著廣闊的應(yīng)用前景。人臉識(shí)別技術(shù)作為一種常見的生物識(shí)別技術(shù),常用來根據(jù)人的臉部特征信息進(jìn)行身份識(shí)別[1]。通過將提取的人臉特征與人臉數(shù)據(jù)庫中已有的特征進(jìn)行匹配,再結(jié)合設(shè)定的閾值就可以根據(jù)相似度來判斷人臉信息[2]。具有直接、方便、易被使用者接受的特點(diǎn),極大地解決了傳統(tǒng)信息安全識(shí)別等問題。
當(dāng)前,在非受控環(huán)境下制約人臉識(shí)別性能和效果的最主要因素是人臉檢測(cè)和人臉特征學(xué)習(xí)。人臉檢測(cè)是指檢測(cè)出人臉圖像中人臉的具體位置,是人臉識(shí)別不可或缺的重要環(huán)節(jié),目前使用最多的是深度級(jí)聯(lián)的多任務(wù)框架MTCNN[3],它具有速度快且在CPU環(huán)境下也能進(jìn)行單臉實(shí)時(shí)檢測(cè)的能力。在人臉特征學(xué)習(xí)方面,2012年,Krizhevsky[4]首次將深度卷積神經(jīng)網(wǎng)絡(luò)成功應(yīng)用于解決計(jì)算機(jī)視覺領(lǐng)域的關(guān)鍵問題。Sun等人[5]提出首先將多個(gè)深度卷積神經(jīng)網(wǎng)絡(luò)提取的特征拼接并使用PCA降維得到更有效的特征。之后,VGG?Net[6]、GoogLeNet[7]以及ResNet[8]這三類網(wǎng)絡(luò)相繼被提出并成功被應(yīng)用于物體識(shí)別和人臉識(shí)別。隨后,針對(duì)移動(dòng)端計(jì)算資源不足的特點(diǎn)[1],Google在2017年設(shè)計(jì)了一個(gè)專為移動(dòng)端和嵌入式設(shè)備做深度學(xué)習(xí)計(jì)算的輕量級(jí)網(wǎng)絡(luò)MobileNetV1,該網(wǎng)絡(luò)提出了一種新的卷積方式深度可分離卷積[9]。同年9月,曠視科技通過使用Group Convolution 和Channel Shuffle改進(jìn)ResNet 的殘差模塊[10],提出了一個(gè)復(fù)雜度更低、精度更高的輕量級(jí)網(wǎng)絡(luò)ShuffleNet V1。而MobileNet V2 和Shuf?fleNet V2等輕量級(jí)網(wǎng)絡(luò)的提出為人臉識(shí)別任務(wù)部署在移動(dòng)端提供了更便利的條件[11-12]。
1 相關(guān)算法應(yīng)用
1.1 人臉檢測(cè)模塊
傳統(tǒng)的人臉檢測(cè)方法需要人工提取圖像特征,而基于深度學(xué)習(xí)的檢測(cè)方法通過搭建卷積神經(jīng)網(wǎng)絡(luò)自動(dòng)提取特征,減少了人為因素的干擾,識(shí)別準(zhǔn)確度上更高[13]。
MTCNN 是一個(gè)深度級(jí)聯(lián)的多任務(wù)框架,可以同時(shí)完成人臉檢測(cè)和人臉對(duì)齊的功能,具有網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單、識(shí)別速度快的優(yōu)點(diǎn)。它由三個(gè)子網(wǎng)絡(luò)組成,分別是候選網(wǎng)絡(luò)(P-Net) 、提純網(wǎng)絡(luò)(R-Net) 和輸出網(wǎng)絡(luò)(ONet),可同時(shí)檢測(cè)人臉及定位人臉關(guān)鍵點(diǎn)[13]。但是,由于原始的人臉圖片存在尺度不一的情況,對(duì)于比較小的人臉,需要放大后再進(jìn)行檢測(cè);對(duì)于比較大的人臉,需要縮小后再圖檢測(cè)。在MTCNN中首先要進(jìn)行將人臉原始圖片縮放到不同尺度,形成一個(gè)“圖像金字塔”[14],然后對(duì)每個(gè)尺度的圖片通過神經(jīng)網(wǎng)絡(luò)計(jì)算一遍,這樣可以在統(tǒng)一的尺度下檢測(cè)人臉。
1.1.1 P-Net
P-Net是一個(gè)全卷積神經(jīng)網(wǎng)絡(luò),輸入的是一個(gè)寬和高都是12像素、3通道的RGB圖像。輸出有三部分:輸入的12×12×3的圖像中是否有人臉,人臉框的位置和5個(gè)關(guān)鍵點(diǎn)的位置,5個(gè)關(guān)鍵點(diǎn)是指:左眼、右眼、鼻子、左嘴角、右嘴角。
P-Net采用較低的精度最大程度上保證將所有的人臉都檢測(cè)到,在實(shí)際計(jì)算中,會(huì)將輸入的圖像進(jìn)行多尺度金字塔處理,也就是通過輸入層的移動(dòng),對(duì)原始圖像中每一個(gè)12×12的區(qū)域都進(jìn)行一次人臉檢測(cè)。同時(shí),對(duì)于重疊的候選框,采用非極大值抑制(NMS) 篩選,最后送入 P-Net 網(wǎng)絡(luò)參與訓(xùn)練。
1.1.2 R-Net
R-Net的結(jié)構(gòu)跟P-Net非常類似,R-Net的輸入是24×24×3的圖像,表示像素值大小是24×24的3通道圖像。R-Net是判斷24×24×3的圖像中是否含有人臉以及預(yù)測(cè)關(guān)鍵點(diǎn)位置。在實(shí)際應(yīng)用中,對(duì)每個(gè)P-Net 輸出可能為人臉的區(qū)域都放大到24×24的大小,再輸入到R-Net中,進(jìn)行進(jìn)一步判斷,這樣消除了P-Net中很多誤判的情況,提高人臉檢測(cè)的精度。 R-Net網(wǎng)絡(luò)結(jié)構(gòu)如下。
1.1.3 O-Net
在R-Net的基礎(chǔ)上,把得到的區(qū)域放大至48×48 的大小,作為 O-Net網(wǎng)絡(luò)的輸入,其他結(jié)構(gòu)跟P-Net類似,不同點(diǎn)在于O-Net的網(wǎng)絡(luò)通道數(shù)和層數(shù)增多了。
1.2 人臉識(shí)別模塊
為了減少移動(dòng)終端設(shè)備的模型計(jì)算量與參數(shù)量,本文在MobileNet V1[15]網(wǎng)絡(luò)模型的基礎(chǔ)上設(shè)計(jì)了Mo?bileFaceNet模型,它使用深度可分離卷積代替?zhèn)鹘y(tǒng)的平均池化操作。該模型同時(shí)采用PReLU作為激活函數(shù),在網(wǎng)絡(luò)開始階段使用快速下采樣策略,在后面幾層卷積層采用早期降維策略,在最后的線性全局深度卷積層后加入一個(gè)1×1 的線性卷積層作為特征輸出[16]。通過這些改進(jìn),模型可以獲得更高的準(zhǔn)確率及更快的速度。
1.2.1 深度可分離卷
深度可分離卷積則將這個(gè)過程分為兩個(gè)部分,首先進(jìn)行深度卷積操作,由于深度卷積在每個(gè)通道都與一個(gè)卷積核進(jìn)行卷積操作,因此輸出特征圖與輸入特征圖具有相同的通道數(shù)。假如當(dāng)輸入特征圖為10×10×3,經(jīng)過3×3×1×3的深度卷積核后會(huì)得到一個(gè)8×8×3的輸出特征圖,由于維度不變會(huì)導(dǎo)致能提取到的特征非常有限[17]。然后,使用逐點(diǎn)卷積操作,解決深度卷積存在的維度不變的問題。當(dāng)對(duì)上面深度卷積輸出的8×8×3的特征圖使用1×1×3的卷積核進(jìn)行卷積操作后,同樣會(huì)得到8×8×1的輸出特征圖。
1.2.2 網(wǎng)絡(luò)結(jié)構(gòu)
MobileFaceNet 的網(wǎng)絡(luò)結(jié)構(gòu)如表1 所示,它采用MobileNet 中的bottle?necks 作為構(gòu)建網(wǎng)絡(luò)的主要模塊,而且Mobile?FaceNet 中的 bottlenecks 的擴(kuò)展因子更小一點(diǎn)。
2 基于MobileFaceNet的人臉識(shí)別設(shè)計(jì)
整個(gè)人臉識(shí)別包括人臉數(shù)據(jù)采集、人臉檢測(cè)、人臉特征提取、人臉比對(duì)四個(gè)階段。
2.1 人臉數(shù)據(jù)采集
本文主要采用目前公認(rèn)的人臉數(shù)據(jù)庫進(jìn)行模型訓(xùn)練和測(cè)試。CASIA-WebFace是一款免費(fèi)開源的用于人臉識(shí)別的數(shù)據(jù)集,數(shù)據(jù)集包含了10 575個(gè)人的494 414張圖像,它的優(yōu)勢(shì)在于具有非常多的人臉特征,并且數(shù)據(jù)集里不會(huì)有重復(fù)特征。由于lfw數(shù)據(jù)集在非受限情況下的人臉識(shí)別效果檢測(cè)效果比較好,是目前人臉識(shí)別的常用測(cè)試集。該數(shù)據(jù)集包含5749人,共有13233張人臉圖片,因此本文使用lfw數(shù)據(jù)集作為模型的測(cè)試數(shù)據(jù)集。此外,在進(jìn)行人臉識(shí)別時(shí),構(gòu)建一個(gè)本地人臉庫,該數(shù)據(jù)庫中存放需要日常檢測(cè)的人臉,每個(gè)人一張人臉。
2.2 人臉檢測(cè)
本文中采用MTCNN算法進(jìn)行人臉檢測(cè)。首先加載MTCNN模型和人臉數(shù)據(jù)庫,然后讀取需要檢測(cè)的人臉圖片,并對(duì)圖片進(jìn)行預(yù)處理。接下來通過MTCNN三個(gè)模型調(diào)用后獲取人臉特征關(guān)鍵點(diǎn)和候選框,本文使用貪婪策略選擇人臉框,設(shè)置非極大值0.5作為判定是否保留該人臉圖片的依據(jù),最后使用仿射變化將MTCNN推理得到的人臉關(guān)鍵點(diǎn)中雙眼的坐標(biāo)校正為水平狀態(tài),然后旋轉(zhuǎn)角度和旋轉(zhuǎn)中心點(diǎn),再將MTCNN 推理的人臉框?qū)?yīng)旋轉(zhuǎn),從而得到校正后的人臉。
2.3 人臉特征提取
本文使用MobileFaceNet作為人臉識(shí)別特征提取的基礎(chǔ)網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。該模型體積較小,準(zhǔn)確率很高,非常適用于移動(dòng)設(shè)備。同時(shí),為了使訓(xùn)練的模型更加有效,本文采用ArcFace作為損失函數(shù)。
2.4 人臉比對(duì)識(shí)別
人臉比對(duì)是最后一個(gè)階段,將上一步模型提取到的人臉與自己建的本地人臉庫中的已有人臉進(jìn)行比對(duì),就能獲取與該人臉相似的每個(gè)人臉的概率及其對(duì)應(yīng)的姓名,程序會(huì)對(duì)得到的人臉比對(duì)結(jié)果進(jìn)行排序,最后選取排序后概率值最高的那張人臉圖片并表示該人臉圖片對(duì)應(yīng)的姓名,這里設(shè)置最小閾值為0.6。
3 實(shí)驗(yàn)
本文所有方法都是在pytorch框架下通過python 語言實(shí)現(xiàn)的,訓(xùn)練和測(cè)試步驟在NVIDIA GeForceGTX 1060 GPU上運(yùn)行。
首先,實(shí)驗(yàn)選擇CASIA-WebFace 人臉數(shù)據(jù)庫進(jìn)行訓(xùn)練,由于該數(shù)據(jù)庫數(shù)量比較大,鑒于硬件條件限制,因此選取了其中100人共7 157張人臉,其中90% 數(shù)據(jù)用于訓(xùn)練,10%的數(shù)據(jù)用于測(cè)試。訓(xùn)練總輪數(shù)epoch設(shè)置為160,訓(xùn)練初始學(xué)習(xí)率設(shè)置為0.001,訓(xùn)練中的bitch-size設(shè)置為12。使用隨機(jī)梯度下降策略優(yōu)化模型,動(dòng)量參數(shù)設(shè)置為 0.9。模型在訓(xùn)練集上的準(zhǔn)確率和誤差loss曲線如圖2和圖3所示。
其次,模型參數(shù)量表示網(wǎng)絡(luò)模型中包含的參數(shù)個(gè)數(shù),主要影響模型計(jì)算所需要的內(nèi)存,模型計(jì)算量主要衡量模型的復(fù)雜度。結(jié)果如表2所示,改進(jìn)的Mo?bileFaceNet的參數(shù)量和計(jì)算量都有一定程度的降低。
最后,依次傳入兩張人臉圖片分別進(jìn)行檢測(cè),其中左邊人臉圖片信息已經(jīng)存儲(chǔ)在本地人臉庫中,右邊人臉圖片信息沒有存儲(chǔ)在本地人臉庫中,測(cè)試結(jié)果如圖4,可以發(fā)現(xiàn)左邊的人臉能夠被檢測(cè)并顯示該人臉信息,而右邊則顯示“unknow”。
4 結(jié)論
通過對(duì)人臉檢測(cè)和人臉識(shí)別問題的研究,本文提出了一種基于MobileFaceNet的人臉識(shí)別方法。首先,使用opencv 進(jìn)行人臉采集,然后使用級(jí)聯(lián)網(wǎng)絡(luò)MTCNN進(jìn)行人臉檢測(cè)和處理,并使用MobileFaceNet 進(jìn)行人臉特征提取和人臉比對(duì),最后通過常見人臉數(shù)據(jù)庫和本地?cái)?shù)據(jù)庫可知該方法具有較好的人臉識(shí)別效果和網(wǎng)絡(luò)性能。
參考文獻(xiàn):
[1] 龔銳.基于深度學(xué)習(xí)的輕量級(jí)和多姿態(tài)人臉識(shí)別方法[D].武漢:武漢科技大學(xué),2020.
[2] 馬懷清.人臉識(shí)別技術(shù)在城市軌道交通售檢票系統(tǒng)的應(yīng)用研究[J].世界軌道交通, 2017(9):54-57.
[3] ZHANG K P,ZHANG Z P,LI Z F,et al.Joint face detection andalignment using multitask cascaded convolutional networks[J].IEEE Signal Processing Letters,2016,23(10):1499-1503.
[4] KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet classification with deep convolutional neural networks[C].26th Annual Conference on Neural Information Processing Systems,Lake Tahoe, 2012:1106-1114.
[5] SUN Y,WANG X G,TANG X O.Deeply learned face representa?tions are sparse, selective, and robust[C]//2015 IEEE Confer?ence on Computer Vision and Pattern Recognition (CVPR).Bos?ton,MA,USA.IEEE,2015:2892-2900.
[6] SIMONYAN K,ZISSERMAN A.Very deep convolutional net?works for large-scale image recognition[EB/OL]. [2022-10-20].2014:arXiv:1409.1556.http://arxiv.org/abs/1409.1556.pdf.
[7] SZEGEDY C,LIU W,JIA Y Q,et al.Going deeper with convolu?tions[C]//2015 IEEE Conference on Computer Vision and Pat?tern Recognition (CVPR).Boston,MA,USA.IEEE,2015:1-9.
[8] HE K M,ZHANG X Y,REN S Q,et al.Deep residual learning for image recognition[C]//2016 IEEE Conference on Computer Vi?sion and Pattern Recognition (CVPR). Las Vegas, NV, USA.IEEE,2016:770-778.
[9] HOWARD A G,ZHU M L,CHEN B,et al.MobileNets:efficient convolutional neural networks for mobile vision applications[EB/OL].[2022-10-20].2017:arXiv:1704.04861.http://arxiv.org/abs/1704.04861.pdf.
[10] ZHANG X Y,ZHOU X Y,LIN M X,et al.ShuffleNet:an ex?tremely efficient convolutional neural network for mobile de?vices[C]//2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition.Salt Lake City,UT,USA.IEEE,2018:6848-6856.
[11] SANDLER M,HOWARD A,ZHU M L,et al.MobileNetV2:in?verted residuals and linear bottlenecks[C]//2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition.Salt Lake City,UT,USA.IEEE,2018:4510-4520.
[12] MA N N,ZHANG X Y,ZHENG H T,et al.ShuffleNet V2:practi?cal guidelines for efficient CNN architecture design[C]//Com?puter Vision-ECCV 2018:15th European Conference,Munich,Germany,September 8-14,2018,Proceedings,Part XIV.ACM,2018:122-138.
[13] 尚曉銳.基于深度神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別校園門禁系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].重慶:重慶理工大學(xué),2020.
[14] 高峰.基于人臉特征分析的哨兵疲勞警示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)沙:湖南師范大學(xué),2019.
[15] HOWARD A G,ZHU M L,CHEN B,et al.MobileNets:efficient convolutional neural networks for mobile vision applications[EB/OL].[2022-10-20].2017:arXiv:1704.04861.http://arxiv.org/abs/1704.04861.pdf.
[16] 李航.基于MobileFaceNet的輕量化人臉識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].重慶:西南大學(xué),2020.
[17] 瞿照.移動(dòng)端人臉識(shí)別系統(tǒng)活體檢測(cè)實(shí)現(xiàn)技術(shù)[D].武漢:華中科技大學(xué),2021.
【通聯(lián)編輯:代影】