[paper] InsightFace

InsightFace

论文地址: https://arxiv.org/abs/1801.07698
项目地址: https://github.com/deepinsight/insightface

创新点

  • 提出了一个新的损失函数(ArcFace),有更好的几何解释性
  • 对于一些公开数据集的二次处理,并将处理后的数据公开
  • 评测了不同网络结构的效果和性能

损失函数

  • 基于欧式距离的损失函数
    网络的输出结果为人脸的特征向量,再根据不同人脸特征向量之间的距离判断两者是否是一个人
  1. 以这种思路为基础,一些损失函数(Centre loss, Range loss, Marginal loss)额外添加惩罚来使类内距离变小,类外距离变大,以提升准确率。利用这几个损失函数的算法都在网络的最后使用了softmax,但是由于人脸分类结果的庞大(百万级),这样会是的分类层消耗大量GPU资源
  2. contrastive loss和Triplet loss利用了结对训练的策略(pair training strategy)。contrastive loss函数包括positive pairs和negative pairs。positive pairs的损失函数倾向于小,negative pairs的损失函数倾向于大。Triplet loss损失函数最小化一个anchor和positive样例,最大化一个anchor和negative样例(如果两个样例图为同一个人,即positive;如果两个样例图为两个人,即negative)。
  • Angular and cosine margin based loss
    出现了large margin Softmax (L- Softmax),除了Euclidean distance上的差异,引入了angular margin。使得类内间距变小,类外间距变大。具体如下图所示。
    原始的softmax的loss损失是一个互熵损失,

    其中

    将其代入第一个式子,得出了损失函数如下,


    进行归一化操作,将其都映射到一个单位球面上,令||W||=1,b=0,并且引入夹角,得出Modified Softmax Loss公式如下,


    SphereFace在此基础上,引入angular margin,用m表示,θ y i ∈ [ 0 , π / m ] \theta_{y_i} \in [0,\pi /m]θyi[0,π/m]。最终产生A-softmax的loss公式,这样可以使cosine space对于角度影像更加直接,并且保证了单调性


    Additive cosine margin将m从和θ \thetaθ相乘提取到了括号外面,变成相减。它相比Sphere的优点:
    1)无需很迷的超参数,m通常设置为0.35
    2)更加清晰且无需softmax supervision
    3)明显提升了效果

    Additive Angular Margin相比Additive cosine margin
    1)从几何方面可解释性更强。
    2)cos(θ + m \theta + mθ+m)=cosθ \thetaθcosm mm-sinθ \thetaθsinm mm,相比于additive cosine margin c o s ( θ ) − m cos(\theta) - mcos(θ)m,它们之间很相近,不同点在于arcface会被s i n θ sin\thetasinθ动态影像
    3)Additive Angular Margin更关注的是cos(θ \thetaθ)整体大小,而Additive cosine margin关注的是θ \thetaθ大小
    这里写图片描述

  • 欧式距离和angular and cosine margin based loss比较
    关于欧式距离与余弦相似度的区别,个人以为这是一种长度与方向的度量所造成的不同。
    欧式距离度量的是长度,它只有远近之分。而余弦相似度是度量方向的,余弦相似度为1,你不可以说这两个向量一样,只能说他们是相似的,因为他们是同方向的,就好象(3,3)与(5,5)。但是马氏距离度量的是长度,长度为0就可以认为他们是一样的。余弦相似度只在[0,1]之间,有准则,而欧式距离在[0,无穷)之间,无判别准则.余弦相似度为0(即直交)就可以说他们很不相似,就算他们之间距离小,但是他们方向完全不一致。而马氏距离就需要另找判别准则来定义怎么算大,怎么算小。于是相对应的应用也就出来,如果你所想应用的是对应方向上,则应该用余弦相似度。但是若要用来区分价值大小,高低价值用户聚类,则应该用欧式距离

数据处理

作者用自动化和手动的方式处理了最大的公开数据集MS-Celeb-1M,并发现MegaFace和FaceScrub之间有数百张图片重复,在MegaFace中删除了这些重复,并将处理后的数据集公开。

名词解释

face-verification 人脸对比
face-recognition 人脸识别
face-detection 人脸检测

参考

https://github.com/k123321141/paper_notes/blob/master/assignment_1/Lecture_12/ArcFace Additive Angular Margin Loss for Deep Face Recognition.md
https://blog.csdn.net/wfei101/article/details/80687390
https://www.zhihu.com/question/19640394


版权声明:本文为siyue0211原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。