SphereFace、arcface

ArcFace: Additive Angular Margin Lossfor Deep Face Recognition

论文刷新了MegaFace 百万人脸识别挑战的记录,将准确率提升到了98%

MegaFace挑战分为两个部分:

1、用任何数据进行训练,测试1百万张带有干扰物的人脸,1027060个面孔中大约68470个非面孔。


2、训练672 K的身份(470万张图片),以百万计的规模进行测试。

MegaFace数据库介绍:训练数据集包含672057个身份和4,753,520张照片。每个标识的最小照片是3,而最大值是2 469。每个身份的平均照片是7

每个身份的照片的分布如下:

测试集:FaceScrubFGNet

卷积神经网络的人脸识别方法主要有三个属性:1、训练数据,不同的训练库数据量不同。不同的训练数据使得一些识别结果不能完全复现出来。

2、网络结构和设置。速度和准确率的一个权衡。

3、损失函数的设计。

本文:

数据:用VGG2MS-Celeb-1M作为训练集。

VGG2VGG2数据集包含一个有8,631个身份(3141890个图像)的训练集和一个包含500个身份的测试集(169,396个图像)。VGG2在姿势、年龄、光照、种族和职业方面有很大的变化。因为VGG2是一个高质量的数据集,所以我们直接使用它而不需要进行数据优化。

MS-Celeb-1M:最初的MS-Celeb-1M数据集包含100 k个身份和1000万张图片。为了减少噪声获得高质量的训练数据:

将每个身份的人脸图像都按照距离身份中心的距离进行排序。对于特定的身份,人脸图像的特征向量离身份特征中心太远则自动移除。

手动核对第一步中阈值附近的人脸。

最后得到一个380万张85k个身份的数据集。

验证集:LFWCFPAgeDB

LFW13233张图像,5749个身份,6000个人脸对。

CFP500个身份,每个身份有10个正脸,4个侧脸。评估方案:frontal-frontal (FF) and frontal-profile (FP) 人脸验证,有十个文件夹,每个文件夹有350个相同人和350个不同人。本文用CFP-FP进行挑战。

AgeDB:户外数据集。包含12240个身份,每张图片都有关于身份、年龄和性别属性的注释。最小和最大年龄分别为3101。测试数据:四组测试数据,对应不同的年间隔(5,10,20,30)。

测试集:

MegaFace数据集包括gallery setprobe set

gallery set(参考图像集):Flickr的子集,包括1百万张图像,690k不同的身份。

probe set(测试集):包含FaceScrubFGNet

处理:

手动清理了FcaeScrub数据集,最后找到605个噪声图像(身份标签不对)。

手动清理MegaFace干扰物,最后找到707个噪声人脸(身份重复)。

测试时,额外添加一维特征维度用于区别噪声,准确率提高15%

网络结构:

采用各种网络结构进行验证。

输入部分:

本文以112*112图片作为输入,大多数的网络结构的输入是224*224,则本文将网络结构中第一个层卷积中的conv7*7stride2conv3*3stride1替代,最后得到的特征图分别是3*3,7*7(记为‘L’)。

输出部分:

Option-A: Use global pooling layer(GP).

Option-B: Use one fully connected (FC)layer after GP.

Option-C: Use FC-Batch Normalisation(BN) after GP.

Option-D: Use FC-BN-Parametric RectifiedLinear Unit (PReLu) after GP.

Option-E: Use BN-Dropout FC-BN after thelast convolutional layer.

块结构(IR):


BN-Conv-BN-PReLu-Conv-BN

结果:

1、不同的输出结构


2


3、块结构比较

4、网络结构比较


损失函数

本文提出 additive angular margin loss

multiplicative angular margin

cos(mθ)

additive cosine margin

cosθ-m

additive angular margin

cos(θ+m)

 

其损失函数定义:


其是对softmax损失函数的改进。

softmax损失公式:


softmax的第一个改进:L-softmaxLarge-MarginSoftmax Loss

用角度表示:


初始的softmax的目的是使得,即,使得x(来自类别1)分到正确类。

作者提出的large-magrin softmax loss的动机就是希望能够通过增加一个正整数变量m,更加严格的约束上述不等式,让类内的间距更加的紧凑,类间的间距更加具有区分性,


当满足


则一定满足


这样的约束对W1W2的学习过程提出了更高的要求,从而使1类和2类有了更宽的分类决策边界。

几何解释:

 

接下来的一个改进:A-SoftmaxLossSphereFace 2017 cvpr

相对于L-softmax ,A-Softmax Loss的改进是L2正则化固定=1,损失函数:

因为必须属于[0,],保证其单调性。(保证在单调范围内,否则值相同,但角还是很大)

为了约束该条件以及CNN中的优化,拓展为一个递增的角函数


 

几何解释:


modified softmax loss 指对W进行了L2正则化。

A-softmax loss 进行了L2正则化同时对角乘了m


不同的类位于一个单位超球表面的不同区域。它的几何意义是权重所代表的在单位超球表面的点,在训练的过程中,同一类的输入映射到表面上会慢慢地向中心点聚集,而到不同类的中心点慢慢地分散开来。m的大小是控制同一类点聚集的程度,从而控制了不同类之间的距离。

为什么加了W的正则化会这样??

Weights NormalisationOne-shot Face Recognition by PromotingUnderrepresented Classes):

仅归一化分类层的权重。已有结论:某一类对应的W大小与该类训练数目有关(凸包)。训练样本数目不平衡时,导致的W差距较大,结果也不好,通过正则化W的方面能解决类不平衡问题,进而提高分类准确率。

20K,每个身份有50-100张人脸,后面1K,每个人有20张人脸。得到的权重L2正则化:

让权重有相似或相同的norms

图一对应的准确率20%多,图二的准确率70%多。

接下来的又一改进:CosFaceLargeMargin Cosine LossLMCL,腾讯实验室)

A-softmax loss相比,loss将超参数由乘法运算变成了减法运算,同时不仅对权重进行了正则化,还对特征进行了正则化。公式:



因为||X||对得分函数没有贡献,所以将固定||X||=s

m的想法与A-softmax的相同,目的是,则,增强约束。

几种方法比较:


softmax由权重和余弦值共同决定,导致了余弦空间中决策区域重叠。

NSL||W||=1)决策边界由决定,能很好的对特征进行分类,但对噪声敏感,任何围绕边界的小扰动都会改变决策结果。

A-softmax 决策面:


决策区域随着m的减小而减小。

缺点:1、边界空间随着θ的变化而变化;2、分段函数克服余弦函数的单调性困难。

LMCL:在cosine空间定义决策margin,而不是在角空间。


为什么特征正则化重要?

Feature Normalization

在没有特征规范化的情况下,softmax隐示地学习L2范数和角的余弦值。L2范数是以最小化总体损失自适应地学习,导致余弦的约束较弱。而特征规范化之后,特征的学习过程则只依赖于余弦值,这样同类特征集中在一起,不同类特征在球面上被拉开。

举例的说:想要满足:

但当<时,为了损失最小化,则会调整||x||变小。

本文的改进:arcface


cosface相比arcface有更明确的几何解释,角空间的边距对应于超球面上的弧距。

进一步得到

相似,但marginsinθ决定。

几何解释:


arcface不仅能压缩特征区域,而且能与超球面上的测地线距离相对应。(测地线:测地线是空间中局部最短的连接两点的曲线。)

几种方法比较:



结果:


作者从目标分对数 (Target Logit)θ角的分布具体分析,

Target Logit减小能够增加训练难度,提高性能,但是减少太多会导致不收敛。


arcface 好于cosineface

参考链接:https://zhuanlan.zhihu.com/p/33288325

https://zhuanlan.zhihu.com/p/25756194

https://zhuanlan.zhihu.com/p/34717205

哪里有错误希望大家指出。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值