来源:投稿 作者:小灰灰
编辑:学姐
研究背景
1、在人脸识别时,我们需要特征的discrimination
2、之前提出到的一些方法,如triplet loss,center loss, L-softmax,a-softmax都有一些缺陷。
3、centerloss:提出的类别是两个类别,强制改变特征的内在分布,需要联合softmax一起训练,但是对于类别多的时候很难训练。
Triplet loss:训练数据选择复杂度高,semi-hard样本的选择也很复杂,大大降低训练的效率。
SphereFace,CosFace:计算复杂度高,需要辅助函数(保证单调性),以及计算cos(m*theta),并且训练很不稳定,难收敛,需要很多的策略,比如一开始要和softmax的loss做插值。
基于以上问题,发现用深度学习提取特征的主要挑战就是设计好的具有区分性的损失函数,所以提出arcface来获得高度具有区分性的特征用作人脸,并且有着清晰到的几何解释,在很多人脸识别任务上取得了很好的效果。
主要提出了新的用于识别的损失函数,additive angular margin loss,他们最大的区别在于ArchFace是直接在角度空间(angular space)中最大化分类界限,而CosineFace是在余弦空间中最大化分类界限,文章还清洗了公开数据集MS-Celeb-1M的数据,强调了干净数据的对实验结果的影响,还对网络结构和参数做了优化。
总的来说ArcFace做了很多实验来验证additive angular margin、网络结构设计和数据清洗的重要性。
论文标题:
ArcFace: Additive Angular Margin Loss for Deep Face Recognition
论文链接:
https://arxiv.org/pdf/1801.07698.pdf
论文代码:
https://github.com/deepinsight/insightface
数据集:
训练数据集:分别采用CASIA、VGGFACE2、MS1MV2、DeepGlint-Face(包括MS1M-Deepglin和Asian-Deepglin)
人脸验证数据集:LFW、YTF、CFP-FP、AGEDB-30
大姿态和大年龄数据集:CPLFW、CALFW
大规模图像数据集:MegaFace,IJB-B,IJB-C,Trillion-Pairs,iQIYI-VID(视频)
网络结构
我们将特征向量L2归一化,权重L2归一化,他俩的夹角为θ,计算cos(θj),求反余弦arccos(θyi)得到特征xi与真实权值Wyi之间的夹角θyi,添加角度间隔m,再求余弦cos(θyj+m),将所有的log乘以特征尺度s,然后将logit送到softmax函数得到各类别概率。再用Ground Truth OneHot Vector一起算出交叉熵损失。
也就是DCNN特征和最后一个完全连接层之间的点积等于特征和权重归一化后的余弦距离。我们利用arc-cosine函数来计算当前特征和目标权重之间的角度。然后,在目标角上加上一个附加的角度间隔,用余弦函数重新计算逻辑回归的反向传播过程。然后,我们用一个固定的特征范数重新缩放。
看上图,可以看到ArcFace已经具有很好的类内紧凑性和类间差异性。
(A)在样本和中心之间插入测地距离边距。
(B)减小样本与相应中心之间的测地距离。
(C)增加不同中心之间的测地距离。
(D)三个样本之间的测地距离边界。
为了提高人脸识别模型的识别能力,本文提出了一种与(A)中测地距离(弧)边缘惩罚完全对应的加性角边缘损失(ArcFace)。大量的实验结果表明,(A)策略是最有效的。
损失函数
SphereFace、CosineFace还是ArcFace的损失函数,都基于传统的softmax loss进行修改得到的,本质的目的就是一个打压,对目标的概率增加难度。
那么softmax loss函数是:
表示第i个样本的深度特征, 属于第i个类,d=512, 表示权重的第j列,bj是一个偏置项。
因此经过演算,我们得出的ArcFace 函数是:
显而易见的理解就是:
使用8个包含足够样本的不同身份的人脸,分别训练具有具有softmax和ArcFace loss的网络,如上图可见,点表示样本,线表示每个身份的中心方向。
基于特征归一化,所有人脸特征都被推送到具有固定半径的圆弧空间。随着fixed radius惩罚的加入,最近类别之间的测地距离差距变得明显。
Softmax loss提供了可分离的特征,但是边界会产生模糊性,而arcface loss显然在类之间产生了明显的差距。
在人脸识别的领域中,不同损失函数的决策边界。虚线表示决策boundary,灰色区域表示决策margins。
实验结果
在不同数据集上此方法的效果。
消融实验,如下图可见,我们首先使用ResNet50探索CASIA数据集上ArcFace的角度设置。在我们的实验中观察到的最佳角度为0.5。可以更容易地设置SphereFace和CosFace的边距,我们发现当分别设置为1.35和0.35时,它们的性能最佳。
MegaFace上不同型号的CMC和ROC曲线。结果在原始和改进的MegaFace数据集上进行评估。
更多论文解读+代码数据集可点击卡片👇关注