深度学习之视频人脸识别系列四:人脸表征-续
作者 | 别看我只是一只洋
本文是深度学习之视频人脸识别系列的第四篇文章,接着第三篇文章,继续介绍人脸表征相关算法和论文综述。在本系列第一篇文章里我们介绍了人脸识别领域的一些基本概念,分析了深度学习在人脸识别的基本流程,并总结了近年来科研领域的研究进展,最后分析了静态数据与视频动态数据在人脸识别技术上的差异;在第二篇文章中介绍了人脸检测与对齐的相关算法。
- 人脸表征
把人脸图像通过神经网络,得到一个特定维数的特征向量,该向量可以很好地表征人脸数据,使得不同人脸的两个特征向量距离尽可能大,同一张人脸的两个特征向量尽可能小,这样就可以通过特征向量来进行人脸识别。
- 论文综述
- L-Softmax:
Softmax Loss 函数被广泛应用于深度学习,较为简单实用,但是它并不能够明确引导神经网络学习区分性较高的特征。L-Softmax能够有效地引导网络学习使得样本类内距离较小、类间距离较大的特征,L-Softmax不但能够调节类间距离的间隔(margin)大小,而且能够防止过拟合。
- Softmax是对softmax loss的改进,softmax loss公式如下所示,
其中 fj 表示最终全连接层的类别输出向量 f的第 j个元素, N为训练样本的个数,则 fyi可以表示为 fyi=WTyi xi,其中 0≤θj≤π,最终的损失函数可得:
softmax的目的是使得WT1x>WT2x,
即 ∥W1∥∥x∥cos(θ1)>∥W2∥∥x∥cos(θ2),从而得到 输入x(来自类别1)输出正确的分类结果。L-Softmax通过增加一个正整数变量 mm,从而产生一个决策余量,能够更加严格地约束上述不等式,即:
其中0≤θ1<π/m。如果 W1和 W2能够满足∥W1∥∥x∥cos(mθ1)>∥W2∥∥x∥cos(θ2),那么就必然满足∥W1∥∥x∥cos(θ1)>∥W2∥∥x∥cos(θ2),这样的约束对学习W1 和 W2的过程提出了更高的要求,在训练学习过程中,类间要比之前多了一个m的间隔,从而使得1类和2类有了更宽的分类决策边界。这种Margin Based Classification使得学习更加的困难,从而使类间距离增加了一个margin距离,L-Softmax loss的总公式如下:
当 m 越大时,分类的边界越大,学习难度当然就越高。
论文仅使用了 WebFace数据集作为训练集和一个简单的卷积网络,就在LFW上达到了98.71%的正确率,证明了L-Softmax loss取得了比softmax loss更好的结果。
- SphereFace :
SphereFace在MegaFace数据集上识别率在2017年排名第一,提出A-Softmax Loss使人脸识别达到不错的效果。A-Softmax Loss基于softmax loss和L-Softmax loss,在二分类模型中,softmax loss为:
如果x为类别一,则希望p1>p2,则二分类的划分函数为:
权重归一化||w||为1,b为0,此时特征上的点映射到单位超球面上,则二分类的划分函数为:
然后使用与L-Softmax loss相同的原理,使
则A-Softmax Loss最终为:
因此A-Softmax Loss是样本类别之间产生了角度距离,让决策函数更加严格并且更加具有可区分性。当m增大,角度距离也会增加。
- Softmax与L-Softmax的最大区别在于A-Softmax的权重归一化了,而L-Softmax则没有。A-Softmax权重的归一化导致特征上的点映射到单位超球面上,A-Softmax仅仅能从角度上划分类别,而L-Softmax是在角度与长度方向进行考量,两个方向如果划分不一就会收到干扰,导致精度下降。
SphereFace使用的模型如下图所示:
训练与测试过程如下图所示,在测试过程中使用余弦计算相似度:
最终SphereFace在训练集较小的情况下,LFW数据集上准确率为99.42%。Sphereface 效果很好,但是它不优美。在测试阶段,Sphereface 通过特征间的余弦值来衡量相似性,即以角度为相似性的度量,在训练阶段,其实 Sphereface 的损失函数并不是在直接优化特征与类中心的角度,而是优化特征与类中心的角度在乘上一个特征的长度,这就造成了训练跟测试之间目标不一致。
- Normface :
在优化人脸识别任务时,softmax本身优化的是没有归一化的内积结果,但是最后在预测的时候使用的一般是cosine距离或者欧式距离,这会导致优化目标和最终的距离度量其实并不一致。 Normface的核心思想是既然最后在特征对比的时候使用归一化的cosine距离,那么在训练的过程中把特征也做归一化处理,做了归一化之后,softmax的优化就变成了直接优化cosine距离了,归一化过程如下,其中e是为了防止除0的较小正数:
相应的损失函数如下,:
其中 W 是归一化的权重,f_i 是归一化的特征,参数 s 的引入是因为保证梯度大小的合理性,去掉bias是因为softmax之前的fc有bias的情况下会使得有些类别在角度上没有区分性但是通过bias可以区分,在这种情况下如果对feature做normalize,会使得中间的那个小类别的feature变成一个单位球形并与其他的feature重叠在一起,所以在feature normalize的时候是不能加bias的。
Normface使用了较小的模型使用多种loss训练,然后在LFW数据集上测试,证明了feature normalize的效果,结果如下:
- CosFace :
Normface 用特征归一化解决了 Sphereface 训练和测试不一致的问题。但是却没有了 margin 的惩罚,腾讯AI Lab的CosFace或者AM-softmax是在 Normface 的基础上引入了 margin,损失函数为:
其中特征与权值都做了归一化,
分类决策为:,比之前增加了m的margin,m 是一个超参数,控制惩罚的力度,m 越大,惩罚越强。
CosFace使用mtcnn进行人脸检测与对齐,人脸表征训练模型使用基于residual units 64层卷积网络的Sphere Face,在5M的训练集上训练,在LFW数据集上测试,精度达到99.73%。
- ArcFace :
ArcFace源于论文Additive angular margin loss for deep face recognition,也叫做InsightFace,论文基本介绍了近期较为流行的人脸识别模型,loss变化从softmax到AM-softmax,然后提出ArcFace,可以说起到了很好的综述作用,论文从三个方面探讨影响人脸识别模型精度的主要因素。
- 数据:数据方面,论文探讨了各个数据集的数据质量和优缺点,并对MS-Celeb-1M,MegaFace FaceScrub做了清洗,清洗后的数据公开。
- 网络:详细对比了不同的主流网络结构的性能,包括输入层尺寸大小、最后输出几层的不同结构、基本网络单元残差网络的不同结构、主干网络的不同模型。经过实验的证明,最后的网络结构:输入图片大小112x112;第一层convLayer 卷积核为3*3 stride 1时,网络输出7*7;主干网络使用ResNet100,并使用改进后的改进的残差网络结构,如下图;最后的几层输出层为最后一个卷积层后+BN-Dropout-FC-BN的结构。
- 损失函数:与 AM-softmax相比,区别在于 Arcface 引入 margin 的方式不同,损失函数为:
Arcface的 m 是在余弦里面,AM-softmax的在外面,ArcFace更为直观并且在超球面维度上有更清晰的解释。Arcface在VGG2和MS-Celeb-1M数据集上训练,在LFW数据集上精度达到99.83%,
参考文献:
【1】 Liu W, Wen Y, Yu Z, et al. Large-Margin Softmax Loss for Convolutional Neural Networks[C]//ICML. 2016: 507-516.
【2】Liu W, Wen Y, Yu Z, et al. Sphereface: Deep hypersphere embedding for face recognition[C]//The IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2017, 1: 1.
【3】Wang F, Xiang X, Cheng J, et al. Normface: l 2 hypersphere embedding for face verification[C]//Proceedings of the 2017 ACM on Multimedia Conference. ACM, 2017: 1041-1049.
【4】Wang F, Cheng J, Liu W, et al. Additive margin softmax for face verification[J]. IEEE Signal Processing Letters, 2018, 25(7): 926-930.
【5】Wang H, Wang Y, Zhou Z, et al. CosFace: Large margin cosine loss for deep face recognition[J]. arXiv preprint arXiv:1801.09414, 2018.
【6】Deng J, Guo J, Zafeiriou S. Arcface: Additive angular margin loss for deep face recognition[J]. arXiv preprint arXiv:1801.07698, 2018.
【总结】:本期文章主要介绍人脸表征相关算法和论文综述,人脸检测、对齐、特征提取等这些操作都可以在静态数据中完成,下一期将给大家介绍在视频数据中进行人脸识别的另一个重要的算法,视频人脸跟踪的概念与方法。