人脸识别--ArcFace/InsightFace:additive angular margin loss for deep face recognition
源码地址:https://github.com/deepinsight/insightface
1. From Softmax to ArcFace
1.1 softmax

在其中,在样本i中被定义为其深度特征i,并归入对应的类别i;在此基础上,在这一过程中将该空间设定为512维的空间;在此过程中权重矩阵W中的第j列对应着全连接层的最后一层权重向量w_j;在此情境下常数b被视为偏置项;在此情形下常数m代表batchsize而n代表分类器的数量
1.2 weights normalisation
简单地,我们固定b_j=0,然后将目标对数函数转换为如下:

我们用L2正则固定||w_j||=1,使得预测仅仅依赖于特征向量和权重之间的角度。

在sphereface实验中,L2权重正则仅仅提高了一点性能。
1.3 Multiplicative Angular Margin
在sphereface中,角边界m以乘法的方式引进到角度中。

其中

。为了去除这个限制,

用一个分段单调函数

代替。sphereface制定为:

m是一个不小于1的整数,在调节角边界尺寸的过程中发挥重要作用。但是,在其中应用sphereface时,则采用了softmax监督机制以确保训练过程具有良好的收敛性;该权重采用的是动态超参数配置策略

来控制,

事实上是:

其中

是一个超参数来促进sphereface训练。在开始的时候

将实验参数设定为1,000后,并逐步降至5值(即K=1,000至V=5),从而实现每个类别之间的角距离更加紧密地相互包围这一典型的动态超参数调节策略

使得sphereface训练比较棘手。
1.4 特征归一化
特征归一化得到了在人脸验证领域的广泛应用。其中一种常见的做法是采用L2范数标准化的欧氏距离与余弦相似度进行衡量。通过L2范数标准化处理后得到所有样本的向量长度被固定为s=64这一参数值,并且在此基础上进行后续运算。基于上述特征与权重的标准化方法,则可以推导出相应的计算结果

如果采用特征归一化技术作用于sphereface模型,则可以获得一种经过归一化的sphereface变体,并将其命名为SphereFace-FNorm:

1.5 可调整的余弦边界
余弦边界m移动到了

在外部领域中,基于此,研究者们开发出了余弦边界损失函数:点击打开链接

在本文中,我们设置了余弦边界参数m的值为0.35。与SphereFace方法相比,可调节的余弦边界(即CosineFace)具有三个显著的优势:(1)该方案无需处理复杂的超参数设置;(2)该方法能够在无需Softmax监督的情况下更加直观地进行优化;(3)实验结果表明该方法较前驱方法在性能上取得了显著提升。
1.6 可调整的角度边界
尽管余弦边界在从余弦空间到角空间的过程中形成了一一对应的关系,在此过程中形成的两个边界面之间仍存在差异。相比之下,角度边界的几何意义更为直观,在超球面流形上的界线对应于arc距离这一概念上比传统方法更为清晰和明确。我们增加了角边界的m参数,并将其引入到了现有的模型架构中进行优化和测试

里面。

,对于分类这个约束更加严格。我们提出的ArcFace定义如下:


1.7 在二分类情况下比较
为了更深入地理解从 softmax 到 ArcFace 的这一过程, 我们展示了该条件下的决策边界, 如表1和图3所示. 通过归一化处理权重与特征, 所提出的方法在此处具有显著的优势.

2. 实验
2.1 实验数据
(1)训练集--VGG2和MS-Celeb-1M
该数据集合包含了两个子集合——训练集与测试集。其中训练集包括了来自不同身份的8,631个人(共计 3{,} 万张左右 图像),而测试集中则涉及了500个人的身份(总计约 一百七十九万张 图像)。值得注意的是,在姿势、年龄分布以及光照条件下等关键特征上存在显著差异。鉴于此数据集合的质量较高,并且考虑到其多样性和代表性特点,在无需进一步优化的情况下可以直接采用该集合作为研究或应用的基础。
MS-Celeb-1M:早期的MS-Celeb-1M数据集包括了千个身份和百万级别的图像样本。该研究旨在降低数据中的噪声干扰以获取高质量的训练数据。
通过依据距离身份中心的距离对每个身份的人脸图像进行排列顺序排列。针对特定身份,在分析其特征向量时发现有某些特征向量与该身份特征中心的距离过于遥远,则将其排除在外。
2)手动核对第一步中阈值附近的人脸。
3) 最后得到一个380万张85k个身份的数据集。
(2)验证集--LFW、CFP、AgeDB
LFW:13233张图像,5749个身份,6000个人脸对。
CFP包含500个不同的人类身份样本,在每个样本中包含10张正面照片以及4张侧面照片。本研究采用CFP-FP作为测试平台,并设计了FF(Frontal frontal)与FP(Frontal profile)两种方法作为验证方案。其中FF指Frontal-frontal的人脸验证方法、FP指Frontal-profile的人脸验证方法。在实验过程中我们设置了十个数据包,在每一个数据包中都包含了350张相同背景的照片以及350张不同背景的照片
该新集合被称为AgeDB,并包含共计N个个体
(3)测试集--MegaFace
gallery set(参考图像集):Flickr的子集,包括1百万张图像,690k不同的身份。
probe set(测试集):包含FaceScrub和FGNet。
FaceScrub拥有100,000张图片,并分为530个不同的身份类别。其中包含了55,742名男性和52,076名女性。FGNet是一个专门用于人脸年龄识别的数据集。它还包含了1,002张人脸图像。其中包含了82个人物样本。每个样本均具有多个不同年龄段的人脸图像(年龄范围从1岁到69岁)。
数据清洗方面:1)在FaceScrub样本库中存在大量(605例)不符合作为真实身份的噪声人脸图,并通过改进算法将这种情况下的人脸识别精度提高1%;2)针对MegaFace数据集中的干扰因素,在测试环节筛选出707例异常样本,并引入额外维度的传统特征辅助识别以区分这些非典型样本,在验证过程中使系统识别能力提升了约15%。
2.2 网络设置
为了训练本研究中的模型架构,在VGG-2网络基础上结合Softmax函数作为目标分类损失函数的前提下,并采用多种网络结构进行人脸验证性能评估
(1)输入设置
我们将输入图像调整为固定尺寸112×112像素,并对RGB图像进行归一化处理。具体而言,在第一个卷积模块中(即第一层),我们采用了3×3大小的可学习卷积核替代传统的7×7卷积核,并将步长从2减少到1以提高计算效率和模型性能
(2)输出设置
嵌入特征维数设置为512。
(3)块设置
基于现有的ResNet单元框架之外,在本次研究中我们开发了一种更适合训练人脸识别模型的残差模块设计,在图7中展示了这一改进型残差结构(命名为'IR'),其具体架构由BN-Conv-BN-PRelu-Conv-BN组成。通过对比实验发现,在第二层卷积操作中将步距设定为2比首层更为合理;此外,在本节方法中采用PReLU而非传统的ReLU激活函数

(4)Backbones
基于模型架构设计的前沿进展中
(5)网络设置结论





2.3 损失设置
边界的参数ms对弧面算法具有至关重要的影响,在本研究中我们进行了系列实验以探索最佳的角度界限。其中参数m的取值范围设定为[0,8]之间。通过采用LMobileNetE网络架构并结合ArcFace损失函数,在经过重新优化的MS1M数据集上进行模型训练。如表6所示的结果表明,在m∈[0,5]时(即m∈[0,5]),实验结果均显示出性能持续提升趋势。当m>0,5时(即m>0,5),验证集上的准确率出现了下降趋势。在此研究中,默认将可调节的角界限设为m=0,5


2.4 MegaFace Challenge1 on FaceScrub


