论文:ArcFace: Additive Angular Margin Loss for Deep Face Recognition
代码:https://github.com/deepinsight/insightface
本文提出了新的监督值: c o s ( θ + m ) cos(θ+m) cos(θ+m),在进行权重和特征归一化的基础上最大化角度空间的决策边界。
ArcFace,Insight face,又名Additive Angular Margin Loss,是人脸识别领域2019年前最好的结果
源码及文档见:https://gitee.com/swjtugx/classmate
一、概述
1、网络结构优化---->损失函数优化
特征提取通常可以认为是人脸识别最关键的步骤,我们希望提取到的特征更偏向于该人脸"独有"的特征。
我们的网络和模型承担着提取特征的重任,优秀的网络和训练策略使模型更加健壮。
在ResNet在2015年被提出后,越来越多优秀的网络基于ResNet进行优化更新也已取得卓越的成就,而在网络结构进一步升级优化有困难的情况下,研究者逐步将目光转向损失函数。
关于Loss对于网络的影响,最直观的就是训练中通过计算Loss反传梯度来实现对模型参数的更新。因此 不同的Loss可以使模型更加侧重于学习到数据某一方面的特性,并在之后能够更好地提取到这一"独有”的 特征,Loss对于网络优化有导向性的作用。
文章 ArcFace:Additive Angular Margin Loss for Deep Face Recognition 的作者提出了Additive Angular Margin Loss。在继SoftmaxLoss、Center Loss、A-Softmax Loss、Cosine Margin Loss之后有好的表现。
1、简介
目前已经有大量的基于深度学习的人脸识别模型,这些模型主要有三方面的不同:
- 训练数据的规模不同:
- 目前常用的人脸识别数据集VGG-Face,VGG-Face2,CAISA-WebFace,UMDFaces,MS-Celeb-1M,MegaFace,图像的规模从几千到数十万不等。
- 虽然MS-Celeb-1M,MegaFace收集的大量人员的人脸图像,但是他们存在标注噪声和长尾效应。作为对比,谷歌的私有人脸数据集包含数百万人员的照片,FRVT比赛的冠军依图科技,用于18亿规模的私有数据集。
- 因为数据集的规模不同,工业界人脸识别产品的性能要好于学术界。由于数据集规模不同,很多深度学习模型的效果无法完全复现。
- 网络结构及相关参数设置不同:
- 如果使用大的网络(ResNet和Inception-Resnet),效果就要比小网络(VGGNet和Google Inception V1)要好。
- 不同的应用场景需要考虑的产品性能不同,移动式设备上根据关注识别效率,安保场景下更加关注识别精度。
- 损失函数不同:
- 基于欧式间隔的损失: center loss,Range loss,Marginal loss在类别数很多时占用GPU过多,contrastive loss,triplet loss构建样本对需要很强的策略性;
- 基于角度间隔和余弦间隔的损失:L-softmax提出了 c o s ( m θ ) cos(mθ) cos(mθ) 实现了在角度空间内进行识别,SphereFace(A-Softmax)在其基础上加上了权重归一化,AM-Softmax提出了 c o s ( θ ) − m cos(θ)−m cos(θ)−m 在余弦空间内进行识别,取得了当下最先进的识别结果。
- 相比于欧式空间间隔,角度空间间隔和余弦空间间隔在超平面上增加了判别限制,符合人脸分布在超平面上这一先验知识。
作者认为,数据 > 网络 > 损失 由高到低的影响识别效果。
使用深度卷积神经网络 (DCNN) 进行大规模人脸识别的特征学习中,主要挑战之一在于 设计适当的损失函数以增强判别能力。
Center Loss 会惩罚欧式空间中深层特征及其对应的类中心之间的距离,以实现 类内紧凑性 (intra-class compactness)。
SphereFace 假定 最后一个全连接层中的线性变换矩阵 可用作角度空间 (angular space) 中类中心的表示,并以乘法方式惩罚深度特征及其相应权重 (weights) 之间的角度 (angles)。
近期,一种流行的研究方向是将 margins 纳入已建立的损失函数中,以最大程度地提高人脸类别可分性 (face class separability)。
本文提出了一个 加性角度边距损失 (Additive Angular Margin Loss, ArcFace),以获取用于人脸识别的高判别度特征 (highly discriminative features)。
由于所提出的 ArcFace 与 超球面上的测地距离 (geodesic distance on the hypersphere) 精确对应,故其具有明晰的几何解释。大量实验表明,ArcFace 始终优于 SOTA,且容易实现,计算开销可忽略不计。
一、Large Margin Cosine Loss (LMCL)【CosFace】
Large Margin Cosine Loss (LMCL):
L L M C = − 1 N ∑ i = 1 N log e s ⋅ [ cos ( θ y i , i ) − m ] e s ⋅ [ cos ( θ y i , i ) − m ] + ∑ j = 1 , j ≠ y i c e s ⋅ cos ( θ j , i ) (4) \begin{aligned}{
{L}_{LMC}}=-\frac{1}{N}\sum\limits_{i=1}^{N}{\log \frac{
{
{e}^{s· [\cos ({
{\theta }_{y_i,i} })-m]}}}{
{
{e}^{s·[\cos ({
{\theta }_{y_i,i}})-m]}}+\sum\nolimits_{j=1,j\ne yi}^{c}{
{
{e}^{s· \cos {
{(\theta }_{j},i)}}}}}} \tag4 \end{aligned} LLMC=−N1i=1∑Nloges⋅[cos(θyi,i)−m]+∑j=1,j=yices⋅cos(θj,i)es⋅[cos(θyi,i)−m](4)
二、Additive Angular Margin Loss(ArcFace)
CosineFace是在余弦空间中最大化分类界限,而ArchFace中是直接在角度空间(angular space)中最大化分类界限,这也是为什么这篇文章叫ArcFace的原因,因为arc含义和angular一样。
L A r c = − 1 N ∑ i = 1 N l o g e s [ c o s ( θ y i , i + m ) ] e s [ c o s ( θ y i , i + m ) ] + ∑ j ≠ y i e s c o s ( θ j , i ) \begin{aligned}L_{Arc}=-\frac{1}{N}\sum\limits_{i=1}^{N}log\frac{e^{s[cos(\theta_{y_i,i}+m)]}}{e^{s[cos(\theta_{y_i,i}+m)]}+\sum_{j\neq y_i}e^{s\ cos(\theta_j,i)}} \end{aligned} LArc=−N1i=1∑Nloges[cos(θyi,i+m)]+∑