ArcFace: Additive Angular Margin Loss for Deep Face Recognition
ArcFace的优点可概括如下:
迷人的(Engaging)。弧面直接优化测地线的距离裕度(geodesic distance margin),通过精确对应的角度和弧线在规范化超球面。我们通过分析特征和权重之间的角度统计,直观地说明了在512-D空间中发生了什么。
有效。ArcFace在包括大型图像和视频数据集在内的十个人脸识别基准上实现了最先进的性能。
容易的。ArcFace只需要算法1中给出的几行代码,并且非常容易在基于计算图的深度学习框架中实现,例如MxNet[8]、Pythorch[25]和Tensorflow[4]。此外,与文献[18,19]的工作相反,ArcFace不需要与其他损失函数相结合就可以获得稳定的性能,并且可以很容易地收敛到任何训练数据集上。
非常高效。ArcFace在训练过程中只增加了微不足道的计算复杂度。当前的gpu可以很容易地支持数百万个用于训练的标识,而模型并行策略可以很容易地支持更多的标识。
2. Proposed Approach
2.1. ArcFace
最常用的分类损失函数softmax损失如下:
代表属于第类别的第i个样本的深度特征。本文将嵌入特征维数d设置为512,代表第j列的权重, 是偏置项。批大小和类号分别为N和n。然而,softmax loss函数没有显式地优化特征嵌入以增强类内样本的更高相似度和类间样本的多样性,这导致在类内外观变化较大(例如姿势变化[30,48]和年龄差距[22,以及大规模的测试场景(例如百万[15,39,21]或万亿对[2])。
为了简单起见,我们固定,我们变换logit是Wj和xi之间的角度。我们通过正则固定单个的权重,通过正则固定嵌入特征并重新缩放到s。特征和权重的归一化步骤使得预测仅取决于特征和权重之间的角度。所学习的嵌入特征分布在一个半径为s的超球面上。
由于嵌入特征分布在超球面上的每个特征中心附近,我们在xi和之间增加了一个附加的angular margin惩罚,同时增强了类内紧性和类间差异。由于所提出的additive angular margin penalty等于归一化超球中的geodesic distance margin penalty,因此我们将该方法命名为ArcFace。
我们从8个不同的身份中选择包含足够样本(大约1500个图像/类)的人脸图像,分别用softmax和ArcFace损失训练的二维特征嵌入网络。如图3所示,softmax损失提供了大致可分离的特征嵌入,但在决策边界中产生明显的模糊性,而所提出的弧面损失显然会在最近的类之间造成更明显的间隙。
图3。softmax和ArcFace下的玩具示例8个具有二维特征的标识。点表示样本,线表示每个标识的中心方向。基于特征标准化,所有的人脸特征都被推送到半径固定的弧空间。随着additive angular margin penalty的加入,最近类之间的geodesic distance gap变得明显。
2.2. Comparison with SphereFace and CosFace
在SphereFace[18,19]、ArcFace[37,35]和CosFace[37,35]中,分别提出了multiplicative angular margin m1、additive angular margin m2和additive cosine margin m3三种不同的边界惩罚。从数值分析的角度来看,无论是在角[18]或余弦空间[37]上加上不同的裕度惩罚,都通过惩罚目标logit[26]来增强类内紧性和类间多样性。
通过合并所有的margin penalties,我们实现SphereFace、ArcFace和CosFace在一个统一的框架中,以m1、m2和m3作为超参数。
几何差异。尽管ArcFace与前人的工作在数值上有相似之处,但是由于angular margin与geodesic distance的精确对应,所提出的additive
angular margin具有更好的几何属性。如图5所示,我们比较了二元分类情况下的决策边界。所提出的弧ArcFace在整个间隔内具有恒定的inear angular margin。相比之下,SphereFace和CosFace只有nonlinear angular margin.
图5。二分类情况下不同损失函数的决策裕度。虚线表示决策边界,灰色区域表示decision margins。
margin设计上的微小差异会对模型训练产生“蝴蝶效应”。例如,原始SphereFace[18]采用退火优化策略。为了避免在训练开始时出现分歧,在SphereFace训练过程中采用softmax的联合监督来削弱multiplicative margin penalty。我们用arc-cosine函数代替复双角公式( double angle formula),实现了一种新的无整边要求的 SphereFace。在我们的实现中,我们发现m=1.35可以在没有任何收敛困难的情况下获得与原始SphereFace相似的性能。
3. Experiments
3.1. Implementation Details
数据集。如表1所示,我们分别采用CASIA[43]、VGGFace2[6]、MS1MV2和DeepGlint Face(包括MS1M DeepGlint和Asian DeepGlint)[2]作为我们的训练数据,以便与其他方法进行公平比较。请注意,建议MS1MV2是MS-Celeb-1M数据集的半自动优化版本[10]。
据我们所知,我们是第一个使用特定于种族的注释者进行大规模人脸图像注释的人,因为如果注释者不熟悉身份,边界情况(例如硬样本和噪声样本)很难区分。在训练过程中,我们探索有效的人脸验证数据集(如LFW[13]、CFP-FP[30]、AgeDB-30[22]),以检查不同设置的改进。
除了最广泛使用的LFW[13]和YTF[40]数据集外,我们还报告了ArcFace在最近的大姿态和大年龄数据集(如CPLFW[48]和CALFW[49])上的性能。我们还在大规模图像数据集(例如MegaFace[15]、IJB-B[39]、IJB-C[21]和万亿对[2])和视频数据集(iQIYI VID[20])上广泛测试了所提出的ArcFace。
实验设置。对于数据预处理,我们遵循最近的论文[18,37]通过使用五个人脸关键点来生成标准化的裁剪人脸(112 x 112)。对于嵌入网络,我们采用了广泛使用的CNN网架构ResNet50和ResNet100【12,11】。在最后一个卷积层之后,我们探索BN[14]-Dropout[31]-FC-BN结构以获得最终的512-D嵌入特征。在本文中,我们使用([训练数据集,网络结构,loss])来帮助理解实验设置。
我们按照[37](Large margin cosine loss)将特征标度s设置为64,并在选择ArcFace的angular margin m为0.5。本文的所有实验都是 MXNet[8]实现的。我们将批量大小设置为512,并在四个NVIDIA Tesla P40(24GB)gpu上训练模型。在CASIA上,学习率从0.1开始,在20K、28K迭代时除以10。训练过程在32K次迭代中完成。在MS1MV2上,我们在100K次、160K次和180K次迭代处将学习速率除10。我们把动量设为0.9,重量衰减为5e-4。
在测试过程中,我们只保留没有全连接层的特征嵌入网络(ResNet50为160MB,ResNet100为250MB),并为每个标准化的人脸提取512-D特征(ResNet50为8.9ms/人脸,ResNet100为15.4ms/人脸)。
为了得到模板(如IJB-B和IJB-C)或视频(如YTF和iQIYI-VID)的嵌入特征,我们只需计算模板中所有图像或视频中所有帧的特征中心。注意,训练集和测试集之间的重叠标识将被删除以进行严格的评估,并且我们只对所有测试使用 a single crop 。
3.2. Ablation Study on Losses
在表2中,我们首先使用ResNet50研究CASIA数据集上ArcFace的角边设置。在我们的实验中观察到的最佳margin是0.5。
利用公式4中提出的组合margin框架,我们发现当分别设置SphereFace 裕度和CosFace的裕度为1.35和0.35时,这两个值具有最佳性能。我们对SphereFace和CosFace的实现可以在没有任何收敛困难的情况下获得优异的性能。所提出的 ArcFace在所有三个测试集上都达到了最高的验证精度。
3.3. Evaluation Results
LFW、YTF、CALFW和CPLFW的结果。LFW[13]和YTF[40]数据集是在图像和视频上进行无约束人脸验证的最广泛使用的基准。在本文中,我们遵循无限制的带标签外部数据协议来报告性能。如表4所示,使用ResNet100在MS1MV2上训练的ArcFace在LFW和YTF上都显著地超过了基线(例如SphereFace[18]和CosFace[37]),这表明additive angular margin可以显著地增强深入学习的特征的辨别能力,证明ArcFace的有效性。
Face[18]和CosFace[37]),这表明additive angular margin可以显著地增强深入学习的特征的辨别能力,证明ArcFace的有效性。