人脸关键点定位(Facial landmark localization):
在人脸检测的基础上,根据输入的人脸图像,自动定位出面部关键特征点,如眼睛、鼻尖、嘴角点、眉毛以及人脸各部件轮廓点等,输入为人脸外观图像,输出为人脸的特征点集合。
人脸对齐(Facial alignment):
可以看作在一张人脸图像搜索人脸预先定义的点(也叫人脸形状),通常从一个粗估计的形状开始,然后通过迭代来细化形状的估计。在搜索的过程中,两种不同的信息被使用,一个是人脸的外观(Appearance) ,另一个是形状(Shape)。形状提供一个搜索空间上的约束条件。
人脸对齐主要将人脸中的 eyes, mouth, nose and chin 检测出来,用特征点标记出来。
人脸对齐是一个中间步骤,首先是人脸检测,然后是人脸对齐,人脸对齐的结果可以用于: 人脸验证, 人脸识别(Face recognition),属性计算(Attribute computing),表情识别(Expression recognition), 姿态估计(Pose Estimation) 等。 实际应用中人脸的不同尺度,姿态,遮挡,光照,复杂表情等对人脸对齐具有较大的挑战性 。
人脸关键点检测技术:
综合考虑传统方法和目前最新进展,从技术实现上可将人脸关键点检测分为2大类:
生成式方法(Generative methods)
生成式方法构建人脸shape和appearance的生成模型。这类方法将人脸对齐看作是一个优化问题,来寻找最优的shape和appearance参数,使得appearance模型能够最好拟合输入的人脸。这类方法包括:
判别式方法(Discriminative methods)。
判别式方法直接从appearance推断目标位置。这类方法通常通过学习独立的局部检测器或回归器来定位每个面部关键点,然后用一个全局的形状模型对预测结果进行调整,使其规范化。或者直接学习一个向量回归函数来推断整个脸部的形状。这类方法包括传统的方法以及最新的深度学习方法,具体分为如下几种经典的实现方式:
从空间维度来考虑,以上这些方法又可分为:
需要指出的是,由于深度学习方法可以很好的实现对多任务的处理,因此有很多新的算法可以同时完成对2D关键点和3D关键点的同时获取,进而可进一步支持后续的多任务分析,如人脸对齐,3D姿态分析等。
在人脸关键点定位的发展史上,具有里程碑式的有如下五种方法:
Paper: An Introduction to Active Shape Models. Constrained Local Model for FaceAlignment. Xiaoguang Yan(2011).
概述:
ASM模型起源于snake模型(作为动态边缘分割的snake模型),该方法用一条由n个控制点组成的连续闭合曲线作为snake模型,再用一个能量函数作为匹配度的评价函数,首先将模型设定在目标对象预估位置的周围,再通过不断迭代使能量函数最小化,当内外能量达到平衡时即得到目标对象的边界与特征。
历史:
1989年yuille等人此提出使用参数化的可变形模板来代替snake模型,可变形模板概念的提出为AAM的产生奠定了理论基础。
1995年cootes等人提出的ASM算法是AAM的直接前身,ASM采用参数化的采样形状来构成对象形状模型,并利用PCA方法建立描述形状的控制点的运动模型,最后利用一组参数组来控制形状控制点的位置变化从而逼近当前对象的形状,该方法只单纯利用对象的形状,因此准确率不高。
1998年,cootes等人在ASM算法的基础上首先提出AAM,与ASM的不同之处是他不仅利用了对象的形状信息而且利用了对象的纹理信息。
级联回归的方法始于 P Dollar大神在CVPR2010的论文Cascaded pose regression,通过级联回归的方法来预测物体的形状。
概念:
对于人脸特征点定位,人脸关键点检测的目的是估计向量(Facial Shape)
其中K表示关键点的个数,由于每个关键点有横纵两个坐标,所以S的长度为2*K。
对于一个输入 I , 给定一个初始形状 (通常是在训练集计算得到的平均形状)。每一级输出的是根据输入图像得到的偏移估计 ΔS,那么每一级都会更准确的预测脸上 Landmark 的位置:
其中,和分别表示第 t 和 t+1级预测的人脸形状(即所有关键点集合),r_t表示回归函数。
在级联形状回归的框架下,主要的操作是向量相加,不仅有效而且计算复杂度较低, 所以近年来得到了广泛的应用,并产生了很多改进算法, 其主要不同点在于特征提取方法以及回归函数r_t的选择不同。值得一提的是,级联回归对与正脸或接近正脸的定位精度相对较高,而对于大姿态下的关键点定位效果相对较差。
论文地址
CPR通过一系列回归器将一个指定的初始预测值逐步细化,每一个回归器都依靠前一个回归器的输出来执行简单的图像操作,整个系统可自动的从训练样本中学习。
CPR检测流程一共有T个阶段,在每个阶段中首先进行特征提取f,这里使用的是shape-indexed features,也可以使用诸如HOG、SIFT等人工设计的特征,或者其他可学习特征(learning based features),然后通过训练得到的回归器R来估计增量ΔS( update vector),把ΔS加到前一个阶段的S上得到新的S,这样通过不断的迭代即可以得到最终的S(shape)。
Github代码
CVPR 2012微软亚洲研究院(MSRA)孙剑组的作品。该文章主要提出了3个方法:
dlib实现人脸关键点定位采用的方法。
Github代码
cvpr2013, ESR是基础版本的形状回归,ERT将回归树修改为GBDT,由原始的直接回归形状,改进为回归形状残差,而LBF,是加速特征提取,由原来的像素差分特征池,改为随机选择点。该方法主要体现在2个方面:
theano 代码
cpr
cvpr2012ESR
ESR代码
cvpr2013-3000FPS
3000FPS-CSDN
DAN详细介绍及tf实现
级联形状回归(Cascaded Shape Regressor)人脸对齐框架的CNN实现。算法级联了多级回归器,每一级的输出是相对于上一级的偏移量。通过增加人脸关键点热度图,可以使得每级的输入是整个人脸图像,与之前的局部区域图像定位某个关键点的方法相比,增加了人脸的全局信息。另外,第一级的输入是一个平均形状(mean shape calculated on trainset),此后每一级的输入包含3个部分:由上一级回归的关键点对齐后的输入图像,关键点热度图以及上一级的最后一层特征图(featuremap)。每一级的CNN网络都是VGG16。
论文地址
香港中文大学汤晓欧,SunYi等人作品,首次将CNN用于人脸关键点检测。总体思想是由粗到细,实现5个人脸关键点的精确定位。网络结构分为3层:level 1、level 2、level 3。每层都包含多个独立的CNN模型,负责预测部分或全部关键点位置,在此基础上平均来得到该层最终的预测结果。
过程:
DCNN-CSDN
DCNN项目主页
TCNN-caffe-mxnet
LAB
LAB-CSDN翻译
LAB-github
清华&商汤作品。借鉴人体姿态估计,将边界信息引入关键点回归上。网络包含3个部分:边界热度图估计模块(Boundary heatmap estimator),基于边界的关键点定位模块( Boundary-aware landmarks regressor )和边界有效性判别模块(Boundary effectiveness discriminator)
结构:
3D人脸对齐,即检测人脸的3D面部关键点坐标,主大部分工作是通过3D人脸建模实现,即拟合人脸的3D模型(如3DMM(3D Morphable Model))参数来实现,相关根据拟合的方式不同,产生了很多算法。
自动化所作品, 解决极端姿态下(如侧脸),一些特征点变了不可见,不同姿态下的人脸表观也存在巨大差异使得关键点定位困难等问题,本文提出一种基于3D人脸形状的定位方法3DDFA。
算法框架为:
实验证明该损失函数可以提升定位模型的精度。由于参数化形状模型会限制人脸形状变形的能力,作者在使用3DDFA拟合之后,抽取HOG特征作为输入,使用线性回归来进一步提升2D特征点的定位精度。
训练:
训练3DDFA模型,需要大量的多姿态人脸样本。为此,作者基于已有的数据集如300W,利用3D信息虚拟生成不同姿态下的人脸图像,核心思想为:先预测人脸图像的深度信息,通过3D旋转来生成不同姿态下的人脸图像。
这篇文章是来自密西根州立大学的Amin Jourabloo和Xiaoming Liu的工作。 和上一篇文章的出发点一样,作者试图使用3D人脸建模解决大姿态下面部特征点定位问题。 2D的人脸形状U可以看成是3D人脸形状A通过投影变化m得到。 3D人脸形状模型可以表示为平均3D人脸形状 A 0 与若干表征身份、表情的基向量 A id 和 A exp 通过p参数组合而成, 面部特征点定位问题(预测U)可以转变为同时预测投影矩阵m和3D人脸形状模型参数p。
算法的整体框架通过级联6个卷积神经网络来完成这一任务:
值得一提的是,该方法在预测3D人脸形状和投影矩阵的同时也考虑到计算每一个特征点是否可见。如果特征点不可见,则不使用该特征点上的块特征作为输入,这是普通2D人脸对齐方法难以实现的。
此外,作者提出两种pose-invariant的特征Piecewise Affine-Warpped Feature (PAWF)和Direct 3D Projected Feature (D3PF),可以进一步提升特征点定位的精度。
ICCV2017密西根州立大学作品。在人脸对齐方法中,以前的算法主要集中在特定数量的人脸特征点检测,比如5、34或者68个特征点,这些方法都属于稀疏的人脸对齐算法。 在本文中,我们提出了一种针对大角度人脸图像的一种3D密集人脸对齐算法。在该模型中,我们通过训练CNN模型利用人脸图像来估计3D人脸shape,利用该shape来fitting相应的3D人脸模型,不仅能够检测到人脸特征点,还能匹配人脸轮廓和SIFT特征点。此外还解决了不同数据库中由于包含不同数量的特征点(5、34或68)而不能交叉验证的问题。可以实时运行.
论文提出通过完全卷积网络学习从图像像素到密集模板网格的映射。我们将此任务作为一个回归问题,并利用手动注释的面部标注来训练我们的网络。我们使用这样的标注,在三维对象模板和输入图像之间,建立密集的对应领域,然后作为训练我们的回归系统的基础。我们表明,我们可以将来自语义分割的想法与回归网络相结合,产生高精度的“量化回归”架构。我们的系统叫DenseReg,可以让我们以全卷积的方式估计密集的图像到模板的对应关系。因此,我们的网络可以提供有用的对应信息,而当用作统计可变形模型的初始化时,我们获得了标志性的本地化结果,远远超过当前最具挑战性的300W基准的最新技术。我们对大量面部分析任务的方法进行了全面评估,并且还展示了其用于其他估计任务的用途,如人耳建模。
诺丁汉大学作品。在现存2D和3D人脸对齐数据集上,本文研究的这个非常深的神经网络达到接近饱和性能的程度。
本文主要做了5个贡献:
上海交通大学作品。本文提出了一个强有力的方法来同时实现3D人脸重构和密集人脸对齐。为实现该目标,我们设计了一个UV位置图,来达到用2D图表示UV 空间内完整人脸的3D形状特征。然后训练了一个简单的CNN来通过单张2D图像回归得到UV图。我们的方法不需要任何先验人脸模型,就可以重构出完整的面部结构。并且开源了tensorflow 测试代码和预训练模型,速度9.8ms/帧。