CVPR 19系列2 | 强判别能力的深度人脸识别(文末附有源码)

2019-07-10 10:51:51 浏览数 (1)

CVPR2019已经告一段落,但是好的文献依然值得慢慢去品味,值得深入阅读去体会作者的意图,从中学习其精髓,去发现更多的创新点。今天为大家推荐一篇关于人脸识别的文献,主要提出了一个更具有判别能力的人脸识别模型,有兴趣的您可以和我们一起来学习。

导读】利用深度卷积神经网络进行大规模人脸识别的特征学习面临的主要挑战之一:设计合适的增强识别能力的损失函数。在欧几里得空间中,中心损失计算深度特征与它们的响应类中心之间的距离,以实现类内紧致性。SphereFace假设最后全连接层中的线性变换矩阵可以作为角空间中类中心的表示,并以乘法的方式惩罚深度特征与其对应权值之间的夹角。最近,一个流行的研究路线是合并边的既定损失函数,以便最大限度地模拟人脸类的可分性。

今天要分享的这篇,主要提出了一种additive angular边缘损失(ArcFace)用于人脸识别。由于与超球面上的测地线距离精确对应。所提出的ArcFace具有清晰的几何解释,可以说是对所有最近最先进的人脸识别基准的最广泛的实验评估,包括一个新的具有万亿个配对级别的大型图像数据库和一个大规模的视频数据集。最终ArcFace始终优于最先进的技术,并且可以很容易地在可忽略的计算开销上实现。

为了提高类内紧致性和类间差异性,考虑了四种测地距离约束。(A)Margin-Loss:在样品与中心点之间插入一个测地线距离;(B)Intra-Loss:缩小样本与对应中心之间的测地线距离;(C)Inter-Loss:增加不同中心之间的测地线距离;(D)Triplet-Loss:在三重样本之间插入一个测地线距离。为了提高人脸识别模型的识别能力,提出了一种与(A)中测地距离Margin惩罚完全对应的additive angular边缘损失(ArcFace)。大量的实验结果表明,(A)策略是最有效的。

如上图所示,DCNN特性与最后一个全连接层之间的点积等于特征和权重归一化后的余弦距离。利用反余弦函数来计算当前特征与目标权重之间的角度。然后,在目标角上加入一个additive angular余量,再通过余弦函数得到目标Logit。然后用一个固定的特征范数重新确定所有的逻辑,随后的步骤与Softmax损失中的步骤完全相同。

提出的新方法

ArcFace

最广泛使用的分类损失函数Softmax损失如下:

Softmax并没有明确的将特征优化成正样本能够有更高的相似度,负样本能够有更低的相似度,也就是说并没有扩大决策边界。

提出的算法伪代码步骤如下:

在权重归一化之后,Loss只跟特征向量和权重之间的角度有关了,如下:

由于嵌入特征分布在超球面上的每个特征中心周围,在xi和Wyi之间增加了一个附加的角余量惩罚m,以同时增强类内紧性和类间离散性。由于所提出的additive angular余量与归一化超球面中的测地距离边缘惩罚相等,将该方法命名为ArcFace。

从包含约1500幅图像/类样本的8个不同身份中选取人脸图像,分别用Softmax和ArcFace损失训练二维特征嵌入网络。如下图所示,Softmax损失提供了大致可分离的特征嵌入,但在决策边界上产生了明显的模糊性,而提出的ArcFace损失可以明显地加强最近类之间的差距。

Comparison with SphereFace and CosFace

在上图(b)中,绘制了SphereFace、ArcFace和CosFace的目标Logit曲线,并在它们的最佳边距设置下进行了绘制,只在[20°,100°]内显示这些目标Logit曲线,因为Wyi和Xi之间的角度从大约90°(随机初始化)开始,在弧形面训练期间结束在30°左右,如上图(a)所示。直观地说,目标Logit曲线中有三个影响性能的因素,即起始点、终点和斜率。

通过结合所有的边缘惩罚,实现了SphereFace,ArcFace和CosFace在一个以m1,m2和m3为超参数的统一框架中。

如上图(b)所示,结合上述所有的移动边距(cos(m1θ m2)−m3),可以很容易地得到其他一些具有高性能的目标Logit曲线。

几何差异尽管ArcFace和以前的工作有数值上的相似之处,但由于角边缘与测地线距离有着精确的对应关系,所以所提出的additive angular边缘具有更好的几何属性。如下图所示,比较了二进制分类情况下的决策边界。所提出的ArcFace在整个区间内具有一个恒定的线性角边缘。相反,SphereFace和CosFace只有一个非线性角边缘。

Comparison with Other Losse

其他损失函数可以根据特征和权向量的角度表示来设计。例如,可以设计一个损失来加强超球面上类内紧致性和类间差异。如第一幅图所示,与其他三个损失进行了比较。

类内损失的目的是通过减小样本与ground truth中心之间的角度/弧来改善类内致密性。

类间损失的目标是通过增加不同中心之间的角度/弧度来增强类内的差异:

实验及结果分析

数据集

在下表中,首先使用ResNet 50探索CASIA数据集上ArcFace的角度边距设置,在实验中观察到的最佳边缘是0.5。

此外,ArcFace在测试集上比Triplet有更加明显的边缘,如下图所示:

在下图中,通过简单的矩阵划分演示了并行加速的主要计算步骤,初学者可以很容易地掌握和再现这些步骤:

简单矩阵划分并行计算。设置:RESNET 50,批次大小8*64,特征维度512,浮点为32,标识号为100万,GPU 8*1080ti(11 GB)。通讯费用:1MB(特征x),训练速度:800个样本/秒。

END

论文地址:https://arxiv.org/pdf/1801.07698.pdf

源码:https://github.com/deepinsight/insightface/tree/master/recognition

0 人点赞