黃倫文
(安徽四創(chuàng)電子股份有限公司,安徽 合肥 230031)
人體生物特征識別技術(shù)包括人臉、指紋、手掌紋、虹膜、聲音、體型等,其中,人臉識別是最容易被用戶接受的身份認(rèn)證方式之一。目前,高精度的人臉驗(yàn)證模型多是以對計(jì)算資源要求高的深度卷積神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)建立的,這些模型使用大量的數(shù)據(jù)進(jìn)行訓(xùn)練,模型復(fù)雜且具有非常多的參數(shù),需要消耗大量計(jì)算資源,難以在移動設(shè)備和嵌入式設(shè)備中運(yùn)行。因此,低內(nèi)存占用、低計(jì)算資源消耗的輕量級神經(jīng)網(wǎng)絡(luò)成為當(dāng)前的研究熱點(diǎn)。
非輕量級人臉識別網(wǎng)絡(luò)具有較高的識別精度,但是參數(shù)量較大,如DeepFace、DeepFR等。本文提出了一種基于壓縮激活機(jī)制的輕量級人臉識別網(wǎng)絡(luò),減少了MobileFaceNet網(wǎng)絡(luò)頭部卷積核的數(shù)量,降低模型的復(fù)雜度;并且引入squeeze-and-excitation結(jié)構(gòu)[1],增加網(wǎng)絡(luò)的感受野和學(xué)習(xí)特征的能力,使得網(wǎng)絡(luò)具備從整個圖像更多地關(guān)注人臉關(guān)鍵部位的能力,進(jìn)而提高網(wǎng)絡(luò)的識別精度。
基于壓縮激活機(jī)制的輕量級人臉識別網(wǎng)絡(luò)(Squeeze and Excitation Mobile Face Net,SEMFN)結(jié)構(gòu)見表1。每一行代表網(wǎng)絡(luò)的一層,每一列的含義依次為:輸入流,具體操作,輸出通道數(shù)量,瓶頸層中擴(kuò)展的通道數(shù),卷積核的大小,卷積計(jì)算的步長,重復(fù)次數(shù),NL表示使用的非線性變換函數(shù),本文使用PReLU[2]作為非線性激活函數(shù)。
表1 基于壓縮激活機(jī)制的輕量級人臉識別網(wǎng)絡(luò)
72×128 bottleneck 128 256 3 1 2 prelu 72×128 linear GDConv 128 - 7 1 1 -12×128 linear conv 128 - 1 1 1 -
為了降低網(wǎng)絡(luò)參數(shù)數(shù)量,SEMFN頭部卷積核通道數(shù)降低為16,保證網(wǎng)絡(luò)精度的前提下,減少了網(wǎng)絡(luò)頭部的參數(shù),節(jié)省網(wǎng)絡(luò)的計(jì)算成本;SE-DW conv層具有Depthwise Convolution[3]和SEBlock[9]兩種計(jì)算,在網(wǎng)絡(luò)的最開始階段引入了輕量級注意力機(jī)制,使得網(wǎng)絡(luò)能夠更準(zhǔn)確地抓取輸入信息最值得注意的區(qū)域,精準(zhǔn)地學(xué)習(xí)輸入人臉特征。GDConv是指DepthwiseConvolution計(jì)算。此外,我們在瓶頸層使用了一個快速的下采樣策略,在最后幾個卷積層使用了提前降維策略,并在linear GDConv層之后使用線性1×1的卷積層作為特征輸出層。最終形成的模型參數(shù)量為80萬,相對于MobileFaceNet的99萬參數(shù)量,降低了近20%。
Sequeeze and Excitationblock是一種網(wǎng)絡(luò)子結(jié)構(gòu)[1],能夠方便地嵌入到其他網(wǎng)絡(luò)結(jié)構(gòu)中,其核心思想是:引入了輕量級注意力機(jī)制,通過網(wǎng)絡(luò)學(xué)習(xí)特征通道的權(quán)重,使得部分有效的特征通道具有較高的權(quán)重,其他通道具有低權(quán)重,促使模型自適應(yīng)抓取高權(quán)重通道特征,提高識別精度。
本文在網(wǎng)絡(luò)開始階段SE-DW Conv層引入了輕量級注意力機(jī)制,使得網(wǎng)絡(luò)能夠更準(zhǔn)確地抓取輸入信息最值得注意的區(qū)域,精準(zhǔn)地學(xué)習(xí)輸入人臉特征,具體結(jié)構(gòu)如圖1所示。
圖1 SE-DW conv層結(jié)構(gòu)圖
第一步,對輸入的通道進(jìn)行Squeeze壓縮操作,對輸入層進(jìn)行特征壓縮,將每個二維的特征通道變成一個實(shí)數(shù),這個實(shí)數(shù)具有全局的感受野,并且輸出的維度和輸入的特征通道數(shù)相匹配。Squeeze操作為全局平均池化,如公式(1):
式中,uk為輸入層數(shù)據(jù);k為輸入通道數(shù);W和H為輸入通道數(shù)據(jù)的寬和高;Fs為Squeeze操作結(jié)果,是大小為k的向量。
第二步,對Squeeze的結(jié)果進(jìn)行激活操作Excitation,如公式(2),通過參數(shù)為每個特征通道生成權(quán)重,用來顯示地建模特征通道間的相關(guān)性。
式中,W1和W2為全連接層操作;δ和σ為非線性激活函數(shù);W1的維度是k/r*k,r是縮放參數(shù),本文算法r=4。即,先對Squeeze的結(jié)果Fs進(jìn)行全連接層操作,并根據(jù)r降低維度,經(jīng)過ReLU非線性激活函數(shù)層處理;為了保持輸出維度k不變,再經(jīng)過W2全連接層操作,這里W2的維度是k*k/r;最后在經(jīng)過sigmoid函數(shù),得到激活后的結(jié)果Fe。
第三步,根據(jù)Excitation操作獲取的通道權(quán)重系數(shù)Fe,對輸入數(shù)據(jù)進(jìn)行加權(quán)處理Fw,如公式(3):
式中,uk為輸入層數(shù)據(jù);Fe為步驟二中求解的Excitation權(quán)重。通過乘法逐通道加權(quán)到輸入特征上,完成通道維度上的原始特征的重標(biāo)定。自適應(yīng)學(xué)習(xí)輸入通道的權(quán)重,尤其是引入了輕量級注意力機(jī)制,通過網(wǎng)絡(luò)學(xué)習(xí)特征通道的權(quán)重,促使模型自適應(yīng)抓取高權(quán)重通道特征,提高識別精度。
第四步,對輸入通道數(shù)據(jù)進(jìn)行depthwise卷積處理,其優(yōu)勢在于大幅降低卷積參數(shù)的數(shù)量,例如本文網(wǎng)絡(luò)的第二層,輸入層和輸出層大小均為112*112*16,卷積核大小為3*3時,普通卷積核參數(shù)為3*3*16*16=2304;對于depthwise卷積,則參數(shù)為3*3*16=144,大幅降低參數(shù)量。
BN是Batch Normalization層,將卷積層計(jì)算之后的數(shù)據(jù)歸一化,忽略整體數(shù)據(jù)的大小變化而保留卷積后數(shù)據(jù)之間的相對關(guān)系。Act.是激活函數(shù),此處采用了PReLU非線性變換。
第五步,對步第四步中獲得的depthwise卷積結(jié)果和第三步中獲得的加權(quán)結(jié)果進(jìn)行重組,具體方法為計(jì)算二者的內(nèi)積。
圖2 Bottleneck層結(jié)構(gòu)圖
Bottleneck是一種瓶頸層結(jié)構(gòu),可以幫助網(wǎng)絡(luò)綜合性地理解輸入信息,學(xué)習(xí)輸入特征。
第一塊和第三塊類似,由Conv1x1、BN、Act構(gòu)成。其中,Conv1x1是指卷積核大小為1的卷積層;如前文所述,BN是Batch Normalization層,將卷積層計(jì)算之后的數(shù)據(jù)歸一化;Act是激活函數(shù),這里采用了PReLU激活函數(shù),使該神經(jīng)元具備分層的非線性映射學(xué)習(xí)能力。
第 二 塊 由 DWConv3x3、BN、Act組 成, 其 中,DWConv3×3是指卷積核大小kernel_size=3的Depthwise ConvolutioBN。
SEMFN使用大量的Bottleneck瓶頸層作為網(wǎng)絡(luò)的主體結(jié)構(gòu),輸入信息可以在網(wǎng)絡(luò)內(nèi)部充分流動,使網(wǎng)絡(luò)有足夠的參數(shù)理解輸入信息并記錄信息特征。
CASIA-WebFace[10]數(shù)據(jù)集包含了10,575個人的494,414張圖像。本文使用CASIA-WebFace作為訓(xùn)練數(shù)據(jù),并使用人臉驗(yàn)證數(shù)據(jù)庫LFW[11]來檢查不同條件下算法的改進(jìn)情況,訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)沒有重疊。
(1)數(shù)據(jù)準(zhǔn)備:對每張圖片進(jìn)行雙線性插值縮放,將所有圖片統(tǒng)一為112×112的分辨率;將所有圖像顏色信息歸一化處理,即每個像素的顏色信息減去127.5,然后除以128。
(2)訓(xùn)練設(shè)置:由于GPU內(nèi)存有限,我們采用隨機(jī)梯度下降(SGD)作為優(yōu)化器,批量大小為恒定為128。與大模型相比,輕量級模型可以使用相同的GPU服務(wù)進(jìn)行相對大批量的訓(xùn)練,這也是DCNNs訓(xùn)練階段的一個常見但關(guān)鍵的實(shí)際問題。動量參數(shù)設(shè)置為0∶9,初始學(xué)習(xí)速率設(shè)置為0.1,并在28、38、48、58個時點(diǎn)周期性降低為前一步的0.1倍,以適應(yīng)訓(xùn)練計(jì)劃。
表2為引入Squeeze and Excitation結(jié)構(gòu)的實(shí)驗(yàn)對比分析,可見:模型參數(shù)量僅增加了128,識別率由98.91%提升至99.13%,證明了SE結(jié)構(gòu)能夠提升模型的識別精度。
表2 引入Squeeze and Excitation結(jié)構(gòu)實(shí)驗(yàn)對比
為了驗(yàn)證本文算法的性能,與當(dāng)前人臉識別領(lǐng)域主流的算法進(jìn)行了實(shí)驗(yàn)對比,包括:MobileNetV1/V2[3][4]、Light CNN-29[5]、ShuffleNet[6]、MobileID[7]、MobileFaceNet[8]、LMobileNetE[12]等, 結(jié) 果 詳 見 表3。Light CNN-29和LMobileNetE的識別精度較高,但是其訓(xùn)練數(shù)據(jù)集分別是4M和3.8M,模型參數(shù)數(shù)量分別是12.8M和26.7M,均明顯高于本文算法,難以應(yīng)用于移動平臺;MobileNetV1/V2的模型參數(shù)數(shù)量降低至3.2M和2.1M,但是其識別率均未達(dá)到99%,識別精度不高;MobileID參數(shù)量降低至1.0M,但是識別精度大幅降低;ShuffleNet使用逐點(diǎn)群卷積等方式進(jìn)一步降低了參數(shù)量,識別性能優(yōu)于MobileID。
表3 主流算法結(jié)果對比
MobileFaceNet的整體性能較好,包括三個不同的網(wǎng)絡(luò)類型,其中,MobileFaceNet的識別率得到99.28%,但是其網(wǎng)絡(luò)參數(shù)數(shù)量為0.99M,相對本文算法,識別率提升0.15%,參數(shù)量多了約20%;MobileFaceNet-M參數(shù)量0.92M,仍然較高;MobileFaceNet-S參數(shù)量降低至0.84M,識別率為99%。本文算法在模型復(fù)雜度和識別率上均優(yōu)于MobileFaceNet-S,是因?yàn)楸疚囊肓嘶趬嚎s激活機(jī)制的輕量級注意力機(jī)制,能夠有效地增加網(wǎng)絡(luò)的感受野和學(xué)習(xí)特征的能力,使得網(wǎng)絡(luò)具備從整個圖像更多地關(guān)注人臉關(guān)鍵部位的能力,進(jìn)而提高網(wǎng)絡(luò)的識別精度。
為了保持識別精度的同時進(jìn)一步降低輕量級人臉識別網(wǎng)絡(luò)的參數(shù)量,提高網(wǎng)絡(luò)的運(yùn)行速度,本文提出了一種基于壓縮激活機(jī)制的輕量級人臉識別網(wǎng)絡(luò),通過降低頭部卷積核通道數(shù)量降低了模型的復(fù)雜度;進(jìn)一步引入了squeeze-and-excitation結(jié)構(gòu),自適應(yīng)計(jì)算特征通道的權(quán)重,使得網(wǎng)絡(luò)在降低參數(shù)的同時,保持較高的識別精度。