任克強, 胡 慧
(江西理工大學(xué) 信息工程學(xué)院,江西 贛州 341000)
近年來,卷積神經(jīng)網(wǎng)絡(luò)的不斷進步極大地提升了各種計算機視覺技術(shù)的性能,人臉識別作為最廣泛的計算機視覺技術(shù)之一迅速發(fā)展,主要應(yīng)用于軍事,金融,電子商務(wù),安全防務(wù)等領(lǐng)域[1-2]。人臉識別早期的研究是基于手工設(shè)計的特征,這種設(shè)計比較困難,需要很強的先驗知識,很難設(shè)計出有效的人臉特征,隨著深度卷積神經(jīng)網(wǎng)絡(luò)的出現(xiàn),深度卷積神經(jīng)網(wǎng)絡(luò)有著天然的自動提取特征的能力,已成為人臉識別的主流方向[3]。
目前有關(guān)深度卷積神經(jīng)網(wǎng)絡(luò)人臉識別算法的研究大多圍繞“基于損失函數(shù)的人臉識別”展開,實現(xiàn)方法大致可以分為基于分類損失函數(shù)、基于度量學(xué)習(xí)損失函數(shù)或兩者的結(jié)合。用于人臉識別的分類損失函數(shù)大多是基于Softmax損失函數(shù)。文獻[4]使用3D人臉模型對齊,不共享卷積核的神經(jīng)網(wǎng)絡(luò)設(shè)計,大規(guī)模的訓(xùn)練數(shù)據(jù)來表達人臉特征。文獻[5]提取人臉的不同區(qū)域,形成多個網(wǎng)絡(luò)結(jié)構(gòu)進行融合,每個網(wǎng)絡(luò)由10 000個不同類身份的Softmax損失函數(shù)作為分類器。文獻[6]使用卷積、池化、多層稀疏自動編碼器構(gòu)建網(wǎng)絡(luò)特征提取器,用Softmax回歸模型對提取的特征進行分類。然而,Softmax分類損失函數(shù)只優(yōu)化類內(nèi)變化,而忽略了類間變化,不具有判別性。度量學(xué)習(xí)損失函數(shù)是使同一身份的人臉特征相互靠近,不同身份的人臉特征相互遠離。文獻[7]提出了對比損失(Contrastive Loss)函數(shù),產(chǎn)生一種有效的人臉特征表達來使不同類特征相互分離,相同類特征變得緊湊。文獻[8]提出了三元組損失(Triple Loss)函數(shù),學(xué)習(xí)一種從人臉圖像到歐式空間的映射,直接對應(yīng)人臉相似度的衡量。然而,度量學(xué)習(xí)損失函數(shù)不能約束每一個樣本,因此要求精心設(shè)計的樣本對或三元組挖掘過程,而這兩者非常耗時和對性能比較敏感。文獻[9]和文獻[10]分別提出了中心損失(Center Loss)函數(shù)和對比損失函數(shù)與Softmax損失函數(shù)結(jié)合來增強特征的判別能力,但Softmax損失和度量損失結(jié)合需設(shè)計多個損失函數(shù),算法過于復(fù)雜。文獻[11]提出角度Softmax損失函數(shù),僅在Softmax損失函數(shù)上使用一個角度間距,迫使每一類的分類邊界更靠近每一類的權(quán)重向量,使類間最小距離大于類內(nèi)最大距離,這種強約束使相同類進一步靠近,不同類進一步遠離,進一步提高識別率,然而一些困難的樣本很難滿足這種條件。
針對困難樣本難以滿足角度Softmax損失函數(shù)的強約束條件,本文提出一種角度空間的三元組損失微調(diào)的人臉識別算法,并對卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進行改進和使用特征相加作為人臉表達,以提高算法的識別率。
人工神經(jīng)網(wǎng)絡(luò)用于人臉識別取得了較好的性能[12],但面對大規(guī)模人臉數(shù)據(jù)集,比較流行的人臉識別方法普遍采用卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。文獻[13]采用了VGGNet網(wǎng)絡(luò)結(jié)構(gòu)用于人臉識別,VGGNet是由牛津大學(xué)的視覺幾何組提出的一種卷積神經(jīng)網(wǎng)絡(luò), 是ILSVRC-2014中定位任務(wù)第一名和分類任務(wù)第二名,該網(wǎng)絡(luò)比AlexNet網(wǎng)絡(luò)具有更深層的網(wǎng)絡(luò)結(jié)構(gòu),在該網(wǎng)絡(luò)中,所有卷積層都使用了大小為3×3的卷積核,而且VGGNet對其他數(shù)據(jù)集有很好的泛化能力。但隨著網(wǎng)絡(luò)的加深,梯度彌散或梯度爆炸成為訓(xùn)練深層網(wǎng)絡(luò)的障礙,導(dǎo)致無法收斂,有一些方法可以彌補,如歸一初始化,各層輸入歸一化。然而,雖然收斂了,但網(wǎng)絡(luò)開始退化,即增加網(wǎng)絡(luò)層數(shù)導(dǎo)致更大的誤差,Resnet通過在一個淺層網(wǎng)絡(luò)上增加殘差塊,可以讓網(wǎng)絡(luò)隨深度增加而不退化,使得深層網(wǎng)絡(luò)有較好的收斂能力和防止深層網(wǎng)絡(luò)出現(xiàn)過擬合,因此在VGGNet基礎(chǔ)上添加了多個殘差塊結(jié)構(gòu),構(gòu)建人臉殘差網(wǎng)絡(luò)用于人臉識別,網(wǎng)絡(luò)結(jié)構(gòu)具體如表1所示。
表1 人臉殘差網(wǎng)絡(luò)結(jié)構(gòu)Tab.1 Face residual network structure
卷積神經(jīng)網(wǎng)絡(luò)廣泛使用的分類損失函數(shù)Softmax表示如下:
(1)
式中:xi∈Rd表示第i個樣本的特征向量,屬于第yi類,d表示特征向量的維數(shù),在最后的全連接層中,wj∈Rd代表權(quán)重矩陣W∈Rd×n的第j列,b∈Rn代表偏置項,m表示批量大小,n表示類別數(shù)量,θj表示第j類權(quán)重向量與第j個樣本的特征向量之間的角度。
在角度Softmax損失中,為了簡便,首先把偏置項設(shè)置為0,然后歸一化權(quán)重向量(‖W‖=1),使得預(yù)測只取決于特征向量和權(quán)重向量之間的角度, cos(θyi) 推廣為ψ(θyi),得到式(2)形式。
(2)
式中:
為了滿足最大類內(nèi)距離小于最小類間距離,得出m1=4。
在訓(xùn)練時,對訓(xùn)練集中的每一張人臉樣本進行翻轉(zhuǎn)以增強樣本數(shù)據(jù)集,提高人臉識別算法的魯棒性和防止過擬合。在測試階段,為了與訓(xùn)練階段增加的人臉樣本對應(yīng),使最終提取到的人臉特征更具有表達能力,提取原始人臉的特征和水平翻轉(zhuǎn)的特征進行級聯(lián),作為最終的人臉特征表達。
角度Softmax損失函數(shù)相對于分類損失函數(shù)和度量學(xué)習(xí)損失函數(shù)而言,復(fù)雜性降低且其性能有較大提高,但由于施加的角度間距,使每一類的特征更靠近該類的特征向量,強制壓縮同一類人臉樣本的特征空間變小,導(dǎo)致對一些困難樣本很難滿足這種強約束條件。針對這些問題,本文提出了角度空間下三元組損失微調(diào)的人臉識別算法。首先對人臉殘差網(wǎng)絡(luò)進行改進,利用改進的網(wǎng)絡(luò)進行訓(xùn)練,得到一個預(yù)訓(xùn)練模型,然后利用角度空間下的三元組損失微調(diào)預(yù)訓(xùn)練模型,最后,通過特征相加作為最終的人臉表達。
角度Softmax損失中所采用的人臉殘差網(wǎng)絡(luò),逐層提取特征的過程中沒有對特征加以篩選,產(chǎn)生一些影響特征判別的信息和信息的冗余。卷積神經(jīng)網(wǎng)絡(luò)里的卷積都是多通道的特征圖和多通道的卷積核之間的操作,如果使用1×1的卷積核,這個操作實現(xiàn)的是多個特征圖的線性組合,可以實現(xiàn)特征圖在通道上的變化。并且1×1的卷積核也能潛在地在卷積層間做特征選擇,因而在殘差塊間加入了大小為1×1,步長為1的卷積核(1×1/1)。為了增強模型的魯棒性,減少參數(shù)和防止一定的過擬合能力,加入了大小為2×2,步長為2的池化層(2×2/2),改進的人臉殘差網(wǎng)絡(luò)如表2所示。
表2 網(wǎng)絡(luò)改進模型Tab.2 Improved face residual network model
在2.2節(jié),從角度Softmax損失中,得出角度間距m1=4,在沒加m1之前,也就是式(1),假設(shè)在一個兩分類情況下,能夠得出兩類的決策邊界為‖x‖cosθ1-‖x‖cosθ2=0 (θ1,θ2∈[0,π],其中‖x‖≠0),即θ1=θ2,當(dāng)m1=4時,對于第一類的決策邊界為cos(4θ1)=cos(θ2),即θ2=4θ1,同理,第二類決策邊界為cos(4θ2)=cos(θ1),即θ1=4θ2,相比于θ1=θ2這種約束變得更強了,一些困難的樣本很難滿足這種條件,而三元組損失是對比較困難的樣本進行優(yōu)化,具體的優(yōu)化過程如圖1所示。
圖1 歐式空間下的三元組損失優(yōu)化過程Fig.1 Process of triple loss optimization in European space
錨點和正樣本屬于同一身份,三元組損失最小化它們之間的距離,而錨點和負(fù)樣本屬于不同身份,三元組損失最大化它們之間的距離,三元組損失表示如下:
(3)
式(3)是在歐式空間下的損失,而角度Softmax損失是在角度空間下的,這就造成了不同度量空間下的優(yōu)化的不一致,這樣對樣本間的相似度衡量造成了干擾,為了與角度的Softmax損失相匹配,把歐式空間中的三元組損失轉(zhuǎn)變?yōu)榻嵌瓤臻g下的三元組損失,三元組損失在二維約束角度空間下的優(yōu)化過程如圖2所示。
圖2 角度空間下的三元組損失優(yōu)化過程Fig.2 Process of triple loss optimization in angular space
在基于角度Softmax損失的角度空間中,在兩分類情況下,每一類的權(quán)重向量均進行歸一化(‖W‖=1),假設(shè)正負(fù)樣本代表這兩類的權(quán)重向量,故圖2中的正樣本和負(fù)樣本都在單位圓上,而錨點在原來的角度空間沒有進行歸一化, 因此這里也沒有進行歸一化,角度三元組損失微調(diào)如式(4)所示。
(4)
在微調(diào)的過程中,正負(fù)樣本代表這兩類的權(quán)重不更新,即:
(5)
式中:wj表示每一類的權(quán)重。
在角度空間中,用角度度量樣本間距離的大小,由于三元組損失中的困難三元組的選擇比較麻煩,從頭開始訓(xùn)練比較難收斂,在這里只選擇了較容易的樣本,在角度空間實現(xiàn)了一個相對簡單的三元組損失進行微調(diào),該二維情況下很容易推廣到多維超球面上。
圖3 人臉特征提取過程Fig.3 Process of face feature extraction
特征提取是人臉表達的重要方式,提取到的特征代表人臉信息,不同身份的人臉特征應(yīng)該有不同的信息,而相同身份的人臉特征應(yīng)該有相同的信息。在測試階段,角度Softmax損失算法分別提取原始人臉圖像的特征和水平翻轉(zhuǎn)的特征,然后進行級聯(lián)作為最終的人臉表達。每次提取一張人臉圖像的特征是512維,進行級聯(lián)之后得到1 024維的圖像。在進行人臉特征比對的過程中,如此高的特征維數(shù)雖然在一定程度上豐富了特征信息,提高了特征表達的魯棒性,但是面對如此大規(guī)模的人臉圖像,特征提取和特征比對計算是一個非常耗時的過程。為了保持提取到的人臉特征信息豐富和魯棒性不變的特點,用角度空間三元組損失微調(diào)改進的人臉殘差網(wǎng)絡(luò)模型進行特征提取,分別提取原始的人臉圖像特征和水平翻轉(zhuǎn)的人臉圖像特征,然后進行特征相加作為最終的人臉表達,具體的人臉特征提取過程如圖3所示。
傳統(tǒng)人臉識別的測試都是在同一個數(shù)據(jù)集上進行訓(xùn)練和測試,而本文實驗采用公開人臉識別訓(xùn)練集CASIA-WebFace進行訓(xùn)練,LFW和YTF作為測試集進行實驗,得出的識別率更有說服力。本文使用特征向量的余弦距離作為相似性得分來評估本文算法的性能。實驗中先對人臉數(shù)據(jù)集進行歸一化處理并設(shè)置網(wǎng)絡(luò)的訓(xùn)練參數(shù),然后在LFW和YTF上評估相關(guān)算法以及改進后的人臉殘差網(wǎng)絡(luò)的性能。
本文首先使用MTCNN對整個人臉訓(xùn)練集(CASIA-WebFace)和測試集(LFW,YTF)進行人臉和面部關(guān)鍵點檢測,然后,采用相似性變換對面部的五個點(左右眼睛,鼻子,和左右嘴角)進行對齊。最后,將獲得的人臉圖片進行裁剪,裁剪的大小為112×96。在RGB圖像中,每個像素([0,255])通過減去127.5然后除以128進行歸一化。
為了降低硬件資源的消耗和節(jié)省訓(xùn)練的時間,網(wǎng)絡(luò)結(jié)構(gòu)是在角度Softmax損失的20層網(wǎng)絡(luò)結(jié)構(gòu)上改進后的人臉殘差網(wǎng)絡(luò),并且使用了一個小的訓(xùn)練集(CASIA-WebFac)來訓(xùn)練模型。CASIA-WebFace數(shù)據(jù)集包括10 575個不同身份的人,49萬張不同的人臉圖像,為了增強數(shù)據(jù)集,對所有的人臉訓(xùn)練圖像進行水平翻轉(zhuǎn),為保證本文算法測試的有效性,在實驗中,移除了訓(xùn)練集中與測試集有相同身份的人臉圖像。本文使用深度學(xué)習(xí)框架caffe來實現(xiàn)修改的殘差網(wǎng)絡(luò)和角度空間下的三元組損失并進行訓(xùn)練,使用隨機梯度下降法進行優(yōu)化。權(quán)重衰減設(shè)置為0.0005,動量設(shè)置為0.9,學(xué)習(xí)率最初設(shè)置為0.1,當(dāng)訓(xùn)練迭代次數(shù)達到16 000,24 000,28 000時,分別設(shè)為0.01,0.001,0.000 1,最大迭代次數(shù)為28 000已基本收斂,完成訓(xùn)練。
4.2.1 在LFW標(biāo)準(zhǔn)協(xié)議上評估
LFW數(shù)據(jù)集包含來自5 749個不同身份,13 233張人臉圖像。該數(shù)據(jù)集在姿勢,表情,光照等方面有較大的變化。在無約束帶有標(biāo)簽的外部數(shù)據(jù)的標(biāo)準(zhǔn)協(xié)議上評估,LFW是一個標(biāo)準(zhǔn)的人臉驗證測試集,包含6 000個人臉對,人臉圖像被劃分為十折,每一折包含不同的身份和600個人臉對。表3是在LFW標(biāo)準(zhǔn)協(xié)議上的人臉識別算法性能比較。
表3 標(biāo)準(zhǔn)協(xié)議的人臉識別率Tab.3 Face recognition rate of standard protocal
由表3可知,本文算法的識別率比僅用單模型和WebFace較小的訓(xùn)練集上的算法要高,這是由于本文使用了角度Softmax損失,壓縮了每一類的特征空間,使得相同類更加靠近,不同類更加遠離。比角度Softmax算法(A-Softmax)有所提高,是由于本文使用了角度空間下的三元組損失對角度Softmax進行微調(diào)。甚至比DeepFace,DeepFR算法使用的大型數(shù)據(jù)集和多模型融合都有較大的提升。比FaceNet,DeepID2+算法識別率要低,是由于FaceNet使用了比較困難的樣本挖掘算法,DeepID2+使用了眾多模型的融合。
4.2.2 在BLUFR協(xié)議上評估
BLUFR是一個大規(guī)模無約束的人臉識別基準(zhǔn),完全利用13 233個LFW人臉圖像作為新的評估協(xié)議,該協(xié)議包含人臉驗證和開集人臉識別。在BLUFR協(xié)議上有十折實驗,每折實驗包含156 915個真實匹配和46 960 863個錯誤匹配用于性能評估。對于LFW數(shù)據(jù)集來說,BLUFR協(xié)議更具有挑戰(zhàn)性和普遍性,表4是LFW BLUFR上的人臉識別算法性能比較。
表4 BLUFR協(xié)議的人臉識別率Tab.4 Face recognition rate of BLUFR protocol
在表4中VR@FAR=0.1%表示誤識率為0.1%情況下的驗證率,DIR@FAR=1%表示誤識率為1%的情況下的識別率。由表4可知,在較低的誤識率情況下,本文算法比其他大部分算法的人臉驗證率和識別率要高,但是比LightCNN要低,這是由于LightCNN使用數(shù)量龐大的訓(xùn)練集,并且使用了29層的殘差網(wǎng)絡(luò),而本文只使用了改進的20層殘差網(wǎng)絡(luò)。整體驗證率和識別率比LFW標(biāo)準(zhǔn)協(xié)議識別率要低,這是由于BLUFR協(xié)議是大規(guī)模人臉身份的識別,利用了LFW所有的人臉圖像,且在較低的誤識率情況下,識別更加困難和更有挑戰(zhàn)性。
YTF是為研究視頻中無約束人臉識別問題而設(shè)計的一種人臉視頻數(shù)據(jù)集,該數(shù)據(jù)集包含來自1 595個不同人的3 425個視頻,短片時長最短為48幀,最長為6 070幀,平均長度為181.3幀。在YTF上使用5 000個視頻對進行測試,表5是YTF數(shù)據(jù)集上的人臉識別算法性能比較。
由表5可知,對于視頻中的人臉識別,在僅用單模型和比較小的訓(xùn)練集數(shù)據(jù)集上,就能在數(shù)據(jù)集YTF上取得94.52%的識別率,比同樣大小數(shù)據(jù)集和單模型的算法要好,甚至比一些大型數(shù)據(jù)集和多模型融合的相關(guān)算法都有較大的提升。但整體識別率比LFW數(shù)據(jù)集上要低,這是由于YTF數(shù)據(jù)集上的人臉樣本比LFW上的人臉樣本更加模糊,變化更大,識別更加困難。
表5 YTF數(shù)據(jù)集上的人臉識別率Tab.5 Face recognition rate on YTF dataset
不同的網(wǎng)絡(luò)結(jié)構(gòu)所提取到的特征也是不同的,而不同的特征具有不同的表達能力。本文也對網(wǎng)絡(luò)結(jié)構(gòu)進行研究,對原來的人臉殘差網(wǎng)絡(luò)結(jié)構(gòu)進行改進,改進的人臉殘差網(wǎng)絡(luò)結(jié)構(gòu)和原來的人臉殘差網(wǎng)絡(luò)結(jié)構(gòu)在LFW和YTF人臉數(shù)據(jù)集上進行實驗,網(wǎng)絡(luò)結(jié)構(gòu)性能如表6所示。
由表6可知,在各類人臉數(shù)據(jù)集上,本文的網(wǎng)絡(luò)結(jié)構(gòu)性能比原人臉殘差網(wǎng)絡(luò)結(jié)構(gòu)性能略好,這是由于本文在不同的殘差塊間加入了1×1的卷積核與池化層,選擇更有效的特征。
表6 不同網(wǎng)絡(luò)結(jié)構(gòu)性能比較Tab.6 Performance comparison of different network structures (%)
角度Softmax損失強制使得相同類的特征空間更小,導(dǎo)致比較困難的人臉樣本很難滿足這種強約束條件。為了減輕這種強約束,但又不降低識別率,本文提出了一種角度空間中三元組損失微調(diào)的人臉識別算法。在原來的人臉殘差網(wǎng)絡(luò)結(jié)構(gòu)不同卷積單元的殘差塊間加入了1×1卷積核和池化層,增強了魯棒性和捕獲具有極強表達能力的深層特征,提高了識別率,并用角度空間下的三元組損失微調(diào),降低了困難樣本的強約束性。在測試階段,分別把原始的人臉圖像和水平翻轉(zhuǎn)的人臉圖像輸送到微調(diào)網(wǎng)絡(luò)中提取相應(yīng)的特征,再把對應(yīng)的特征相加,進一步提高了識別率。實驗結(jié)果表明,本文算法在公開數(shù)據(jù)集LFW和YTF上取得了99.25%和94.52%的識別率,證明了本文算法在大規(guī)模人臉身份識別的有效性。