2020
Towards Universal Representation Learning for Deep Face Recognition
Abstract
識別自然環境下的人臉是非常困難的,因為它們會出現各種各樣的變化。傳統的方法要么使用來自目標域的特定標注的變化數據進行訓練,要么通過引入未標記的目標變化數據來適應訓練數據。相反,我們提出了一個通用的表示學習框架,它可以處理給定訓練數據中看不到的更大的變化,而不需要利用目標領域的知識。我們首先將訓練數據和一些語義上有意義的變化綜合在一起,如低分辨率、遮擋和頭姿勢。然而,直接輸入擴充后的訓練數據並不會讓網絡很好地收斂,因為新引入的樣本大多是困難樣本。我們建議將嵌入的特征分解成多個子嵌入,並將每個子嵌入與不同置信值關聯起來,使訓練過程更加平滑。通過將變化分類損失和變化對抗損失在不同的分區上正則化,來進一步去相關子嵌入。實驗表明,該方法在LFW和MegaFace等一般人臉識別數據集上取得了較好的性能,在TinyFace和IJB-S等極端基准上取得了較好的性能。
1. Introduction
深度人臉識別試圖將輸入圖像映射到具有較小的身份內距離和較大的身份間距離的特征空間,之前的工作通過損失設計和具有豐富的類內變化的數據集實現了這一目標[29,40,17,38,4]。然而,即使是非常大的公共數據集,如MS-Celeb-1M,也表現出強烈的偏向,如種族[33]或頭部姿勢[20,24](即數據集的人臉數據可能更多是白種人,頭更多是正面這種)。這種多樣性的缺乏導致了在具有挑戰性的測試數據集上性能顯著地下降,例如,在IJB-S或TinyFace上先前的最先進的[31]報告的准確率[11,3]在比IJB-A[14]或LFW[10]上的准確率低30%左右。
最近的研究試圖通過識別相關的變化因素並通過領域適應方法[33]來擴展數據集來緩解這一問題。有時,這樣的變化很難識別,因此使用域適應方法來校准訓練域和測試域[28]之間的特征。或者,單個模型可以在不同的數據集和集成上進行訓練,從而在每個[19]上獲得良好的性能。所有這些方法要么只處理特定的變化,要么需要訪問測試數據分布,要么增加額外的運行時復雜性來處理更廣泛的變化。相比之下,我們建議學習一個單一的“通用”深層特征表示,它可以處理人臉識別中的變化,而不需要訪問測試數據分布,並保持運行時效率,同時在各種情況下實現強大的性能,特別是在低質量的圖像上(參見圖1):
本文在第三節中介紹了幾種新的貢獻來學習這個普遍表示方法。首先,我們注意到,具有非正面姿態、低分辨率和重遮擋的輸入是對“自然環境”應用程序提出挑戰的關鍵可命名因素,對於這些應用程序,可以對訓練數據進行綜合增強。但是直接在訓練中添加困難增強樣本會導致一個更困難的優化問題。我們通過提出一種識別損失來緩解這種情況,這種識別損失包括每個樣本的置信度來學習概率特征嵌入。其次,我們試圖通過將嵌入分解為子嵌入來最大化嵌入的表示能力,每個子嵌入在訓練過程中都有一個獨立的置信度值。第三,鼓勵所有的子嵌入通過對不同分區的兩個相反的正則化來進一步去相關,即變化分類損失和變化對抗損失。第四,我們通過挖掘訓練數據中的其他變化來進一步擴展去相關正則化,對於這些變化,合成增強不是微不足道的。最后,我們通過一個概率聚合來解釋不同因素的不確定性,從而解釋子嵌入的不同判別能力。
在第5節中,我們對公共數據集上提出的方法進行了廣泛的評估。與我們的基線模型相比,該方法在LFW和YTF等一般人臉識別基准上保持了較高的准確性,同時顯著提高了IJB-C、IJB-S等具有挑戰性的數據集的性能,實現了新的最先進的性能。詳細的ablation研究顯示了上述各方面的貢獻對獲得這些優異性能的影響。
綜上所述,本文的主要貢獻有:
- 一個人臉表示學習框架,通過將通用特征與不同的變化聯系起來來學習通用特征,從而改進了對不同測試數據集的泛化。
- 一個置信度感知的識別損失,在訓練中利用樣本置信度從困難樣本中學習特征。
- 一種特征去相關正則化,它將變化分類損失和變化對抗損失應用於子嵌入的不同分區,從而提高了性能。
- 一種訓練策略,有效地結合合成的數據,訓練出適用於原始訓練分布之外的圖像的人臉表示。
- 在IJB-A、IJB-C、TinyFace和IJB-S等幾個具有挑戰性的基准測試中,獲得了最先進的結果。
2. Related Work
Deep Face Recognition: 深度神經網絡被廣泛應用於正在進行的人臉識別研究中[35,34,29,20,17,8,25,37,4]。Taigman等人提出了第一個用於人臉識別的深度卷積神經網絡。接下來的工作是探索不同的損失函數來提高特征表示的分辨能力。Wen等人提出了center損失來減少類內差異。已有一系列研究提出使用度量學習方法進行人臉識別[29,32]。最近的工作試圖用一個單一的識別損失函數實現有區別的嵌入,其中使用proxy/prototype向量來表示嵌入空間中的每個類[17,37,38,25,4]。
Universal Representation: 通用表示是指可以應用於不同視覺域(通常是不同的任務)的單個模型,例如對象、字符、路標,同時保持使用一組特定於域的模型的性能[1,26,27,39]。通過這樣一個單一模型學習到的特性被認為比領域特定的模型更通用。與領域泛化[13,22,15,16,36]不同的是,領域泛化的目標是通過學習不同的領域來適應不可見的領域,而通用表示不涉及對不可見領域的再訓練。這些方法大多側重於通過使用諸如條件化的BatchNorm[1]和residual適配器等技術來減少域轉移,從而提高參數效率[26,27]。Wang等人在SE模塊[9]的基礎上,提出了一種面向通用對象檢測網絡中間(隱藏)特征的領域關注模塊。我們的工作與這些方法在兩個方面不同:(1)它是一種用於相似度度量學習的方法,而不是用於檢測或分類任務;(2)它是與模型無關的。通過計算不可見類樣本之間的兩兩相似度,我們的模型所獲得的特征可以直接應用於不同的領域。
3. Proposed Approach
在本節中,我們首先介紹三種可擴展的變化,即模糊,遮擋和頭部姿勢,以增加訓練數據。增強數據的可視化示例如圖2所示,詳細信息可以在第4節中找到:
然后在3.1節中,我們引入了一個置信度感知的識別損失來學習困難的樣本,在3.2節中,我們通過將特征向量分割成具有獨立置信度的子嵌入來進一步擴展。在3.3節中,我們將應用介紹的可擴展的變化來進一步去關聯特性嵌入。提出了一種不可擴展的變化發現方法來探索更多的變化以獲得更好的去相關。最后,提出了一種不確定性引導的兩兩度量方法進行推理。
3.1. Confidence-aware Identification Loss
我們研究了給定輸入樣本xi被分類給身份j∈{1,2,…, N}(即N個類)的后驗概率。表示樣本i的特征嵌入為fi,第j個身份原型向量為wj,即身份模板特征。概率嵌入網絡θ在特征空間中將每個示例xi表示為高斯分布N (fi,σi2I)。xi為第j類樣本的概率為:
其中D為特征維數。進一步假設分配樣本到任意身份(即類)的先驗相等,則屬於第j類的xi的后驗可得:
為了簡化,定義置信度值為。限制fi和wj在L2正則化單位球中,則得到式子
和:
方程5中置信度感知后驗的效果如圖4所示:
當在不同質量的樣本之間進行訓練時,如果我們假設所有樣本的置信度相同,那么所學習的原型(prototype)將位於所有樣本的中心(如圖4的a)。這並不理想,因為低質量的樣本傳達的身份信息更加模糊。相比之下,如果我們建立特定於樣本的置信度si,高質量樣本有更高的置信度,它推動原型(prototype)wj更接近高質量樣本,以最大化后驗(如圖4的b)。同時,在嵌入fi的更新過程中,更有力的推動了低質量fi更接近原型。
在指數logit上增加損失margin[38]已被證明能有效地縮小類內分布。我們也把它納入我們的損失:
在這里,yi是xi的真實標簽。我們的置信度感知識別損失(C-Softmax)與Cosine損失[38]主要的不同如下:(1)每個圖像有一個獨立的和動態的si,而不是一個常數共享標量s;(2)邊距參數m沒有乘以si。si的獨立性使得它能夠以一種特定於樣本的方式對網絡訓練中wj和fi的梯度信號進行門控,因為訓練樣本的置信度(變化度)可能會有很大的差異。雖然樣本是特定的,我們的目標是追求一個同構的特征空間,這樣不同身份的度量應該是一致的。因此,允許si補償樣本的置信差,我們期望m在所有身份(即類)中一致地共享。
3.2. Confidence-aware Sub-Embeddings
雖然通過特定於樣本的門控si學習的嵌入fi可以處理樣本級別的變化,但我們認為fi本身的entries之間的相關性仍然很高。為了最大限度地提高表示能力並實現緊湊的特征大小,需要對嵌入entries進行去相關處理。這鼓勵我們進一步將整個嵌入fi分解為分區的子嵌入,每個子嵌入都進一步分配一個標量置信值。
如圖3所示:
我們將整個特征嵌入fi分割成K個等長子嵌入,如式7所示。據此,將原型向量wj和置信標量si被划分為大小相同的K組:
將每組次嵌入fi(k)分別L2歸一化到單位球上。因此,最后的判別損失為:
一個在神經網絡中常見的問題是他們在預測[6]中都傾向於“過度自信”。我們添加一個附加的正則化來限制置信度任意地過大增長:
3.3. Sub-Embeddings Decorrelation
單獨設置多個子嵌入並不能保證不同組中的特性是學習互補信息的。可見圖5:
我們發現子嵌入仍然是高度相關的,即, fi分為16組,所有子嵌入的平均相關系數為0.57。如果用不同的正則化方法對子嵌入進行懲罰,可以降低它們之間的相關性。通過將不同的子嵌入與不同的變化聯系起來,我們對所有子嵌入的一個子集對於某個變化類型進行變化分類損失,同時對其他變化類型進行變化對抗性損失(這樣就能夠將該自己與某個變化相互關聯起來了)。給定多個變化,這兩個正則化項被強制放在不同的子集上,從而得到更好的子嵌入去相關。
對於每個可增強的變化t∈{1,2,…,M},我們生成一個二進制掩碼Vt,它從所有子嵌入中選擇隨機K/2個子集,同時將另一半置為零。masks在訓練開始時生成,並在訓練期間保持固定。我們保證對於不同的變化,masks是不同的。我們期望Vt(fi)反映第t個變化,而對其他變化是不變的。因此,我們構建了一個多標簽二進制判別器C,通過學習來預測每個masked子集的所有變化:
其中ui = [ui(1), ui(2),…, ui(M)]是已知變化的二進制標簽(0/1),uiˆ則是真實的標簽。例如,如果t = 1對應於分辨率,uiˆ(1)的值在高/低分辨率圖像上分別為1和0。等式11僅用於訓練判別器c,相應的嵌入網絡的分類和對抗性損失為:
分類損失是一種鼓勵Vt與特定變化相關的損失,而Ladv是一種鼓勵其他變化不變的對抗性損失。只要沒有兩個masks相同,就可以保證所選的子集Vt在功能上與其他Vt'不同。因此,我們實現了Vt和Vt'之間的去相關。每個樣本的總損失函數為:
在優化過程中,將等式(14)在mini-batch中取樣本的平均值。
3.4. Mining More Variations
由於可擴展變化的數量有限(在我們的方法中為3個,即模糊、分辨率和頭姿勢),導致去相關效果有限,因為Vt的數量太小。為了進一步增強去相關,並引入更多的變化以獲得更好的泛化能力,我們的目標是探索更多的語義變化。請注意,並不是所有的變化都容易進行數據擴充,例如微笑或不微笑是很難擴充的。對於這種變化,我們嘗試從原始訓練數據中挖掘出變化標簽。特別是,我們利用一個現成的屬性數據集CelebA[18]訓練帶有身份對抗損失的屬性分類模型θA:
其中lA是屬性標簽,yA是身份標簽。xA為輸入的人臉圖像,NA為CelebA數據集中的身份數(即多少個不同的人)。第一項懲罰特征對人臉屬性進行分類,第二項懲罰特征對身份保持不變性。
然后將上面訓練好的屬性分類器應用於識別訓練集,生成T個新的soft變化標簽,如微笑或不微笑、年輕或年老。這些附加的變化二值標簽與原始的可擴展變化標簽合並為:ui = [ui(1),…,ui(M),ui(M+1),…,ui(M+T)],然后合並到3.3節的去相關學習框架中。
3.5. Uncertainty-Guided Probabilistic Aggregation
考慮用於推理的度量,簡單地取學習到的子嵌入的平均值是次優的方法。這是因為不同的子嵌入對不同的變量有不同的識別能力。它們的重要性應該根據給定的圖像對而有所不同。受[31]的啟發,我們考慮應用與每個嵌入相關的不確定性來為成對的相似度評分:
即計算兩個輸入圖像xi和xj的得分來判斷他們兩是不是同一個人,即求他們兩對應的不同變化的子嵌入的差別。
盡管使用等式10實現正則化,我們經驗發現從識別損失學習的置信度仍然傾向於過於自信,因此不能直接用於等式16,所以我們微調原來的置信度分支去預測σ,同時修復其他部分。關於微調的訓練細節,我們建議讀者參考[31]。
4. Implementation Details
Training Details and Baseline. 所有的模型都是用Pytorch v1.1實現的。我們使用ArcFace[4]中MS-Celeb-1M[7]的clean list獲得訓練數據。在用測試集清理了重疊的被檢測者后,我們得到了76.5K類的480萬張圖像。我們使用[44]中的方法進行人臉對齊,並將所有的圖像裁剪成110×110的大小。訓練和測試時分別采用隨機裁剪和中心裁剪,將圖像變換為100×100。我們使用[4]中修改的100層ResNet作為我們的架構。所有模型的嵌入尺寸為512,多嵌入方法將特征分為16組。模型C是一個線性分類器。實驗中的基線模型使用CosFace損失函數進行訓練[38,37],其在一般的人臉識別任務中取得了最先進的性能。對無域擴展的模型進行18個epoch的訓練,對有域擴展的模型進行27個epoch的訓練以保證收斂。我們根據經驗設置參數λreg,λcls和λadv分別為0.001,2.0和2.0。根據經驗,邊際m設為30。對於不可增加的變化,我們選擇T = 3個屬性,即微笑、年輕和性別。
Variation Augmentation. 對於低分辨率,我們使用內核大小在3和11之間的高斯模糊生成。對於遮擋,我們將圖像分割成7×7塊,並隨機用黑色masks替換部分圖像塊。(3)在姿勢方面,我們使用PRNet[5]擬合數據集中近正面人臉的3D模型,並將其旋轉到一個在40◦和60◦之間的yaw角度。所有的增強都是隨機組合的,每個增強的概率是30%。
5. Experiments
在本節中,我們首先介紹不同類型的數據集,這些數據集反映了不同程度的變化。不同的變化程度表示不同的圖像質量,從而導致不同的性能。然后,我們對所提出的置信度感知損失和所提出的所有模塊進行了詳細的ablation研究。此外,我們展示了對這些不同類型的測試數據集的評估,並與最先進的方法進行了比較。
5.1. Datasets
我們在八個人臉識別基准上評估我們的模型,涵蓋了不同的真實世界測試場景。這些數據集根據變化程度大致分為三類:
Type I: Limited Variation. LFW[10]、CFP[30]、YTF[41]和MegaFace[12]是廣泛應用於一般人臉識別的四個基准。我們相信這些數據集的變化是有限的,因為只有一個或很少的變化被提出。特別是YTF是分辨率相對較低的視頻樣本;CFP[30]是姿勢變化大但分辨率高的人臉圖像;MegaFace包括100萬個從互聯網上抓取的干擾物,其標記圖像都是來自FaceScrub數據集[23]的高質量正面人臉。對於LFW和YTF,我們都使用不受限制的驗證協議。對於CFP,我們主要關注正臉(FP)協議。我們測試了MegaFace的驗證和識別協議。
Type II: Mixed Quality. IJB-A[14]和IJB-C[21]既包括從自然環境下拍攝的高質量名人照片,也包括在光照、遮擋、頭部姿勢等方面變化很大的低質量視頻幀。我們測試了兩個基准的驗證和識別協議。
Type III: Low Quality. 我們測試了TinyFace[3]和IJB-S[11],這兩個極具挑戰性的基准測試主要由低質量的面部圖像組成。特別是,TinyFace只包含在自然環境下拍攝的低分辨率面部圖像,還包括其他變化,如遮擋和姿勢。IJB-S是一個視頻人臉識別數據集,除了少數每個人的高質量注冊照片外,其中所有的圖像都是由監控攝像頭捕獲的視頻。這三種類型數據集的示例圖像如圖7所示。
5.2. Ablation Study
5.2.1 Effect of Confidence-aware Learning
我們通過逐步添加可命名的變化來訓練一組模型。“基線”模型是一個18層的ResNet,訓練於隨機挑選的MS-Celeb-1M子集(0.6M圖像)。提出的模型經過置信度感知識別損失和K = 16嵌入組的訓練。作為一個對照實驗,我們對IJB-A數據集應用相同類型的擴展來合成相應變化的測試數據。在圖8中:
“baseline”模型顯示,當網格從頂行到底行逐漸添加新變化時,性能會下降。相比之下,當從上到下添加新的變化時,我們所提出的方法顯示出性能的提高,這突出了我們的置信度感知表示學習的效果,並進一步允許在框架訓練中添加更多的變化。
我們還可視化帶有t-SNE的特征到二維嵌入空間。從圖9可以看出:
對於“baseline”模型,隨着變異的增大,特征實際上是混合的,因此識別是錯誤的。而對於“proposed”模型,不同變化增強生成的樣本仍然與原始樣本聚在一起,這表明身份得到了很好的保留。在與上面相同的設置下,我們還在圖10中顯示了使用不同數量組的效果:
在開始時,將嵌入空間分成更多的組可以提高兩個TARs的性能。當每個子嵌入的大小變得太小時,由於每個子嵌入的容量有限,性能開始下降
5.2.2 Ablation on All Modules
我們通過觀察表1中的ablative模型來研究每個模塊的作用:
從基線開始,對模型A進行變化增強訓練。在模型A的基礎上,增加置信度感知識別損失,得到模型B。通過建立多個子嵌入,進一步訓練模型C。在模型E中,我們進一步增加了去相關損失。並與模型D進行了比較,其有着除了變化增大外的所有模塊。模型C、D和E有多個嵌入,分別測試了w/和w/o概率聚合(PA)。這些方法在兩個type I數據集(LFW和CFP-FP)、一個type-II 數據集(IJB-A)和一個type-III數據集(TinyFace)上進行了測試。
如表1所示,與基線相比,增加變化增強可提高CFP-FP、TinyFace和IJBA的性能。這些數據集准確地呈現了數據擴充所帶來的變化,即,姿態變化和低分辨率。然而,LFW上的性能與基線相比有波動,因為LFW大多是高質量的圖像,幾乎沒有變化。相比之下,模型B和C能夠減少由數據擴充引入的困難樣本的負面影響,並在所有基准上實現一致的性能提升。同時,我們觀察到單獨使用分成多個子嵌入模塊並不能顯著提高性能(比較B和C的第一行),,這可以解釋為在子嵌入中的強相關置信度(參見圖5)。然而,帶有去相關損失和概率聚合時,不同子嵌入能夠學習並結合互補特性進一步提高性能,即,模型E的第二行性能始終優於第一行。
5.3. Evaluation on General Datasets
我們在一般的人臉識別數據集將我們的方法與最先進的方法進行對比,即那些具有有限的變化和高質量的type I 數據集。由於測試圖像大多是高質量的,因此我們的方法在處理較大變化時的優勢是有限的。盡管如此,如表2所示,我們的方法仍然是最好的,比大多數方法更好,但比ArcFace略差:
請注意,我們的基線模型已經在所有測試集上獲得了良好的性能。它實際驗證了type I測試集與訓練集之間不存在顯著的領域差異,即使不增加變化或嵌入去相關,直接訓練也可以獲得良好的性能。
5.4. Evaluation on Mixed/Low Quality Datasets
當對更具挑戰性的數據集進行評估時,這些最先進的通用方法會遇到性能下降的問題,因為挑戰性的數據集存在很大的變化,因此與高質量的訓練數據集存在很大的領域差距。表3顯示了在三個具有挑戰性的基准上的性能:IJB-A、IJB-C和IJB-S:
所提出的模型取得的結果始終比最先進的方法好。特別是,簡單地添加變化增強(即“ours(Baseline+ VA)”)實際上會導致IJB-A和IJB-C的性能下降。當變化增強與我們提出的模塊(“ours”)相結合時,可以實現顯著的性能提升。進一步添加PA到“ours”,我們在所有數據集和協議中實現了更好的性能。注意,IJB-A是一個交叉驗證協議。許多工作在評估前對訓練分割進行微調(用“*”表示)。盡管如此,我們的方法在沒有微調的情況下,仍然比IJB-A驗證協議上最先進的方法有顯著的優勢,這表明我們的方法確實在處理不可見的變化時學習到了表征。
表3最后一列顯示了對IJB-S的評估,這是目前為止最具挑戰性的基准測試,針對的是真實的監控場景,圖像質量非常差。我們展示了IJB-S的Surveillance-to-Booking (S2B) 協議。其他協議結果可在補充(supplementary部分)中找到。由於IJB-S最近才發布,很少有研究對這個數據集進行評估。為了全面評估我們的模型,我們使用ArcFace[4]公開發布的模型進行比較。我們的方法在Rank-1和Rank-5識別協議上取得了一致的較好的性能。對於TinyFace,如表1所示,我們實現了63.89%、68.67%的rank-1和rank-5的准確率,其中[3]的准確率為44.80%、60.40%,ArcFace的准確率為47.39%、52.28%。結合表2,我們的方法在一般識別數據集上達到了頂級精度,在具有挑戰性的數據集上獲得了更高的精度,這說明了在處理極端或不可見變化時我們方法的優勢。
Uncertainty Visualization. 圖11顯示了將16個子嵌入的不確定度評分重新划分為4×4個網格。高質量和低質量的子嵌入分別以深色、淺色顯示。對於不同的變化,不確定度圖顯示不同的模式。
6. Conclusion
在這項工作中,我們提出了一個通用的人臉表示學習框架來識別各種變化下的人臉。我們首先通過數據擴充將三種可命名的變化引入MS-Celeb-1M訓練集。傳統的方法在直接將增強后的困難樣本輸入訓練時遇到了收斂問題。提出了一種置信度感知的表示學習方法,將嵌入划分為多個子嵌入,並將嵌入的置信度放寬為特定於樣本和子嵌入的置信度。在此基礎上,提出了變化分類和變化對抗損失的概念。通過對不確定性模型進行推理,合理地聚合了子嵌入。實驗結果表明,該方法在LFW、MegaFace等常規基准測試中取得了頂好的性能,在IJB-A、IJB-C、IJB-S等具有挑戰性的基准測試中取得了較好的精度。
Supplementary
B. Additional Implementation Details
嵌入的backbone網絡θ是[4]中修改后的100層ResNet。在最后一個卷積層之后,網絡被分成兩個不同的分支,每個分支包含一個全連接層。第一個分支輸出一個512維向量,它被進一步划分為16個子嵌入。另一個分支輸出一個16維向量,它是子嵌入的置信值。exp函數用於保證所有的置信值si(k)為正數。θA模型用於挖掘額外的變化,其是一個四層CNN。這四層分別有64、128、256和512個內核,都是3×3的大小。