人脸关键点检测是人脸识别和分析领域中的关键一步,它是诸如自动人脸识别、表情分析、三维人脸重建及三维动画等其它人脸相关问题的前提和突破口。近些年来,深度学习方法由于其自动学习及持续学习能力,已被成功应用到了图像识别与分析、语音识别和自然语言处理等很多领域,且在这些方面都带来了很显著的改善。因此,本文针对深度学习方法进行了人脸关键点检测的研究。
引言
人脸关键点检测也称为人脸关键点检测、定位或者人脸对齐,是指给定人脸图像,定位出人脸面部的关键区域位置,包括眉毛、眼睛、鼻子、嘴巴、脸部轮廓等和人脸检测类似,由于受到姿态和遮挡等因素的影响,人脸关键点检测也是一个富有挑战性的任务。
人脸关键点检测是人脸识别任务中重要的基础环节,人脸关键点精确检测对众多科研和应用课题具有关键作用,例如,人脸姿态矫正、姿态识别、表情识别、疲劳监测、嘴型识别等。因此,如何获取高精度人脸关键点,一直以来都是计算机视觉、模式识别、图像处理等领域的热点研究问题。
人脸关键点检测方法大致分为三种,分别是基 ASM(Active Shape Model)[1] 和 AAM (Active Appearnce Model)[2,3] 的传统方法;基于级联形状回归的方法 [4];基于深度学习的方法 [5-10]。若是按照参数化与否来分,可分为参数化方法和非参数化方法,ASM、AAM 和 CLM[11] 就属于参数化方法,而级联回归和深度学习方法属于非参数化方法。基于参数化形状模型的方法可依据其外观模型的不同,可进一步分为,基于局部的方法 [12-14] 和基于全局的方法 [15-17];对于非参数化进一步可分为基于样例的方法 [18,19]、基于图模型的方法 [20,21]、基于级联回归的方法 [4,22,23] 和基于深度学习的方法 [24-26]。更为详细的划分请参考文献 [27]。目前,应用最广泛,效果精度最高的是基于深度学习的方法,因此本文主要针对深度学习在人脸关键点检测上的应用进行研究。
人脸关键点定位方法中具有里程碑式的有如下五种方法: 1) 1995 年,Cootes 的 ASM(Active Shape Model)。 2) 1998 年,Cootes 的 AAM(Active Appearance Model) 算法。 3) 2006 年,Ristinacce 的 CLM(Constrained Local Model)算法。 4) 2010 年,Rollar 的 cascaded Regression 算法。 5) 2013 年,Sun 开创深度学习人脸关键点检测的先河,首次将 CNN 应用到人脸关键点定位上。
定量评价方面,目前主要的衡量标准是算法所获取的关键点位置与真实关键点位置之间的偏差。在评价偏差时,由于不同人脸图像的实际大小难免会有所差异,为便于在同样的尺度下比较算法性能,需要采用一定的数据归一化策略。目前主流的方法是基于两眼间的距离进行人脸大小的标准化,即:
ex=∥∥x^ xGT∥∥DIOD
e_{x}=frac{left | hat{x} x^{GT} right |}{D_{IOD}} 其中分子∥∥x^ xGT∥∥left | hat{x} x^{GT}right |表示估计值与真实值的欧式距离,分母DIODD_{IOD}表示双眼距离,即两眼中心的欧式距离。也有采用边界框对角线作为归一化因子来评价偏差,如文献 [20]。
传统人脸关键点检测数据库为室内环境下采集的数据库,比如 Multi-pie、Feret、Frgc、AR、BioID 等人脸数据库。而现阶段人脸关键点检测数据库通常为复杂环境下采集的数据库.LFPW 人脸数据库有 1132 幅训练人脸图像和 300 幅测试人脸图像,大部分为正面人脸图像,每个人脸标定 29 个关键点。AFLW 人脸数据库包含 25993 幅从 Flickr 采集的人脸图像,每个人脸标定 21 个关键点。COFW 人脸数据库包含 LFPW 人脸数据库训练集中的 845 幅人脸图像以及其他 500 幅遮挡人脸图像,而测试集为 507 幅严重遮挡(同时包含姿态和表情的变化)的人脸图像,每个人脸标定 29 个关键点。MVFW 人脸数据库为多视角人脸数据集,包括 2050 幅训练人脸图像和 450 幅测试人脸图像,每个人脸标定 68 个关键点。OCFW 人脸数据库包含 2951 幅训练人脸图像(均为未遮挡人脸)和 1246 幅测试人脸图像(均为遮挡人脸),每个人脸标定 68 个关键点。
人脸关键点检测方法
人脸关键点检测方法根据是否需要参数化模型可分为以下两类,基于参数化形状模型的方法和基于非参数形状模型的方法。目前,最为常用的是基于非参数形状模型的深度学习方法,因此本文讨论深度学习方法。但是,为了更好的理解人脸关键点的发展和历史,本文也简单介绍了最为经典的人脸关键点检测方法:ASM 和 AAM。
ASM
ASM(Active Shape Model)[1] 是由 Cootes 于 1995 年提出的经典的人脸关键点检测算法,主动形状模型即通过形状模型对目标物体进行抽象,ASM 是一种基于点分布模型(Point Distribution Model, PDM)的算法。在 PDM 中,外形相似的物体,例如人脸、人手、心脏、肺部等的几何形状可以通过若干关键点(landmarks)的坐标依次串联形成一个形状向量来表示。ASM 算法需要通过人工标定的方法先标定训练集,经过训练获得形状模型,再通过关键点的匹配实现特定物体的匹配。
ASM 主要分为两步:第一步:训练。首先,构建形状模型:搜集 n 个训练样本(n=400);手动标记脸部关键点;将训练集中关键点的坐标串成特征向量;对形状进行归一化和对齐(对齐采用 Procrustes 方法);对对齐后的形状特征做 PCA 处理。接着,为每个关键点构建局部特征。目的是在每次迭代搜索过程中每个关键点可以寻找新的位置。局部特征一般用梯度特征,以防光照变化。有的方法沿着边缘的法线方向提取,有的方法在关键点附近的矩形区域提取。第二步:搜索。首先:计算眼睛(或者眼睛和嘴巴)的位置,做简单的尺度和旋转变化,对齐人脸;接着,在对齐后的各个点附近搜索,匹配每个局部关键点(常采用马氏距离),得到初步形状;再用平均人脸(形状模型)修正匹配结果;迭代直到收敛。
ASM 算法的优点在于模型简单直接,架构清晰明确,易于理解和应用,而且对轮廓形状有着较强的约束,但是其近似于穷举搜索的关键点定位方式在一定程度上限制了其运算效率。
AAM
1998 年,Cootes 对 ASM 进行改进,不仅采用形状约束,而且又加入整个脸部区域的纹理特征,提出了 AAM 算法 [2]。AAM 于 ASM 一样,主要分为两个阶段,模型建立阶段和模型匹配阶段。其中模型建立阶段包括对训练样本分别建立形状模型 (Shape Model) 和纹理模型 (Texture Model),然后将两个模型进行结合,形成 AAM 模型。
CPR
2010 年,Dollar 提出 CPR(Cascaded Pose Regression, 级联姿势回归)[4],CPR 通过一系列回归器将一个指定的初始预测值逐步细化,每一个回归器都依靠前一个回归器的输出来执行简单的图像操作,整个系统可自动的从训练样本中学习。 人脸关键点检测的目的是估计向量:
S=(x1,...,xk,...,xK)∈R2k
S=left( x_{1},...,x_{k},...,x_{K} right)in R^{2k} 其中 KK表示关键点的个数,由于每个关键点有横纵两个坐标,所以 SS 得长度为 2K2K。CPR 检测流程如图所示,一共有 T 个阶段,在每个阶段中首先进行特征提取,得到fif^{i}, 这里使用的是 shape-indexed features,也可以使用诸如 HOG、SIFT 等人工设计的特征,或者其他可学习特征(learning based features),然后通过训练得到的回归器 RR 来估计增量ΔSDelta S( update vector),把ΔSDelta S 加到前一个阶段的 SS 上得到新的S S,这样通过不断的迭代即可以得到最终的 SS(shape)。
DCNN
2013 年,Sun 等人 [5] 首次将 CNN 应用到人脸关键点检测,提出一种级联的 CNN(拥有三个层级)——DCNN(Deep Convolutional Network),此种方法属于级联回归方法。作者通过精心设计拥有三个层级的级联卷积神经网络,不仅改善初始不当导致陷入局部最优的问题,而且借助于 CNN 强大的特征提取能力,获得更为精准的关键点检测。
如图所示,DCNN 由三个 Level 构成。Level-1 由 3 个 CNN 组成;Level-2 由 10 个 CNN 组成(每个关键点采用两个 CNN);Level-3 同样由 10 个 CNN 组成。
Level-1 分 3 个 CNN,分别是 F1(Face 1)、EN1(Eye,Nose)、NM1(Nose,Mouth);F1 输入尺寸为 39*39,输出 5 个关键点的坐标;EN1 输入尺寸为 39*31,输出是 3 个关键点的坐标;NM11 输入尺寸为 39*31,输出是 3 个关键点。Level-1 的输出是由三个 CNN 输出取平均得到。
Level-2,由 10 个 CNN 构成,输入尺寸均为 15*15,每两个组成一对,一对 CNN 对一个关键点进行预测,预测结果同样是采取平均。
Level-3 与 Level-2 一样,由 10 个 CNN 构成,输入尺寸均为 15*15,每两个组成一对。Level-2 和 Level-3 是对 Level-1 得到的粗定位进行微调,得到精细的关键点定位。
Level-1 之所以比 Level-2 和 Level-3 的输入要大,是因为作者认为,由于人脸检测器的原因,边界框的相对位置可能会在大范围内变化,再加上面部姿态的变化,最终导致输入图像的多样性,因此在 Level-1 应该需要有足够大的输入尺寸。Level-1 与 Level-2 和 Level-3 还有一点不同之处在于,Level-1 采用的是局部权值共享(Lcally Sharing Weights),作者认为传统的全局权值共享是考虑到,某一特征可能在图像中任何位置出现,所以采用全局权值共享。然而,对于类似人脸这样具有固定空间结构的图像而言,全局权值共享就不奏效了。因为眼睛就是在上面,鼻子就是在中间,嘴巴就是在下面的。所以作者借鉴文献 [28] 中的思想,采用局部权值共享,作者通过实验证明了局部权值共享给网络带来性能提升。
DCNN 采用级联回归的思想,从粗到精的逐步得到精确的关键点位置,不仅设计了三级级联的卷积神经网络,还引入局部权值共享机制,从而提升网络的定位性能。最终在数据集 BioID 和 LFPW 上均获得当时最优结果。速度方面,采用 3.3GHz 的 CPU,每 0.12 秒检测一张图片的 5 个关键点。
DCNN(face )
2013 年,Face 在 DCNN 模型上进行改进,提出从粗到精的人脸关键点检测算法 [6],实现了 68 个人脸关键点的高精度定位。该算法将人脸关键点分为内部关键点和轮廓关键点,内部关键点包含眉毛、眼睛、鼻子、嘴巴共计 51 个关键点,轮廓关键点包含 17 个关键点。
针对内部关键点和外部关键点,该算法并行的采用两个级联的 CNN 进行关键点检测,网络结构如图所示:
针对内部 51 个关键点,采用四个层级的级联网络进行检测。其中,Level-1 主要作用是获得面部器官的边界框;Level-2 的输出是 51 个关键点预测位置,这里起到一个粗定位作用,目的是为了给 Level-3 进行初始化;Level-3 会依据不同器官进行从粗到精的定位;Level-4 的输入是将 Level-3 的输出进行一定的旋转,最终将 51 个关键点的位置进行输出。针对外部 17 个关键点,仅采用两个层级的级联网络进行检测。Level-1 与内部关键点检测的作用一样,主要是获得轮廓的 bounding box;Level-2 直接预测 17 个关键点,没有从粗到精定位的过程,因为轮廓关键点的区域较大,若加上 Level-3 和 Level-4,会比较耗时间。最终面部 68 个关键点由两个级联 CNN 的输出进行叠加得到。
算法主要创新点由以下三点:(1)把人脸的关键点定位问题,划分为内部关键点和轮廓关键点分开预测,有效的避免了 loss 不均衡问题;(2)在内部关键点检测部分,并未像 DCNN 那样每个关键点采用两个 CNN 进行预测,而是每个器官采用一个 CNN 进行预测,从而减少计算量;(3)相比于 DCNN,没有直接采用人脸检测器返回的结果作为输入,而是增加一个边界框检测层(Level-1),可以大大提高关键点粗定位网络的精度。
Face 版 DCNN 首次利用卷积神经网络进行 68 个人脸关键点检测,针对以往人脸关键点检测受人脸检测器影响的问题,作者设计 Level-1 卷积神经网络进一步提取人脸边界框,为人脸关键点检测获得更为准确的人脸位置信息,最终在当年 300-W 挑战赛上获得领先成绩。
TCDCN
2014 年,Zhang 等人将 MTL(Multi-Task Learning)应用到人脸关键点检测中,提出 TCDCN(Tasks-Constrained Deep Convolutional Network)[7]。作者认为,在进行人脸关键点检测任务时,结合一些辅助信息可以帮助更好的定位关键点,这些信息如,性别、是否带眼镜、是否微笑和脸部的姿势等等。作者将人脸关键点检测(5 个关键点)与性别、是否带眼镜、是否微笑及脸部的姿势这四个子任务结合起来构成一个多任务学习模型,模型框架如图所示。
网络输出为 40*40 的灰度图,经过 CNN 最终得到 2*2*64 的特征图,再通过一层含 100 个神经元的全连接层输出最终提取得到的共享特征。该特征为所有任务共同享用,对于关键点检测问题,就采用线性回归模型;对于分类问题,就采用逻辑回归。
在传统 MLT 中,各任务重要程度是一致的,其目标方程如下:
argmin{W}Tt=1∑t=1T∑i=1Nζ(yti,f(xti;wt)) ϕwt
argmin_{left{ Wright}_{t=1}^{T}}sum_{t=1}^{T}sum_{i=1}^{N}zeta left( y_{i}^{t} ,fleft( x_{i}^{t};w^{t} right) right) phi _{w^{t}} 其中,xtx^{t}表示与权值矩阵相乘之后输入到函数,wtw^{t}表示损失函数f(⋅)fleft(cdot right),ϕwtphi _{w^{t}}是正则项。可以看到对于各任务 tt而言,其重要性是相同的,但是在多任务学习中,往往不同任务的学习难易程度不同,若采用相同的损失权重,会导致学习任务难以收敛。 TCDCN 采用多任务学习方法对人脸关键点进行检测,针对多任务学习在人脸关键点检测任务中的两个主要问题——不同任务学习难易程度不同以及不同任务收敛速度不同,分别提出了新目标函数和提前停止策略加以改进,最终在 AFLW 和 AFW 数据集上获得领先的结果。同时对比于级联 CNN 方法,在 Intel Core i5 cpu 上,级联 CNN 需要 0.12s,而 TCDCN 仅需要 17ms,速度提升七倍有余。 代码链接: https://github.com/zhzhanp/TCDCN-face-alignment
MTCNN
2016 年,Zhang 等人提出一种多任务级联卷积神经网络(MTCNN, Multi-task Cascaded Convolutional Networks)[9] 用以同时处理人脸检测和人脸关键点定位问题。作者认为人脸检测和人脸关键点检测两个任务之间往往存在着潜在的联系,然而大多数方法都未将两个任务有效的结合起来,本文为了充分利用两任务之间潜在的联系,提出一种多任务级联的人脸检测框架,将人脸检测和人脸关键点检测同时进行。
MTCNN 包含三个级联的多任务卷积神经网络,分别是 Proposal Network (P-Net)、Refine Network (R-Net)、Output Network (O-Net),每个多任务卷积神经网络均有三个学习任务,分别是人脸分类、边框回归和关键点定位。网络结构如图所示:
MTCNN 实现人脸检测和关键点定位分为三个阶段。首先由 P-Net 获得了人脸区域的候选窗口和边界框的回归向量,并用该边界框做回归,对候选窗口进行校准,然后通过非极大值抑制(NMS)来合并高度重叠的候选框。然后将 P-Net 得出的候选框作为输入,输入到 R-Net,R-Net 同样通过边界框回归和 NMS 来去掉那些 false-positive 区域,得到更为准确的候选框;最后,利用 O-Net 输出 5 个关键点的位置。
在具体训练过程中,作者就多任务学习的损失函数计算方式进行相应改进。在多任务学习中,当不同类型的训练图像输入到网络时,有些任务时是不进行学习的,因此相应的损失应为 0。例如,当训练图像为背景(Non-face)时,边界框和关键点的 loss 应为 0,文中提供计算公式自动确定 loss 的选取,公式为:
min∑i=1N∑jαjβjiLji
minsum_{i=1}^{N}sum_{j}alpha_{j} beta_{i}^{j}L_{i}^{j} 其中:j∈{det,box,landmarks}jinleft{ det,box,landmarksright},为了提升网络性能,需要挑选出困难样本(Hard Sample),传统方法是通过研究训练好的模型进行挑选,而本文提出一种能在训练过程中进行挑选困难的在线挑选方法。方法为,在 mini-batch 中,对每个样本的损失进行排序,挑选前 70% 较大的损失对应的样本作为困难样本,同时在反向传播时,忽略那 30% 的样本,因为那 30% 样本对更新作用不大。
实验结果表明,MTCNN 在人脸检测数据集 FDDB 和 WIDER FACE 以及人脸关键点定位数据集 LFPW 均获得当时最佳成绩。在运行时间方面,采用 2.60GHz 的 CPU 可以达到 16fps,采用 Nvidia Titan Black 可达 99fps。 代码实现: Matlab:https://github.com/kpzhang93/MTCNN_face_detection_alignment Caffe:https://github.com/dlunion/mtcnn Python:https://github.com/DuinoDu/mtcnn
TCNN
2016 年,Wu 等人研究了 CNN 在人脸关键点定位任务中到底学习到的是什么样的特征,在采用 GMM(Gaussian Mixture Model, 混合高斯模型)对不同层的特征进行聚类分析,发现网络进行的是层次的,由粗到精的特征定位,越深层提取到的特征越能反应出人脸关键点的位置。针对这一发现,提出了 TCNN(Tweaked Convolutional Neural Networks)[8],其网络结构如图所示:
上图为 Vanilla CNN,针对 FC5 得到的特征进行 K 个类别聚类,将训练图像按照所分类别进行划分,用以训练所对应的 FC6K。测试时,图片首先经过 Vanilla CNN 提取特征,即 FC5 的输出。将 FC5 输出的特征与 K 个聚类中心进行比较,将 FC5 输出的特征划分至相应的类别中,然后选择与之相应的 FC6 进行连接,最终得到输出。 作者通过对 Vanilla CNN 中间层特征聚类分析得出的结论是什么呢?又是如何通过中间层聚类分析得出灵感从而设计 TCNN 呢?
作者对 Vanilla CNN 中间各层特征进行聚类分析,并统计出关键点在各层之间的变化程度,如图所示:
从图中可知,越深层提取到的特征越紧密,因此越深层提取到的特征越能反应出人脸关键点的位置。作者在采用 K=64 时,对所划分簇的样本进行平均后绘图如下:
从图上可发现,每一个簇的样本反应了头部的某种姿态,甚至出现了表情和性别的差异。因此可推知,人脸关键点的位置常常和人脸的属性相关联。因此为了得到更准确的关键点定位,作者使用具有相似特征的图片训练对应的回归器,最终在人脸关键点检测数据集 AFLW,AFW 和 300W 上均获得当时最佳效果。
DAN(Deep Alignment Networks)
2017 年,Kowalski 等人提出一种新的级联深度神经网络——DAN(Deep Alignment Network)[10],以往级联神经网络输入的是图像的某一部分,与以往不同,DAN 各阶段网络的输入均为整张图片。当网络均采用整张图片作为输入时,DAN 可以有效的克服头部姿态以及初始化带来的问题,从而得到更好的检测效果。之所以 DAN 能将整张图片作为输入,是因为其加入了关键点热图(Landmark Heatmaps),关键点热图的使用是本文的主要创新点。DAN 基本框架如图所示:
DAN 包含多个阶段,每一个阶段含三个输入和一个输出,输入分别是被矫正过的图片、关键点热图和由全连接层生成的特征图,输出是面部形状(Face Shape)。其中,CONNECTION LAYER 的作用是将本阶段得输出进行一系列变换,生成下一阶段所需要的三个输入,具体操作如下图所示:
从第一阶段开始讲起,第一阶段的输入仅有原始图片和 S0S_{0}。面部关键点的初始化即为 S0S_{0},S0S_{0} 是由所有关键点取平均得到,第一阶段输出 S0S_{0}。对于第二阶段,首先,S0S_{0} 经第一阶段的 CONNECTION LAYERS 进行转换,分别得到转换后图片 T2(I)T_{2}left( Iright)、S0S_{0} 所对应的热图 H2H_{2} 和第一阶段 fc1fc_{1} 层输出,这三个正是第二阶段的输入。如此周而复始,直到最后一个阶段输出 SNS_{N}。文中给出在数据集 IBUG 上,经过第一阶段后的T2(I)T_{2}left( Iright) 、T2(S1)T_{2}left( S_{1}right)和特征图,如图所示:
从图中发现,DAN 要做的「变换」,就是把图片给矫正了,第一行数据尤为明显,那么 DAN 对姿态变换具有很好的适应能力,或许就得益于这个「变换」。至于 DAN 采用何种「变换」,需要到代码中具体探究。
接下来看一看,StS_{t} 是如何由 St−1S_{t-1} 以及该阶段 CNN 得到,先看 StS_{t}计算公式:
St=T−1t(T(St−1) ΔSt)
S_{t}=T_{t}^{-1}left( T left ( S_{t-1} right) Delta S_{t}right) 其中ΔStDelta S_{t}是由 CNN 输出的,各阶段 CNN 网络结构如图所示:
该 CNN 的输入均是经过了「变换」——TiT_{i}的操作,因此得到的偏移量ΔStDelta S_{t}是在新特征空间下的偏移量,在经过偏移之后应经过一个反变换T−1iT_{i}^{-1}还原到原始空间。而这里提到的新特征空间,或许是将图像进行了「矫正」,使得网络更好的处理图像。
关键点热度图的计算就是一个中心衰减,关键点处值最大,越远则值越小,公式如下:
H(x,y)=11 minsiTt(St−1)∥(x,y)−si∥
H_{left(x,yright)}=frac{1}{1 min_{s_{i}T_{t}left(S_{t-1}right)}left | left( x,yright)-s_{i}right |}
为什么需要从fc1f_{c1} 层生成一张特征图?文中提到「Such a connection allows any information learned by the preceding stage to be transferred to the consecutive stage.」其实就是人为给 CNN 增加上一阶段信息。
总而言之,DAN 是一个级联思想的关键点检测方法,通过引入关键点热图作为补充,DAN 可以从整张图片进行提取特征,从而获得更为精确的定位。 代码实现: Theano:https://github.com/MarekKowalski/DeepAlignmentNetwork TensorFlow:https://github.com/kpzhang93/MTCNN_face_detection_alignment
结束
深度学习技术的出现,有效促进了不同尺度和不同任务信息之间的融合,使得信息的结合方式由平面开始向立体方法发展,对于人脸关键点提取模型的发展,具有突出的实际意义。正因为如此,本文对目前人脸关键点检测任务中常用的深度学习方法进行综述。
尽管深度学习方法在人脸关键点检测任务上已经获得了长足的发展,算法性能不断提升,与实际应用的要求也越来越接近。然而,该任务的研究还远未结束,目前还有一些关键性难题亟待解决。在此总结三点:
(1)缺乏统一的方法集成框架。近年来,随着深度学习、回归分析等技术的应用,人脸关键点检测技术的方法模型更为丰富。但若要完全解决关键点检测问题,还需要建立一个统一的综合性方法框架。因此,如果要实现任意情况下的高精度人脸关键点提取,就需要建立一个集成各类情况下最优方法的综合方法框架。
(2)缺少简洁模型。近年来出现的方法正变得越来越复杂、参数越来越多、其所综合利用的信息和技术也越来越繁杂。遵循奥卡姆剃刀原理,过于复杂的模型,必然难以成为最优解决方案. 目前的人脸关键点提取研究,迫切需要发展能够以简单清晰的模型和方法解决问题的合理思路。
(3)多变的人脸姿态和遮挡。姿态和遮挡是人脸关键点检测所面临的经典难题,近年来也出现了很多处理这两方面问题的思路和方法,但目前在实际应用中,尤其在实时低图像质量条件下,对于这两类难题的处理还难以令人满意. 尤其当姿态发生快速和剧烈改变,以及遮挡比例较大时,现有方法的精度距离实际应用的要求还有较大差距,需要进一步研究和提升。
本文针对近年人脸关键点检测方法中的深度学习方法进行了综述研究。本文对人脸关键点检测任务进行了详细描述,并将具有代表性的深度学习网络模型,从模型设计思路到模型框架均进行较为深入的探究。在所面临的挑战性问题和开展相关研究所需的基础知识方面,本文亦抛砖引玉,希望本文能对相关科研人员了解人脸关键点检测问题并开展相关研究起到微薄的作用。
参考文献
[1] T.F. Cootes, C.J. Taylor, D.H. Cooper, et al. Active Shape Models-Their Training and Application[J]. Computer Vision and Image Understanding, 1995, 61(1):38-59. [2] G. J. Edwards, T. F. Cootes, C. J. Taylor. Face recognition using active appearance models[J]. Computer Vision—Eccv』, 1998, 1407(6):581-595. [3] Cootes T F, Edwards G J, Taylor C J. Active appearance models[C]// European Conference on Computer Vision. Springer Berlin Heidelberg, 1998:484-498. [4] Dollár P, Welinder P, Perona P. Cascaded pose regression[J]. IEEE, 2010, 238(6):1078-1085. [5] Sun Y, Wang X, Tang X. Deep Convolutional Network Cascade for Facial Point Detection[C]// Computer Vision and Pattern Recognition. IEEE, 2013:3476-3483. [6] Zhou E, Fan H, Cao Z, et al. Extensive Facial Landmark Localization with Coarse-to-Fine Convolutional Network Cascade[C]// IEEE International Conference on Computer Vision Workshops. IEEE, 2014:386-391. [7] Zhang Z, Luo P, Chen C L, et al. Facial Landmark Detection by Deep Multi-task Learning[C]// European Conference on Computer Vision. 2014:94-108. [8] Wu Y, Hassner T. Facial Landmark Detection with Tweaked Convolutional Neural Networks[J]. Computer Science, 2015. [9] Zhang K, Zhang Z, Li Z, et al. Joint Face Detection and Alignment Using Multitask Cascaded Convolutional Networks[J]. IEEE Signal Processing Letters, 2016, 23(10):1499-1503. [10] Kowalski M, Naruniec J, Trzcinski T. Deep Alignment Network: A Convolutional Neural Network for Robust Face Alignment[J]. 2017:2034-2043. [11] Cristinacce D, Cootes T F. Feature Detection and Tracking with Constrained Local Models[C]// British Machine Vision Conference 2006, Edinburgh, Uk, September. DBLP, 2006:929-938. [12] Lucey S, Wang Y, Cox M, et al. Efficient Constrained Local Model Fitting for Non-Rigid Face Alignment[J]. Image & Vision Computing, 2009, 27(12):1804. [13] Wang Y, Lucey S, Cohn J F. Enforcing convexity for improved alignment with constrained local models[C]// IEEE Conference on Computer Vision & Pattern Recognition. Proc IEEE Comput Soc Conf Comput Vis Pattern Recognit, 2008:1. [14] Saragih J M, Lucey S, Cohn J F. Deformable Model Fitting by Regularized Landmark Mean-Shift[M]. Kluwer Academic Publishers, 2011. [15] Papandreou G, Maragos P. Adaptive and constrained algorithms for inverse compositional Active Appearance Model fitting[C]// Computer Vision and Pattern Recognition, 2008. CVPR 2008. IEEE Conference on. IEEE, 2014:1-8. [16] Matthews I, Baker S. Active Appearance Models Revisited[J]. International Journal of Computer Vision, 2004, 60(2):135-164. [17] Amberg B, Blake A, Vetter T. On compositional Image Alignment, with an application to Active Appearance Models[C]// Computer Vision and Pattern Recognition, 2009. CVPR 2009. IEEE Conference on. IEEE, 2009:1714-1721. [18] Smith B M, Zhang L, Brandt J, et al. Exemplar-Based Face Parsing[C]// Computer Vision and Pattern Recognition. IEEE, 2013:3484-3491. [19] Zhou F, Brandt J, Lin Z. Exemplar-Based Graph Matching for Robust Facial Landmark Localization[C]// IEEE International Conference on Computer Vision. IEEE Computer Society, 2013:1025-1032. [20] Coughlan J M, Ferreira S J. Finding Deformable Shapes Using Loopy Belief Propagation[C]// European Conference on Computer Vision. Springer-Verlag, 2002:453-468. [21] Liang L, Wen F, Xu Y Q, et al. Accurate Face Alignment using Shape Constrained Markov Network[C]// IEEE Computer Society Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2006:1313-1319. [22] Wei Y. Face alignment by Explicit Shape Regression[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2012:2887-2894. [23] Xiong X, Torre F D L. Supervised Descent Method and Its Applications to Face Alignment[C]// Computer Vision and Pattern Recognition. IEEE, 2013:532-539. [24] Tang X, Wang X, Luo P. Hierarchical face parsing via deep learning[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2012:2480-2487. [25] Wu Y, Wang Z, Ji Q. Facial Feature Tracking Under Varying Facial Expressions and Face Poses Based on Restricted Boltzmann Machines[C]// Computer Vision and Pattern Recognition. IEEE, 2013:3452-3459. [26] Zhang J, Shan S, Kan M, et al. Coarse-to-Fine Auto-Encoder Networks (CFAN) for Real-Time Face Alignment[C]// European Conference on Computer Vision. Springer, Cham, 2014:1-16. [27] Wang N, Gao X, Tao D, et al. Facial Feature Point Detection: A Comprehensive Survey[J]. Neurocomputing, 2017. [28] Learnedmiller E, Lee H, Huang G B. Learning hierarchical representations for face verification with convolutional deep belief networks[C]// Computer Vision and Pattern Recognition. IEEE, 2012:2518-2525.
转载自:机器之心 原文链接:点击这里