ArcFace论文翻译

ArcFace: Additive Angular Margin Loss for Deep Face Recognition


Abstract

使用深度卷积神经网络(DCNN)进行大规模人脸识别的特征学习的主要挑战之一是设计适当的损失函数,以增强判别力。中心损失惩罚欧氏空间中深部特征与其相应的类中心之间的距离,以实现类内紧凑性。 SphereFace假设最后一个完全连通层中的线性变换矩阵可以用作角度空间中类中心的表示,并以乘法方式惩罚深度特征与其对应权重之间的角度。最近,一种流行的研究方法是将边缘纳入成熟的损失函数中,以最大化面部类别的可分离性。在本文中,我们提出了一种加性角度边缘损失(ArcFace),以获得用于人脸识别的高度辨别特征。由于与超球面上的测地距离的精确对应,所提出的ArcFace具有清晰的几何解释。对于超过10种面部识别基准,包括具有万亿级对的大规模图像数据库和大规模视频数据集,我们可以对所有最新的最先进的人脸识别方法进行最广泛的实验评估。我们证明ArcFace始终优于最先进的技术,并且可以轻松实现,而且计算开销可以忽略不计。我们开发了训练和训练系统。

1. Introduction

使用深度卷积神经网络(DCNN)嵌入的人脸表示是人脸识别的首选方法[32,33,29,24]。 DCNN通常在姿势归一化步骤[45]之后将面部图像映射到具有小的类内和大的类间距离的特征中。训练DCNN进行人脸识别有两个主要的研究方向。那些训练多类分类器的人可以分离训练集中的不同身份,例如使用softmax分类器[33,24,6],以及那些直接学习嵌入的人,例如三胞胎丢失[29]。基于大规模的训练数据和精心设计的DCNN架构,基于softmax-loss的方法[6]和基于三重损失的方法[29]都可以在人脸识别方面获得优异的性能。然而,softmax损失和三重态损失都有一些缺点。对于softmax损失:(1)线性变换矩阵 W ∈ R d × n W \in \mathbb{R}^{d \times n} WRd×n的大小随着身份数n而线性增加;(2)学习特征对于闭集分类问题是可分离的,但对于开集人脸识别问题则不具有足够的判别性。对于三重态损失:(1)面部三元组的数量存在组合爆炸,特别是对于大规模数据集,导致迭代步骤数量的显着增加; (2)semi-hard sample mining是有效模型训练的一个相当难的问题。

已经提出了几种变体[38,9,46,18,37,35,7,34,27]来增强softmax损失的辨别力。温等人。 [38]开创了中心损失,即每个特征向量与其类中心之间的欧几里德距离,以获得类内紧致性,同时通过softmax损失的联合惩罚保证了类间离散。然而,在培训期间更新实际中心非常困难,因为最近可用于培训的面部类别数量急剧增加。

通过观察来自在softmax损失训练的分类DCNN的最后完全连接层的权重与每个面部类别的中心具有概念上的相似性,[18,19]中的工作提出了乘法角度边缘惩罚以强制执行额外的内部 - 阶级紧致性和阶级间差异同时导致训练模型的更好的判别力。尽管Sphereface [18]引入了角度边缘的重要思想,但它们的损失函数需要一系列近似才能进行计算,从而导致网络训练不稳定。为了稳定训练,他们提出了一种混合损失函数,其中包括标准的softmax损失。根据经验,softmax损失在训练过程中占主导地位,因为基于整数的乘法角度裕度使得目标logit曲线非常陡峭,因此阻碍了收敛。 CosFace [37,35]直接将余弦余量罚分加到目标logit上,与SphereFace相比,它获得了更好的性能,但承认更容易实现,并减少了softmax损失的联合监督需求。

在本文中,我们提出了一种附加角度边缘损失(ArcFace),以进一步提高人脸识别模型的判别力并稳定训练过程。如图2所示,DCNN特征与最后一个完全连接层之间的点积等于特征和权重归一化后的余弦距离。我们利用反余弦函数计算当前特征与目标重量之间的角度。然后,我们在目标角度上添加一个附加的角度余量,然后我们通过余弦函数再次得到目标logit。然后,我们通过固定的特征规范重新缩放所有logits,后续步骤与softmax损失完全相同。 ArcFace的优点可归纳如下:

Engaging. ArcFace通过归一化超球面中角度和弧之间的精确对应来直接优化测地距离边缘。我们通过分析特征和权重之间的角度统计,直观地说明了512-D空间中发生的情况。
Effective. ArcFace在包括大型图像和视频数据集在内的十种人脸识别基准测试中实现了最先进的性能。
Easy. ArcFace只需要算法1中给出的几行代码,并且非常容易在基于计算图的深度学习框架中实现,例如:MxNet [8],Pytorch [25]和Tensorflow [4]。此外,与[18,19]中的作品相反,ArcFace不需要与其他损失函数组合以获得稳定的性能,并且可以轻松地收敛于任何训练数据集。
Efficient. ArcFace仅在训练期间增加了可忽略的计算复杂度。当前的GPU可以轻松支持数百万个身份进行培训,模型并行策略可以轻松支持更多身份。

ArcFace论文翻译_第1张图片
图2.训练DCNN进行由ArcFace loss 监督的人脸识别。基于特征xi和权重W归一化,我们得到每个类的cosj(logit)作为WT j xi。我们计算arccosyi并得到特征xi和地面实况权重Wyi之间的角度。实际上,Wj为每个班级提供了一种中心。然后,我们在目标(地面实况)角度yi上添加角度余量罚分m。之后,我们计算cos(yi + m)并将所有logits乘以特征尺度s。然后,logits通过softmax函数并导致交叉熵损失。

2. Proposed Approach

2.1. ArcFace

最广泛使用的分类损失函数softmax损失如下所示:
L 1 = − 1 N ∑ i = 1 N log ⁡ e W y i T x i + b y i ∑ j = 1 n e W j T x i + b j ( 1 ) L_{1}=-\frac{1}{N} \sum_{i=1}^{N} \log \frac{e^{W_{y_{i}}^{T} x_{i}+b_{y_{i}}}}{\sum_{j=1}^{n} e^{W_{j}^{T} x_{i}+b_{j}}} (1) L1=N1i=1Nlogj=1neWjTxi+bjeWyiTxi+byi(1)
其中 x i ∈ R d x_{i} \in \mathbb{R}^{d} xiRd表示第i个样本的深部特征,属于第y类。在[38,46,18,37]之后,本文中的嵌入特征尺寸d被设置为512。 W j ∈ R d W_{j} \in \mathbb{R}^{d} WjRd表示权重 W ∈ R d × n W \in \mathbb{R}^{d \times n} WRd×n的第j列, b j ∈ R n b_{j} \in \mathbb{R}^{n} bjRn是偏置项。批量大小和类号分别为N和n。传统的softmax损失广泛用于深层识别[24,6]。然而,softmax损失函数没有明确地优化特征嵌入以强制类内样本的更高相似性和类间样本的多样性,这导致在大的类内外观变化(例如姿势变化)下的深度面部识别的性能差距[ 30,48]和年龄差距[22,49])和大规模测试场景(例如百万[15,39,21]或万亿对[2])。

为简单起见,我们在[18]中修正偏差bj = 0。然后,我们将logit [26]变换为 W j T x i = ∥ W j ∥ ∥ x i ∥ cos ⁡ θ j W_{j}^{T} x_{i}=\left\|W_{j}\right\|\left\|x_{i}\right\| \cos \theta_{j} WjTxi=Wjxicosθj,其中 θ j \theta_{j} θj是权重Wj和特征xi之间的角度。在[18,37,36]之后,我们通过l2归一化来确定个体权重 ∥ W j ∥ = 1 \left\|W_{j}\right\|=1 Wj=1。在[28,37,36,35]之后,我们还通过l2归一化来修复嵌入特征 ∥ x i ∥ \left\|x_{i}\right\| xi并将其重新缩放到s。特征和权重的标准化步骤使得预测仅取决于特征和权重之间的角度。因此,学习的嵌入特征分布在半径为s的超球面上。
L 2 = − 1 N ∑ i = 1 N log ⁡ e s cos ⁡ θ y i e s cos ⁡ θ y i + ∑ j = 1 , j ≠ y i n e s cos ⁡ θ j ( 2 ) L_{2}=-\frac{1}{N} \sum_{i=1}^{N} \log \frac{e^{s \cos \theta_{y_{i}}}}{e^{s \cos \theta_{y_{i}}+\sum_{j=1, j \neq y_{i}}^{n} e^{s \cos \theta_{j}}}} (2) L2=N1i=1Nlogescosθyi+j=1,j̸=yinescosθjescosθyi2
由于嵌入特征分布在超球面上的每个特征中心周围,我们在xi和 W y i W_{y_{i}} Wyi之间添加了一个附加角度边缘惩罚,以同时增强类内紧凑性和类间差异。由于所提出的附加角度边缘罚分等于归一化超球面中的测地距离边缘罚分,我们将我们的方法命名为ArcFace。
L 3 = − 1 N ∑ i = 1 N log ⁡ e s ( cos ⁡ ( θ y i + m ) ) e s ( cos ⁡ ( θ y i + m ) ) + ∑ j = 1 , j ≠ y i n e s cos ⁡ θ j ( 3 ) L_{3}=-\frac{1}{N} \sum_{i=1}^{N} \log \frac{e^{s\left(\cos \left(\theta_{y_{i}}+m\right)\right)}}{e^{s\left(\cos \left(\theta_{y_{i}}+m\right)\right)}+\sum_{j=1, j \neq y_{i}}^{n} e^{s \cos \theta_{j}}} (3) L3=N1i=1Nloges(cos(θyi+m))+j=1,j̸=yinescosθjes(cos(θyi+m))3
我们从包含足够样本(大约1,500个图像/类)的8个不同身份中选择面部图像,以分别训练具有softmax和ArcFace损失的2D特征嵌入网络。如图3所示,softmax损失提供了大致可分离的特征嵌入,但在决策边界中产生明显的模糊性,而提议的ArcFace损失显然可以在最近的类之间实现更明显的差距。

ArcFace论文翻译_第2张图片
图3.具有2D特征的8个身份的softmax和ArcFace损失下的模型示例。点表示样本和线指的是每个身份的中心方向。基于特征归一化,所有面特征都被推到具有固定半径的弧空间。随着附加角度边缘罚分被合并,最近类别之间的测地距离变得明显。

2.2. Comparison with SphereFace and CosFace

数值相似性。在SphereFace [18,19],ArcFace和CosFace [37,35]中,提出了三种不同的边缘惩罚,例如:乘法角度余量m1,附加角度余量m2和附加余弦余量m3。从数值分析的角度来看,不同的边际惩罚,无论是角度[18]还是余弦空间[37],都通过惩罚目标logit来强制实现类内紧凑性和类间多样性[26]。在图4(b)中,我们在最佳边距设置下绘制SphereFace,ArcFace和CosFace的目标logit曲线。我们只在 [ 2 0 ∘ , 10 0 ∘ ] \left[20^{\circ}, 100^{\circ}\right] [20,100]中显示这些目标logit曲线; 因为Wyi和xi之间的角度从90度左右开始 (随机初始化)并在30度左右结束在ArcFace培训期间如图4(a)所示。直观地,目标logit曲线中有三个因素影响性能,即起点,终点和斜率。

ArcFace论文翻译_第3张图片
图4.目标logit分析。 (a)在ArcFace培训期间从头到尾的分布情况。 (2)softmax,SphereFace,ArcFace,CosFace和组合边际罚分的目标logit曲线

通过结合所有margin penalties,我们在一个统一的框架中实施SphereFace,ArcFace和CosFace,m1,m2和m3作为超参数。
L 4 = − 1 N ∑ i = 1 N log ⁡ e s ( cos ⁡ ( m 1 θ y i + m 2 ) − m 3 ) e s ( cos ⁡ ( m 1 θ y i + m 2 ) − m 3 ) + ∑ j = 1 , j ≠ y i n e s cos ⁡ θ j ( 4 ) L_{4}=-\frac{1}{N} \sum_{i=1}^{N} \log \frac{e^{s\left(\cos \left(m_{1} \theta_{y_{i}}+m_{2}\right)-m_{3}\right)}}{e^{s\left(\cos \left(m_{1} \theta_{y_{i}}+m_{2}\right)-m_{3}\right)+\sum_{j=1, j \neq y_{i}}^{n} e^{s \cos \theta_{j}}}} (4) L4=N1i=1Nloges(cos(m1θyi+m2)m3)+j=1,j̸=yinescosθjes(cos(m1θyi+m2)m3)4
如图4(b)所示,通过组合所有上述动作的边距 ( cos ⁡ ( m 1 θ + m 2 ) − m 3 ) \left(\cos \left(m_{1} \theta+m_{2}\right)-m_{3}\right) (cos(m1θ+m2)m3),我们可以轻松获得其他一些具有高性能的目标logit曲线。

几何差异。尽管ArcFace与之前的工作之间存在数值相似性,但由于角度边缘与测地距离具有精确对应关系,因此所提出的附加角度边界具有更好的几何属性。如图5所示,我们比较二元分类情况下的决策边界。所提出的ArcFace在整个区间内具有恒定的线性角度余量。相比之下,SphereFace和CosFace仅具有非线性角度边界。

ArcFace论文翻译_第4张图片
图5.二元分类情况下不同损失函数的决策余量。虚线表示决策边界,灰色区域是决策边界。

margin designs的微小差异可能会对模型训练产生“蝴蝶效应”。例如,最初的SphereFace [18]采用退火优化策略。为了避免在训练开始时出现分歧,在SphereFace中使用softmax的联合监督来削弱乘法边际惩罚。我们通过采用反余弦函数而不是使用复数双角公式,实现了新版本的SphereFace,而没有边距上的整数要求。在我们的实现中,我们发现m = 1:35可以获得与原始SphereFace相似的性能而没有任何收敛困难。

2.3. Comparison with Other Losses

可以基于特征和权向量的角度表示来设计其他损失函数。例如,我们可以设计一个损失来强制超球面上的类内紧凑性和类间差异。如图1所示,我们将与本文中的其他三个损失进行比较。

ArcFace论文翻译_第5张图片
图1.基于中心[18]和特征[37]归一化,所有身份都分布在超球面上。为了增强类内紧凑性和类间差异,我们考虑四种测地距离(GDis)约束。 (A)Margin-Loss:在样本和中心之间插入测地距离边界。(B)Intra-Loss:减少样本与相应中心之间的测地距离。 (C)Inter-Loss:增加不同中心之间的测地距离。 (D)Triplet-Loss:在三联体样本之间插入测地距离边界。在本文中,我们提出了一个附加角度边缘损失(ArcFace),它与(A)中的测地距离(弧)边缘罚分完全对应,以增强人脸识别模型的判别力。广泛的实验结果表明(A)的策略是最有效的。

Intra-Loss旨在通过减小样本和ground truth中心之间的角度/弧度,提高类内紧凑性。
L 5 = L 2 + 1 π N ∑ i = 1 N θ y i ( 5 ) L_{5}=L_{2}+\frac{1}{\pi N} \sum_{i=1}^{N} \theta_{y_{i}} (5) L5=L2+πN1i=1Nθyi5

Inter-Loss旨在通过增加不同中心之间的角度/弧度来增强阶级间的差异。
L 6 = L 2 − 1 π N ( n − 1 ) ∑ i = 1 N ∑ j = 1 , j ≠ y i n arccos ⁡ ( W y i T W j ) ( 6 ) L_{6}=L_{2}-\frac{1}{\pi N(n-1)} \sum_{i=1}^{N} \sum_{j=1, j \neq y_{i}}^{n} \arccos \left(W_{y_{i}}^{T} W_{j}\right) (6) L6=L2πN(n1)1i=1Nj=1,j̸=yinarccos(WyiTWj)6
这里的Inter-Loss是Minimum Hyper-spherical Energy(MHE)方法的一个特例[17]。在[17]中,隐藏层和输出层都由MHE规范化。在MHE论文中,还提出了一种特殊的损失函数案例,它将SphereFace损失与MHE损失结合在网络的最后一层上。

Triplet-loss旨在扩大三重态样本之间的角度/弧度边界。在FaceNet [29]中,欧几里德边际应用于规范化特征。在这里,我们通过我们的特征的角度表示为 arccos ⁡ ( x i p o s x i ) + m ≤ arccos ⁡ ( x i n e g x i ) \arccos \left(x_{i}^{p o s} x_{i}\right)+m \leq \arccos \left(x_{i}^{n e g} x_{i}\right) arccos(xiposxi)+marccos(xinegxi)来使用三重损失。

3. Experiments

你可能感兴趣的:(【paper阅读】)