CVPR2021 Oral | MagFace: 一个特征,多个任务

x33g5p2x  于2022-05-28 转载在 其他  
字(5.0k)|赞(0)|评价(0)|浏览(699)

**摘要:**人脸识别,质量和聚类都是非常热门且值得关注的方向。目前的工作主要针对某一个任务做优化,少有工作去考虑这几个任务的相关性。如传统质量模型认为的低质量图片其实能被后续识别模型很好地识别,或者高性能识别特征的聚类效果却不尽如人意。论文MagFace: A Universal Representation for Face Recognition and Quality Assessment 提出全新的,能够适用于多个任务的人脸特征表达。MagFace是对识别loss进行优化,不需要额外的标注或者网络结构调整,即插即用。代码已开源:link 。

项目地址:MagFace

开源地址:

GitHub - IrvingMeng/MagFace: MagFace: A Universal Representation for Face Recognition and Quality Assessment, CVPR2021, Oral

class MagLoss(torch.nn.Module):
    """
    MagFace Loss.
    """

    def __init__(self, l_a, u_a, l_margin, u_margin, scale=64.0):
        super(MagLoss, self).__init__()
        self.l_a = l_a
        self.u_a = u_a
        self.scale = scale
        self.cut_off = np.cos(np.pi/2-l_margin)
        self.large_value = 1 << 10

    def calc_loss_G(self, x_norm):
        g = 1/(self.u_a**2) * x_norm + 1/(x_norm)
        return torch.mean(g)

    def forward(self, input, target, x_norm):
        loss_g = self.calc_loss_G(x_norm)

        cos_theta, cos_theta_m = input
        one_hot = torch.zeros_like(cos_theta)
        one_hot.scatter_(1, target.view(-1, 1), 1.0)
        output = one_hot * cos_theta_m + (1.0 - one_hot) * cos_theta
        loss = F.cross_entropy(output, target, reduction='mean')
        return loss.mean(), loss_g, one_hot

背景

当前人脸相关领域中,人脸识别,质量和聚类都是非常热门且值得关注的方向。其中ArcFace是目前最为主流的人脸识别方法,不仅是学术界达到SOTA也被工业界广泛应用。ArcFace提出增加角度间隔尽可能的拉大不同类别之间的角度间隔,从而达到压缩类内距离拉大类间距离的目的。但是由于ArcFace只是简单的使用了一个固定常量间隔。且只考虑了类间间隔并没有对类内分布做更加精细化处理,没有考虑模长等维度的信息。我们期望提出一种新的人脸特征能够更加合理的类内分布适用于多种人脸任务例如识别,质量和聚类,由此我们提出MagFace,充分利用角度和模长两个维度信息。不仅能在识别问题是做到更优的性能,还可以利用好模长维度的信息来衡量人脸质量问题,同时更好的类内分布也有利于聚类任务,一举三得。

MagFace

方法介绍

对于传统的人脸识别算法的损失函数例如Softmax SphereFace CosFace 和 ArcFace,他们都只关注类间的距离间隔。如下图所示,

对于同类的样本并不会在loss设计上做一些专门的约束。例如图二(a) 表示的是ArcFace,对于三种不同类型的图片都使用相同的类间角度间隔m,其中Circle1 2 3 分别代表三种不同质量的人脸特征。Circle越大质量越低(因为低质量的人脸variance更大)。我们可以看出在 (a)图中Circle1 虽然质量最高但是  却是最大的,因为无论人脸质量高低对应的margin是一样的。所以对于高质量的图片也没有更严格的  约束。 我们提出的MagFace期望能够得到更加合理的类内分布(高质量的更小)。为此我们引入特征模长的信息,并充分利用模长信息从两个维度进行惩罚。首先(b)图是对于模长  进行角度间隔函数惩罚(较大的模长给出更大的角度margin惩罚),从而得到一个新的可行区域。(c)图表示,对模长  同时进行模长函数惩罚(模长较小的样本给较大的模长惩罚)。由于在角度和模长两方面的作用下,样本分布会达到最优类内分布如图(d)所示。并且我们在文章附录中也证明了此设计可收敛且有理论最优解。

MagFace Loss

我们首先列出ArcFace的损失函数进行对比

对比ArcFace的loss函数,我们为了得到更好的类内样本分布(高质量样本分布在类中心低质量图片分布在类边缘),在loss函数中引入特征模长的信息用来平衡类内不同质量图片的分布,从而达到如图一所示那样螺旋式分布。为此MagFace主要做了两处改进,第一是把ArcFace的loss函数中角度间隔惩罚由常数项 m,改成了基于特征模长  的函数  ,同时增加一个基于模长的惩罚项  。

其中 m(ai) 是角度margin的惩罚函数  是模长的惩罚系数  是模长的惩罚函数 。我们要求  是严格递增凸函数,  是严格递减凸函数 并且  是最够大的惩罚系数。这是为了使得loss收敛且在数学意义上有最优解,并且我们给出了详细的证明过程。

特征模长分析

我们比较了三种loss的特征模长分布 分别是Softmax ArcFace MagFace,三个图的横坐标表示样本特征的难易程度。可以看出softmax的特征模长和样本难易有相对较弱的关系。其实早期在L2softmax有发现softmax的模长和质量有一定正向关系,但是归一化模长在L2softmax和后续工作都发现能大幅度提高识别性能,因此后来的识别loss里面都选择弃用模长。ArcFace 虽然有特征的难易程度和模长存在一条下界但是我们可以看到在简单样本那分布了各种模长的特征。这也验证了之前提到的ArcFace在训练过程中只考虑类间距离,类内并无约束所以会使得easy case 的模长分布比较离散。(c)是MagFace特征模长和样本难易程度有非常明显的正相关性。这也充分验证了我们利用模长来衡量图片质量的可行性。表明我们MagFace利用模长来设计loss,期望难样本在类边缘简单样本在类中心是有效的。

实验

人脸识别

识别实验中我们用MS1MV2作为训练集,并引用(用表示)和复现多种方法(其中我们复现的ArcFace和原本ArcFace性能基本一致)。可以看到MagFace识别性能相比baselines有明显提升。另外我们利用MagFace的特征可以直接得到qulitay的优势,利用质量分进行多特征加权求和(MagFace+)进一步提升我们的算法在IJB数据集的性能。

人脸质量

下图是对IJB-C的数据集根据不同的模长区间做了平均脸的可视化。从这个可视化可以非常直观的看出,模长越大质量越高,图片越清晰人脸细节更加丰富。这也充分证明了我们模型对于衡量人脸质量非常有效。

另外我们和常见质量模型进行了横向比较,MagFace 在LFW CFP-FP AgeDB30 三个数据集中,都能达到整体最低的 FNMR(越低越好)。我们为了比较公平,在MagFace之外还用了ArcFace的开源模型作为评测模型,可以看出两个模型的趋势都是一致的,且MagFace的性能相对于其他质量模型都到到整体最优的效果。

人脸聚类

由于MagFace的目的是不仅让类间距拉大,并期望得到更好的类内分布(高质量图片在类中心,低质量图片在类边缘)。我们利用常见的4种聚类算法比较了ArcFace 和 MagFace在聚类任务中的效果。可以看到在所有的聚类方法中MagFace的特征都要优于ArcFace。这也证明了MagFace类内特征分布有助于得到更好的聚类效果。

为了进一步的佐证我们的设想,在IJB-B数据集中随机选取500个特征点。可视化样本模长和类中心置信度的关系。我们可以看到特征模长和类中心有明显的正相关性。这样佐证了MagFace的模长可以衡量到类中心的距离同时可以衡量图片质量。

总结

MagFace是一种让高质量的图片更加靠近类中心,并有更大的模长的loss。这种设计能够让特征有更好地类内结构化的分布,且模长也能反应质量,从而在多个任务有提升。我们的理论证明和实验结果都印证了MagFace能达到我们的期望。同时,作为一个通用的方法,该loss可以用在其他领域比如分类,细粒度和reID,或者扩展到其他识别loss如CosFace。

参考文献

[1] Jiankang Deng, Jia Guo, Niannan Xue, and Stefanos Zafeiriou. ArcFace: Additive angular margin loss for deep face recognition. In IEEE Conf. Comput. Vis. Pattern Recog., pages 4690–4699, 2019. 1, 2, 3, 4, 5, 6

[2] Rajeev Ranjan, Carlos D Castillo, and Rama Chellappa. L2-constrained softmax loss for discriminative face verification. 941 arXiv preprint arXiv:1703.09507, 2017. 1, 2, 5

[3] Feng Wang, Xiang Xiang, Jian Cheng, and Alan Loddon Yuille. NormFace: L2 hypersphere embedding for face ver- ification. In ACM Int. Conf. Multimedia, pages 1041–1049, 2017. 2, 5

[4] Javier Hernandez-Ortega, Javier Galbally, Julian Fierrez, Rudolf Haraksim, and Laurent Beslay. FaceQnet: quality assessment for face recognition based on deep learning. In International Conference on Biometrics, 2019. 1, 2, 6, 8

[5] Philipp Terhorst, Jan Niklas Kolf, Naser Damer, Florian Kirchbuchner, and Arjan Kuijper. SER-FIQ: Unsupervised estimation of face image quality based on stochastic embed- ding robustness. In IEEE Conf. Comput. Vis. Pattern Recog., 2020.1,2,6,7,8

[6] Jie Chang, Zhonghao Lan, Changmao Cheng, and Yichen Wei. Data uncertainty learning in face recognition. In IEEE Conf. Comput. Vis. Pattern Recog., pages 5710–5719, 2020. 2,4,7

[7] N Venkatanath, D Praneeth, Maruthi Chandrasekhar Bh, Sumohana S Channappayya, and Swarup S Medasani. Blind image quality evaluation using perception based features. In National Conference on Communications (NCC), pages 1–6. IEEE, 2015. 2, 6, 7

[8] Lei Yang, Dapeng Chen, Xiaohang Zhan, Rui Zhao, Chen Change Loy, and Dahua Lin. Learning to cluster faces via confidence and connectivity estimation. In IEEE Conf. Comput. Vis. Pattern Recog., 2020. 3, 8

相关文章