自适应监督下降方法的姿态鲁棒人脸对齐算法*
2020-04-15景丽萍
赵 慧,景丽萍,2+,于 剑,2
1.北京交通大学 计算机与信息技术学院,北京 100044
2.交通数据分析与挖掘重点实验室(北京交通大学),北京 100044
1 引言
人脸对齐也即人脸关键点定位,目标是自动定位面部关键点,目前被应用在许多主流的人脸分析任务中:表情识别[1]、人脸验证与识别[2]、人脸动作捕捉[3]以及人脸属性分析[4]等。尽管人脸对齐已经研究了多年,但仍然是一个艰巨的任务,因为实际场景中,摄像机拍摄到的人脸会出现各种光照、姿态、视角,当人脸图片的差异很大时,会给人脸对齐算法带来难度。
近年来,大量人脸对齐方法涌现。在众多方法中,级联回归[5-9]方法实现了很好的人脸对齐结果。级联回归的方法是通过回归关键点位置处提取的特征逐步逼近真实关键点位置。监督下降方法(supervised descent method,SDM[9])是众多级联回归方法中最有效的方法之一。SDM 基于关键点位置索引特征[7],使用级联线性回归来输出关键点位置,省去了复杂的Jacobian 和Hessian 矩阵的计算,模型简单高效且易于理解。位置索引特征是在每个关键点周围提取的,这些特征提取的好坏直接影响了定位的效果。如果在每个阶段都使用固定大小的特征提取框提取特征,会得到不利于关键点检测的无用特征,不利于关键点准确定位。尽管SDM 是一种有效的人脸对齐算法,但是当选取的初始关键点位置远离真实位置时,回归的结果会很差[10]。
Fig.1 Pose-robust face alignment model图1 姿态鲁棒的人脸对齐模型
为此,提出一种自适应SDM 模型的姿态鲁棒人脸对齐方法,主要结构如图1 所示。考虑到人脸图片存在较大的姿态差异,训练一个统一的模型不能很好地解决姿态差异带来的影响。因此使用分治的策略将一个困难的问题划分成多个比较容易的子问题。对人脸姿态进行划分,首先利用仿射变换将所有图片做一个姿态矫正,矫正后的人脸姿态仅存在正脸、左侧脸、右侧脸三种姿态,然后使用K-means 聚类算法将人脸分成三类。在每一个类别中,图片姿态相似,更容易实现准确的关键点定位。人脸对齐是一个由粗到细的回归过程,关键点的位置会越来越接近真实位置。为了提取更具判别性的特征,特征提取框的大小应随着迭代次数增加而减小。在每个类别下,采用自适应SDM 模型,即使用自适应的特征提取框代替之前固定的特征框来提取判别性特征。
人脸对齐的结果依赖于初始位置x0的选取,当x0远离真实位置时,回归过程就会变复杂。通常情况下,x0是训练集中所有人脸关键点位置的平均值。文献[6]提出使用不同的初始位置运行多次并将所有结果的平均值作为最终的结果。本文则是针对每一个姿态类别采用不同的x0,如图2 所示。在LFPW、HELEN 和300W 数据集上的实验结果表明该方法能很好地对复杂姿态的图片进行关键点定位。
本文的主要贡献如下:
(1)提出了一种姿态鲁棒的人脸关键点定位方法,能够对复杂姿态的人脸图片进行更加准确的关键点定位。
Fig.2 Initial shape in each cluster图2 每个类别下的初始关键点位置
(2)遵循由粗到细的准则,采用自适应特征提取框代替固定大小的特征提取框,获得更具判别性的特征。
(3)针对不同的姿态类别采用不同的初始位置,使得初始位置更接近于真实位置,简化回归过程。
(4)在LFPW、HELEN 和300W 数据集上的实验结果表明了本文模型的有效性。
2 相关工作
人脸对齐方法可以被分成三类,包括参数化方法、级联回归方法以及深度学习方法。参数化的方法起源于主动形状模型(active shape model,ASM)[11-13]。该方法是典型的人脸轮廓特征提取方法,从标注好的人脸训练数据中,通过主分量分析(principal components analysis,PCA)得到位置模型,但只保留了对应较大特征值的特征向量,因此在应用到新样本上时会产生一些偏差。之后的主动外观模型(active appearance model,AAM)[14-16]在ASM 的基础上加入了全局纹理模型,提高了人脸对齐的准确度,但这种参数化方法需要优化大量的参数。
基于深度学习模型的人脸对齐取得了显著的成功,源于深度网络较强的非线性映射和特征提取的能力。文献[17]提出自编码深度网络(coarse-to-fine auto-encoder networks,CFAN)来进行关键点定位,多级自编码网络采用由低到高的分辨率进行由粗到细的定位。文献[18]提出一种循环神经网络(mnemonic descent method,MDM),将特征提取与回归过程融合在一起进行端到端的训练,增加了记忆机制,允许在相邻迭代之间传递信息。
级联回归[5-9]方法广泛应用。级联回归方法好的原因在于利用位置索引特征能够加强关键点之间的位置约束,能从训练数据中获得强的学习能力。这种方法并不是显式地建立全局纹理和位置模型,相反是直接学习从特征到关键点位置的映射函数。由于人脸刚性与非刚性的变化,通常仅通过一个阶段不能获得准确的位置。因此这种方法基于给定的初始位置x0,经过多个阶段,每个阶段产生一个位置增量Δx,不断逼近真实位置。每个阶段的位置由xk+1=xk+Rk(Φ(I,xk))决定。其中,xk是k阶段关键点的位置,Rk是回归函数,该函数基于图片I在xk处提取的特征Φ产生位置增量Δx。两种代表性的方法是显式形状回归(explicit shape regression,ESR[6])和SDM。ESR 采用两层提升回归结构,利用位置索引特征以及相关性特征的选取,学习多个弱回归器,多个弱回归器级联成一个强回归器,再将多个强回归器级联来预测关键点。SDM 则是通过线性回归直接得到每个阶段产生的位置增量。鲁棒的级联回归方法(robust cascaded pose regression,RCPR)[5]通过检测遮挡以及更加鲁棒的索引特征的提出,减小了遮挡对人脸对齐的影响。但是文献[5-9]都将所有样本放到一个统一的训练模型中训练,没有考虑样本之间存在的姿态等差异,对于一些复杂姿态的样本定位效果不好。
3 姿态鲁棒的人脸对齐算法
3.1 姿态划分
自然界中的图片由于复杂的姿态问题对关键点定位带来巨大的挑战。为此,对人脸图片进行姿态聚类,然后将不同类别的图片单独训练。对于一张图片I,人脸对齐的目标就是学习一个从特征到关键点位置的非线性映射函数D。由于姿态的差异性较大,D的学习过程复杂,因此依据人脸姿态将D分成几个简单的子任务{D1,D2,…,Dn}。这样,在每个子任务Dk中,人脸具有相似的姿态,简化了D的学习。
由于姿态多样,在进行聚类之前先利用仿射变换对人脸姿态进行调整。仿射变换矩阵M如式(1)。仿射变换只需要利用两组三点坐标就可以求得矩阵M。三点坐标分别是两眼坐标以及嘴巴中间位置的坐标。对于每张图片,一个是源坐标系下的坐标(x,y,1)T,一个是目标坐标系下的坐标(u,v,1)T。注意,目标坐标系下的两眼的位置在同一条水平线上。得到变换矩阵M之后,就可以利用M将整张图片进行仿射变换。结果如图3 所示,第一行是仿射变换前,第二行是变换后。矫正后的人脸姿态仅存在正脸、左侧脸、右侧脸三类姿态。
Fig.3 Face pose before and after affine transformation图3 仿射变换前后的人脸姿态
考虑到数据集中没有提供关于姿态的真实标签,采用K-means 无监督的聚类算法实现姿态聚类。聚类后每个类别的平均脸如图4 所示。为每个类中的所有样本提供一个更加接近真实位置的更好的初始位置,如图2,利用自适应SDM 模型提取判别性特征,每个类别单独训练,得到三个不同的训练模型。由于利用仿射变换对关键点位置进行了矫正,最终输出的关键点位置需要做一个逆变换转换到源坐标系下,如式(2)所示,是仿射变换后的坐标系下的位置坐标,xt是源坐标系下关键点位置的坐标。
Fig.4 Average face in each cluster after pose clustering图4 姿态聚类后每个类下的平均脸
3.2 自适应SDM 模型
人脸对齐通过学习一个回归函数来预测当前位置与真实位置之间的位置增量。考虑到回归函数是一个复杂的非线性映射函数,SDM 使用了一种线性回归的方式代替复杂的非线性回归来预测位置。目标函数如式(3):
对于一幅m个像素的图片d∈Rm×1,d(x)∈Rp×1为图片上p个关键点,x0∈Rp×2代表初始位置,h是一个非线性的特征提取函数,本文实验中使用的是HOG特征。Φ*=h(d(x*))代表了基于真实位置提取的特征。对于每个样本,有一个初始位置x0,根据牛顿梯度下降准则,只需反复对式(1)进行迭代,得到一个Δx的序列{Δx1,Δx2,…,Δxk},并且在每次迭代后,修正xk=xk-1+Δxk,经过若干次迭代,xk就会收敛于最优位置x*。
将式(3)进行Taylor 展开并对Δx求导,且令导数为0,可以得到式(4):
R0被看作是下降的方向。一系列的下降方向Rk以及bk需要计算,表示为式(6)。每个阶段提取的特征构成一个集合Φ={Φ1,Φ2,…,Φk}。
自适应的特征提取体现在Φk上。如图5 所示:这里以5 个关键点为例,其中红点代表每个阶段得到的位置,绿点代表真实位置,红色圆圈代表了特征提取框半径r的大小。图5(a)为SDM 模型的半径r的变换趋势,可以看出r的大小是不变的。这样会提取到影响关键点定位的无用特征。
Fig.5 Trend of feature extraction block size with the number of stage图5 特征提取框大小随迭代次数的改变
人脸对齐是一个由粗到细的过程,特征提取框半径r的大小与每个阶段产生的位置增量Δx有关。当训练样本中Δx分布广泛时,更偏向于使用大的r提取特征。遵循由粗到细的准则,采用自适应地改变r的大小来获取判别性特征。如图5(b)所示,在初始阶段,得到的位置xk远离真实位置x*,Δx分布广泛,在关键点附近采用大的特征框来提取更有用的信息,这有利于处理较大的人脸形状差异并且保证鲁棒性。随着阶段增加,xk与x*的距离越来越小,采用逐渐减小的特征提取框可以有效地获得判别性的特征。尤其是在后面的阶段,小的特征提取框能减少噪音的产生,确保准确性。式(7)表达了自适应特征提取框半径rk的获取过程,表示k阶段第i个样本的第j个关键点的位置。
在文献[19]中,rk虽然也是逐渐减小,但策略强硬,没有考虑到训练样本每个阶段产生的位置增量Δx的分布。在本文的实验中,依据每个阶段产生的Δx自适应地获取特征提取框的半径rk。在每个阶段,每个样本都会产生一个Δx,维度是p×2,计算每个关键点的当前位置与真实位置的距离,得到p个距离。N个样本会产生N×p个距离。在N×p个距离中选取最大距离当作是该阶段所有样本每个关键点的特征提取框r的大小。选取最大的原因是为了提取到真实关键点周围的有用特征。这样,每个阶段选取的特征提取框的大小充分考虑了样本现阶段位置与真实位置的分布,随着阶段增加会逐渐减小,提取的特征能极大限度地在真实位置处提取,同时也减少了冗余特征的干扰。
通过自适应特征提取框半径r的获得,得到了判别性特征Φ={Φ1,Φ2,…,Φk},Rk和bk的值可以通过最小化当前位置增量与真实位置增量的差值计算得到。如式(8)所示。
式(8)是典型的线性最小二乘法问题,可以求得解析解。然后根据式(6),可以得到第k个阶段的位置增量Δxk,进而求得第k个阶段的关键点位置xk。在迭代完成后,将每个阶段得到的Rk和bk保存下来。
对于一张测试样本,首先确定该人脸图片所属的姿态,给予相应的初始位置x0,利用训练阶段得到的一系列Rk和bk,预测关键点位置。
4 实验与结果
在三个数据集LFPW、HELEN 和300W 上评估本文的模型。
4.1 数据集
LFPW[20](49 点):该数据集原本有1 100 个训练样本和300 个测试样本,由于无效的网址,仅仅获得811 个训练样本和224 个测试样本。
HELEN[21](194 点):该数据集包含2 300 张高分辨率的图片。其中,2 000 张作为训练集,剩下的300张作为测试集。高分辨率有利于精准定位关键点。
300W[22](68 点):该数据集是一个合成的人脸对齐数据集,含AFW[13]、LFPW[20]、HELEN[21]和XM2VTS[15]数据集。这些数据集都被统一标为68 个关键点。此外,还包含135 张更具挑战性(challenge)的IBUG 数据集。为了与其他方法比较,300W 训练集包含LFPW 和HELEN 数据集的训练集部分以及AFW 整个数据集(共3 148 个训练样本)。测试集分为三部分:LFPW 和HELEN 数据集的测试集构成300W 数据集的普通(common)测试集;135 张IBUG 数据集作为300W 的具有挑战性(challenge)的测试集;该部分测试集样本姿态表情复杂,两部分结合在一起就是整个(full)测试集(共689 个测试样本)。上述3 个数据集的训练样本主要存在姿态差异,这也是进行姿态划分的原因。
4.2 实施细节与评价指标
考虑到LFPW 数据集比较小,通过扰动产生10个人脸边界框,再将初始位置对齐到10 个边界框上产生10 个初始值来提高模型的泛化性。HELEN 和300W 数据集不进行扰动处理。所有的图片依据人脸边界框裁剪并归一化到400×400 的大小。人脸边界框由OpenCV 人脸检测器得到。通过手动获取人脸的三点坐标,对所有样本进行仿射变换,再基于相似姿态的人脸具有相似的特征,使用K-means 聚类算法实现姿态聚类。在300W 数据集上每个类的平均脸如图4 所示,不同类别下的图片有着不同的姿态,但同一类别下的人脸图片姿态相似,这样每个类别下的样本依据每个阶段位置增量的分布,使用自适应的SDM 模型获得特征提取框的大小,来提取判别性特征,迭代5 次即可收敛。使用与文献[20]相同的归一化的均方根误差(normalized mean error,NME)来评价关键点定位的好坏。如式(9):dipd是两眼间的距离;xt是输出的关键点位置;x*是真实关键点位置;p是关键点个数。由于采用两眼间的距离来归一化,为了清晰可见,所有实验结果都省略了%。
4.3 模型有效性分析
在LFPW 和300W 数据集上分析姿态划分以及自适应特征提取对关键点定位准确度提升的有效性。
图6 展示了姿态划分以及自适应策略与SDM 模型在LFPW 数据集上平均误差随迭代次数的变换。可以看出,模型5 步达到收敛。姿态划分与自适应判别性特征的提取对于关键点定位平均误差的减小有显著作用。姿态聚类较自适应特征提取更能提升关键点定位准确度。原因是聚类后每个类别下图片的姿态紧致,差异变小,对应关键点周围提取的特征更具有相似性,会简化训练过程,姿态聚类在一定程度上辅助了判别性特征的提取。
Fig.6 Mean error with the number of iterations on LFPW图6 LFPW 上平均误差随迭代次数的变化图
表1 展示了两种策略在LFPW 和300W 数据集上的平均误差。自适应特征提取策略在LFPW 和300W full 数据集上定位准确度分别提升5.4%、3.6%。相比而言,姿态划分策略在LFPW 和300W full 数据集上准确度分别提升7.1%、4.3%。同时考虑姿态聚类以及判别性特征的提取,本文模型相比SDM 模型,在LFPW 数据集上准确度提升10.5%,在300W challenge 数据集上提升14.1%,common 数据集上提升10.0%,full 数据集上提升13.2%,说明本文模型对准确度提升有重要作用,特别是在challenge 数据集上。同时可以看出,在LFPW 数据集上的准确度大于300W 数据集,原因是LFPW 仅包含49 个内部关键点,不包含较难定位的轮廓点。
Table 1 Comparison of mean error on LFPW and 300W datasets表1 LFPW 和300W 数据集上平均误差的比较
4.4 与现有方法的比较
为了评估本文模型,在HELEN 和300W 数据集上与现有的5 种方法进行了比较。其中包含参数化方法基于扩展ASM 的关键点定位算法(locating facial features with an extended active shape model,STASM[11]);级联回归方法RCPR[5]、ESR[6];深度学习的方法CFAN[17]、MDM[18]。使用与文献[20]相同的归一化的均方根误差作为评价指标。
从表2 可以看出,本文模型在两个数据集上的结果要好于其他模型。各种模型在HELEN 数据集上的平均误差要高于300W common 数据集,原因在于HELEN 数据集有194 个关键点,相对68 个关键点,定位难度大。STASM 平均误差最高,效果最差,特别是在300W challenge 数据集上。因为该模型是基于ASM 这种参数化的方法,该方法基于PCA 线性模型,特征空间的表达能力受限,对于训练集没出现过的图片或者差异较大的图片不能表现出令人满意的结果。深度的方法MDM 要优于ESR[6]、CFAN[17]等方法,在HELEN 和300W common 数据集上,平均误差低于本文模型,原因在于MDM 增加了记忆机制,可以在相邻的级联回归迭代之间传递信息以及受益于深度网络较强的非线性映射能力。以上的方法都是将样本送入统一的框架,没有考虑姿态差异对模型训练带来的困难,本文模型考虑了姿态差异对人脸对齐的影响,将不同姿态的人脸送入不同的模型下进行训练,效果好于其他模型,尤其在300W challenge数据集上,准确度相比STASM 提升47.3%,比MDM提升3.21%。
Table 2 Mean error of face alignment models on HELEN and 300W datasets表2 HELEN 和300W 数据集上人脸对齐模型平均误差比较
图7 展示了MDM 模型与本文模型在300W 数据集上关键点定位的效果图,绿点代表MDM 模型结果,红点代表本文的结果。可以看出,本文模型相比于MDM 模型,能更加准确地定位关键点,尤其是姿态复杂的人脸图片。
Fig.7 300W results of MDM and proposed model图7 MDM 与本文模型在300W 上的结果图
5 总结
本文提出了一种基于自适应SDM 模型的姿态鲁棒的人脸对齐算法。为了解决复杂姿态对人脸关键点定位带来的困难,先利用仿射变换矫正人脸姿态,再通过聚类算法实现姿态的划分。遵循由粗到细的级联回归的准则,采用自适应特征提取框来提取判别性特征。在每一种姿态下,给予更贴近真实关键点位置的初始位置,采用自适应特征提取的SDM 模型进行训练。在LFPW、HELEN 和300W 数据集上的实验结果表明,本文模型优于SDM 模型以及其他人脸对齐模型,尤其在复杂姿态的人脸图片上。