insightFaceV1论文详解

insightFace

本文主要引用于:人脸识别:《Arcface》论文详解
且只做学习记录使用,若侵权,留言删除
论文地址:ArcFace: Additive Angular Margin Loss for Deep Face Recognition
内容理解来自于:人脸识别的LOSS

该篇论文详细的介绍了数据,网络,损失函数的三个改进。

1、首先利用VGG2数据集和MS-Celeb-1M数据集(有对数据集进行清洗),作为训练数据集。LFW、CFP、AgeDB数据集作为验证数据集,MegaFace数据集作为测试数据(有对数据进行清洗);

2、然后针对网络的输入输出网络基础块backbone等方面做出优化处理

3、最后对sphereFaceconsineFacearcFace三个损失函数对比结果。

1、主要工作内容

本文在影响人脸识别精度的三个因素做了相关工作

a、数据

对MS-Celeb-1M,MegaFace FaceScrub做了清洗。清洗后的数据公开。

b、网络

详细对比了不同的主流网络结构的性能,提出了能够在较大姿态和时间跨度上表现较好的网络block形式。

c、loss

详细分析了L-softmax,Sphereface,ConsineFace等loss,提出ArcFace,在MegaFace上获得了state-of-the-art精度。

2、从Softmax到Arcface

loss对网络的优化具有导向作用,不同的loss使得网络更加侧重学习到数据的某一特性。从Center Loss的提出,到SphereFace,CosineFace,InsightFace等都有在损失函数这一环节提出新的解决方案,而最终,这些loss都是基于对softmax-loss的修改得到的。

1、softmax-loss

在这里插入图片描述

这是我们传统的Softmax公式,其中,在这里插入图片描述代表我们的全连接层输出,我们在使损失在这里插入图片描述降的过程中,则必须提高我们的在这里插入图片描述占有的比重,从而使得该类的样本更多地落入到该类的决策边界之内。

2.2、center-loss

Center Loss的整体思想是希望一个batch中的每个样本的feature离feature 的中心的距离的平方和要越小越好,也就是类内距离要越小越好。作者提出,最终的损失函数包含softmax loss和center loss,用参数λ来控制二者的比重
在这里插入图片描述

2.3、SphereFace

center-loss的出现,使得人脸识别的研究转向了对loss的优化,人们发现,在softmax-loss中,由在这里插入图片描述知,特征向量相乘包含由角度信息,即Softmax使得学习到的特征具有角度上的分布特性,为了让特征学习到更可分的角度特性,作者对Softmax Loss进行了一些改进
在这里插入图片描述
在这里插入图片描述

其中,作者在在这里插入图片描述中约束了**||W||=1**并且令 bj=0,并将在这里插入图片描述在这里插入图片描述区分出来,就是为了让特征学习到更可分的角度特性。通过这样的损失函数学习,可以使得学习到的特征具有更明显的角分布,因为决策边界只与角相关。

对于Softmax而言,希望能有cos(θ1)>cos(θ2),所以作者增加了在角度空间中对损失函数的约束cos(t⋅θ1)>cos(θ2),也就是要把同类数据压缩在一个紧致的空间,同时拉大类间差距
在这里插入图片描述
由于cosθ在**[0,π]上单调递减,因此θ有上界,为了使得这个函数随角度单调递减,作者构造一个函数去代替cosθ**。
在这里插入图片描述
在这里插入图片描述

sphereFace在实际训练中,softmax可以保证模型的收敛,于是作者对φ(θyi)函数做了变更,并同时用参数λ来控制二者的比重。
在这里插入图片描述

t 大小是控制同一类点聚集的程度,从而控制了不同类之间的距离。而 **λ **也从 1000 降到 5。

后续的F-Norm SphereFace对SphereFace做了更新,仅注重从数据中得到的角度信息,而不考虑特征向量的值,所以采用了s=64作为特征归一化参数替代了**||x||**,因此公式更新为:
在这里插入图片描述

2.4、Cosine-loss

与sphereFace最大的区别就是 t 从余弦函数里面挪到了外面。
在这里插入图片描述

  • 相对于SphereFace而言要更加容易实现,移除了φ(θyi),减少了复杂的参数计算
  • 去除了Softmax监督约束,训练过程变得简洁同时也能够实现收敛
  • 模型性能有明显的改善

2.5、arcFace

尽管余弦裕度具有从余弦空间到角度空间的一对一映射,但是这两个裕度之间仍然存在差异。 实际上,与余弦余量相比,角度空间具有更清晰的几何解释,并且角度空间中的余量对应于超球面的弧距。于是,作者提出了Angular Margin Loss,将角度边缘t置于cos(θ)函数内部,使得cos(θ+t)θ∈[0,π−t]范围内要小于cos(θ),这一约束使得整个分类任务的要求变得更加苛刻。在满足如下公式的情况下:
在这里插入图片描述

arcFace的loss计算公式为:
在这里插入图片描述
如果扩展提议的加法角余量cos(θ+ t),我们将得到cos(θ+ t)= cosθcost - sinθsint。与附加余弦余量cos(θ)- t相比,拟议的ArcFace相似,但是由于sinθ,余量是动态的。

3、Loss对比分析

为了研究 SphereFace、 CosineFace 和ArcFace是如何提高人脸识别的效果,作者使用了 LResNet34E-IR网络和M1SM人脸数据集分别使用不同的损失函数对网络进行训练。target logit指的是网络的全连接层输出(也就是网络的预测为真实类别值:cosine的Target Logit 也就是指在这里插入图片描述的值)。
在这里插入图片描述

由该图可知,0°-30°时,consineFace的惩罚力度比其他的都大,30°-60°时arcFace的惩罚力度要大。
在这里插入图片描述

作者同样给出了网络开始、中间和收敛时 θ 的分布图,从图中我们可以看出,0 ~ 30°内的 θ值很少可以忽略不计,consineFace和arcFace的 θ 值基本在 30°~60°的范围内,而这个范围里,arcFace比cosineFace 的惩罚力度要大
在这里插入图片描述

我们已经由θ的分布图可知在收敛的时候ArcFace的θ中心值与CosineFace相比要偏左一点,同时,由上图可知,收敛的时候红色实线要高于蓝色和黄色实线,也就意味着,收敛的时候ArcFace相对于其他Loss使得同一类更加“紧凑”,相对于其他的Loss实现了将同一个类压缩到一个更紧致的空间,更密集,使得网络学习到的特征具有更明显的角分布特性。

4、网络设置

作者首先使用VGG2作为训练数据并使用Softmax作为损失函数,根据不同的网络设置评估人脸验证性能。 本文中的所有实验均由MxNet实施。batch_size设置为512,并在四块或八块NVIDIA Tesla,P40(24GB)GPU上训练模型。 学习率从0.1开始,并在100k,140k,160k迭代中除以10。 总迭代步长设置为200k。 我们将momentum设为0.9,weight decay设为5e-4。
在这里插入图片描述

4.1、输入设置

大多数神经网络在Image-Net的分类网络的输入尺寸为224,然而人脸的尺寸是112,若直接输入会导致输出尺寸由 7 X 7 变为 3 X 3。因此作者将预训练模型的第一个7x7的conv(stride=2)替换成3x3的conv(stride=1)。实验中将修改后的网络在命名上加了字母**“L”**,比如SE-LResNet50D。
在这里插入图片描述

4.2 、输出设置

所有网络的最后都是添加GAP(global Average pooling)层,不同的输出选择对网络模型的性能选择影响不同。作者探究了不同的输出模式对结果的影响,在测试期间,通过两个特征向量的余弦距离来计算的。比较用于面部识别和验证任务中采用最近邻和阈值。

  • Option-A: Use global pooling layer(GP).
  • Option-B:Use one fullyconnected(FC) layer after GP.
  • Option-C: Use FC-Batch Normalisation (BN) after GP.
  • Option-D: Use FC-BN-Parametric Rectified Linear Unit (PReLu) after GP.
  • Option-E: Use BN-Dropout-FC-BN after the last convolutional layer.
    在这里插入图片描述

通过比较,可知选择E方法作为输出能获得更好的表现。

4.3、网络模块设置

作者设计了一残差网络的改进版进行模型训练。结构为BN-Conv-BN-PReLu-Conv-BN structure,并在第二层网络设置 stride = 2,同时用Prelu替代relu,结构图如下:
在这里插入图片描述

实验结果表明,使用 E 方法加改进的网路结构能获得更好的效果。
在这里插入图片描述

综上所述,最终在Resnet网络上做出了3项改进,第一是将第一个7x7的卷积层(stride=2)替换成3x3的卷积层(stride=1),第二是采用了Option-E输出,第三是使用了改善后的残差块。

5、评估

作者比较不同backbone下的测试精度、测试速度以及模型大小,并在基于精度,速度和模型尺寸之间的权衡,作者选择LResNet100E-IR进行Megaface挑战的实验。
在这里插入图片描述

同时,MegaFace作为百万规模级别的面部识别算法的测试基准,作者以LResNet100E-IR作为网络结构,以MS1M作为训练集,分别对比了不同损失函数在MegaFace上的表现,其中最后两列括号中有“R”是代表清洗过的MegaFace,Rank1指标代表第一次命中率,VR@FAR代表在误识率FAR上的TAR,也就是说第一次命中率Rank1越高越好,VR@FAR越高越好。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值