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∈Rd×nW \in \mathbb{R}^{d \times n}W∈Rd×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损失如下所示:
L1=−1N∑i=1Nlog⁡eWyiTxi+byi∑j=1neWjTxi+bj(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​=−N1​i=1∑N​log∑j=1n​eWjT​xi​+bj​eWyi​T​xi​+byi​​​(1)
其中xi∈Rdx_{i} \in \mathbb{R}^{d}xi​∈Rd表示第i个样本的深部特征,属于第y类。在[38,46,18,37]之后,本文中的嵌入特征尺寸d被设置为512。Wj∈RdW_{j} \in \mathbb{R}^{d}Wj​∈Rd表示权重W∈Rd×nW \in \mathbb{R}^{d \times n}W∈Rd×n的第j列,bj∈Rnb_{j} \in \mathbb{R}^{n}bj​∈Rn是偏置项。批量大小和类号分别为N和n。传统的softmax损失广泛用于深层识别[24,6]。然而,softmax损失函数没有明确地优化特征嵌入以强制类内样本的更高相似性和类间样本的多样性,这导致在大的类内外观变化(例如姿势变化)下的深度面部识别的性能差距[ 30,48]和年龄差距[22,49])和大规模测试场景(例如百万[15,39,21]或万亿对[2])。

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

图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曲线。我们只在[20∘,100∘]\left[20^{\circ}, 100^{\circ}\right][20∘,100∘]中显示这些目标logit曲线; 因为Wyi和xi之间的角度从90度左右开始 (随机初始化)并在30度左右结束在ArcFace培训期间如图4(a)所示。直观地,目标logit曲线中有三个因素影响性能,即起点,终点和斜率。

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

通过结合所有margin penalties,我们在一个统一的框架中实施SphereFace,ArcFace和CosFace,m1,m2和m3作为超参数。
L4=−1N∑i=1Nlog⁡es(cos⁡(m1θyi+m2)−m3)es(cos⁡(m1θyi+m2)−m3)+∑j=1,j≠yinescos⁡θ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​=−N1​i=1∑N​loges(cos(m1​θyi​​+m2​)−m3​)+∑j=1,j̸​=yi​n​escosθj​es(cos(m1​θyi​​+m2​)−m3​)​(4)
如图4(b)所示,通过组合所有上述动作的边距(cos⁡(m1θ+m2)−m3)\left(\cos \left(m_{1} \theta+m_{2}\right)-m_{3}\right)(cos(m1​θ+m2​)−m3​),我们可以轻松获得其他一些具有高性能的目标logit曲线。

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

图5.二元分类情况下不同损失函数的决策余量。虚线表示决策边界,灰色区域是决策边界。

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

2.3. Comparison with Other Losses

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

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

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

Inter-Loss旨在通过增加不同中心之间的角度/弧度来增强阶级间的差异。
L6=L2−1πN(n−1)∑i=1N∑j=1,j≠yinarccos⁡(WyiTWj)(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(n−1)1​i=1∑N​j=1,j̸​=yi​∑n​arccos(Wyi​T​Wj​)(6)
这里的Inter-Loss是Minimum Hyper-spherical Energy(MHE)方法的一个特例[17]。在[17]中,隐藏层和输出层都由MHE规范化。在MHE论文中,还提出了一种特殊的损失函数案例,它将SphereFace损失与MHE损失结合在网络的最后一层上。

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

3. Experiments

ArcFace论文翻译相关推荐

  1. 深度篇——人脸识别(一)  ArcFace 论文 翻译

    返回主目录 返回 人脸识别 目录 下一章:深度篇--人脸识别(二) 人脸识别代码 insight_face_pro 项目讲解 目录内容: 深度篇--人脸识别(一) ArcFace 论文 翻译 深度篇- ...

  2. Arcface v1 论文翻译与解读

    神罗Noctis 2019-10-13 16:14:39  543  收藏 4 展开 论文地址:http://arxiv.org/pdf/1801.07698v1.pdf 最新版本v3的论文翻译:Ar ...

  3. Arcface v3 论文翻译与解读

    论文地址:http://arxiv.org/pdf/1801.07698.pdf Arcface v3 与 Arcface v1的内容有较大不同.建议先阅读Arcface v1 的论文,再看v3.可以 ...

  4. A Survey of Deep Learning-based Object Detection论文翻译 + 阅读笔记

    A Survey of Deep Learning-based Object Detection论文翻译 + 阅读笔记 //2022.1.7 日下午16:00开始阅读 双阶段检测器示意图 单阶段检测器 ...

  5. FaceID-GAN:Learning a Symmetry Three-Player GAN for Identity-Preserving Face Synthesis论文翻译和解读

    写在之前:这篇work的精妙程度是我平生仅见,或者是我还没看过太多论文.网络模型的设计加上合适的损失函数,一篇CVPR就出来了. 摘要 人脸合成使用GANs已经获得了很卓越的效果.现存在的方法将GAN ...

  6. 【论文翻译】RetinaFace: Single-stage Dense Face Localisation in the Wild

    论文题目:RetinaFace: Single-stage Dense Face Localisation in the Wild 论文来源:RetinaFace: Single-stage Dens ...

  7. Spatial As Deep: Spatial CNN for Traffic Scene Understanding论文翻译

    Spatial As Deep: Spatial CNN for Traffic Scene Understanding论文翻译 Abstract摘要 Convolutional neural net ...

  8. 论文翻译_论文翻译的注意事项有什么?

    针对不同题材的文稿有不同的翻译标准,论文翻译是比较严谨的一种翻译类型,下面小编给大家分享论文翻译的注意事项有什么? 注意"从一而终" 所有的论文,在权威平台上发布的时候都必须译为英 ...

  9. 转:经典论文翻译导读之《Google File System》

    首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 Java小组 工具资源 - 导航条 -首页所有文章资讯Web架构基础技术书籍教程Java小组工具资源 经典论文翻译导读之<Google ...

  10. 论文翻译_做论文翻译需要知道哪些翻译技巧?知行翻译:这3个技巧

    论文,在古代是指交谈辞章或交流思想.而现代常用来指进行各个学术领域的研究和描述学术研究成果的文章.论文不仅是探讨问题进行学术研究的一种手段,也是描述学术研究成果进行学术交流的一种工具.常见的种类包括学 ...

最新文章

  1. 用正交变换化二次型为标准形的具体步骤
  2. python控制鼠标点击标准模块_Python直接控制鼠标键盘模块 pyautogui
  3. 在sqlyog进行数据库的备份_狂神说MySQL07:权限及如何设计数据库
  4. php get 分页,PHP_codeigniter实现get分页的方法,本文实例讲述了codeigniter实现ge - phpStudy...
  5. 网络主机和交换机端口位置的有效定位方法
  6. ubuntu16.04开机只显示桌面背景鼠标解决方法
  7. EGO走进美团——追寻千亿市场背后的技术力量
  8. 惠普服务器故障代码_hp常见错误代码
  9. 动态规划之详细分析0-1背包问题
  10. Android mvp 架构的自述
  11. office2019安装D盘_office2016or2019安装在D盘的方法-可收藏备用
  12. 我的计算机 不显示桌面存储路劲,win10系统保存文件路径在桌面无法显示的操作步骤...
  13. 软件开发价格估算方法
  14. 2021暑假Leetcode刷题——Two Pointers(3)
  15. android辅助功能demo,Android中的辅助功能实现问题
  16. JAVA实现利用第三方平台发送短信验证码
  17. python计算球体体积_如何在Python中用MonteCarloMethod计算10维球体的体积?
  18. vue2练习五个小例子笔记
  19. git 代码记录单条合并的方法
  20. 双击桌面上的IE图标却提示找不到文件iexplore.com的解决办法

热门文章

  1. excel对比两列不同
  2. 云场景实践研究第79期:熊猫直播
  3. linux 源码 rtf编辑 写字板源码,写字板文档和RTF文档的区别是什么?
  4. 使用 C# 生成 EMF 矢量图形文件
  5. 【回归预测】基于GPML工具箱的高斯过程回归附matlab代码
  6. 微信小程序后端Java接口开发与调试
  7. Oracle优化的几个简单步骤
  8. 安卓(Android)的原生系统真的那么好用吗
  9. Yii2.0 获取当前url和域名
  10. mysql maxscale mha_maxscale配合MHA搭建读写分离的高可用架构(基于GTID replication主从架构,mysql5.6)...