ArcFace - 人臉識別
點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)

來源:知乎 作者:科密中的科蜜
鏈接:https://zhuanlan.zhihu.com/p/76541084
本文僅作學(xué)術(shù)交流,如有侵權(quán)請聯(lián)系刪文
Paper name
ArcFace: Additive Angular Margin Loss for Deep Face Recognition
Paper Reading Note
URL:?arxiv.org/pdf/1801.0769
TL;DR
該篇文章出自CVPR2019,在SphereFace與CosFace的基礎(chǔ)上提出Additive Angular Margin Loss用于進(jìn)一步增加提取特征的類內(nèi)緊湊性與類間區(qū)分度,在十個(gè)公開數(shù)據(jù)集上取得了SOTA效果。
Introduction
作者認(rèn)為近年來人臉識別最主要的工作都集中在loss函數(shù)的設(shè)計(jì)上
center loss 通過在歐式空間中懲罰人臉特征與他們對應(yīng)的類別中心的距離來達(dá)到增加類內(nèi)緊湊性
SphereFace假設(shè)網(wǎng)絡(luò)最后一層的線性變換矩陣可以將特征表示在一個(gè)超球面的特征空間中,同時(shí)通過增加超球面上的角度margin來提升類間區(qū)分度。作者認(rèn)為angular softmax loss需要一系列的近似才能被計(jì)算,導(dǎo)致了網(wǎng)絡(luò)訓(xùn)練過程的不穩(wěn)定。為了解決訓(xùn)練不穩(wěn)定SphereFace使用了結(jié)合標(biāo)準(zhǔn)softmax loss的hybrid loss形式,這可能使softmax loss主導(dǎo)了整個(gè)訓(xùn)練過程,因?yàn)榛谡麛?shù)相乘的angular margin使得目標(biāo)logit曲線非常陡峭,從而阻礙了收斂
CosFace直接使用cosine margin 來懲罰目標(biāo)logit,在SphereFace的基礎(chǔ)上獲得了更佳的結(jié)果,同時(shí)支持了更簡單的訓(xùn)練過程,而不需要使用標(biāo)準(zhǔn)softmax loss進(jìn)行聯(lián)合優(yōu)化
作者提出了Additive Angular Margin Loss (ArcFace) 來進(jìn)一步提高人臉識別模型的判別能力,并且支持更穩(wěn)定的訓(xùn)練過程
Dataset/Algorithm/Model/Experiment Detail
實(shí)現(xiàn)方式
如下圖所示,在經(jīng)過將fc層權(quán)重和輸出feature進(jìn)行規(guī)范化處理后,兩者的點(diǎn)積就可以看做是深度卷積網(wǎng)絡(luò)輸出的人臉feature。作者使用了arc-consine 函數(shù)來計(jì)算輸出feature與目標(biāo)權(quán)重的角度。然后作者在目標(biāo)角度上增加了附加角邊距 (additive angular margin)。最后作者通過固定的特征規(guī)范化將所有的logits進(jìn)行重新縮放,剩下的步驟就與基于標(biāo)準(zhǔn)softmax loss的步驟一致。

ArcFace使用的loss 函數(shù)推導(dǎo)
原始softmax loss如下所示,原始softmax loss不直接優(yōu)化特征embedding來增加類內(nèi)相似性與類間區(qū)分度。那么在測試樣本具備較大的類內(nèi)差異性(如姿態(tài)變化、年齡變化等)或者大規(guī)模測試場景下(如千萬級別測試集對類間差異性要求較高)表現(xiàn)不佳。

與SphereFace與CosFace類似,作者通過規(guī)范化fc層權(quán)重值,并為了簡單表示將fc的偏移量設(shè)置為0,同時(shí)將特征進(jìn)行規(guī)范化以及re-scale到s,則得到以下loss函數(shù):

將fc輸出的特征進(jìn)行規(guī)范化操作可以使人臉識別預(yù)測結(jié)果僅僅依賴于特征與權(quán)重之間的角度,所以能夠?qū)⑷四樣成涞匠蛎娴奶卣骺臻g上
作者增加了一個(gè)額外角邊距(additive Angular margin)懲罰項(xiàng)用于進(jìn)一步增加類內(nèi)緊湊性與類間區(qū)分度,如下式所示:

與之前人臉識別文章的套路一樣,作者也做了一個(gè)toy實(shí)驗(yàn)用于對所提出的loss的能力進(jìn)行可視化展示

與SphereFace和CosFace的比較
作者畫了圖片展示了三種方法在使用相應(yīng)最佳的margin設(shè)置時(shí)的目標(biāo)logit曲線,畫圖區(qū)間選取在20°到100°之間,這是因?yàn)殡S機(jī)初始化的角度一般90°,訓(xùn)練收斂后角度值集中在30°左右,如下(a)所示。其中(b)圖中不僅分別畫了三種方式的logit曲線,同時(shí)還畫了結(jié)合三種方式的logit曲線:

結(jié)合三種方式的loss函數(shù)如下所示:

三種方式的幾何差異如下所示,SphereFace與CosFace都是一個(gè)非線性的角度margin,而ArcFace擁有一個(gè)線性的角度margin,這對于不同的角度能夠施加平等的約束:

其實(shí)三種方法加入這個(gè)m的作用機(jī)制都是加大分類的難度,從而來使模型學(xué)習(xí)到的feature具有更強(qiáng)的判別能力。只是與SphereFace與CosFace相比,作者認(rèn)為他們提出的加入m的方式對于人臉識別任務(wù)能夠有更佳的決策面
實(shí)驗(yàn)結(jié)果
作者的實(shí)驗(yàn)做得十分豐富,在十個(gè)測試集上進(jìn)行了驗(yàn)證
- 實(shí)現(xiàn)細(xì)節(jié)
- 數(shù)據(jù)集使用了CASIA、VGGFace2、MS1MV2和DeepGlint-Face訓(xùn)練模型
- 作者在多個(gè)驗(yàn)證集上進(jìn)行了測試,數(shù)據(jù)集信息如下所示

- 實(shí)驗(yàn)設(shè)置:
- 基于檢測的五個(gè)人臉關(guān)鍵點(diǎn)進(jìn)行人臉區(qū)域提取
- backbone使用了ResNet50和ResNet100
- 同時(shí)使用了BN-Dropout-FC-BN 的結(jié)構(gòu)來提取512-D的人臉特征
- batchsize設(shè)置為512,四卡NVIDIA Tesla P40(24GB)的GPU進(jìn)行訓(xùn)練
- momentum設(shè)置為0.9
- weight decay設(shè)置為5e-4
- 測試階段使用去除fc的backbone用于提取512-D的特征
- LFW等數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果,可以看到ArcFace能夠取得最佳的結(jié)果,值得注意的是作者提出的將SphereFace、CosFace和ArcFace相結(jié)合的方式(CM1、CM2)能夠取得很好的效果,但是并沒有趕上ArcFace的結(jié)果

- 與Triplet-loss的對比結(jié)果,有相似的類內(nèi)緊湊性,但是類間區(qū)分度Triplet-loss更差

- 不同方法的實(shí)驗(yàn)結(jié)果對比,取得了最優(yōu)結(jié)果

MegaFace上的實(shí)驗(yàn)結(jié)果對比


Thoughts
ArcFace在SphereFace與CosFace的基礎(chǔ)上改進(jìn)了loss函數(shù),改動不大,效果提升很明顯。這一系列的loss函數(shù)變化,以及該篇論文中將三種loss的設(shè)計(jì)思路進(jìn)行結(jié)合的實(shí)驗(yàn),可以看出loss的設(shè)計(jì)確實(shí)是人臉識別任務(wù)中最重要的環(huán)節(jié),感覺這篇文章應(yīng)該是Angular softmax loss系列的尾聲了。
交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計(jì)算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細(xì)分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進(jìn)入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~
