(DeepID2)Deep Learning Face Representation by Joint Identification-Verification

https://arxiv.org/pdf/1406.4773.pdf

摘要

  人脸识别的关键挑战是开发有效的特征表示,以减少同一人之间的差异,同时扩大不同人之间的差异。在本文中,我们证明了通过深度学习和使用人脸识别和验证信号作为监督可以很好地解决这个问题。深度识别验证功能(DeepID2)是通过精心设计的深度卷积网络来学习的。人脸识别任务通过将从不同身份提取的深度ID2分开来增加人与人之间的差异,而人脸验证任务通过将从相同身份提取的深度ID2拉到一起来减少人与人之间的差异,这两者对于人脸识别都是必不可少的。所学的DeepID2特征可以很好地推广到训练数据中未发现的新身份。在具有挑战性的LFW数据集[11]上,人脸验证准确率达到99.15%。与LFW的最佳深度学习结果[21]相比,错误率显著降低了67%。

1 引言

  当以不同的姿势、照明、表情、年龄和遮挡呈现时,相同身份的面孔看起来会有很大不同。同一身份中的这种差异可能会压倒因身份差异而产生的差异,并使人脸识别变得困难,尤其是在不受约束的条件下。因此,减少同一人之间的差异,同时扩大不同人之间的差异是人脸识别中永恒的话题。可以追溯到早期的子空间人脸识别方法,如LDA [1],贝叶斯人脸[17],统一子空间[23,24]。例如,LDA通过使用两个线性子空间来近似个人之间和个人内部的面部变化,并找到投影方向以最大化它们之间的比率。最近的研究也明确或含蓄地针对同一目标。例如,度量学习[6,9,15]将人脸映射到一些特征表示,使得相同身份的人脸彼此靠近,而不同身份的人脸保持分离。然而,这些模型受到其线性性质或浅层结构的限制,而个体间和个体内的变化是复杂的、高度非线性的,并且在高维图像空间中观察到。
  在这项工作中,我们表明深度学习提供了更强大的工具来处理这两种类型的变化。由于其深度结构和大的学习能力,人脸识别的有效特征可以通过分层非线性映射来学习。我们认为,通过同时使用两个监控信号,即人脸识别和验证信号来学习这些特征是至关重要的,并且所学习的特征被称为深度识别-验证特征(DeepID2)。识别是将输入图像分类为大量的身份类别,而验证是将一对图像分类为是否属于同一身份(即二进制分类)。在训练阶段,给定一个有标识的输入人脸图像,其DeepID2特征提取在学习到的分层非线性特征表示的顶层隐藏层,然后通过另一个函数g(DeepID2)映射到大量身份之一。在测试阶段,学习到的DeepID2特征可以推广到其他任务(如人脸验证)和训练数据中未发现的新身份。识别监控信号倾向于将Deep ID2特征分离成不同的身份,因为它们不得不被分类为不同的类别。因此,习得的特征会有丰富的身份相关或人际差异。然而,识别信号对从相同身份提取的DeepID2具有相对弱的约束,因为不同的DeepID2可以通过函数g()映射到相同的身份。当DeepID2特性被推广到新任务和测试中的新身份时,这将导致问题,其中g不再适用。我们通过使用额外的人脸验证信号来解决这个问题,这要求从同一身份提取的每两个DeepID2向量彼此靠近,而从不同身份提取的向量则远离。DeepID2上的强每元素约束可以有效地减少个人内部的差异。另一方面,单独使用验证信号(即,一次仅区分一对深度2)在提取身份相关特征方面不如使用识别信号(即,一次区分数千个身份)有效。因此,这两种监控信号强调特征学习的不同方面,应该一起使用。
  为了从不同的角度表征人脸,从不同的人脸区域和分辨率中提取互补的DeepID2特征,并通过主成分分析降维后连接形成最终的特征表示。由于学习到的DeepID2特征在不同身份之间是不同的,而在同一身份内是一致的,这使得下面的人脸识别更加容易。使用学习的特征表示和最近提出的人脸验证模型[3],我们在具有挑战性和广泛研究的LFW数据集上实现了最高的99.15%的人脸验证精度[11]。这是第一次仅提供面部区域的机器达到与人类的99.20%的准确度相当的准确度,向人类呈现包括面部区域和大背景区域的整个LFW面部图像以进行验证。
  近年来,人们在深度学习人脸识别方面做了大量的工作[5,10,20,27,8,22,21]。在深度学习工作中,[5,20,8]使用验证信号学习特征或深度度量,而[22,21]使用识别信号学习特征,并在LFW达到大约97.45%的准确率。我们的方法显著提高了技术水平。联合解决分类和验证任务的思想被应用于一般对象识别[16],重点是提高固定对象类的分类精度,而不是隐藏特征表示。我们的工作目标是学习可以很好地推广到新类(身份)和验证任务的特征,而训练集中身份的分类精度对我们来说并不重要。

2识别-验证引导的深层特征学习

  我们学习深度卷积神经网络(深度卷积神经网络)的变化特征[13]。深度卷积网络中的卷积和池运算是专门设计来分层提取视觉特征的,从局部低级特征到全局高级特征。我们的深层转换网络采用类似于[21]中的结构。它包含四个卷积层,前三层之后是maxpooling。要学习多种多样的高级功能,我们不需要权重共享的完整功能高级转换层[10]。具体来说,在我们的深度卷积网络的第三卷积层中,神经元权重在每2 × 2个局部区域中被局部共享。在第四个卷积层,更恰当地称为局部连接层,神经元之间的权重是完全不共享的。ConvNet在特征提取级联的最后一层提取160维DeepID2矢量。要学习的DeepID2层完全连接到第三和第四卷积层。由于第四卷积层比第三卷积层提取更多的全局特征,DeepID2层将多尺度特征作为输入,形成所谓的多尺度卷积网络[19]。我们对卷积层和DeepID2层的神经元使用整流线性单元(ReLU) [18]。对于大型训练数据集,ReLU比sigmoid单元具有更好的拟合能力[12]。给定大小为55 × 47的RGB输入,用于提取DeepID2的ConvNet结构的图示如图1所示。当输入区域的大小改变时,以下图层中的地图大小也会相应改变。DeepID2提取过程表示为f = Conv(x,θc),其中Conv()是由ConvNet定义的特征提取函数,x是输入人脸面片,f是提取的DeepID2向量,θcdenote是要学习的ConvNet参数。
在这里插入图片描述

  DeepID2功能在两个监控信号下学习。第一个是面部识别信号,它将每个面部图像分类成n个(例如,n = 8192)不同身份中的一个。识别是通过跟随DeepID2层和n路softmax层来实现的,它输出n个类的概率分布。网络被训练成最小化交叉熵损失,我们称之为识别损失。它被表示为
在这里插入图片描述
其中f是DeepID2矢量,t是目标类,θid表示softmax层参数。pi是目标概率分布,其中除pt= 1外,所有I的pi= 0表示目标t类,pi是预测概率分布。为了同时对所有类别进行正确分类,DeepID2层必须形成有区别的身份相关特征(即人际差异较大的特征)。第二个是人脸验证信号,它鼓励从相同身份的人脸中提取的DeepID2相似。验证信号直接调整深度2,可以有效地减少个人内部的变化。常用的约束包括L1/L2范数和余弦相似性。我们采用基于L2范数的以下损失函数,它最初是由Hadsell等人[7]为降维而提出的
在这里插入图片描述
其中fiand fjare DeepID2向量是从两个比较的人脸图像中提取的。yij= 1表示fiand fjare来自同一身份。在这种情况下,它最小化了两个深度2向量之间的L2距离。yij = 1表示不同的恒等式,以及Eq。(2)要求距离大于裕量m,θve= {m}是验证损失函数中要学习的参数。基于L1范数的损失函数可以有类似的公式[16]。余弦相似性在[18]中被用作
在这里插入图片描述
其中 d = f i ⋅ f j ∣ ∣ f i ∣ ∣ 2 ∣ ∣ f j ∣ ∣ 2 d = {f_i·f_j\over ||f_i||^2||f_j||^2} d=fi2fj2fifj是DeepID2向量之间的余弦相似性,θve= {w,b}是可学习的缩放和移位参数,σ是sigmoid函数,yi是两个比较的人脸图像是否属于同一身份的二进制目标。在我们的实验中,对所有三个损失函数进行了评估和比较。
  我们的目标是学习特征提取函数Conv()的参数θc,而θID和θve只是在训练期间为传播识别和验证信号而引入的参数。在测试阶段,只有θc用于特征提取。通过随机梯度下降更新参数。识别和验证梯度由超参数λ加权。Eq中的余量m。(2)是一种特殊情况,它不能通过梯度下降来更新,因为它的梯度总是非负的。
  相反,我们在训练期间自适应地更新m,使得它是在最近的训练样本上给出最低验证误差的阈值。我们的学习算法总结在Tab1中。
在这里插入图片描述

3人脸验证

  为了评估第2节中描述的特征学习算法。DeepID2特征嵌入到传统的人脸验证管道中,用于对齐、特征提取和人脸验证。我们首先使用最近提出的SDM算法[25]来检测21个面部标志。然后根据检测到的标志点,通过相似变换对人脸图像进行全局对齐。我们裁剪了400个面部补丁,根据全局对齐的面部和面部标志的位置,这些补丁在位置、比例、颜色通道和水平翻转方面有所不同。因此,通过总共200个深度转换网络提取400个深度2向量,每个深度转换网络被训练为分别在每个面部的一个特定面部补丁及其水平翻转的对应物上提取两个160维深度2向量。
  为了减少大量DeepID2特征之间的冗余,并使我们的系统实用化,我们使用前向-后向贪婪算法[26]来选择少量有效和互补的DeepID2向量(在我们的实验中为25),这节省了测试期间的大部分特征提取时间。图2示出了所有选择的25个面片,从中提取25个160维的DeepID2向量,并连接到4000维的DeepID2向量。4000维向量通过PCA进一步压缩进行人脸验证。
  基于提取的Deep ID2,我们学习了用于人脸验证的联合贝叶斯模型[3]。联合贝叶斯已被成功地用于模拟两张脸是相同或不同的人的联合概率[3,4]。它将人脸的特征表示f建模为同一人间和不同人间的差异之和,即f =μ+ε,μ和ε建模为高斯分布,并根据训练数据进行估计。人脸验证是通过对数似然比检验, l o g P ( f 1 , f 2 ∣ H i n t e r ) P ( f 1 , f 2 ∣ H i n t e r a ) log{P(f1,f2|Hinter) \over P(f1,f2 | Hintera)} logP(f1f2Hintera)P(f1f2Hinter)来实现的,其中分子和分母分别是给定个人间或个人内变异假设的两张人脸的联合概率。

4 实验

  我们在LFW数据集[11]上报告人脸验证结果,该数据集是在无约束条件下用于人脸验证的事实上的标准测试集。它包含从互联网上收集的5749个身份的13,233张人脸图像。为了进行比较,算法通常报告LFW 6000个给定人脸对的平均人脸验证精度和ROC曲线。虽然作为一个测试集是合理的,但它对于训练来说是不够的,因为LFW的大多数身份只有一个面部图像。因此,我们依靠更大的外部数据集进行训练,就像所有最近的高性能人脸验证算法一样[4,2,22,21,14]。特别是,我们使用名人脸+数据集[21]进行训练,该数据集包含从互联网上收集的10,177个身份(名人)的202,599张人脸图像。名人脸+和LFW的人是互相排斥的。DeepID2特征是从从CeleFaces+(简称CeleFaces+A)中随机抽样的8192个身份的人脸图像中学习的,而1985个身份的剩余人脸图像(简称CeleFaces+B)用于以下特征选择和学习人脸验证模型(联合贝叶斯)。在CeleFaces+A上学习DeepID2时,CeleFaces+B被用作确定学习速率、训练时期和超参数λ的验证集。之后,CelebFaces+B被分成1485个身份的训练集和500个身份的验证集用于特征选择。最后,我们在整个名人脸+B数据上训练联合贝叶斯模型,并使用选定的DeepID2在LFW进行测试。我们首先从Sec评估特征学习的各个方面。4.1至秒。4.3通过使用单个深度ConvNet从整个面部区域提取DeepID2。然后构建最终的系统,并与Sec中现有的最佳执行方法进行比较。4.4.

4.1平衡识别和验证信号

  我们通过将λ从0改变到+∞来研究识别和验证信号在特征学习中的相互作用。在λ = 0时,验证信号消失,只有识别信号生效。当λ增大时,验证信号逐渐主导训练过程。在λ → +∞的另一个极端,只剩下验证信号。等式中的L2范数验证损失。(2)用于培训。图3显示了通过将所学习的DeepID2分别与L2范数和联合贝叶斯模型进行比较,在测试集上的人脸验证准确性。它清楚地表明,无论是识别信号还是验证信号都不是学习特征的最佳信号。相反,有效的特性来自两者的适当结合。
在这里插入图片描述
在这里插入图片描述

这种现象可以从人与人之间和人与人之间的差异来解释,这可以用线性判别分析来近似。根据LDA,人与人之间的散布矩阵是 S i n t e r = Σ i = 1 c n i ( x i − x ) ( x i − x ) T S_{inter}= Σ^c_{i=1}n_i(x_i-x)(x_i-x)^T Sinter=Σi=1cni(xix)(xix)T,其中xi是第I个身份的平均特征,x是整个数据集的平均,ni是第I个身份的人脸图像的数量。个人内部散布矩阵是辛特拉= Pc I = 1 P x∈Di(x xi)(x Xi),其中Dii是第I个身份的特征集,Xi是相应的平均值,c是不同身份的数量。个体间和个体内方差是相应散布矩阵的特征值,如图5所示。对应的特征向量代表不同的变化模式。特征方差的大小和多样性在识别中都很重要。如果所有的特征方差都集中在少数特征向量上,则表明个体内部或个体之间的差异较低。分别用λ = 0、0.05和+∞学习特征。每个给定λ的特征方差由相应的平均特征方差归一化。
  当仅使用识别信号(λ = 0)时,学习到的特征包含不同的内部和个人内部变化,如两个图中红色曲线的长尾所示。虽然不同的人与人之间的差异有助于区分不同的身份,但大而多样的人与人之间的差异是噪音,使人脸验证变得困难。当以适当的权重(λ = 0.05)使用识别和验证信号时,人际差异的多样性保持不变,而几个主要方向上的差异变得更大,如与红色曲线相比,左侧的绿色曲线所示。与此同时,个人内部的差异在多样性和幅度上都有所减少,如右边的绿色曲线所示。因此,人与人之间和人与人之间的差异都朝着使人脸验证更容易的方向变化。当λ进一步向无穷大增加时,人与人之间和人与人之间的变化都只在几个主要方向上消失,因为没有识别信号,就不能形成不同的特征。由于人与人之间的差异很小,区分不同的身份变得很困难。因此,性能会显著下降。
在这里插入图片描述
  图6显示了分别用λ = 0、0.05和+∞学习的特征的前两个主成分分析维度。这些特征来自LFW面部图像数量最多的六个身份,并且用不同的颜色标记。这个数字进一步证实了我们的观察。当λ = 0(左)时,由于个人内部的巨大差异,不同的聚类混合在一起,尽管聚类中心实际上是不同的。当λ增加到0.05(中间)时,个人内部的差异显著减小,聚类变得可区分。当λ进一步向无穷大(右)增加时,尽管个人内部的差异进一步减小,但聚类中心也开始塌陷,一些聚类变得明显重叠(如图6右侧的红色、蓝色和青色聚类),使得难以再次区分。

4. 2丰富的身份信息提高了特征学习

  我们研究包含在识别监控信号中的身份信息将如何影响所学习的特征。特别地,我们实验了在从32到8192的训练期间用于识别的身份的指数增长的数量,同时验证信号始终从所有8192训练身份生成。图4示出了学习深度2(从L2范数和联合贝叶斯导出)的验证准确度如何随着识别信号中使用的身份的数量而在测试集上变化。它表明,识别大量(例如8192个)身份是学习有效DeepID2表示的关键。这个观察和Sec的一致。4.1.身份数量的增加提供了更丰富的身份信息,并有助于形成具有不同个人间差异的深度2,使不同身份的阶级中心更容易区分。
在这里插入图片描述

4.3调查验证信号

  如第节所示。4.1、强度适中的验证信号主要起到减少人内变异的作用。为了进一步验证这一点,我们将所有样本对上的L2范数验证信号与仅约束正或负样本对的信号进行比较,分别表示为L2+和L2-。也就是说,L2+仅减小了相同标识的深度2之间的距离,而L2-仅增加了不同标识的深度2之间的距离,如果它们是更小的话。测试集上分别由L2范数和联合贝叶斯测量的验证精度软测量项目2如表2所示。它还与L1范数和余弦验证信号以及无验证信号(无)进行比较。对于所有的比较,识别信号是相同的(对8192身份进行分类)。
  用L2+验证信号学习的DeepID2特性只比用L2学习的稍差。相比之下,L2验证信号在特征学习中帮助很小,并且给出几乎相同的结果,因为没有使用验证信号。这是一个强有力的证据,证明验证信号的效果主要是减少个人内部的差异。另一个观察结果是,无论何时除了识别信号之外还添加了验证信号,面部验证精度通常都会提高。然而,L2规范优于其他比较验证指标。这可能是因为所有其他约束都比L2弱,并且在减少个人内部差异方面效率较低。例如,余弦相似性仅约束角度,而不约束幅度。

4.4最终系统和与其他方法的比较

  在学习联合贝叶斯之前,首先通过主成分分析将DeepID2特征投影到低维特征空间。主成分分析后,联合贝叶斯模型在整个名人脸+B数据上进行训练,并在LFW的6000个给定的人脸对上进行测试,其中联合贝叶斯给出的对数似然比与训练数据上优化的阈值进行比较,以进行人脸验证。Tab。图3显示了提取DeepID2的人脸面片数量增加时的人脸验证精度,以及用单个Titan GPU从每个人脸提取DeepID2特征所用的时间。经过主成分分析后,我们选择的所有25个人脸面片和180维深度2特征的准确率达到98.97%。特征提取过程也是有效的,对于每个人脸图像只需要35毫秒。
在这里插入图片描述
在这里插入图片描述

  以进一步利用从大量补丁中提取的丰富的DeepID2功能。我们将特征选择算法再重复六次,每次从先前特征选择步骤未选择的面片中选择DeepID2。然后,我们分别在七组选定特征的每一组上学习联合贝叶斯模型。通过进一步学习SVM,我们融合了每对被比较人脸的七个联合贝叶斯得分。这样,我们实现了更高的99.15%的人脸验证准确率。与LFW以往最先进方法的准确性和ROC比较见表。分别参见图4和图7。我们取得了最好的结果,并大幅改善了以前的结果。

5 结论

  本文表明,人脸识别和验证监控信号对深层特征表示的影响与构建人脸识别的理想特征的两个方面相一致,即增加人与人之间的差异和减少人与人之间的差异,并且两个监控信号的组合导致显著优于其中任何一个的特征。当将学习到的特征嵌入到传统的人脸验证管道中时,我们实现了一个非常有效的系统,在LFW上的人脸验证准确率为99.15%。

猜你喜欢

转载自blog.csdn.net/chenaxin/article/details/116643663