人脸识别 - Face Recognition via Centralized Coordinate Learning

摘要

  由于深度神经网络和大规模数据集发展,人脸识别取得了显著进步,但人脸特征的分布会影响到网络的收敛和人脸相似度的计算。本文提出CCL(centralized coordinate learning )方法使特征在超球面上分散分布,并提出一种自适应角裕量方法以提高人脸识别性能。
  

引言

  损失函数根据关注点的不同,可分为3类:

  • 关注最终形成的人脸特征,如L2归一化、Normface、Coco loss;
  • 研究分类向量的显著程度,如L-softmax、SphereFace;
  • 添加额外的监督信息,如Center loss、Triplet loss。

  人脸特征和权重向量相互影响,很多研究工作只关注特征x的表达或者权重向量w的表达,忽略了x的分布对w的影响以及造成的最终收敛效果。如果一个训练阶段中大部分人脸特征处于同一象限,就会将最终的特征和相应的向量聚集到这一象限中,降低了不同人脸的分类效率。
  本文兼顾特征x和分类向量w,使特征分散在以原点为中心的整个超球面上,保证训练和测试时的余弦相似度计算一致。同时提出了一种自适应角裕量方法进一步提高人脸特征区分能力。
  

相关工作介绍

  网络结构和损失函数是影响人脸识别的关键因素。

网络结构

  从AlexNet开始,DNN逐渐被应用到人脸识别的研究中。DeepID、DeepFace是第一代,之后有了VGGFace、FaceNet(基于GoogleNet)、ResNet。具体的网络结构选择取决于图像质量和计算能力。本文使用Inception-ResNet-V1.

损失函数

1、softmax loss

LS=i=1nlog(eWyiTxi+byij=1neWjTxi+bj)

  PS:大多数文献中,该公式还需要除以样本总量n。

2、Triplet loss

Lt=i[xaixpi22xaixni22+ϵ]+

3、Center loss

Lc=inxicyi22

  Center loss通过聚类学习每一类的中心点,实际使用中的损失函数形式为:
Lsc=Ls+λLc

4、SphereFace loss

LAS=i=1nloge||xi||cos(mθyi)e||xi||cos(mθyi)+j=1,jyice||xi||cos(θj)

  PS:和之前论文不同,还需要除以样本总量n,且余弦函数是一个分段函数,有超参数调节。

5、Remarks

  主要介绍特征的L2范数归一化:

x¯=αxx

  通过对特征归一化使每一个样本对交叉熵损失函数的贡献是相同的。其中α参数的选择很重要,过小会降低损失函数的判别能力,过大会造成目标概率波动降低训练稳定性。
  本文工作是在SphereFace基础上,同时关注w和x的表述,因此可以在没有margin的情况下实现不同人脸的识别任务。
  

方法介绍

CCL

  对于SphereFace,作者定义了对特征x的处理函数,因此:

Lsf=i=1nloge||Φ(xi)||cos(mθyi)j=1ce||Φ(xi)||cos(θj)

Φ(xi)=xiοiσi

  ο,σi分别是x,xi的均值向量、标准偏差。
  ||Φ(x)||是特征学习成功的关键因素,可以通过损失函数实现对网络训练的影响(过小会降低损失函数的判别能力,过大会造成目标概率波动降低训练稳定性。);同时该函数可以将每个人的人脸特征分散到整个超球面,使不同身份的特征能通过较大的角度进行区分。
  将特征进行L2范数归一化并不能改变特征所在的象限,而且其中的超参数调节也是重要的问题。本文的Φ()将特征的每一维移到坐标原点,因此Φ(x)能跨越坐标系整个空间所有象限;同时Φ(x)的每一维都会对人脸的区分做出同样的贡献,而不是简单依靠某几维重要的维度。
  作者设定输入图像是三维数据,且符合标准高斯分布,则有:
r=||Φ(x)||=i=1D(Φ(x(i)))2

人脸识别 - Face Recognition via Centralized Coordinate Learning
  从图(a)可以发现均值和D的开方很相似,因此较小的r会导致损失函数的判别能力降低,过大的r会造成目标概率波动降低训练稳定性。实验中D值的建议取值区间是350 ~ 400,作者的取值是374。从图(b)可以发现D超过20时方差达到0.5,意味着大多数人脸样本的r值变化不大,因此每个样本都会对交叉熵损失函数形成相同的贡献。
  关于原点向量和标准差ο,σi的获得,首先看两个人脸的相似度比较:
so(x1,x2)=(x1ο)T(x2ο)x1οx2ο

  发现通过相似度比较函数对原点矩阵非常敏感,因此需要设置一个很大的衰减因子来更新原点矩阵和方差:
{οnew=ροold+(1ρ)οbσnew=ρσold+(1ρ)σb

  由于相似度比较对ο非常敏感,因此设置ρ为0.995来保证每次迭代时不会变化很大。
  这种对特征的处理函数可进一步写为:
z=wT||w||Φ(x)

  其权重向量归一化与SphereFace相同,都只应用于分类层而非所有网络结构。特征变换函数与Batch Normalization相似,但BN层是应用于每个卷积层之后,而本文的特征变换函数只用于softmax前最后一个分类层之后。作者之所以没有完全按照BN公式来写,是因为尺度和偏置参数会破坏转换函数的优点。

自适应角裕量

  Angular margin是从L-softmax和SphereFace开始提出和应用,能有效提高人脸识别的性能。为了降低超参数的调节难度,作者提出自适应参数η,并得到:

LAAM=iNlog(pyiAAM)pyiAAM=e||Φ(xi)||cos(ηθyi)e||Φ(xi)||cos(ηθyi)+kyie||Φ(xi)||cos(ηθk)

η={1,π/3<θyi<=π;π/3θyi,π/30<θyi<=π/3;10,θ<=π/30.

  作者认为大角度差异导致的梯度足够反向传播,设置系数为1;小角度差异下为了保证相同的反向传播力度,设置系数为10;在中间情况下,更小的角度差异需要更大的margin系数来保证分类性能。
  作者提示单独使用AAM-softmax不稳定,因此和SphereFace的损失函数相结合,其平衡系数λ=3
L=λLsf+LAAMλ+1.0

人脸识别 - Face Recognition via Centralized Coordinate Learning
  作者比较了不同损失函数的收敛效果:

  • (b)原始softmax可能存在训练和测试时特征分布不一致,不同的权重向量和偏置项是训练的分布在测试时产生不同的角度差异;
  • (c)A-softmax通过去掉偏置项和对权重向量归一化,解决了原始softmax的问题,通过SphereFace的超参数Margin实现更紧凑的分布(d);
  • (a)中如果特征都分布在第一象限,那么A-softmax和SphereFace虽然实现高内聚低耦合,但大多数特征都被聚集到第一象限。CCL方法将各特征拉到原点并分别到全部象限中,使各类别间有了更大的角度差异(e),并通过AAM-softmax实现高内聚(f),能进一步提高人脸识别能力。

  

实验

  作者使用WebFace训练CCL模型,通过MTCNN进行人脸检测,人脸对齐使用双眼对齐水平线再移动剩下三点到中心位置(传统人脸对齐使用MTCNN检测的三个标志位和dlib模板的三个相应点进行仿射变换,但容易发生轮廓的畸变)。图像被归一化到[-1,1]之间,通过将图像resize到182x182后再裁剪160x160子块和翻转实现数据增广。
人脸识别 - Face Recognition via Centralized Coordinate Learning
  网络使用越FaceNet相似的Inception-ResNet,并禁止最后一层ReLU层。对于每张图像都进行相同的处理,得到两个1792维特征,并通过调整两个的前后排列顺序得到两个3584维特征,在通过embedding得到2个374维特征,通过CCL和损失函数后获得两个损失值。
人脸识别 - Face Recognition via Centralized Coordinate Learning
  模型在不同数据集上测试,会存在较大的差异。作者对每一个数据集筛选出1:1的同身份:不同身份样本对,并统计相似度分布直方图,可以发现在LFW和CACD中阳性对相似度分布和阴性对相似度分布有明显的边界,因此模型在这两个数据集间识别效果较好;YTF和SLLFW两个数据集上阳性对相似度分布和阴性对相似度分布有重叠区域,因此需要进一步调节;CALFW上存在较大的重叠部分,这是由于数据集中存在较大的年龄跨度,导致同一身份的样本难以聚类,因此跨年龄识别效果不好。
  
  

结论

  提出CCL方法和AAM损失函数,取得了较好的效果。