方國康 李俊 王垚儒
摘 要:針對ARM平臺上人臉識別實時性不強和識別率低的問題,提出一種基于深度學(xué)習(xí)的實時人臉識別方法。首先基于MTCNN人臉檢測算法設(shè)計了一種實時檢測并追蹤人臉的算法;然后在ARM平臺上基于深度殘差網(wǎng)絡(luò)(ResNet)設(shè)計人臉特征提取網(wǎng)絡(luò);最后針對ARM平臺的特點,使用Mali-GPU加速人臉特征提取網(wǎng)絡(luò)的運算,分擔(dān)CPU負(fù)荷,提高系統(tǒng)整體運行效率。算法部署在基于ARM的瑞芯微RK3399開發(fā)板上,運行速度達(dá)到22幀/s。實驗結(jié)果表明,與MobileFaceNet相比,該方法在MegaFace上的識別率提升了11個百分點。
關(guān)鍵詞:ARM平臺;人臉識別;人臉追蹤;殘差網(wǎng)絡(luò);Mali-GPU
中圖分類號:?TP183; TP391.4
文獻標(biāo)志碼:A
Real-time face recognition on ARM platform based on deep learning
FANG Guokang1,2, LI Jun1,2*, WANG Yaoru1,2
1.School of Computer Science and Technology, Wuhan University of Science and Technology, Wuhan Hubei 430065, China ;
2.Hubei Province Key Laboratory of Intelligent Information Processing and Real-time Industrial System (Wuhan University of Science and Technology), Wuhan Hubei 430065, China
Abstract:?Aiming at the problem of low real-time performance of face recognition and low face recognition rate on ARM platform, a real-time face recognition method based on deep learning was proposed. Firstly, an algorithm for detecting and tracking faces in real time was designed based on MTCNN face detection algorithm. Then, a face feature extraction network was designed based on Residual Neural Network (ResNet) on ARM platform. Finally, according to the characteristics of ARM platform, Mali-GPU was used to accelerate the operation of face feature extraction network, sharing the CPU load and improving the overall running efficiency of the system. The algorithm was deployed on ARM-based Rockchip development board, and the running speed reaches 22 frames per second. Experimental results show that the recognition rate of this method is 11 percentage points higher than that of MobileFaceNet on MegaFace.
Key words:?ARM platform; face recognition; face tracking; Residual neural Network (ResNet); Mali-GPU
0 引言
隨著計算機圖像處理技術(shù)的發(fā)展,基于計算機視覺的目標(biāo)識別在特征分析[1]和目標(biāo)監(jiān)控[2]等領(lǐng)域具有廣泛的應(yīng)用價值。人臉識別[3]是圖像處理中的一個重要研究領(lǐng)域,作為一種身份識別手段,因其直接性和靈活性等優(yōu)點,有著廣闊的市場應(yīng)用前景。人臉識別是通過人臉圖像確定人臉身份的過程,包括人臉檢測、人臉對齊、人臉特征提取和特征匹配4個過程[4]。近年來,隨著視頻監(jiān)控的大量普及,基于視頻的人臉識別技術(shù)越來越受到各界的重視。傳統(tǒng)人臉識別算法圍繞主成分分析(Principal Component Analysis,PCA)[5]、線性判別分析(Linear Discriminant Analysis,LDA)[6]和局部特征分析(Local Feature Analysis,LFA)[7]等展開,但這些算法利用到的特征為圖像淺層的特征,識別效果容易受到姿態(tài)轉(zhuǎn)動、光照變化、遮擋等因素的影響,存在著較大的局限性。同時,與靜態(tài)圖像相比,視頻中包含了更加豐富的信息[8],但視頻的識別難度大,實時性強,對算法和設(shè)備都有著更高的要求。
近年來,隨著人工智能的快速發(fā)展,深度學(xué)習(xí)在圖像識別領(lǐng)域取得了良好的效果[2]。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[9]通過模擬人的大腦結(jié)構(gòu),構(gòu)建多層非線性映射關(guān)系,擁有很強的非線性特征學(xué)習(xí)能力,能夠從大量樣本中學(xué)習(xí)到高維語義特征和深度特征。鑒于傳統(tǒng)人臉識別算法發(fā)展遇到了瓶頸,2014年,Taigman等[10]基于深度學(xué)習(xí)提出DeepFace,使用CNN來提取人臉深層抽象語義特征,利用特征的余弦相似度來比較人臉相似性,最終在LFW(Labeled Faces in Wild)[11]上的準(zhǔn)確率達(dá)到了95%,取得了很好的識別效果。
2015年,針對CNN在達(dá)到一定深度后,網(wǎng)絡(luò)梯度消失的問題,He等[12]提出了殘差網(wǎng)絡(luò)(Residual Neural Network,ResNet),與VGGNet(Visual Geometry Group Network)[13]、GoogleNet[14]等網(wǎng)絡(luò)相比,ResNet擁有更深的網(wǎng)絡(luò)結(jié)構(gòu),可達(dá)到150層,學(xué)習(xí)到的特征也更加深層抽象,分類能力也更強。
2016年,Zhang等[15]提出了MTCNN(Multi-Task Cascaded Convolutional Neural Network)人臉檢測算法,使用三個級聯(lián)CNN來檢測人臉位置和關(guān)鍵點,檢測人臉時由粗到細(xì),不僅有很好的檢測效果,而且速度很快,在Nvidia Titan X上的檢測速度達(dá)到了99幀/s(Frames Per Second, FPS);同時,MTCNN算法通過將人臉圖像對齊,提供了標(biāo)準(zhǔn)統(tǒng)一的人臉圖像,促進了后續(xù)人臉識別的研究。
2017年,Liu等[16]提出了SphereFace算法,針對損失函數(shù)進行了改進,能夠讓特征學(xué)習(xí)到更可分的角度特性。該算法使用64層的深度網(wǎng)絡(luò)訓(xùn)練,最終在LFW上的測試精度達(dá)到了99.4%,在MegaFace[17]上的準(zhǔn)確率達(dá)到了72.4%。
而后,Wang等繼續(xù)針對損失函數(shù)進行改進,相繼提出了NormFace[18]以及AMSoftmax(Additive Margin Softmax)[19]算法。
2018年,Deng等[20]提出了ArcFace(Additive Angular Margin Loss)算法,更加注重在角度空間里對類別進行區(qū)分。該算法使用了50層的ResNet進行訓(xùn)練,在LFW上的準(zhǔn)確率達(dá)到了99.8%,在MegaFace的準(zhǔn)確率達(dá)到了97.6%,是目前MageFace上排名第一的人臉識別算法。
相比傳統(tǒng)的人臉識別算法,基于深度學(xué)習(xí)的人臉識別算法在圖像人臉識別任務(wù)中取得了很好的結(jié)果,其識別精度在百萬級數(shù)據(jù)量的測試集上達(dá)到了97%,已經(jīng)能夠滿足大多數(shù)場景下實際使用需求。但這些算法在實際部署時,需要使用支持大量計算的服務(wù)器,成本很高。近年來,以手機為代表的嵌入式設(shè)備得到了飛速發(fā)展,其性能日新月異,嵌入式系統(tǒng)以其功能齊全、安全可靠、價格低廉、體積小、功耗低等優(yōu)勢,以貼近生活、以實際應(yīng)用為核心的特點,越來越廣泛地應(yīng)用到了各個領(lǐng)域。Mali-GPU[21]是ARM公司推出的高性能移動圖形處理器,主要應(yīng)用于基于ARM體系結(jié)構(gòu)的移動設(shè)備上。與桌面級GPU一樣,Mali-GPU專為執(zhí)行復(fù)雜的數(shù)字和幾何計算而設(shè)計,迎合了深度學(xué)習(xí)對大量數(shù)字計算的需求;不同的是,Mali-GPU主要針對移動設(shè)備,能耗更低,雖然計算能力相對較弱,但其移動便攜性卻是桌面級GPU無法比擬的。
隨著MobileNet[22]、ShuffleNet[23]等輕量化網(wǎng)絡(luò)的提出,基于嵌入式系統(tǒng)的深度學(xué)習(xí)研究也逐漸成為熱點。輕量化網(wǎng)絡(luò)的提出旨在精簡網(wǎng)絡(luò)參數(shù)、降低網(wǎng)絡(luò)計算的復(fù)雜度,但這會在一定程度上損失網(wǎng)絡(luò)的識別精度。2017年,Chen等[24]發(fā)布的深度學(xué)習(xí)編譯器TVM(End to End Deep Learning Compiler Stack)是一個端到端優(yōu)化堆棧,可以降低和調(diào)整深度學(xué)習(xí)工作負(fù)載,適應(yīng)多種硬件后端,針對不同的硬件設(shè)備生成底層優(yōu)化代碼。
在ARM平臺上,TVM能夠同時實現(xiàn)CPU和GPU上的優(yōu)化加速和負(fù)載均衡,這使得嵌入式設(shè)備也能在一定程度上執(zhí)行復(fù)雜計算。
本文從實際的部署成本這個角度出發(fā),針對ARM平臺設(shè)計了可以實時識別人臉的算法,同時使用ResNet來提取人臉特征,其識別精度能夠達(dá)到服務(wù)器級別的水平。
首先,本文在MTCNN算法的基礎(chǔ)上進行改進,設(shè)計了一種能夠?qū)崟r檢測并追蹤人臉的算法,通過對人臉進行追蹤,可以減小提取人臉特征的頻率,從而達(dá)到更快的運行速度;然后,在ARM平臺上使用ResNet提取人臉特征,并用Mali-GPU來對人臉特征的提取加速。實驗表明,本文基于ARM平臺設(shè)計的人臉識別模型能夠滿足實時識別需求,同時也能達(dá)到很高的識別精度。
1 基于深度學(xué)習(xí)的人臉識別框架
1.1 人臉檢測
人臉檢測是在圖像中找到人臉并返回人臉框大小和位置坐標(biāo)信息的過程。本文中使用MTCNN算法對人臉進行檢測。MTCNN是一種將多任務(wù)級聯(lián)卷積神經(jīng)網(wǎng)絡(luò)用于人臉檢測和對齊的人臉檢測算法。該算法總共分為三個階段:
第一階段,對圖像在不同尺度上生成若干候選框,通過一個簡單的CNNPNet(Proposal Net)來預(yù)測所有候選框的概率,然后對所有候選框非極大值抑制(Non-Maximum Suppression,NMS),消除多余候選框;
第二階段,使用一個較為復(fù)雜的CNN——RNet(Refine Net)對第一階段生成的候選框位置和大小進行回歸校正并預(yù)測其概率,然后對所有候選框使用NMS方法篩選;
第三階段,使用一個更為復(fù)雜的CNN——ONet(Output Net)對第二階段的預(yù)測框位置和大小進行回歸校正并使用NMS方法篩選,為每個預(yù)測框生成5個人臉關(guān)鍵點,分別為兩只眼睛、鼻尖和兩邊嘴角。MTCNN算法流程如圖1所示。
1.2 人臉對齊
人臉對齊是在圖像中檢測到人臉后,對人臉圖像進行處理的過程,處理后的圖像能夠更好地被識別。本文中根據(jù)MTCNN檢測到的5個人臉關(guān)鍵點對原始圖像進行仿射變換處理,對人臉部分圖像的大小和角度進行調(diào)整,調(diào)整后的圖像像素大小為112×112。
1.3 特征提取
人臉特征提取的目的是為了得到人臉中的深層抽象信息,這個抽象信息能夠?qū)⒉煌娜藚^(qū)分開,進而實現(xiàn)對人臉的判別。本文運用深度學(xué)習(xí)方法來提取人臉特征,采用了ResNet作為人臉識別網(wǎng)絡(luò),并使用ArcFace人臉識別算法來訓(xùn)練識別網(wǎng)絡(luò)。
ArcFace Loss是一種用于人臉識別的損失函數(shù),基于該損失函數(shù)訓(xùn)練得到人臉識別算法ArcFace。ArcFace的思想和AMSoftmax有一定的共同點,不同點在于:ArcFace在角度空間中最大化分類界限,而AMSoftmax是在余弦空間中最大化分類界限。ArcFace Loss基于傳統(tǒng)的Softmax Loss修改得到,式(1)是Softmax Loss損失函數(shù)。
L1=- 1 m ∑ m i=1 lg e W Tyi x i+ b yi ∑ n j=1 e W Tj x i+ b j
(1)
將式(1)中的偏置 b j設(shè)置為0,然后權(quán)重 W 和輸入 x 的內(nèi)積用下面式子表示。
W Tj x i=‖ W j‖‖ x i‖cos θ j
對權(quán)重 W j使用L2正則化處理,使得‖ W j‖=1,得到公式:
L2=- 1 m ∑ m i=1 lg e‖ x i‖cos θ yi e‖ x i‖cos θ yi+∑ n j=1, j≠yi e‖ x i‖cos θ j
(2)
然后對輸入 x i也用L2作正則化處理,同時再乘以一個縮放系數(shù)s;另一方面將cos θ yi用cos( θ yi+m)替換,這部分是ArcFace的核心,m為附加角。于是得到ArcFace算法的損失函數(shù)如下:
L3=- 1 m ∑ m i=1 lg es·cos( θ yi+m) es·cos( θ yi+m)+∑ n j=1, j≠yi es·cos θ j
(3)
ArcFace算法的整體流程如圖2所示。
1.4 特征匹配
提取到人臉特征后,需要在特征庫中匹配特征,以找到對應(yīng)的身份信息。普遍的方法是計算目標(biāo)人臉特征與特征庫中所有特征的相似度,根據(jù)相似度找到最符合的特征。本文中使用余弦相似度來表示特征的相似性,對于特征向量 m 和特征向量 n ,其余弦相似度為兩特征向量夾角α的余弦值:cosα= ?m · n? ‖ m ‖·‖ n ‖ ,cosα越大,相似度越高。
2 針對ARM平臺的人臉識別方法
2.1 總體系統(tǒng)結(jié)構(gòu)設(shè)計
深度學(xué)習(xí)模型的訓(xùn)練需要大量的計算,通常需要具有強大計算能力的服務(wù)器來訓(xùn)練。本文中的模型使用配備英偉達(dá)GPU的服務(wù)器來訓(xùn)練,模型訓(xùn)練完成后,應(yīng)用到嵌入式系統(tǒng)中。ARM端系統(tǒng)總體設(shè)計如圖3所示。
在本系統(tǒng)上,攝像頭負(fù)責(zé)采集視頻,交給CPU實時檢測并追蹤人臉;CPU檢測到人臉后,若GPU處于空閑狀態(tài),則將檢測到的人臉圖像對齊后傳送給GPU,在GPU上提取人臉的特征信息,CPU繼續(xù)檢測并跟蹤人臉;GPU上人臉特征提取完成后,到數(shù)據(jù)庫中與事先提取好的特征庫進行相似度匹配,若匹配到相應(yīng)身份信息,則交由CPU實時追蹤該目標(biāo),并不再對該目標(biāo)進行識別。當(dāng)一個目標(biāo)被正常識別后,將識別結(jié)果發(fā)送到遠(yuǎn)程服務(wù)器,進行相應(yīng)的業(yè)務(wù)邏輯處理。
由于提取人臉特征需要較大的資源開銷,系統(tǒng)無法對每幀檢測到的人臉都進行識別,所以本文通過對人臉的實時追蹤,對同一個目標(biāo)只需要識別一次,避免識別每幀圖像,進而提高系統(tǒng)運行的效率。同時,系統(tǒng)充分利用硬件設(shè)備的計算資源,使用CPU來檢測追蹤人臉,GPU提取人臉特征,CPU和GPU并行運行,互不干擾,系統(tǒng)運行起來流暢穩(wěn)定。
2.2 改進MTCNN用于人臉追蹤
本文中,人臉追蹤是對檢測到的人臉持續(xù)標(biāo)記的過程,即同一個體的人臉在不同的視頻幀中,具有相同的標(biāo)記。本文對MTCNN算法進行了改進,使得MTCNN算法能夠適用于人臉追蹤。原始的MTCNN算法包含了三個級聯(lián)CNN,這三個級聯(lián)網(wǎng)絡(luò)用于對人臉位置和關(guān)鍵點進行檢測,對于視頻序列,MTCNN算法不能實時追蹤每個目標(biāo)。在MTCNN三個級聯(lián)網(wǎng)絡(luò)的基礎(chǔ)上,通過添加第四個CNN——FNet(Feature Net)來實時提取每個目標(biāo)的特征信息,通過匹配視頻幀之間目標(biāo)的特征相似度,實現(xiàn)對每個目標(biāo)的實時追蹤。
FNet基于MobileFaceNet[25]進行設(shè)計。MobileFaceNet是一個輕量化的CNN,其中采用了可分離卷積(Depthwise Separable Convolution)[26]來精簡網(wǎng)絡(luò)參數(shù),使得網(wǎng)絡(luò)更加適用于移動設(shè)備。同時,MobileFaceNet還在MobileNetV2[27]的基礎(chǔ)上使用可分離卷積層代替全局平均池化層(Global Average Pooling),使網(wǎng)絡(luò)可以學(xué)習(xí)不同點的權(quán)重。FNet在MobileFaceNet的基礎(chǔ)上精簡了網(wǎng)絡(luò)結(jié)構(gòu),并加入了通道混洗(Channel Shuffle)[23]策略,通道混洗能夠加強通道之間的信息流通,增強網(wǎng)絡(luò)的信息表達(dá)能力。FNet網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。
人臉追蹤算法流程:
程序前
FO R 視頻中的每幀 DO
MTCNN算法檢測每幀圖像
取出所有檢測到的人臉,resize為112×112
FNet提取每幀人臉的128維特征
FO R 每張人臉 DO
計算與上一幀圖像中所有人臉特征的相
似度,并取最大值
IF? 最大相似度 > 0.6 DO
匹配相應(yīng)的兩張人臉為同一目標(biāo)
EL SE DO
將當(dāng)前人臉作為新目標(biāo)
程序后
2.3 ARM平臺下使用ResNet提取人臉特征
標(biāo)準(zhǔn)的深度網(wǎng)絡(luò)一般需要部署在高性能服務(wù)器或者桌面級計算機上,而對于計算能力弱的嵌入式設(shè)備,通常使用輕量化的深度網(wǎng)絡(luò),例如MobileNet、ShuffleNet等。輕量化的網(wǎng)絡(luò)雖然對設(shè)備性能要求更低,但識別精度也比較低。為了使ARM平臺上人臉識別精度得到更高層次的提升,本文將ResNet應(yīng)用到嵌入式設(shè)備上。
本文中使用了三個具有不同網(wǎng)絡(luò)深度的ResNet進行對比實驗,其網(wǎng)絡(luò)結(jié)構(gòu)如表2所示。
2.4 使用Mali-GPU實現(xiàn)網(wǎng)絡(luò)加速
Mali-GPU是ARM平臺下專門用于圖形和數(shù)字計算的處理器,與ARM CPU相比,Mali-GPU的數(shù)值計算能力更強。本文基于TVM進行開發(fā),使用Mali-GPU來完成ResNet復(fù)雜的網(wǎng)絡(luò)運算,速度比使用ARM CPU更快,同時不再占用CPU,CPU可以更好地用來檢測和追蹤人臉,系統(tǒng)整體運行速度更快。
為了利用Mali-GPU,TVM底層基開放運算語言(Open Computing Language,OpenCL)進行編譯,并使用開放基礎(chǔ)線性代數(shù)子程序庫(Open Basic Linear Algebra Subprograms,OpenBLAS)進行網(wǎng)絡(luò)運算??蚣軐ν馓峁┙y(tǒng)一的Python API,方便編程開發(fā)。
3 實驗結(jié)果分析
3.1 實驗設(shè)置及數(shù)據(jù)
本實驗訓(xùn)練模型的服務(wù)器運行64位的CentOS系統(tǒng),版本為7.5,配備了Intel Xeon E5 2620 v4 處理器,64GB內(nèi)存,4張Tesla V100顯卡,每張顯卡顯存32GB。
本文系統(tǒng)最終運行在ARM平臺上,設(shè)備為瑞芯微RK3399開發(fā)板,開發(fā)板配置如表3所示。
訓(xùn)練數(shù)據(jù)集為經(jīng)過人臉對齊以及降噪處理[20]之后的微軟名人數(shù)據(jù)集MS-Celeb-1M(MicroSoft One Million Celebrities in the Real World)[28],處理之后的訓(xùn)練集包含了85164個不同個體,共計約380萬張人臉圖像。
數(shù)據(jù)的校驗即判斷每兩張人臉圖像是否為同一人。本文使用的校驗數(shù)據(jù)集為LFW、CFP(Celebrities in Frontal Profile)[29]和AgeDB(Age Database)[30]。其中,LFW校驗集包含了6000對人臉圖像;CFP使用包含正面和側(cè)面的校驗數(shù)據(jù)CFP-FP(CFP with Frontal-Profile),共計7000對人臉圖像,同一人和不同人圖像的分別有3500對;AgeDB使用年齡差距為30歲的數(shù)據(jù)組(AgeDB-30),分別包含3000對相同人臉和不同人臉圖像,共計6000對。
測試數(shù)據(jù)集為MegaFace Challenge 1。MegeFace的測試分為干擾數(shù)據(jù)集Distractors和測試數(shù)據(jù)集FaceScrub:
干擾數(shù)據(jù)集包含了690572個不同個體約100萬張人臉圖像,測試數(shù)據(jù)集包含了530個不同個體約10萬張人臉圖像。
為了得到MegaFace最終測試結(jié)果,需要用待測試的模型提取所有干擾集和測試集人臉圖像的特征,然后由MegaFace工具包根據(jù)所有測試人臉圖像特征數(shù)據(jù)得到最終測試精度。
本實驗參數(shù)設(shè)置如下:使用ArcFace算法訓(xùn)練ResNet模型,縮放系數(shù)s設(shè)置為64,附加角度m設(shè)置為0.5;ResNet輸出特征維度設(shè)置為512。
3.2 結(jié)果分析
在人臉追蹤當(dāng)中,為了驗證FNet的有效性,本文使用Softmax損失函數(shù)訓(xùn)練MobileFaceNet和FNet各14萬次,訓(xùn)練過程中初始學(xué)習(xí)率設(shè)置為0.1,batch size設(shè)置為256,使用兩張顯卡訓(xùn)練。其效果對比如表4所示。
通過兩個網(wǎng)絡(luò)的對比分析可以看到,F(xiàn)Net在精度上要比MobileFaceNet略低,但差距較小;與MobileFaceNet相比,F(xiàn)Net的模型大小減小了45%,速度提升了75%,有較大提升。由于人臉追蹤實時性強,對FNet速度要求高。FNet在速度上滿足實時要求,同時在精度上也接近MobileFaceNet。
為了說明人臉追蹤的效果,本文對算法在單目標(biāo)和多目標(biāo)條件下進行了測試,測試數(shù)據(jù)為網(wǎng)絡(luò)上采集的包含人臉的視頻圖像,然后每隔2s抽取一張圖像作為效果圖,如圖5、6所示。算法每檢測到一個新目標(biāo),會對其從0開始編號。
從圖4和圖5中可以看到,在單目標(biāo)和多目標(biāo)條件下,同一目標(biāo)的序號一直保持不變,說明算法準(zhǔn)確地追蹤到了該目標(biāo)。算法在單目標(biāo)和多目標(biāo)的條件下具有良好的追蹤效果。
本文通過實驗對MobileFaceNet和具有不同深度的ResNet的識別效果進行了對比,訓(xùn)練中batch size統(tǒng)一設(shè)置為128,使用4塊GPU訓(xùn)練,初始學(xué)習(xí)率設(shè)置為0.1。ResNet均使用ArcFace算法訓(xùn)練14萬次。由于MobileFaceNet直接使用ArcFace算法訓(xùn)練難以收斂,所以MobileFaceNet先使用Softmax損失函數(shù)訓(xùn)練14萬次,然后使用ArcFace算法訓(xùn)練20萬次,效果對比如表5所示。
分別在Rockchip 3399 ARM CPU和Mali T860 GPU上測試四個網(wǎng)絡(luò)模型的運行耗時,表6為2000張人臉圖像下的平均耗時。
通過對四個網(wǎng)絡(luò)模型的精度和耗時對比可以看到,得益于輕量化的網(wǎng)絡(luò)結(jié)構(gòu),MobileFaceNet在模型大小和耗時均優(yōu)于ResNet,但在識別精度上,ResNet要優(yōu)于MobileFaceNet;隨著網(wǎng)絡(luò)的加深,ResNet的識別精度有明顯提高;四個網(wǎng)絡(luò)在ARM GPU上的耗時都比ARM CPU上低,說明使用ARM GPU加速人臉特征提取行之有效。
為了說明整套算法的實時性,本文在ARM平臺上對不同算法組合進行了速度測試。人臉特征提取采用ResNet-50,結(jié)果如表7所示。
從表7可以看出,MTCNN算法中, 最小檢測尺度min size設(shè)置為20px(pixel),本文中設(shè)置為100px,通過增大最小檢測尺度后,算法速度得到了大幅提升;同時,算法過濾掉了容易被誤檢和不易識別的小目標(biāo),增強了算法的魯棒性。MTCNN檢測完圖像后,直接使用ResNet提取人臉特征速度會很慢,原因是提取人臉特征過程比較耗時,頻繁地提取人臉特征會消耗大量時間和計算資源,使算法變慢。MTCNN加上人臉追蹤后,人臉被識別后會轉(zhuǎn)為追蹤,不需要頻繁地提取人臉特征,算法的速度有很大程度的提高,特別是使用GPU加速后,特征提取在GPU上運行更快,而且不再占用CPU,CPU可以全部用來檢測人臉,最終速度能接近實時水平。
4 結(jié)語
本文基于瑞芯微開發(fā)板設(shè)計和實現(xiàn)了實時人臉識別系統(tǒng),使用深度學(xué)習(xí)的方法來檢測人臉和提取人臉特征。首先,在MTCNN算法的基礎(chǔ)上添加了一個輕量化的CNN——FNet來分辨每個目標(biāo),實現(xiàn)了對每個目標(biāo)的實時追蹤;其次,在嵌入式系統(tǒng)上采用ResNet進行更深層的特征提取,提高了算法的識別率;最后,在開發(fā)板上使用Mali-GPU對人臉特征提取進行加速,并實現(xiàn)了CPU和GPU的負(fù)載均衡。實驗結(jié)果表明,本文方法在嵌入式系統(tǒng)上達(dá)到了較快的運行速度,并取得了比使用MobileFaceNet更高的識別率。
參考文獻
[1]?劉飛,張俊然,楊豪.基于深度學(xué)習(xí)的糖尿病患者的分類識別[J].計算機應(yīng)用,2018,38(S1):39-43. (LIU F, ZHANG J R, YANG H. Classification and recognition of diabetes mellitus based on deep learning [J]. Journal of Computer Applications, 2018, 38(S1): 39-43.)
[2]?熊詠平,丁勝,鄧春華,等.基于深度學(xué)習(xí)的復(fù)雜氣象條件下海上船只檢測[J].計算機應(yīng)用,2018,38(12):3631-3637. (XIONG Y P, DING S, DENG C H, et al. Ship detection under complex sea and weather conditions based on deep learning [J]. Journal of Computer Applications, 2018, 38(12): 3631-3637.)
[3]?孫勁光,孟凡宇.基于深度神經(jīng)網(wǎng)絡(luò)的特征加權(quán)融合人臉識別方法[J].計算機應(yīng)用,2016,36(2):437-443. (SUN J G, MENG F Y. Face recognition based on deep neural network and weighted fusion of face features [J]. Journal of Computer Applications, 2016, 36(2):437-443.)
[4]?KAZEMI V, SULLIVAN J. One millisecond face alignment with an ensemble of regression trees [C]// Proceedings of the 2014 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2014: 1867-1874.
[5]?DASHORE G, Dr. RAJ V C. An efficient method for face recognition using Principal Component Analysis (PCA) [J]. International Journal of Advanced Technology and Engineering Research, 2012, 2(2): 23-29.
[6]?CHAN L, SALLEH S, TING C. Face biometrics based on principal component analysis and linear discriminant analysis [J]. Journal of Computer Science, 2010, 6(7): 693-699.
[7]?PENEV P S, ATICK J J. Local feature analysis: a general statistical theory for object representation [J]. Network Computation in Neural Systems, 1996, 7(3): 477-500.
[8]?楊天明,陳志,岳文靜.基于視頻深度學(xué)習(xí)的時空雙流人物動作識別模型[J]. 計算機應(yīng)用,2018,38(3):895-899. (YANG T M, CHEN Z, YUE W J. Spatio-temporal two-stream human action recognition model based on video deep learning [J]. Journal of Computer Applications, 2018, 38(3): 895-899.)
[9]?LECUN Y L, BOTTOU L, BENGIO Y,et al. Gradient-based learning applied to document recognition [J]. Proceedings of the IEEE, 1998, 86(11): 2278-2324.
[10]?TAIGMAN Y, YANG M, RANZATO M, et al. DeepFace: closing the gap to human-level performance in face verification [C]// Proceedings of the 2014 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2014: 1701-1708.
[11]?HUANG G B, RAMESH M, BERG T, et al. Labeled faces in the wild: a database for studying face recognition in unconstrained environments [EB/OL]. [2018-12-05]. http://cs.umass.edu/~elm/papers/lfw.pdf.
[12]?HE K, ZHANG X, REN S, et al. Deep residual learning for image recognition [C]// Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2016: 770-778.
[13]?SIMONVAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition [J]. arXiv E-print, 2015: arXiv:1409.1556.?[EB/OL]. [2019-01-06]. https://arxiv.org/pdf/1409.1556.pdf.
[14]?SZEGEDY C, LIU W, JIA Y, et al. Going deeper with convolutions [C]// Proceedings of the 2015 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2015:1-9.
[15]?ZHANG K, ZHANG Z, LI Z, et al. Joint face detection and alignment using multitask cascaded convolutional networks [J]. IEEE Signal Processing Letters, 2016, 23(10): 1499-1503.
[16]?LIU W, WEN Y, YU Z, et al. SphereFace: deep hypersphere embedding for face recognition [C]// Proceedings of the 2017 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2017:6738-6746.
[17]?KEMELMACHER-SHLIZERMAN I, SEITZ S M, MILLER D,et al. The MegaFace benchmark: 1 million faces for recognition at scale [C]// Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2016: 4873-4882.
[18]???WANG F, XIANG X, CHENG J, et al. NormFace: L2 hypersphere embedding for face verification [J]. arXiv E-print, 2017: arXiv:1704.06369.?[EB/OL]. [2018-11-20]. https://arxiv.org/pdf/1704.06369.pdf.
[19]?WANG F, LIU W, LIU H, et al. Additive margin softmax for face verification [J]. arXiv E-print, 2018: arXiv:1801.05599.?[EB/OL]. [2019-01-08]. https://arxiv.org/pdf/1801.05599.pdf.
[20]?DENG J, GUO J, XUE N, et al. ArcFace: additive angular margin loss for deep face recognition [J]. arXiv E-print, 2019: arXiv:1801.07698.?[EB/OL]. [2018-10-28]. https://arxiv.org/pdf/1801.07698.pdf.
[21]?GRASSO I, RADOJKOVIC P, RAJOVIC N, et al. Energy efficient HPC on embedded SoCs: Optimization techniques for mali GPU [C]// Proceedings of the 2014 IEEE International Parallel and Distributed Processing Symposium. Washington, DC:IEEE Computer Society, 2014: 123-132.
[22]?HOWARD A G, ZHU M, CHEN B, et al. MobileNets: efficient convolutional neural networks for mobile vision applications [J]. arXiv E-print, 2017: arXiv:1704.04861.?[EB/OL]. [2019-01-15]. https://arxiv.org/pdf/1704.04861.pdf.
[23]?ZHANG X, ZHOU X, LIN M, et al. ShuffleNet: an extremely efficient convolutional neural network for mobile devices [J]. arXiv E-print, 2017: arXiv:1707.01083v1.?[EB/OL]. [2018-11-15]. https://arxiv.org/pdf/1707.01083v1.pdf.
[24]?? CHEN T, MOREAU T, JIANG Z, et al. TVM: an automated end-to-end optimizing compiler for deep learning [J]. arXiv E-print, 2018: arXiv:1802.04799.?[2019-01-20]. https://arxiv.org/pdf/1802.04799.pdf.
[25]?CHEN S, LIU Y, GAO X, et al. MobileFaceNets: efficient CNNs for accurate real-time face verification on mobile devices [J]. arXiv E-print, 2018: arXiv:1804.07573.?[EB/OL]. [2019-01-09]. https://arxiv.org/ftp/arxiv/papers/1804/1804.07573.pdf.
[26]?CHOLLET F. Xception: deep learning with depthwise separable convolutions [J]. arXiv E-print, 2016: arXiv:1610.02357v2.?[EB/OL]. [2018-12-29]. https://arxiv.org/pdf/1610.02357v2.pdf.
[27]?SANDLER M, HOWARD A, ZHU M, et al. MobileNetV2: inverted residuals and linear bottlenecks [J]. arXiv E-print, 2019: arXiv:1801.04381.?[EB/OL]. [2019-01-20]. https://arxiv.org/pdf/1801.04381.pdf.
[28]?GUO Y, ZHANG L, HU Y, et al. MS-Celeb-1M: a dataset and benchmark for large-scale face recognition [J]. arXiv E-print, 2016: arXiv:1607.08221.?[EB/OL]. [2019-01-20]. https://arxiv.org/pdf/1607.08221.pdf.
[29]?SENGUPTA S, CHEN J, CASTILLO C, et al. Frontal to profile face verification in the wild [C]// Proceedings of the 2016 IEEE Winter Conference on Applications of Computer Vision. Washington, DC: IEEE Computer Society, 2016: 1-9.
[30]??MOSCHOGLOU S, PAPAIOANNOU A, SAGONAS C, et al. ?AgeDB: the first manually collected, in-the-wild age database [C]// Proceedings of the 2017 IEEE Conference on Computer Vision and Pattern Recognition Workshops. Washington, DC: IEEE Computer Society, 2017: 1997-2005.