劉成攀, 吳 斌, 楊 壯
(1.西南科技大學(xué) 信息工程學(xué)院,四川 綿陽 621010;2.特殊環(huán)境機(jī)器人技術(shù)四川省重點(diǎn)實(shí)驗(yàn)室,四川 綿陽 621010)
視頻動(dòng)態(tài)人臉識(shí)別不需要識(shí)別對(duì)象配合,具有體驗(yàn)更好、準(zhǔn)確率更高、響應(yīng)速度更快、實(shí)時(shí)反饋等特點(diǎn)。但同時(shí),由于它是非限定情況下的人臉識(shí)別,外界非可控的復(fù)雜干擾因素會(huì)造成人臉識(shí)別精準(zhǔn)度急劇下降,不能適應(yīng)實(shí)際條件下的任務(wù)需求。
近年來,涌現(xiàn)出許多基于深度學(xué)習(xí)的人臉識(shí)別方法,而損失函數(shù)是深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)中的重要部分,對(duì)其的設(shè)計(jì)與優(yōu)化也一直是研究熱點(diǎn)。目前使用最為廣泛的損失函數(shù)是SoftMax Loss,其表達(dá)簡(jiǎn)潔,沒有其他超參數(shù),最早在DeepID1中使用,而后在DeepFace等其他方法中也繼續(xù)沿用。SoftMax Loss對(duì)提取的特征分別映射到區(qū)間內(nèi),根據(jù)所得的概率完成圖像分類任務(wù)[1]。但在人臉識(shí)別任務(wù),需要計(jì)算未知類別樣本的相似度,此時(shí)僅僅保證已知類別分類正確是不夠的。為了更好地泛化性能,還需要諸如類內(nèi)樣本差異小和類間樣本差異大這樣的良好性質(zhì),而這些并不是SoftMax Loss的直接優(yōu)化目標(biāo)。
鑒于SoftMax的局限性,有必要針對(duì)它進(jìn)行優(yōu)化約束類內(nèi)距離,擴(kuò)大類間距離。為了加強(qiáng)網(wǎng)絡(luò)模型對(duì)特征的識(shí)別度,ECCV 2016上提出的中心損失(centre Loss)[2],在結(jié)合SoftMax損失和中心損失后,類內(nèi)緊湊性顯著增強(qiáng),但是僅僅使用SoftMax損失作為類間約束是不夠的,因?yàn)樗皇枪膭?lì)特征的可分離性。因此,Deng J等人提出邊際損失Marginal Loss與SoftMax Loss聯(lián)合監(jiān)督的方式[3]。
本文受SoftMax Loss,Center Loss以及Marginal Loss啟發(fā),提出了一種聯(lián)合損失(Joint Loss)函數(shù),并且在網(wǎng)絡(luò)模型中加入恒等映射模塊[4],實(shí)驗(yàn)表明算法更具有魯棒性。
將Resnet34[5]作為基礎(chǔ)網(wǎng)絡(luò)進(jìn)行優(yōu)化。去掉第一個(gè)卷積層后的最大池化層,減少池化造成的位置信息缺失??s小第一個(gè)卷積層的卷積核尺寸,由 7×7 變?yōu)?3×3,步進(jìn)由2變?yōu)?,縮小卷積核可以獲取更多人臉特征信息。改進(jìn)后的Resnent34_new結(jié)構(gòu)如圖1,其中,卷積核大小為3×3,通道數(shù)為64,步長(zhǎng)為1。
圖1 Resnet34_new神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
改進(jìn)所使用的殘差(residual)模塊,為使輸出分布穩(wěn)定進(jìn)而能夠在較大學(xué)習(xí)率下加快收斂,在模塊的輸入處增加了一個(gè)批標(biāo)準(zhǔn)化層(batch normalization)[6]如圖2。
圖2 改進(jìn)的殘差模塊
結(jié)合三種損失函數(shù)特點(diǎn),Center Loss用于加強(qiáng)類內(nèi)距,SoftMax Loss和Joint Loss用于改進(jìn)類間的分離度,具體來說SoftMax負(fù)責(zé)保證分類的正確率,而Joint Loss優(yōu)化類間距。整個(gè)損失公式如下
L=LS+αLC+βLJ
(1)
式中α和β為調(diào)整Center Loss和Joint Loss的超參數(shù)。
Joint Loss公式如下
(2)
通過Center Loss得到的類中心位置,Joint Loss再篩選所有基于閾值的類中心對(duì),對(duì)于距離小于閾值的類中心對(duì),會(huì)相應(yīng)地加入懲罰因子到損失值中。其中,K是一個(gè)批次的類數(shù)目,ci和cj分別為第i類和第j類的中心,M代表指定的最小邊距。在每一個(gè)訓(xùn)練批次里,Center Loss根據(jù)下式更新類中心
(3)
(4)
式中γ為學(xué)習(xí)率,t為迭代次數(shù),δ為一個(gè)條件函數(shù),如果條件滿足則δ=1,如果條件不滿足則δ=0。
在神經(jīng)網(wǎng)絡(luò)中,通過聯(lián)合的損失函數(shù)學(xué)習(xí)步驟如下:輸入數(shù)據(jù)為輸入訓(xùn)練樣本{fi},初始化的卷積層參數(shù)θC,最后的全連接層參數(shù)W,初始化的n類中心{cj|j=1,2,3,…,n-1,n},學(xué)習(xí)率μt,超參數(shù)α和β,類中心學(xué)習(xí)率γ和迭代次數(shù)t←1。輸出為參數(shù)θC。對(duì)所有樣本訓(xùn)練時(shí)會(huì)循環(huán)以下步驟:
6)t←t+1。
側(cè)臉和正臉之間存在一個(gè)映射,并且它們?cè)谌四槺硎咎卣骺臻g中的差異能夠用恒等映射聯(lián)系起來。通過側(cè)臉的特征獲取映射后的正臉特征,從而提高神經(jīng)網(wǎng)絡(luò)在側(cè)臉的識(shí)別效果。假定正面人臉的數(shù)據(jù)為xf,側(cè)面人臉的數(shù)據(jù)為xp,把卷積神經(jīng)網(wǎng)絡(luò)看作是一個(gè)函數(shù)φ(x),要尋找一個(gè)映射函數(shù)Mg,使得Mgφ(xp)≈φ(xf)。如式(5),式中γ(xp)∈[0,1],類似于一個(gè)門控機(jī)制,如果說圖片是正臉,則γ(x)=0
φ(gXp)=Mgφ(Xp)=φ(Xp)+γ(Xp)R(φ(Xp))
≈φ(Xf)
(5)
如圖3,在原始網(wǎng)絡(luò)的特征向量輸出后,加上了殘差恒等映射的分支,對(duì)原始的特征表示進(jìn)行映射,得到最后的表示。殘差恒等分支分為兩個(gè)部分,一個(gè)是殘差分支,一個(gè)是頭部旋轉(zhuǎn)估計(jì)分支。
圖3 恒等映射模塊
殘差分支為上圖Residual分支,用來產(chǎn)生式中的R(φ(X)),其中方塊1,2為用Mish激活函數(shù)的全連接層,這個(gè)分支是與主干網(wǎng)絡(luò)分開訓(xùn)練的,訓(xùn)練的目的是為了減少側(cè)臉與其匹配的正臉的歐氏距離。具體如式(6),ΘR表示R的參數(shù)
(6)
使用頭部旋轉(zhuǎn)估計(jì)器來計(jì)算上式中的Y(x),即當(dāng)前圖片相對(duì)于正臉的偏離角度。首先用人臉標(biāo)準(zhǔn)對(duì)齊得到人臉關(guān)鍵點(diǎn),然后使用EPnP等算法計(jì)算人臉旋轉(zhuǎn)的角度,得到旋轉(zhuǎn)的角度后,使用函數(shù)σ(4/π)y-1)來把正的角度值映射到0~1之間,σ是Sigmoid函數(shù),如果人臉轉(zhuǎn)的角度超過45°,這個(gè)γ(x)的置信度會(huì)迅速達(dá)到1。
選擇先端對(duì)端訓(xùn)練再重新訓(xùn)練恒等映射模塊的方法,先共同訓(xùn)練恒等映射模塊和卷積神經(jīng)網(wǎng)絡(luò),再使用正臉—側(cè)臉對(duì)訓(xùn)練恒等映射模塊。
采用訓(xùn)練步數(shù)學(xué)習(xí)率逐漸衰減的學(xué)習(xí)策略,在初始時(shí)學(xué)習(xí)率設(shè)置為0.1,分別在 40 000步和60 000步將學(xué)習(xí)率調(diào)整為原有的0.1倍,批量大小(batch-size)設(shè)置為128,使用Adam[7]來作為網(wǎng)絡(luò)優(yōu)化方法。對(duì)損失函數(shù)進(jìn)行L2正則化處理防止過擬合[8],如式(7)
(7)
式中J0為原始損失函數(shù),λ為權(quán)重衰減系數(shù)(設(shè)置λ為0.000 2)
在實(shí)驗(yàn)中,通過不斷嘗試去尋找較為合適的參數(shù)以達(dá)到網(wǎng)絡(luò)模型的最佳效果,具體方法為控制變量法。例如先將α設(shè)置為8,β設(shè)置為6,M分別取0,50,100,150,200,250,300,350,400,訓(xùn)練后在LFW上作人臉驗(yàn)證,其準(zhǔn)確率如表1。
表1 α設(shè)置為8,β設(shè)置為6,M不同取值下準(zhǔn)確率變化
如表1可以看出,在M設(shè)置為250時(shí)比其他數(shù)值設(shè)置能得到更高準(zhǔn)確率。再將M設(shè)置為250,α設(shè)置為8,將β分別取1到10,訓(xùn)練后LFW上作人臉驗(yàn)證,對(duì)比發(fā)現(xiàn)β設(shè)置為6時(shí),比其他數(shù)值設(shè)置能得到更高的準(zhǔn)確率。最后將M設(shè)置為250,β設(shè)置為6,將α分別取1到10,訓(xùn)練后在LFW上作人臉驗(yàn)證,尋找α的最佳設(shè)置。
通過實(shí)驗(yàn),發(fā)現(xiàn)α設(shè)置為8,β設(shè)置為6,M設(shè)置為250,能較好發(fā)揮網(wǎng)絡(luò)模型的性能。
首先選擇LFW,YTF,SLLFW數(shù)據(jù)集作為人臉驗(yàn)證實(shí)驗(yàn)數(shù)據(jù)集。LFW為非限定條件下的人臉數(shù)據(jù)集,共13 000多張人臉圖片。隨機(jī)選取其中圖像,組成6 000對(duì)人臉對(duì),其中正、負(fù)樣本各占50 %。YTF數(shù)據(jù)集共1 595個(gè)身份,每人大概2個(gè)視頻。從中隨機(jī)選取5 000對(duì)視頻,共計(jì)分為10個(gè)部分,每部分都包含同標(biāo)簽人的視頻對(duì)和不同標(biāo)簽人的視頻對(duì),均為250個(gè)。SLLFW使用與LFW相同的正面人臉對(duì)進(jìn)行測(cè)試。但在SLLFW中,3 000個(gè)長(zhǎng)相相似的人臉對(duì)被特意挑選出來,以取代LFW的隨機(jī)負(fù)面人臉對(duì)比,給測(cè)試增加了難度。如表2給出了各種方法的實(shí)驗(yàn)結(jié)果。
表2 LFW,YTF,SLLFW數(shù)據(jù)集人臉驗(yàn)證準(zhǔn)確率 %
從表2中可以看出,基于聯(lián)合損失和恒等映射模塊的神經(jīng)網(wǎng)絡(luò)在人臉驗(yàn)證實(shí)驗(yàn)中準(zhǔn)確率最高,分別為99.53 %,95.63 %,96.67 %。在LFW,YTF,SLLFW數(shù)據(jù)集上,聯(lián)合損失加上恒等映射模塊的方法比SoftMax損失分別提升1.3 %,0.82 %,1.14 %,比Center損失分別提升1.2 %,0.32 %,0.35 %,比Marginal損失分別提升1.17 %,0.27 %,0.29 %,比只用聯(lián)合損失分別提升0.87 %,0.12 %,0.24 %。
為進(jìn)一步驗(yàn)證神經(jīng)網(wǎng)絡(luò)效果,按照MegaFace Challenge 1要求,MegaFace數(shù)據(jù)集作為干擾集,而FaceBook數(shù)據(jù)集作為測(cè)試集,進(jìn)行實(shí)驗(yàn)。其中,MegaFace數(shù)據(jù)集包括100萬張人臉,Facesrub數(shù)據(jù)集包含來自530個(gè)身份的10萬圖像。
實(shí)驗(yàn)的CMC曲線和ROC曲線如圖4。不同方法在一百干擾下的驗(yàn)證率結(jié)果如表3。與其他方法相比,在識(shí)別和驗(yàn)證測(cè)試中,聯(lián)合損失加上恒等映射的方法性能更好,進(jìn)一步證明該方法的有效性。
圖4 實(shí)驗(yàn)的CMC曲線和ROC曲線
表3 在一百干擾下不同方法在MegaFace和FaceScrub數(shù)據(jù)集上的識(shí)別率與驗(yàn)證率 %
實(shí)驗(yàn)平臺(tái)系統(tǒng)為Ubuntu18.04,GPU為i7—8700,GPU為RTX2060,內(nèi)存為32 G,在平臺(tái)上搭建視頻動(dòng)態(tài)人臉識(shí)別系統(tǒng)。視頻讀取幀,利用MTCNN檢測(cè)人臉[9]并對(duì)齊,將每張人臉的特征向量和數(shù)據(jù)庫里面的特征向量比對(duì)輸出Label標(biāo)簽和相應(yīng)的概率,再用跟蹤算法Deep-Sort[10]進(jìn)行后續(xù)的人臉跟蹤。測(cè)試了5段視頻,來驗(yàn)證在速度上是否能滿足實(shí)際的需求,檢測(cè)、跟蹤、識(shí)別所花費(fèi)的時(shí)間大概為原視頻事件的2.5倍,速度大約為原來的0.4,在實(shí)際運(yùn)行中,平均幀率也能夠穩(wěn)定在30 fps以上,肉眼無卡頓現(xiàn)象,能夠滿足實(shí)際的需求。
本文提出了基于聯(lián)合損失和恒等映射的動(dòng)態(tài)人臉識(shí)別算法。選擇Resnet34為基線網(wǎng)絡(luò),通過卷積核改變等對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化,在同樣的訓(xùn)練條件下,對(duì)本文算法在內(nèi)的5種方法進(jìn)行有效性評(píng)估。實(shí)驗(yàn)表明:基于改進(jìn)的的聯(lián)合損失函數(shù)加上深度殘差恒等映射模塊的人臉識(shí)別算法在5種方法中表現(xiàn)最好。并在實(shí)驗(yàn)平臺(tái)上搭建了動(dòng)態(tài)實(shí)時(shí)人臉識(shí)別系統(tǒng),達(dá)到了預(yù)期的效果。