任克強, 胡 慧
(江西理工大學 信息工程學院,江西 贛州 341000)
近年來,卷積神經網絡的不斷進步極大地提升了各種計算機視覺技術的性能,人臉識別作為最廣泛的計算機視覺技術之一迅速發展,主要應用于軍事,金融,電子商務,安全防務等領域[1-2]。人臉識別早期的研究是基于手工設計的特征,這種設計比較困難,需要很強的先驗知識,很難設計出有效的人臉特征,隨著深度卷積神經網絡的出現,深度卷積神經網絡有著天然的自動提取特征的能力,已成為人臉識別的主流方向[3]。
目前有關深度卷積神經網絡人臉識別算法的研究大多圍繞“基于損失函數的人臉識別”展開,實現方法大致可以分為基于分類損失函數、基于度量學習損失函數或兩者的結合。用于人臉識別的分類損失函數大多是基于Softmax損失函數。文獻[4]使用3D人臉模型對齊,不共享卷積核的神經網絡設計,大規模的訓練數據來表達人臉特征。文獻[5]提取人臉的不同區域,形成多個網絡結構進行融合,每個網絡由10 000個不同類身份的Softmax損失函數作為分類器。文獻[6]使用卷積、池化、多層稀疏自動編碼器構建網絡特征提取器,用Softmax回歸模型對提取的特征進行分類。然而,Softmax分類損失函數只優化類內變化,而忽略了類間變化,不具有判別性。度量學習損失函數是使同一身份的人臉特征相互靠近,不同身份的人臉特征相互遠離。文獻[7]提出了對比損失(Contrastive Loss)函數,產生一種有效的人臉特征表達來使不同類特征相互分離,相同類特征變得緊湊。文獻[8]提出了三元組損失(Triple Loss)函數,學習一種從人臉圖像到歐式空間的映射,直接對應人臉相似度的衡量。然而,度量學習損失函數不能約束每一個樣本,因此要求精心設計的樣本對或三元組挖掘過程,而這兩者非常耗時和對性能比較敏感。文獻[9]和文獻[10]分別提出了中心損失(Center Loss)函數和對比損失函數與Softmax損失函數結合來增強特征的判別能力,但Softmax損失和度量損失結合需設計多個損失函數,算法過于復雜。文獻[11]提出角度Softmax損失函數,僅在Softmax損失函數上使用一個角度間距,迫使每一類的分類邊界更靠近每一類的權重向量,使類間最小距離大于類內最大距離,這種強約束使相同類進一步靠近,不同類進一步遠離,進一步提高識別率,然而一些困難的樣本很難滿足這種條件。
針對困難樣本難以滿足角度Softmax損失函數的強約束條件,本文提出一種角度空間的三元組損失微調的人臉識別算法,并對卷積神經網絡結構進行改進和使用特征相加作為人臉表達,以提高算法的識別率。
人工神經網絡用于人臉識別取得了較好的性能[12],但面對大規模人臉數據集,比較流行的人臉識別方法普遍采用卷積神經網絡結構。文獻[13]采用了VGGNet網絡結構用于人臉識別,VGGNet是由牛津大學的視覺幾何組提出的一種卷積神經網絡, 是ILSVRC-2014中定位任務第一名和分類任務第二名,該網絡比AlexNet網絡具有更深層的網絡結構,在該網絡中,所有卷積層都使用了大小為3×3的卷積核,而且VGGNet對其他數據集有很好的泛化能力。但隨著網絡的加深,梯度彌散或梯度爆炸成為訓練深層網絡的障礙,導致無法收斂,有一些方法可以彌補,如歸一初始化,各層輸入歸一化。然而,雖然收斂了,但網絡開始退化,即增加網絡層數導致更大的誤差,Resnet通過在一個淺層網絡上增加殘差塊,可以讓網絡隨深度增加而不退化,使得深層網絡有較好的收斂能力和防止深層網絡出現過擬合,因此在VGGNet基礎上添加了多個殘差塊結構,構建人臉殘差網絡用于人臉識別,網絡結構具體如表1所示。

表1 人臉殘差網絡結構Tab.1 Face residual network structure

卷積神經網絡廣泛使用的分類損失函數Softmax表示如下:

(1)
式中:xi∈Rd表示第i個樣本的特征向量,屬于第yi類,d表示特征向量的維數,在最后的全連接層中,wj∈Rd代表權重矩陣W∈Rd×n的第j列,b∈Rn代表偏置項,m表示批量大小,n表示類別數量,θj表示第j類權重向量與第j個樣本的特征向量之間的角度。
在角度Softmax損失中,為了簡便,首先把偏置項設置為0,然后歸一化權重向量(‖W‖=1),使得預測只取決于特征向量和權重向量之間的角度, cos(θyi) 推廣為ψ(θyi),得到式(2)形式。

(2)
式中:

為了滿足最大類內距離小于最小類間距離,得出m1=4。
在訓練時,對訓練集中的每一張人臉樣本進行翻轉以增強樣本數據集,提高人臉識別算法的魯棒性和防止過擬合。在測試階段,為了與訓練階段增加的人臉樣本對應,使最終提取到的人臉特征更具有表達能力,提取原始人臉的特征和水平翻轉的特征進行級聯,作為最終的人臉特征表達。
角度Softmax損失函數相對于分類損失函數和度量學習損失函數而言,復雜性降低且其性能有較大提高,但由于施加的角度間距,使每一類的特征更靠近該類的特征向量,強制壓縮同一類人臉樣本的特征空間變小,導致對一些困難樣本很難滿足這種強約束條件。針對這些問題,本文提出了角度空間下三元組損失微調的人臉識別算法。首先對人臉殘差網絡進行改進,利用改進的網絡進行訓練,得到一個預訓練模型,然后利用角度空間下的三元組損失微調預訓練模型,最后,通過特征相加作為最終的人臉表達。
角度Softmax損失中所采用的人臉殘差網絡,逐層提取特征的過程中沒有對特征加以篩選,產生一些影響特征判別的信息和信息的冗余。卷積神經網絡里的卷積都是多通道的特征圖和多通道的卷積核之間的操作,如果使用1×1的卷積核,這個操作實現的是多個特征圖的線性組合,可以實現特征圖在通道上的變化。并且1×1的卷積核也能潛在地在卷積層間做特征選擇,因而在殘差塊間加入了大小為1×1,步長為1的卷積核(1×1/1)。為了增強模型的魯棒性,減少參數和防止一定的過擬合能力,加入了大小為2×2,步長為2的池化層(2×2/2),改進的人臉殘差網絡如表2所示。

表2 網絡改進模型Tab.2 Improved face residual network model
在2.2節,從角度Softmax損失中,得出角度間距m1=4,在沒加m1之前,也就是式(1),假設在一個兩分類情況下,能夠得出兩類的決策邊界為‖x‖cosθ1-‖x‖cosθ2=0 (θ1,θ2∈[0,π],其中‖x‖≠0),即θ1=θ2,當m1=4時,對于第一類的決策邊界為cos(4θ1)=cos(θ2),即θ2=4θ1,同理,第二類決策邊界為cos(4θ2)=cos(θ1),即θ1=4θ2,相比于θ1=θ2這種約束變得更強了,一些困難的樣本很難滿足這種條件,而三元組損失是對比較困難的樣本進行優化,具體的優化過程如圖1所示。

圖1 歐式空間下的三元組損失優化過程Fig.1 Process of triple loss optimization in European space
錨點和正樣本屬于同一身份,三元組損失最小化它們之間的距離,而錨點和負樣本屬于不同身份,三元組損失最大化它們之間的距離,三元組損失表示如下:

(3)

式(3)是在歐式空間下的損失,而角度Softmax損失是在角度空間下的,這就造成了不同度量空間下的優化的不一致,這樣對樣本間的相似度衡量造成了干擾,為了與角度的Softmax損失相匹配,把歐式空間中的三元組損失轉變為角度空間下的三元組損失,三元組損失在二維約束角度空間下的優化過程如圖2所示。

圖2 角度空間下的三元組損失優化過程Fig.2 Process of triple loss optimization in angular space
在基于角度Softmax損失的角度空間中,在兩分類情況下,每一類的權重向量均進行歸一化(‖W‖=1),假設正負樣本代表這兩類的權重向量,故圖2中的正樣本和負樣本都在單位圓上,而錨點在原來的角度空間沒有進行歸一化, 因此這里也沒有進行歸一化,角度三元組損失微調如式(4)所示。
(4)
在微調的過程中,正負樣本代表這兩類的權重不更新,即:
(5)
式中:wj表示每一類的權重。
在角度空間中,用角度度量樣本間距離的大小,由于三元組損失中的困難三元組的選擇比較麻煩,從頭開始訓練比較難收斂,在這里只選擇了較容易的樣本,在角度空間實現了一個相對簡單的三元組損失進行微調,該二維情況下很容易推廣到多維超球面上。

圖3 人臉特征提取過程Fig.3 Process of face feature extraction
特征提取是人臉表達的重要方式,提取到的特征代表人臉信息,不同身份的人臉特征應該有不同的信息,而相同身份的人臉特征應該有相同的信息。在測試階段,角度Softmax損失算法分別提取原始人臉圖像的特征和水平翻轉的特征,然后進行級聯作為最終的人臉表達。每次提取一張人臉圖像的特征是512維,進行級聯之后得到1 024維的圖像。在進行人臉特征比對的過程中,如此高的特征維數雖然在一定程度上豐富了特征信息,提高了特征表達的魯棒性,但是面對如此大規模的人臉圖像,特征提取和特征比對計算是一個非常耗時的過程。為了保持提取到的人臉特征信息豐富和魯棒性不變的特點,用角度空間三元組損失微調改進的人臉殘差網絡模型進行特征提取,分別提取原始的人臉圖像特征和水平翻轉的人臉圖像特征,然后進行特征相加作為最終的人臉表達,具體的人臉特征提取過程如圖3所示。
傳統人臉識別的測試都是在同一個數據集上進行訓練和測試,而本文實驗采用公開人臉識別訓練集CASIA-WebFace進行訓練,LFW和YTF作為測試集進行實驗,得出的識別率更有說服力。本文使用特征向量的余弦距離作為相似性得分來評估本文算法的性能。實驗中先對人臉數據集進行歸一化處理并設置網絡的訓練參數,然后在LFW和YTF上評估相關算法以及改進后的人臉殘差網絡的性能。
本文首先使用MTCNN對整個人臉訓練集(CASIA-WebFace)和測試集(LFW,YTF)進行人臉和面部關鍵點檢測,然后,采用相似性變換對面部的五個點(左右眼睛,鼻子,和左右嘴角)進行對齊。最后,將獲得的人臉圖片進行裁剪,裁剪的大小為112×96。在RGB圖像中,每個像素([0,255])通過減去127.5然后除以128進行歸一化。
為了降低硬件資源的消耗和節省訓練的時間,網絡結構是在角度Softmax損失的20層網絡結構上改進后的人臉殘差網絡,并且使用了一個小的訓練集(CASIA-WebFac)來訓練模型。CASIA-WebFace數據集包括10 575個不同身份的人,49萬張不同的人臉圖像,為了增強數據集,對所有的人臉訓練圖像進行水平翻轉,為保證本文算法測試的有效性,在實驗中,移除了訓練集中與測試集有相同身份的人臉圖像。本文使用深度學習框架caffe來實現修改的殘差網絡和角度空間下的三元組損失并進行訓練,使用隨機梯度下降法進行優化。權重衰減設置為0.0005,動量設置為0.9,學習率最初設置為0.1,當訓練迭代次數達到16 000,24 000,28 000時,分別設為0.01,0.001,0.000 1,最大迭代次數為28 000已基本收斂,完成訓練。
4.2.1 在LFW標準協議上評估
LFW數據集包含來自5 749個不同身份,13 233張人臉圖像。該數據集在姿勢,表情,光照等方面有較大的變化。在無約束帶有標簽的外部數據的標準協議上評估,LFW是一個標準的人臉驗證測試集,包含6 000個人臉對,人臉圖像被劃分為十折,每一折包含不同的身份和600個人臉對。表3是在LFW標準協議上的人臉識別算法性能比較。

表3 標準協議的人臉識別率Tab.3 Face recognition rate of standard protocal
由表3可知,本文算法的識別率比僅用單模型和WebFace較小的訓練集上的算法要高,這是由于本文使用了角度Softmax損失,壓縮了每一類的特征空間,使得相同類更加靠近,不同類更加遠離。比角度Softmax算法(A-Softmax)有所提高,是由于本文使用了角度空間下的三元組損失對角度Softmax進行微調。甚至比DeepFace,DeepFR算法使用的大型數據集和多模型融合都有較大的提升。比FaceNet,DeepID2+算法識別率要低,是由于FaceNet使用了比較困難的樣本挖掘算法,DeepID2+使用了眾多模型的融合。
4.2.2 在BLUFR協議上評估
BLUFR是一個大規模無約束的人臉識別基準,完全利用13 233個LFW人臉圖像作為新的評估協議,該協議包含人臉驗證和開集人臉識別。在BLUFR協議上有十折實驗,每折實驗包含156 915個真實匹配和46 960 863個錯誤匹配用于性能評估。對于LFW數據集來說,BLUFR協議更具有挑戰性和普遍性,表4是LFW BLUFR上的人臉識別算法性能比較。

表4 BLUFR協議的人臉識別率Tab.4 Face recognition rate of BLUFR protocol
在表4中VR@FAR=0.1%表示誤識率為0.1%情況下的驗證率,DIR@FAR=1%表示誤識率為1%的情況下的識別率。由表4可知,在較低的誤識率情況下,本文算法比其他大部分算法的人臉驗證率和識別率要高,但是比LightCNN要低,這是由于LightCNN使用數量龐大的訓練集,并且使用了29層的殘差網絡,而本文只使用了改進的20層殘差網絡。整體驗證率和識別率比LFW標準協議識別率要低,這是由于BLUFR協議是大規模人臉身份的識別,利用了LFW所有的人臉圖像,且在較低的誤識率情況下,識別更加困難和更有挑戰性。
YTF是為研究視頻中無約束人臉識別問題而設計的一種人臉視頻數據集,該數據集包含來自1 595個不同人的3 425個視頻,短片時長最短為48幀,最長為6 070幀,平均長度為181.3幀。在YTF上使用5 000個視頻對進行測試,表5是YTF數據集上的人臉識別算法性能比較。
由表5可知,對于視頻中的人臉識別,在僅用單模型和比較小的訓練集數據集上,就能在數據集YTF上取得94.52%的識別率,比同樣大小數據集和單模型的算法要好,甚至比一些大型數據集和多模型融合的相關算法都有較大的提升。但整體識別率比LFW數據集上要低,這是由于YTF數據集上的人臉樣本比LFW上的人臉樣本更加模糊,變化更大,識別更加困難。

表5 YTF數據集上的人臉識別率Tab.5 Face recognition rate on YTF dataset
不同的網絡結構所提取到的特征也是不同的,而不同的特征具有不同的表達能力。本文也對網絡結構進行研究,對原來的人臉殘差網絡結構進行改進,改進的人臉殘差網絡結構和原來的人臉殘差網絡結構在LFW和YTF人臉數據集上進行實驗,網絡結構性能如表6所示。
由表6可知,在各類人臉數據集上,本文的網絡結構性能比原人臉殘差網絡結構性能略好,這是由于本文在不同的殘差塊間加入了1×1的卷積核與池化層,選擇更有效的特征。

表6 不同網絡結構性能比較Tab.6 Performance comparison of different network structures (%)
角度Softmax損失強制使得相同類的特征空間更小,導致比較困難的人臉樣本很難滿足這種強約束條件。為了減輕這種強約束,但又不降低識別率,本文提出了一種角度空間中三元組損失微調的人臉識別算法。在原來的人臉殘差網絡結構不同卷積單元的殘差塊間加入了1×1卷積核和池化層,增強了魯棒性和捕獲具有極強表達能力的深層特征,提高了識別率,并用角度空間下的三元組損失微調,降低了困難樣本的強約束性。在測試階段,分別把原始的人臉圖像和水平翻轉的人臉圖像輸送到微調網絡中提取相應的特征,再把對應的特征相加,進一步提高了識別率。實驗結果表明,本文算法在公開數據集LFW和YTF上取得了99.25%和94.52%的識別率,證明了本文算法在大規模人臉身份識別的有效性。