ArcFace

論文:ArcFace: Additive Angular Margin Loss for Deep Face Recognition
代碼:https://github.com/deepinsight/insightface

0 摘要

本文提出了新的監督值:cos(θ+m)\cos(\theta + m),在進行權重和特徵歸一化的基礎上最大化角度空間的決策邊界。

還強調了使用深度網絡進行人臉識別過程中的網絡設置和數據修正的重要性。

1 簡介

目前已經有大量的基於深度學習的人臉識別模型,這些模型主要有三方面的不同:

  • 訓練數據的規模不同:目前常用的人臉識別數據集VGG-Face,VGG-Face2,CAISA-WebFace,UMDFaces,MS-Celeb-1M,MegaFace,圖像的規模從幾千到數十萬不等。雖然MS-Celeb-1M,MegaFace收集的大量人員的人臉圖像,但是他們存在標註噪聲和長尾效應。作爲對比,谷歌的私有人臉數據集包含數百萬人員的照片,FRVT比賽的冠軍依圖科技,用於18億規模的私有數據集。因爲數據集的規模不同,工業界人臉識別產品的性能要好於學術界。由於數據集規模不同,很多深度學習模型的效果無法完全復現。

  • 網絡結構及相關參數設置不同:如果使用大的網絡(ResNet和Inception-Resnet),效果就要比小網絡(VGGNet和Google Inception V1)要好。不同的應用場景需要考慮的產品性能不同,移動式設備上根據關注識別效率,安保場景下更加關注識別精度。

  • 損失函數不同:

    • [1]基於歐式間隔的損失: center loss,Range loss,Marginal loss在類別數很多時佔用GPU過多,contrastive loss,triplet loss構建樣本對需要很強的策略性;
    • [2]基於角度和餘弦間隔的損失:L-softmax提出了cos(mθ)\cos(m\theta)實現了在角度空間內進行識別,SphereFace(A-Softmax)在其基礎上加上了權重歸一化,AM-Softmax提出了cos(θ)m\cos(\theta) - m在餘弦空間內進行識別,取得了當下最先進的識別結果。
      相比於歐式空間間隔,角度空間間隔和餘弦空間間隔在超平面上增加了判別限制,符合人臉分佈在超平面上這一先驗知識。

作者認爲,數據、網絡和損失由高到低的影響識別效果。

本文作者對這三方面分別做了以下工作:
數據:作者修正了最大的人臉公開數據集MS-Celeb-1M,也發現了MegaFace和FaceScrub之間存在數據重複,作者公開了修正後的訓練和測試數據;
網絡:作者提出的網絡對大的姿態和年齡變化具有很好的識別魯棒性。作者也驗證了當前各網絡識別效果和效率;
損失:提出了新的損失,additive angular margin,cos(θ+m)\cos(\theta + m)。對歸一化後的權重和特徵在角度空間內進行優化以最大化決策邊界。新提出的損失比A-softmax和AM-softmax幾何含義更加直觀,識別效果也更好。

在MegaFace比賽上,ArcFace取得了最好的識別效果。作者開放了所有的數據集、模型和代碼。

2 損失函數的演變,從softmax到arcface

2.1 softmax

在這裏插入圖片描述
softmax用於分類可以,但是它沒有最大化同類樣本對之間的相似度且最小化不同類樣本間的相似度,不適合於人臉識別任務。

2.2 權重歸一化

偏置項置0,target logit可以表示成:
在這裏插入圖片描述
如果設置W的範數爲1,那麼預測值就取決於特徵向量和權重之間的夾角值:
在這裏插入圖片描述
SphereFace中,證明了權重歸一化對識別效果有些微的提升。

2.3 乘積角度margin

SphereFace和L-Softmax中,引入了角度margin m。

在這裏插入圖片描述
m是大於等於1的整數,用於控制角度間隔的大小。

在訓練過程中,爲了保證收斂,將上述損失和softmax損失結合使用,使用參數λ\lambda控制兩者的比重。
在這裏插入圖片描述
λ\lambda的初始值設置爲1000,隨着訓練的進行逐漸減小。這樣剛開始訓練的就是softmax loss,後面逐漸加強A-Softmax的比重。但是引入的這個超參數使得訓練過程需要很強的技巧性。

2.4 特徵歸一化

前面的L2-softmax等其他論文已經證明了特徵歸一化的效果,並且特徵的範數也可以用來揭示圖像的質量,但是也要防止特徵太小時造成梯度爆炸。

從前面的工作中,已經證明了權重和特徵歸一化的必要性。權重和特徵歸一化的直觀解釋是限制變化範圍,迫使特徵分佈在固定半徑的超球面上。

按照前面論文的做法,這裏作者也是進行了特徵歸一化,然後再使用係數s進行特徵縮放。作者參照L2-Softmax中的s的公式,設置其值爲64。

在對sphereface使用特徵歸一化之後,可以將其損失表示成下式,稱作SphereFace-FNorm:
在這裏插入圖片描述

2.5 Additive Cosine Margin

AM-Softmax中不再使用角度margin,而是使用了餘弦margin:cos(θ)m\cos(\theta)-m。損失函數爲:
在這裏插入圖片描述
按照原作者的實驗,m取0.35/0.4時效果最好。

AM-softmax的優點是:

  • 實現上簡單,不需要進行超參數調試的技巧;
  • 幾何解釋更加清楚,訓練過程中在不使用softmax監督時也可以很好的收斂;
  • 識別效果也有明顯提升。

2.6 Additive Angular Margin

雖然cosine margin一對一映射到了angular margin,但兩者仍然存在一定的區別。事實上,相比於cosine margin,angular margin的幾何解釋更爲合理,角度空間上的距離就對應於超球面上的弧度距離。

作者提出了一個新的角度間隔,cos(θ+m)\cos(\theta + m),這是因爲在θ[0,πm]\theta \in [0,\pi - m]時,cos(θ+m)\cos(\theta + m)小於cos(θ)\cos(\theta)。總的損失爲:
在這裏插入圖片描述
cos(θ+m)=cos(θ)cos(m)sin(θ)sin(m)\cos(\theta + m) = \cos(\theta)\cos(m) - \sin(\theta)\sin(m),相比於Additive Cosine Margin cos(θ)m\cos(\theta) - m,兩者的形式接近,但新提出的arcface的margin能夠隨着θ\theta動態變化。

在這裏插入圖片描述
幾何解釋:不僅要求cos(θ1)>cos(θ2)\cos(\theta_1) > \cos(\theta_2),而且要求cos(θ1+m)>cos(θ2)\cos(\theta_1 + m) > \cos(\theta_2)。因爲是在角度空間,解釋上更加清晰。

2.7 softmax到arcface的公式及決策邊界示意圖

在這裏插入圖片描述
補充:在代碼實現中,訓練模型的過程中,如果是easy margin,則在θ[m,πm]\theta \in [-m,\pi - m]時使用的損失函數還是cos(θ+m)\cos(\theta + m),但還提供了另一種模式,在θ[m,πm]\theta \in [-m,\pi - m]使用的損失函數是:cos(θ)msin(m)\cos(\theta) - m \sin(m)

個人對於上面式子的理解是,當θ[πm,π]\theta \in [\pi - m,\pi]時,是比較難正確分類的難例樣本,那麼增加margin的值,就可以迫使模型學習到對難例樣本更加正確的分類效果。具體的做法就是用cos(θ)msin(m)\cos(\theta) - m \sin(m)代替cos(θ+m)\cos(\theta + m)

cos(θ+m)(cos(θ)msin(m))=cos(θ)cosmsin(θ)sinmcos(θ)+msinm=cos(θ)(cosm1)+(msin(θ))sinm\cos(\theta + m) - (\cos(\theta) - m \sin(m)) \\ =\cos(\theta) \cos m - \sin(\theta) \sin m -\cos (\theta) + m\sin m \\ = \cos(\theta)(\cos m - 1) + (m-\sin (\theta))\sin m

θ[πm,π]\theta \in [\pi - m,\pi],第一項大於0,第二項也大於0,所以cos(θ+m)>(cos(θ)msin(m))\cos(\theta + m) > (\cos(\theta) - m \sin(m)),也就是說對於難例樣本提出了一個更加嚴格的要求。這個理解如果有錯誤,歡迎批評指正。

2.8 Target Logit 分析

爲了說明爲什麼使用sphereface(A-softmax)、cosface(AM-Softmax)和arcface能夠改善人臉識別效果,作者分析了訓練過程中target logits和θ\theta的變化情況。使用的是LResNet34-IR模型和修正後的MS1M數據集。

在這裏插入圖片描述
圖4(a)是softmax、SphereFace、CosineFace和ArcFace的target logits曲線。對於SphereFace而言,最優設置是m=4,λ\lambda=5,這條曲線和m=1.5,λ=0m=1.5,\lambda=0很接近。但是,SphereFace要求m是正整數。因此,設置m=2,λ=0m=2,\lambda=0,但是訓練卻無法收斂。因此,對於softmax稍微減小下target logits會增大訓練難度且改善效果,但是減少的太多可能會引起訓練過程的發散。從圖4(a)中還可以看出,cosineface是把softmax曲線向下移動,而arcface是把softmax曲線向左移動。

對於m=0.5m=0.5的arcface,在θ[0,180°]\theta \in [0,180°]範圍內,target logits曲線在θ>151.35°\theta > 151.35°之後就開始上升了。但是,如圖4©所示,隨機初始化時,θ\theta初始值是90°,大部分都位於小於105°,訓練過程中角度值也從未達到過150°,因此不需要考慮target logits上升的情況。

在圖4(a)中,在θ[30°90°]\theta \in [30°,90°]時,arcface的取值小於cosineface,因此,在這個區間內,arcface比cosineface限制的更加嚴格。在圖4(b)中,訓練開始時,紅色曲虛線(arcface)比藍色虛線(cosineface)更靠下,說明arcface比cosineface的限制更加嚴格。訓練結束時,arcface比cosineface收斂的更好(圖4(b)中紅色虛線高於藍色虛線,圖4( c )中arcface的θ\theta更靠左)。在圖4©中,結束訓練時,幾乎所有的θ\theta都小於60°,超過60°的都是一些難例樣本和訓練噪聲樣本。從圖4(a)可以發現,雖然在θ\theta小於30°的區間內,cosineface的限制更加嚴格,但從圖4©中看出,cosineface訓練結束時幾乎都沒有收斂到這個區間。

總之,θ[60°,90°]\theta \in [60°,90°]這一區間,增加太大的margin可能會導致訓練發散,例如m=2,λ=0\lambda=0的sphereface。θ[30°,60°]\theta \in [30°,60°]這一區間增大margin可以有效的改善識別效果,因爲這一區間的樣本都是半難例樣本。在θ[0°,30°]\theta \in [0°,30°]這一區間增大margin不會明顯改善識別效果,因爲這一區間對應的都是最容易識別的樣本。那麼查看圖4(a)中θ[30°,60°]\theta \in [30°,60°]這一區間的各條曲線,可以明顯的看到softmax、sphereface、cosineface和arcface的性能優劣。注意,這裏30°、60°這兩個關於難例和容易區分的樣例的角度閾值是粗略估計出來的。

3 實驗

3.1 數據集

3.1.1 訓練數據集

使用VGG2和MS-Celeb-1M數據集做訓練數據。

VGG2訓練集包含8631個人的3141890幅圖像,測試集包含500個人的169396幅圖像。VGG2數據集包含大的姿勢、年齡、光線、種族、職業變化,但圖像質量很好,因此對這個數據集沒有進行數據修正,直接使用。

MS-Celeb-1M數據集大約包含10萬人的1000萬幅圖像。爲了從這個數據集中篩選出高質量的圖像集,作者按照每個人員的每幅圖像距離其類別中心的特徵距離進行了排序,刪除掉距離類別中心太大的圖像。然後對剩下的圖像中距離接近判定閾值的圖像進行了人工篩選。最後保留下來大約8.5萬個人的380萬幅圖像。

3.1.2 驗證數據集

使用LFW、CFP和AgeDB作爲驗證數據集。

LFW:包含5749個人的13233幅圖像,包含了大的姿態、表情和光線的變化。遵從“unrestricted with labelled outside data”協議,在6000個人臉對上驗證模型的準確率。

CFP:CFP包含500個人,每個人有10幅正面照和4幅側面照。驗證規則有兩種,分別是正面-正面、正面-側面人臉驗證,每一種規則都有10個文件夾,每個文件夾中包含350個同一人的圖像對和350個不同人的圖像對。本文中,作者使用了難度更大的正面-側面人臉驗證集衡量模型性能。

AgeDB:數據存在大的姿態、表情、光線和年齡的變化。包含440個人的12240幅圖像。每一幅圖像都標註了人員id、年齡和性別信息。最大年齡是101歲,最小年齡是3歲。每個人的平均年齡跨度是49歲。測試數據有四組,分別是5年、10年、20年、30年的年齡跨度。每一組包含10份人臉圖像,每一份又包含300個正樣本和300個負樣本。人臉驗證的準則和LFW一致。本文中,作者使用了最優挑戰的AgeDB-30子集來驗證模型的識別性能。

3.1.3 測試數據集

MegaFace是目前最大的最大的公開測試數據集,用於驗證在有百萬量級干擾圖像的情況下模型的人臉識別性能。MegaFace數據集分爲gallary set和prob set兩部分。gallary set是yahoo flickr圖像的子集,包含超過69萬人的100萬幅圖像。prob set由兩個已有數據集facescrub和fgnet組成。其中facescrub包含530個人的10萬幅圖像,其中55742幅男性圖像,52076幅女性圖像。FGNet是跨年齡的人臉數據集,包含來自於82個人的1002幅圖像。每個人有來自於不同年齡(從1到69)的多幅圖像。

Megaface數據集中存在一些重複的圖像,會影響識別效果。作者從Facesrub數據集中刪除了605幅噪聲圖像,從MegaFace gallary set中刪除了707幅噪聲圖像。作者公佈了這些噪聲圖像的編號單。

3.2 網絡設置

首先基於VGG2數據集和softmax損失來驗證不同網絡結構的影響。所有的實驗都用mxnet完成,batchsize爲512,在4/8塊Tesla P40上進行訓練。學習率初始值爲0.1,在100k,140k,160k次迭代時學習率分別衰減爲原來的0.1倍。總共訓練了200k次迭代。momentum設置爲0.9,權重衰減設置爲5e-4.

3.2.1 輸入設置

使用五個人臉關鍵點進行相似度變換對齊圖像。裁剪圖像爲112 * 112,減去127.5的均值,除以128進行歸一化。

第一個卷積層卷積核大小是 3 * 3,stride = 1,這樣設置的網絡其名字前標示字母“L”。

3.2.2 輸出設置

網絡的最後幾層進行不同的設置可以影響識別效果。除optionA之外,其他所有設置的輸出特徵維度都是512維,optionA的輸出特徵維度取決於其最後全連接層的channel數。

  • optionA:使用全局池化層;
  • optionB:在全局池化層後使用全連接層;
  • optionC:在全局池化層後使用全連接層+BN;
  • optionD:在全局池化層後使用全連接層+BN+PRelu;
  • optionE:在最後一個全連接層之後使用BN+Dropout+FC+BN。

測試時,兩個人臉特徵的餘弦距離用於衡量其相似度。人臉識別任務中就是選擇特徵最近鄰樣本,人臉驗證任務中就是比較兩張人臉圖像的相似度和特徵閾值的相對大小。

3.2.3 網絡塊設置

作者設計了一個新的網絡塊結構,如下圖所示,使用了該網絡塊的網絡其名字加後綴IR。
在這裏插入圖片描述

3.2.4 骨幹網絡

作者實驗了使用MobileNet、Inception-ResNet-V2、DenseNet、SE和DPN進行人臉識別時的效率、準確率和模型尺寸。

3.2.5 網絡設置的實驗效果

不同輸入尺寸的影響:如果第一個卷積層卷積核大小是 3 * 3,stride = 1,輸出尺寸就是7 * 7,網絡名字加了前綴“L”;如果第一個卷積層的卷積核大小是 7 * 7,stride = 2,那麼輸出尺寸就是3 * 3。下表明確看出特徵的feature map越大,識別準確率越高。

在這裏插入圖片描述
不同輸出結構的影響:下班可以看出,optionE的識別準確率更高。optionE中的dropout參數設置爲0.4,dropout可以作爲正則化項防止過擬合,有效提升模型的人臉識別能力。

在這裏插入圖片描述
**不同網絡塊的影響:**下表給出了原始殘差塊和作者設計的網絡塊的識別差異。結果也表明作者設計的網絡塊可以取得更好的識別效果。

在這裏插入圖片描述
不同骨幹網絡的影響:下表給出了在Tesla P40上不同骨幹網絡模型的識別準確率、效率和模型大小。由於在LFW上的驗證準確率已經趨於飽和,因此這裏主要是衡量在其餘兩個數據集上的驗證效果。Inception-ResNet-V2的識別效率最好,但模型也最大。MobileNet模型尺寸最小,推理速度最快。但由於這些大型模型ResNet-100,Inception-ResNet-V2,DenseNet,DPN和SE-ResNet-100的識別準確率差異很小,因此考慮到模型的準確率、效率和模型大小,選擇LResNet100E-IR完成MegaFace實驗。
在這裏插入圖片描述不同權重衰減係數的影響:基於SE-LResNet50E-IR網絡,測試不同權重衰減係數的影響。可以看出5e-4的效果最好,所以其他實驗中都是使用5e-4的權重衰減係數。

在這裏插入圖片描述

3.3 損失選擇

arcface中間隔m對識別效果也有很大的影響,作者基於LResNetE網絡和arcface損失,調整間隔m從0.2變化到0.8進行實驗,使用修正後的MS1M數據集進行模型訓練。從下表可以看出,隨着m從0.2增大到0.5,識別效果也在持續改善,但m大於0.5後再繼續增加,識別效果就開始變差。所以這裏作者固定間隔m爲0.5。

在這裏插入圖片描述
基於修正後的MS1M數據集和LResNet100E-IR網絡,作者實驗了使用softmax損失、A-softmax、AM-softmax和arcface時的識別效果的差異。由於LFW上的準確率已經區域飽和,因此主要比較在另外兩個數據集上的效果差異。從下表的結果中可以看出:

  1. 相比於softmax,sphereface、cosineface和arcface都明顯改善了人臉驗證效果,尤其是在存在大的姿態和年齡變化的時候;
  2. cosineface和arcface明顯優於sphereface,且更易於實現。cosineface和arcface更易於收斂且不需要使用softmax輔助訓練;
  3. arcface比cosineface略好,但如圖1所示,其幾何可解釋性更好。

在這裏插入圖片描述

3.4 在FaceScrub上進行MegaFace比賽

使用修正後的MS1M數據集,使用LResNet100E-IR網絡訓練模型,表9和表10分別給出了在原始MegaFace和修正後的MegaFace數據集上人臉驗證和識別的效果。

在這裏插入圖片描述在表9中,作者使用完整的MS1M數據集訓練模型。可以看出,arcface明顯效果更好。移除了干擾數據的MegaFace數據集的識別準確率明顯提升。

爲了嚴格遵從Megaface的驗證準則,我們需要從我們的訓練數據集中移除所有FaceScrub中包含的人員的圖像。作者計算了修正後的MS1M數據集和FaceScrub數據集中各人員圖像的特徵中心,發現修正後的MS1M中有578個人的特徵中心和FaceScrub數據集中的人的特徵中心很接近(餘弦距離小於0.45)。作者從修正後的MS1M數據集中移除了這578個人的訓練圖像,並基於這個數據集和arcface訓練模型得到了表10.

在這裏插入圖片描述從表10中可以看出,arcface仍然略微優於cosineface。但相對於表9,各識別準確率都有所下降。但是,移除訓練集和測試集中的重疊圖像後,softmax的準確率下降的最多。在修正後的MegaFace數據集上,cosineface 的驗證準確率略微好於arcface。但從圖8中可以看出,arcface的準確率仍然優於cosineface。
在這裏插入圖片描述

3.5 使用triplet損失優化效果

優於顯存的限制,無法訓練包含百萬量級人員類別的sphereface、cosineface和arcface的模型。但是可以使用度量學習方法,如最常用的triplet損失。最後作者使用triplet損失微調基於softmax損失族訓練好的人臉識別模型。

使用triplet損失進行微調時,使用LResNet100E-IR網絡,設置學習率爲0.005,momentum爲0,權重衰減係數爲5e-4。如表11所示,給出了使用triplet損失微調過的不同模型在AgeDB-30數據集上的驗證準確率。

在這裏插入圖片描述
從上表中可以看出:

  1. 在小規模訓練集上訓練的softmax損失的模型(如VGG2數據集,8631個人)通過在更大規模數據集(MS1M,8萬5千人)上進行微調可以有效改善驗證效果。這個實驗也說明了兩步訓練策略的有效性,相比於從頭訓練triplet損失,這種兩步訓練策略可以有效加速模型訓練過程;
  2. 在原始數據集上微調基於softmax損失訓練的模型,也可以進一步提升模型效果,證明了局部調整可以改善模型整體效果;
  3. 改進的softmax損失,如sphereface、cosineface和arcface,可以持續改善驗證效果。這也證明了局部度量學習方法,如triplet損失,可以作爲全局超平面度量學習方法的補充來進一步提升模型效果。

優於triplet損失中實驗的margin度量時歐式距離,作者將後續進行使用角度度量的triplet損失優化實驗。

4 總結

本文的貢獻主要有:

  1. 修正了當前最大的訓練和驗證數據集,MS1M和MegaFace;
  2. 探索了不同網絡設置對識別準確率和速度的影響;
  3. 提出了一種幾何解釋性更好的損失— arcface,並且分析了爲什麼arcface比softmax、sphereface和cosineface更好;
  4. 以完全可復現的方式在Megaface上取得了最好的驗證效果。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章