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可以轻松支持数百万个身份进行培训,模型并行策略可以轻松支持更多身份。

图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列,

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值