胡佳玲, 施一萍, 謝思雅, 陳 藩, 劉 瑾
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620)
近年來(lái),人臉識(shí)別[1]一直是很多學(xué)者們研究的熱點(diǎn)問題。人臉識(shí)別算法目前主要分為兩種:一種是機(jī)器學(xué)習(xí)算法,本質(zhì)主要是通過(guò)設(shè)定人臉特征再結(jié)合Adaboost等分類算法加以實(shí)現(xiàn);第二種是近年來(lái)比較流行的結(jié)合深度學(xué)習(xí)[2]的人臉識(shí)別算法?;谏疃葘W(xué)習(xí)的人臉識(shí)別算法一般采用卷積神經(jīng)網(wǎng)絡(luò)(convolution neural network,CNN)來(lái)實(shí)現(xiàn)。發(fā)展至今,基于CNN[3]的人臉識(shí)別算法在準(zhǔn)確率上已經(jīng)趨于100 %,并且有越來(lái)越多效果很好的網(wǎng)絡(luò)相續(xù)出現(xiàn)。2014年,香港中文大學(xué)的團(tuán)隊(duì)利用深度學(xué)習(xí)人臉識(shí)別算法取得了準(zhǔn)確率為97.45 %的好成績(jī);準(zhǔn)確率的提升往往伴隨著CNN深度和復(fù)雜度的增加,在提高精度的同時(shí),意味著網(wǎng)絡(luò)深度、參數(shù)和計(jì)算量的大幅增加,訓(xùn)練時(shí)間也相對(duì)延長(zhǎng)。例如Google Inception Net有22層,且ResNet達(dá)到了152層。其次,隨著小型設(shè)備的應(yīng)用不斷廣泛,越來(lái)越多的研究不僅僅局限于靠強(qiáng)大的服務(wù)器去訓(xùn)練網(wǎng)絡(luò)。
針對(duì)上述問題,本文選用了一種輕量級(jí)MobileNet[4]模型,將改進(jìn)的MoblieNet網(wǎng)絡(luò)和區(qū)域生成網(wǎng)絡(luò)(region proposal network,RPN)[5]融合構(gòu)成一個(gè)用于人臉識(shí)別的專用網(wǎng)絡(luò),并對(duì)其進(jìn)行了改進(jìn),有效地提高了網(wǎng)絡(luò)的運(yùn)行速度,降低了網(wǎng)絡(luò)的參數(shù)量。最后用Jetson Nano嵌入式開發(fā)板作為訓(xùn)練的載體,測(cè)試網(wǎng)絡(luò)的具體性能,并應(yīng)用到實(shí)際場(chǎng)景中。
如圖1所示,為本文設(shè)計(jì)構(gòu)建的人臉識(shí)別模型,系統(tǒng)的硬件采用嵌入式開發(fā)板Jetson Nano,將搭建好的改進(jìn)型輕量級(jí)人臉識(shí)別網(wǎng)絡(luò)在開發(fā)板上訓(xùn)練好,并投入使用。
圖1 人臉識(shí)別系統(tǒng)模型
本文設(shè)計(jì)的模型具體從兩個(gè)方面進(jìn)行改進(jìn):首先,將MobileNet網(wǎng)絡(luò)中SoftMax[6]層改用L-SoftMax[7]層替換;其次,網(wǎng)絡(luò)融合入RPN,提高網(wǎng)絡(luò)的識(shí)別效率。
2017年,Google提出MobileNet深度學(xué)習(xí)網(wǎng)絡(luò),與傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)不同在于,MobileNet網(wǎng)絡(luò)采用深度可分離卷積[8](depthwise separable convolution),即把傳統(tǒng)卷積分為深度卷積(depthwise convolution)和逐點(diǎn)卷積(pointwise convolution)。深度可分離卷積可以在保證網(wǎng)絡(luò)不損失大量精確度的情況下大大降低網(wǎng)絡(luò)參數(shù)和計(jì)算量。卷積的具體分解過(guò)程如圖2所示。
圖2 傳統(tǒng)卷積、深度卷積和逐點(diǎn)卷積
如圖2(a)傳統(tǒng)卷積所示:卷積核channel=輸入特征矩陣channel;輸出特征矩陣channel=卷積核個(gè)數(shù)。而圖2(b)中的深度卷積:卷積核channel=1;輸入特征矩陣channel=卷積核個(gè)數(shù)=輸出特征矩陣channel。
1×1的卷積核在深度可分離卷積中被稱為逐點(diǎn)卷積。特征映射F的大小為(DF,DF,M),K為(DK,DK,M,N),如圖2(a)傳統(tǒng)卷積所示。其輸出的特征映射G大小為(DG,DG,N)。傳統(tǒng)卷積的計(jì)算公式如下
(1)
傳統(tǒng)卷積的計(jì)算量為DK·DK·M·N·DF·DF?,F(xiàn)將傳統(tǒng)卷積(DK,DK,M,N)進(jìn)行拆分,拆分為深度卷積和逐點(diǎn)卷積:
1)濾波由深度卷積負(fù)責(zé),尺寸為(DK,DK,1,M),如圖2(b)的深度卷積所示,輸出的特征為(DG,DG,M)。
2)轉(zhuǎn)換通道由逐點(diǎn)卷積負(fù)責(zé),尺寸為(1,1,M,N),如圖2(c)的逐點(diǎn)卷積所示,得到最終的輸出為(DG,DG,M)。深度卷積的卷積公式為
(2)
DK·DK·M·DF·DF+M·N·DF·DF
(3)
因此,深度可分離卷積與傳統(tǒng)卷積比值為
(4)
一般情況下,N的取值較大。假設(shè)用的卷積核為3×3大小,則這里計(jì)算量大約會(huì)減少9倍左右,訓(xùn)練網(wǎng)絡(luò)的時(shí)間也大大縮短。
雖然,MobileNet的計(jì)算量比傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)高許多倍,但其檢測(cè)準(zhǔn)確率低于層數(shù)較多的卷積神經(jīng)網(wǎng)絡(luò)。MobileNet在訓(xùn)練時(shí)使用SoftMax分類器。但研究發(fā)現(xiàn)采用L-SoftMax的分類效果比SoftMax更好。最初,人臉識(shí)別采用SoftMax Loss方法,但實(shí)驗(yàn)發(fā)現(xiàn),這種方式只能確保讓其組與組間具有區(qū)分性,而對(duì)組內(nèi)的約束是很小的。所以,鑒于此,L-SoftMax增加了一個(gè)代表分類間隔的超參數(shù)m,它決定了接近地面真值類的強(qiáng)度,產(chǎn)生一個(gè)角邊距,使得學(xué)習(xí)特征變得更加緊湊和良好分離。
SoftMax Loss函數(shù)公式如式(5)所示
(5)
式中sj為SoftMax函數(shù),代表屬于各個(gè)類別的概率。
而L-SoftMax Loss的公式如下
(6)
式中D(θ)要求是單調(diào)遞減函數(shù),D(π/m)應(yīng)等于cos(π/m)。m是一個(gè)與分類裕度密切相關(guān)的整數(shù),隨著m的增大,分類裕度變大,學(xué)習(xí)目標(biāo)也變難。而這種方式,會(huì)迫使模型學(xué)習(xí)到類間距離更大,而類內(nèi)距離更小的特征。因此,會(huì)使得分類效果更清晰。這一點(diǎn)在迭代次數(shù)多的情況下效果會(huì)更明顯。表1為改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)。
表1 改進(jìn)型MobileNet網(wǎng)絡(luò)結(jié)構(gòu)
為了縮小與深層卷積神經(jīng)網(wǎng)絡(luò)在識(shí)別率上的差距,本文還加入了RPN,用來(lái)確定人臉檢測(cè)窗口。
RPN原理上是在卷積神經(jīng)網(wǎng)絡(luò)的卷積層后生成的特征圖上產(chǎn)生建議選區(qū)。因其巧妙地采用了Anchor機(jī)制,所以,可以產(chǎn)生多尺度長(zhǎng)寬比的建議選區(qū)。RPN網(wǎng)絡(luò)的具體實(shí)現(xiàn)過(guò)程如下:首先,用一個(gè)小網(wǎng)絡(luò)在特征圖上進(jìn)行滑動(dòng),一般的滑動(dòng)窗口設(shè)置為3×3大小。這個(gè)滑動(dòng)窗口會(huì)做全卷積操作,并根據(jù)最后卷積層的通道數(shù),生成一個(gè)對(duì)應(yīng)數(shù)目的向量。其次,將向量連向分類層,分類層將判斷該區(qū)域是場(chǎng)景中的哪部分,并給出具體的分?jǐn)?shù)。原Fast R-CNN[9]一共設(shè)置了9種Anchor。由于人臉的特殊性,一般人臉的比例是固定的。本文對(duì)LFW(labeled faces in the wild)中人臉比例情況做了粗略統(tǒng)計(jì),結(jié)果表明,人臉的長(zhǎng)寬比基本都是1︰1和2︰1,大部分在1.5左右。所以,本文的Anchor比例設(shè)置為1︰1和2︰1,尺寸和原RPN—樣,都采用3種尺寸,所以,一個(gè)3×3的區(qū)域只需要產(chǎn)生6個(gè)Anchor,達(dá)到了減少計(jì)算量的目的,同時(shí),加入的RPN也提升了本文算法的識(shí)別率。
如圖3,第一部分為MobileNet的卷積層,第二部分為加入的RPN,第三部分為全卷積層后對(duì)原SoftMax改進(jìn)為L(zhǎng)-SoftMax。改進(jìn)后的算法為MobileNet-L+RPN算法。
圖3 整體網(wǎng)絡(luò)結(jié)構(gòu)
本次實(shí)驗(yàn)采用的人臉數(shù)據(jù)庫(kù)為L(zhǎng)FW,其中的圖片均來(lái)自網(wǎng)絡(luò),共包含13 233張人臉圖片,5 749位名人,每位名人有一張或多張人臉圖片且都被標(biāo)注了姓名和編號(hào)。
4.1.1 數(shù)據(jù)集分類情況
針對(duì)LFW數(shù)據(jù)集,選取10 000張用于訓(xùn)練集,3 000張用于驗(yàn)證集。除此外,本文還準(zhǔn)備了1 000張測(cè)試集,測(cè)試集來(lái)源于網(wǎng)絡(luò)人臉和現(xiàn)實(shí)拍照,包括身邊的同學(xué)、朋友等。
4.1.2 圖像預(yù)處理
1)灰度化[10]:為使后續(xù)的圖像計(jì)算量變少,本文預(yù)先對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一的灰度化處理,采用的是傳統(tǒng)的灰度化處理方法。
2)直方圖均衡化[11]:增強(qiáng)灰度圖像的對(duì)比度,減少不相關(guān)因素的影響。
Jetson Nano支持的系統(tǒng)為Ubuntu系統(tǒng),本次安裝的版本為較新的Ubuntu 18.04.2 LTS。軟件部分采用Python 3.6版本下的Anaconda,采用Pytorch框架。網(wǎng)絡(luò)訓(xùn)練參數(shù)的設(shè)置如下:初始學(xué)習(xí)率為0.001,學(xué)習(xí)策略采用按需調(diào)整學(xué)習(xí)率,權(quán)重衰減為0.000 4。
本文比較了3種網(wǎng)絡(luò)模型:CNN,MobileNet,MobileNet-L+RPN。首先在帶有GPU服務(wù)器的電腦設(shè)備上進(jìn)行模型的評(píng)價(jià),實(shí)驗(yàn)數(shù)據(jù)如圖4所示:三種模型迭代15 000次的準(zhǔn)確率折線圖,從圖中可以看出:采用CNN在迭代4 000~5 000次時(shí),準(zhǔn)確率趨于收斂,準(zhǔn)確率最終穩(wěn)定在98 %左右。MobileNet在迭代10 000左右趨于收斂,準(zhǔn)確率穩(wěn)定在95 %左右。采用MobileNet(L-SoftMax)+RPN模型在迭代8 000次左右趨于收斂,準(zhǔn)確率最終穩(wěn)定在97 %左右。對(duì)比傳統(tǒng)的CNN,準(zhǔn)確率還是有所下降。但比原MobileNet網(wǎng)絡(luò),準(zhǔn)確率提高了2個(gè)百分點(diǎn)。因此,本文提出的改進(jìn)MobileNet網(wǎng)絡(luò)切實(shí)可行,且在準(zhǔn)確率上較原MobileNet網(wǎng)絡(luò)有提升。雖然沒有達(dá)到和傳統(tǒng)CNN一樣或者更高的精確度,但這對(duì)于大大提升計(jì)算速度和大大降低網(wǎng)絡(luò)參數(shù)而言,在性能上有了很大的提升。
圖4 三種模型準(zhǔn)確率比較折線圖
三個(gè)模型試驗(yàn)結(jié)果對(duì)比如表2所示,由表2可以看出,本文提出的模型在降低網(wǎng)絡(luò)參數(shù)和訓(xùn)練時(shí)間的同時(shí),識(shí)別的準(zhǔn)確率較原MobileNet網(wǎng)絡(luò)也有提升。
表2 三種模型參數(shù)量及識(shí)別準(zhǔn)確率比較
其次,本文又將原MobileNet模型和改進(jìn)后的輕量級(jí)模型分別在Jetson Nano嵌入式平臺(tái)上進(jìn)行測(cè)試,最終得到的數(shù)據(jù)如表3所示。由表3可以看出,本文提出的模型在運(yùn)行速度上比原MobileNet快了21.3 %左右。
表3 模型在Jetson Nano上運(yùn)行速度對(duì)比 ms
本文提出了一種輕量級(jí)人臉識(shí)別算法,對(duì)MobileNet網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)層的改進(jìn),并融合RPN,在提升網(wǎng)絡(luò)識(shí)別速度的同時(shí),網(wǎng)絡(luò)的準(zhǔn)確率也得到提升,使得網(wǎng)絡(luò)能夠在小型計(jì)算平臺(tái)上得以應(yīng)用(本文以Jetson Nano為例)。實(shí)驗(yàn)結(jié)果表明:在LFW數(shù)據(jù)庫(kù)和自建的數(shù)據(jù)庫(kù)上訓(xùn)練的人臉識(shí)別準(zhǔn)確率達(dá)到了97.54 %。同時(shí),本文將改進(jìn)的MobileNet人臉識(shí)別運(yùn)用到具體的Jetson Nano設(shè)備上,可構(gòu)成完整的識(shí)別系統(tǒng),運(yùn)用于多個(gè)現(xiàn)實(shí)場(chǎng)景。如室外安防、打卡系統(tǒng)、查寢系統(tǒng)等。