发布于2019年。
1 动机
- 利用深度卷积神经网络进行大规模人脸识别的特征学习的主要挑战是设计合适的损失函数以增强区分能力。
- 提出了加法角余量损失(ArcFace),以进一步提高人脸识别模型的判别能力并稳定训练过程。
- ArcFace直接在角度空间中最大化分类界限。有效的提升了模型的判别能力,同时稳定了模型的训练。
2 ArcFace损失函数
- softmax损失函数主要用于分类问题,N表示batchsize,W为(d,n),x为(d,1),b为(n,1)。其中d=512。
- softmax loss没有优化特征嵌入来强制类内样本有更高的相似性和类间样本有更高的多样性。这将导致对于类内外观变化(如姿势变化,年龄差距)下性能较差。
- 将偏置b置为0,然后将Wx = |W| |x| cos(theta),theta是W与x之间的角度。将W与x进行L2归一化处理使得|W|=1,|x|=1,然后在乘上一个缩放因子s。归一化权重和偏置使得预测只依赖于权重和偏置的角度。
- 学习到的特征分布在半径为s的超球面上。
- 由于嵌入特征分布在超球面上的每个特征中心周围,在Wi和xi之间加上角边缘惩罚。同时增强了类内紧凑性和类间差距。
- 实验:从1500个样本(8个不同身份的人脸),训练softmax loss和arcface loss的二维特征嵌入网络。
- softmax loss提供了大致可分离的特征嵌入但是在判决边界中产生明显的模糊性,而arcface loss可以在类之间强制形成更明显的差距。
3 基本流程
- DCNN特征和一个完全连接的层之间的点积等于特征和权重归一化后的余弦距离。我们利用反余弦函数来计算当前特征与目标权重之间的夹角。然后,我们在目标角度上加上一个相加的角度裕度,然后通过余弦函数重新得到目标logit。然后,我们按照固定的s重新缩放所有logit,后续步骤与softmax完全相同。
4 与 SphereFace和CosFace的比较
- 对softmax的改进。m1是SphereFace,m2是ArcFace,m3是CosFace。
- 虚线表示决策边界,灰色区域表示决策余量。
- 比较二分类情况下的决策边界,ArcFace在整个区间内具有恒定的线性角裕度,而SphereFace和CosFace仅有非线性角度余量。
5 实验
数据集:
MegaFace数据集下的测试结果:
- 该数据集包括690K个不同个体的1M张图片和530个独特个体的100K张照片。
- 手动优化MegaFace数据集,筛选出一些错误标签图片。
- 从在数据集表现上来说,ArcFace优于其他几种loss, 著名的megaface赛事,在很长一段时间都停留在91%左右,在使用ArcFace后,准确率就提到了98%,