DeepFace: Closing the Gap to Human-Level Performance in Face Verification

论文地址:https://www.ixueshu.com/document/7ff3043ad63c70a9318947a18e7f9386.html

写在前面

人脸识别的一般流程是:detect -> aligh -> verification-> classify
Face detection, 对图像中的人脸进行检测,并将结果用矩形框框出来。
Face alignment,对检测到的人脸进行姿态的校正。
Face verification,人脸校验是基于pair matching的方式,所以它得到的答案是“是”或者“不是”。在具体操作的时候,给定一张测试图片,然后挨个进行pair matching,matching上了则说明测试图像与该张匹配上的人脸为同一个人的人脸。
Face identification或Face recognition:解决who am I?
Facebook的deepface应该是第一篇使用CNN使得识别水平接近人类的方法(非第一个使用CNN用于face recognition),所以先从精读这篇文章开始理解用CNN实现Face recongnition。

Face alignment分为如下几步
在这里插入图片描述
a. 人脸检测,使用6个基点
b. 二维剪切,将人脸部分裁剪出来
c. 67个基点,然后Delaunay三角化,在轮廓处添加三角形来避免不连续
d. 将三角化后的人脸转换成3D形状
e. 三角化后的人脸变为有深度的3D三角网
f. 将三角网做偏转,使人脸的正面朝前。
g. 最后放正的人脸
h. 一个新角度的人脸(在论文中没有用到)

总体上说,这一步的作用就是使用3D模型来将人脸对齐,从而使CNN发挥最大的效果。

Deepface总体架构:
在这里插入图片描述
前三层的目的在于提取低层次的特征,比如简单的边和纹理。其中Max-pooling层使得卷积的输出对微小的偏移情况更加鲁棒。但没有用太多的Max-pooling层,避免网络损失图像信息。
后面三层都是使用参数不共享的卷积核。
全连接层将上一层的每个单元和本层的所有单元相连,用来捕捉人脸图像不同位置的特征之间的相关性。其中,第7层(4096-d)被用来表示人脸。全连接层的输出可以用于Softmax的输入,Softmax层用于分类。

对于输出的4096-d向量:先每一维进行归一化,再进行L2归一化。

最后用CNN提取的特征进行Verification Metric ,Verifying whether two input instances belong to the same class (identity) or not 包括卡方距离学习和siamese network两种方法。Verification的loss function在之后有L-softmax,A-softmax等。

这篇14年的文章写的很虚,很多实现方法没有告知,而且没有code支撑,效果难以复现。从总体架构上了解,细节上没有太多值得学习的地方。

摘要

  传统的人脸识别流程有四个步骤:人脸检测——人脸对齐——人脸表达——人脸分类。为了进行分段的仿射变换,我们使用了3D的人脸建模来重现对齐和表达这两步,最终从一个9层的深度神经网络中得到了人脸的表达。这个网络并非标准的卷积网络层,而是使用了几个未共享权重的局部连接层,网络参数超过了一亿两千万个。我们在迄今为止最大的人脸数据库上训练——4000多个不同的人,总计440万张带标记的人脸库。这种在大型数据库中基于模型进行准确的对齐并用神经网络训练学习到的人脸表达,可以很好地推广到非受限环境下的人脸表达。我们的方法在LFW上达到了97.35%的人脸验证精度,逼近了人类的水平。

1 介绍

  非受限条件下的人脸识别是认知领域的前沿算法。人脸识别技术对社会文化的影响是深远的,然而当前在这一领域机器和人类的认知能力差距是我们不得不面对的现实。
  我们提出了一个系统——Deep Face。它已经缩小了现存的在非受限条件下进行人脸识别的差距,已经达到了人类在此领域的认知水平。**本系统是在一个极大人脸库上训练的,并且这个训练库与测试评估所用的库是截然不同的,并且可以轻松超越现存的其他系统。**更进一步,与过去的成百上千种基于外观特性的系统相比,本系统产生的是一个很简洁的人脸特征表达。
  本系统与大多数传统做法相比最大的区别在于它使用深度学习框架,代替了人工设计的特征。深度学习特别适合解决大样本训练集,近期它在不同领域也都获得了成功,如计算机视觉,演讲和语音建模等领域。特别的,针对人脸时,这种训练学习到的神经网络在提取人脸特征上的成功高度依赖于快速的3D对齐的步骤。网络结构是基于这种假定:一旦完成了对齐,人脸局部的每个区块在像素级的位置就固定了,因此才可能从RGB值进行学习,而不需像其他系统【19,21】得应用好几个卷积层。
  我们做出以下工作:1,一种有效的深度神经网络结构的构建,利用一个非常大的有标签的人脸数据集,以获得一个能很好地泛化到其他数据集的人脸表示;2,基于3D人脸模型设计了一个有效的人脸对齐系统;3,极大地提升了在LFW库上机器认知性能,近乎达到了人类的性能,在YouTube人脸库(YTF)上,将错误率降低了超过50%。

1.1 相关工作

大数据和深度学习 近年来,网络用户使用搜索引擎获取了大量图片,并且上传到社交媒体,这里面包含了大量非受限条件下的数据,如各类物体,人脸和风景。
  计算机视觉领域在处理未解决的问题时,对越来越多的数据非常感兴趣,这使得使用更强劲的统计模型成为可能。这些模型已经大幅度提升了计算机视觉系统在几个重要方面的鲁棒性:如非刚性形变,混杂,遮挡和光照变化。而这些问题往往是计算机视觉应用的难点。
  然而,计算机视觉所使用的传统的机器学习方法,如支持向量机(SVM),主成分分析(PCA)和线性鉴别分析。在利用大数据方面有明显的容量上限,而深度神经网络则表现出很好的大规模训练特性。
  近期,神经网络方向已经吸引了许多研究学者。尤其当大型神经网络展现出优良的结果时:1,可以使用大量的数据训练神经网络;2,大规模的计算资源(大量的CPU或者GPU)更容易获得。最值得注意的是,Krizhevsky等人[18]的研究表明,使用标准的反向传播[24]在大数据集上训练的大规模深度卷积网络时[20],可以取得很好的识别准确率。
人脸识别的最高水平近几十年来,在受限条件下的静止拍摄的正面人脸的识别准确度不断提高。许多供应商都部署了用于边届控制和智能生物识别的复杂系统。然而这些系统在几个方面的鲁棒性很差,如光照变化,表情变化,遮挡和年龄变化。这导致在非受限条件下,这些系统的性能急剧恶化。
  现阶段很多人脸验证方法都使用人工设计的特征,并且这些特性常常结合在一起以提高性能,即使在最早的LFW版本中也是如此。目前比较领先的系统甚至使用了成千上万个图像描述子。相反的,我们的方法直接使用RGB的像素值,就能产生非常简洁且稀疏的描述子。
  深度神经网络在过去也被用在人脸检测,人脸对齐和人脸验证等方面。在非受限条件下,Huang等人[15]使用LBP特征作为输入,与传统方法结合后,有了改进。在我们的系统中,我们使用未加工的图像信息作为底层的输入,避免将我们的特征与工程描述符结合,以此来强调神经网络自身的贡献。我们还提供了一个新的架构,推动限制进一步实现,这些网络中加入3D对齐,为对齐的输入定制架构,一旦网络在一个非常大的带标签的数据集上训练完成,就可以将网络放大到几乎两个数量级,并展示一个简单的知识转移方法。
  在人脸验证领域大量使用了度量学习方法,在一些情况下,现有的方法被成功地使用,但这常常与特定任务的创新相结合。目前最成功的系统是文献【5】在一个大型的标记数据库上,采用适应联合贝叶斯模型【6】的转移学习方法,学习到数据库A(2995个人,99773个人脸)到LFW的转移模型。为了证明本系统提取的特征的高效性,我们做人脸验证时仅使用简单的距离度量。

2 人脸对齐

  现存的一些面部数据库的对齐版本(如LFW-a[28])通过提供标准化输入,帮助改进识别算法[25]。然而,在非限制条件下,人脸对齐仍被认为是一个困难的问题,必须考虑许多因素,比如姿态(由于面部的非平面性)和灵活的表情,很难从一个人具有同一性的面部形态中分离出来的。最近已经出现了通过使用复杂的对齐技术来补偿这些困难的方法。这些方法可以是下列方法中的一个或多个:(1)使用人脸[27]的解析3D模型(2)从外部数据集中搜索相似的基准点配置来从[4]中推断,(3)寻找像素的相似性变换的无监督方法
  在对齐方法被广泛地应用的同时,目前非限制的人脸验证中还没有完全正确的物理解决方案。近年来,3D模型已经不再受欢迎,尤其是在非限制的环境中。然而,由于人脸是3D对象,如果处理得当,我们相信这是正确的方法。在本文中,我们描述了一个系统,该系统结合了基于基准点的面部分析3D建模,用于将检测到的面部裁剪变形为3D正面模式(frontalization)。
  与最近的许多对齐文献相似,我们的对齐方案是基于使用基准点检测器来指导对齐过程。在非限制图像中定位基准点是一个难题,但最近的几项研究都取得了不错的成果,如[31]。在本文中,我们使用了一个相对简单的基准点检测器,但在几个迭代中应用它来细化它的输出。在每一次迭代中,基准点由支持向量回归器(SVR)提取,该支持向量回归器经过训练,可以从图像描述符中预测点的配置。我们的图像描述符基于LBP直方图[1],但也可以考虑其他特征。利用诱导的相似度矩阵T将图像转换为新的图像,可以在新的特征空间上重新运行基准检测器,从而优化定位。
2D对齐 我们通过检测检测结果内部的6个基准点开始我们的对齐过程,在眼睛的中心,鼻尖和嘴的位置,如图1(a)所示。它们通过 T 2 d i : = ( s i , R i , t i ) T^i_{2d}:=(s_i,R_i,t_i) T2di:=(si,Ri,ti)来大致缩放、旋转和将图像转换为三个锚点位置。这里的 x a n c h o r j : = s i [ R i ∣ t i ] ∗ x s o u r c e j , j = 1..6 x^j_{anchor}:=s_i[R_i|t_i]*x^j_{source},j=1..6 xanchorj:=si[Riti]xsourcej,j=1..6 在新的仿射图像上迭代,直到没有实质性的变化。最终组成最后的2D相似度变换 T 2 d : = T 2 d 1 ∗ . . . ∗ T 2 d k . T_{2d}:=T_{2d}^1*...*T_{2d}^k. T2d:=T2d1...T2dk. 这种聚合变换产生了二维对齐结果,如图1(b)所示。该对齐方法与常用的提高识别精度的LFW-a方法相似。但是,相似变换不能补偿平面外旋转,这在非限制条件下尤为重要。
3D对齐 为了对齐平面外旋转的面,我们使用一个通用的3D形状模型并配准一个三维仿射摄像机,该摄像机用于将2D对齐的产物的正面向后投影到3D形状的图像平面。这将生成如图1(g)所示的作物的3D对齐版本。这是通过使用第二个SVR在2D裁剪中定位额外的67个基准点 x 2 d x_{2d} x2d来实现的(见图1©)。作为一个3D通用形状模型,我们只需从USF人类识别数据库中取3D扫描的平均值,然后对其进行后处理,以表示为对齐的顶点 v i

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值