深度人臉識別

導讀

利用深度卷積神經網路進行大規模人臉識別的特徵學習面臨的主要挑戰之一:

設計合適的增強識別能力的損失函式

。在歐幾里得空間中,中心損失計算深度特徵與它們的響應類中心之間的距離,以實現類內緊緻性。SphereFace假設最後全連線層中的線性變換矩陣可以作為角空間中類中心的表示,並以乘法的方式懲罰深度特徵與其對應權值之間的夾角。最近,一個流行的研究路線是合併邊的既定損失函式,以便最大限度地模擬人臉類的可分性。

今天要分享的這篇,主要提出了一種additive angular邊緣損失(

ArcFace

)用於人臉識別。由於與超球面上的測地線距離精確對應。所提出的ArcFace具有清晰的幾何解釋,可以說是對所有最近最先進的人臉識別基準的最廣泛的實驗評估,包括一個新的具有萬億個配對級別的大型影象資料庫和一個大規模的影片資料集。最終ArcFace始終優於最先進的技術,並且可以很容易地在可忽略的計算開銷上實現。

論文地址:

https://arxiv。org/pdf/1801。07698。pdf

https://github。com/deepinsight/insightface/tree/master/recognition

深度人臉識別

為了提高類內緊緻性和類間差異性,考慮了四種測地距離約束。(A)Margin-Loss:在樣品與中心點之間插入一個測地線距離;(B)Intra-Loss:縮小樣本與對應中心之間的測地線距離;(C)Inter-Loss:增加不同中心之間的測地線距離;(D)Triplet-Loss:在三重樣本之間插入一個測地線距離。為了提高人臉識別模型的識別能力,提出了一種與(A)中測地距離Margin懲罰完全對應的additive angular邊緣損失(ArcFace)。大量的實驗結果表明,(A)策略是最有效的。

深度人臉識別

如上圖所示,DCNN特性與最後一個全連線層之間的點積等於特徵和權重歸一化後的餘弦距離。利用反餘弦函式來計算當前特徵與目標權重之間的角度。然後,在目標角上加入一個additive angular餘量,再透過餘弦函式得到目標Logit。然後用一個固定的特徵範數重新確定所有的邏輯,隨後的步驟與Softmax損失中的步驟完全相同。

提出的新方法

ArcFace

最廣泛使用的分類損失函式Softmax損失如下:

深度人臉識別

Softmax並沒有明確的將特徵最佳化成正樣本能夠有更高的相似度,負樣本能夠有更低的相似度,也就是說並沒有擴大決策邊界。

提出的演算法虛擬碼步驟如下:

深度人臉識別

在權重歸一化之後,Loss只跟特徵向量和權重之間的角度有關了,如下:

深度人臉識別

由於嵌入特徵分佈在超球面上的每個特徵中心周圍,在xi和Wyi之間增加了一個附加的角餘量懲罰m,以同時增強類內緊性和類間離散性。由於所提出的additive angular餘量與歸一化超球面中的測地距離邊緣懲罰相等,將該方法命名為ArcFace。

深度人臉識別

從包含約1500幅影象/類樣本的8個不同身份中選取人臉影象,分別用Softmax和ArcFace損失訓練二維特徵嵌入網路。如下圖所示,Softmax損失提供了大致可分離的特徵嵌入,但在決策邊界上產生了明顯的模糊性,而提出的ArcFace損失可以明顯地加強最近類之間的差距。

深度人臉識別

Comparison with SphereFace and CosFace

深度人臉識別

在上圖(b)中,繪製了SphereFace、ArcFace和CosFace的目標Logit曲線,並在它們的最佳邊距設定下進行了繪製,只在[20°,100°]內顯示這些目標Logit曲線,因為Wyi和Xi之間的角度從大約90°(隨機初始化)開始,在弧形面訓練期間結束在30°左右,如上圖(a)所示。直觀地說,目標Logit曲線中有三個影響效能的因素,即起始點、終點和斜率。

透過結合所有的邊緣懲罰,實現了SphereFace,ArcFace和CosFace在一個以m1,m2和m3為超引數的統一框架中。

深度人臉識別

如上圖(b)所示,結合上述所有的移動邊距(cos(m1θ + m2)m3),可以很容易地得到其他一些具有高效能的目標Logit曲線。

幾何差異儘管ArcFace和以前的工作有數值上的相似之處,但由於角邊緣與測地線距離有著精確的對應關係,所以所提出的additive angular邊緣具有更好的幾何屬性。如下圖所示,比較了二進位制分類情況下的決策邊界。所提出的ArcFace在整個區間內具有一個恆定的線性角邊緣。相反,SphereFace和CosFace只有一個非線性角邊緣。

深度人臉識別

Comparison with Other Losse

其他損失函式可以根據特徵和權向量的角度表示來設計。例如,可以設計一個損失來加強超球面上類內緊緻性和類間差異。如第一幅圖所示,與其他三個損失進行了比較。類內損失的目的是透過減小樣本與ground truth中心之間的角度/弧來改善類內緻密性。

深度人臉識別

類間損失

的目標是透過增加不同中心之間的角度/弧度來增強類內的差異:

深度人臉識別

實驗及結果分析

人臉資料集簡介:

深度人臉識別

在下表中,首先使用ResNet 50探索CASIA資料集上ArcFace的角度邊距設定,在實驗中觀察到的最佳邊緣是0。5。

深度人臉識別

此外,ArcFace在測試集上比Triplet有更加明顯的邊緣,如下圖所示:

深度人臉識別

在下圖中,透過簡單的矩陣劃分演示了並行加速的主要計算步驟,初學者可以很容易地掌握和再現這些步驟:

深度人臉識別

深度人臉識別

簡單矩陣劃分平行計算。設定:RESNET 50,批次大小8*64,特徵維度512,浮點為32,標識號為100萬,GPU 8*1080ti(11 GB)。通訊費用:1MB(特徵x),訓練速度:800個樣本/秒。