APP下载

改进的显式形状回归人脸特征点定位算法

2018-07-25贾项南于凤芹

计算机应用 2018年5期
关键词:人脸形状像素

贾项南,于凤芹,陈 莹

(江南大学物联网工程学院,江苏无锡214100)

(*通信作者电子邮箱jxn0415@foxmail.com)

0 引言

人脸特征点定位是对一幅人脸图片具有特殊语义的部位进行定位的方法,例如眼睛、鼻子、嘴巴和轮廓。这一技术对于人脸识别[1]、人脸跟踪[2]、人脸动画和 3D 人脸建模[3]至关重要。由于人脸表情丰富、光照变化较大和部分遮挡等因素,使得人脸特征点定位仍然存在巨大的挑战。传统的人脸特征点定位算法主要有主动形状模型(Active Shape Model,ASM)[4]、主动外观模型(Active Appearances Model,AAM)[5]和基于以上两种方法的一系列改进算法。传统的算法实现了良好的定位效果,但是定位效率低,无法满足实时性需求。

近几年,人脸特征点定位取得了较大的进步,有许多高效率、高准确率的算法被提出,例如基于级联回归[6-9]、核密度估计、局部约束模型[10-11]以及神经网络[12]的人脸特征点定位算法。基于级联回归的方法通过学习一个回归函数直接将人脸图像的纹理特征映射到目标输出,具有较高的定位精度和效率。最具代表性的是显式形状回归(Explicit Shape Regression,ESR)算法[8],该算法采用级联回归作为算法的主体框架,以一幅人脸图片和初始形状为基准,采用随机蕨作为回归器,从训练样本中学习得到形状增量,直接将人脸的纹理信息与形状增量之间建立映射关系,定位精度高、速度快。但是该算法借助于人脸检测得到的人脸检测框作为形状初始化的映射标准,当人脸姿态偏转较大时不能准确地检测到人脸,无法得到准确的人脸初始形状,从而导致算法精度低、收敛速度慢;显式形状回归算法在构造随机蕨回归器时采用像素特征,像素特征虽然计算简单,但是易受光照影响,鲁棒性较差;面对多次初始化得到的多个定位结果,显式形状回归算法对多个定位结果取平均得到最终定位结果,然而有的定位结果对眼睛、鼻子区域定位较理想,有的定位结果对嘴巴、轮廓区域定位较理想,这样简单地取平均会忽略各个定位结果的优劣,不能对多个定位结果进行最佳融合。

针对以上问题,本文对显式形状回归算法提出以下改进:首先利用已有的技术检测出双眼和嘴巴的中心形成三点人脸形状来代替人脸检测框作为人脸形状初始化的映射标准,通过相似变换将最初的人脸形状映射到人脸图片上以得到更精确的初始形状来提高算法的定位精度;然后采用像素块特征代替像素特征,在人脸区域随机选取一小块区域并对该区域内的所有像素取平均,得到平均灰度值作为随机蕨的输入特征,来对抗光照变化增加算法的鲁棒性;最后采用多假设融合策略挑选出各个定位结果中定位效果较好的区域进行最佳融合来进一步提高算法的定位精度。

1 基本原理

给定一幅人脸图片Ii,一个初始形状,级联回归模型以逐步累加的方式结合T级回归器(R1,…,R,…,RT)来进行迭代回归,每一个回归器从图像纹理特征计算得到一个形状增量ΔS且以级联方式更新人脸形状:

其中:Ii表示第i个样本,第t级的回归器Rt通过更新上一级人脸形状来得到新的人脸形状,形状回归增量 Rt(Ii,取决于人脸图像Ii和上一级评估的形状。

ESR算法在级联回归框架的基础上采用二级级联回归方式来计算形状增量ΔS,一级回归用来提取特征、更新形状,二级回归选择特征,得到形状增量。一级回归的强回归器Rt由二级回归的K个弱回归器(r1,r2,…,rK)组成,即Rt=(r1,r2,…,rK),经过多次迭代最终形成一系列的强回归器(R1,R2,…,RT)。

ESR算法通过人脸检测器检测得到人脸检测框,然后将最初的人脸形状映射到人脸检测框内得到初始形状,在人脸区域随机选取P个像素点,计算每个像素点到所有特征点的欧氏距离,选择欧氏距离最小的特征点作为选取的像素点的索引,P个像素点两两相减得到P×P个像素差值特征,并且采用相关性特征选择的方法,从P×P像素差值中选择出F个最具代表性的像素特征和阈值来构造随机蕨回归器。随机蕨回归器看成是一个由F个决策节点组成的结构,决策节点包含一对特征〈I1,I2〉和一个阈值τ。通过阈值τ将F对像素差值特征划分成一串二进制序列:

其中,I(i,j)表示像素点的灰度值,将二进制序列转化成十进制数字b作为一个回归容器的索引,b∈[0,2F-1],b可以索引到2F个回归容器中。任意一个训练样本进入随机蕨回归器,该样本的F个特征节点决定了其最终的回归归属。当使用随机蕨作为回归器时,每一个回归容器的输出结果ΔSb由所落入该容器的训练样本的平均估计误差计算得到:

其中:S^表示第i个样本的真实人脸形状;S表示第i个样本

ii当前阶段估计的形状;表示落入回归容器b中的样本个数;β是收敛参数,用来防止落入容器b中的样本数量太少出现过拟合的问题。

本文从形状初始化的映射标准、算法所采用的特征和最终定位结果的融合方式出发,对显示形状回归人脸特征点定位算法进行改进。

1.1 基于三点定位的人脸形状初始化

为了得到更精确的初始人脸形状,提出了三点定位的人脸形状初始化方法,通过已有技术对眼睛和嘴巴中心进行定位[13],形成三点人脸形状,通过相似变换,对初始形状进行调整,通过平移、旋转、缩放使其更接近真实人脸形状,进而提高人脸特征点定位的精度。

对于第i个样本,通过已有技术检测出双眼和嘴巴3个部位的中心点,形成三点人脸形状,从训练样本中随机选取最初的人脸形状并提取双眼和嘴巴的中心点得到三点人脸形状为求解相似变换所需要的参数,使对齐于的相似变换过程如下:

以下是求解缩放因子、平移向量、旋转矩阵过程。首先,计算得到的中心坐标分别为m1、m2,通过以下计算可以得到平移向量t和缩放因子c:

其中conv(S)是形状S的协方差矩阵。计算旋转矩阵R时,需要将形状归一化到相同的尺寸下:

S'i1=[x1,y1;x2,y2;x3,y3],S'i2=[u1,v1;u2,v2;u3,v3]。为了计算旋转矩阵的参数,使形状S'i2对齐于S'i1,即最小化式(9):

即可求得旋转矩阵R。

通过以上求出的平移向量t、缩放因子c、旋转矩阵R,即可将最初的人脸形状经过相似变换得到最终的初始形状

将最初的人脸形状通过双眼和嘴巴形成的三点人脸形状映射到人脸图像上,得到一个更准确的初始人脸形状。对一幅图片进行M次初始化,即可得到M个初始人脸形状{,

1.2 基于像素块特征的人脸特征点定位

显式形状回归算法采用的特征是像素差值特征,该特征计算简单效率高,但是对于有遮挡和光照变化的人脸图片鲁棒性较差,会导致定位效果不理想。

为了解决以上问题,本文提出了像素块差值特征。在人脸区域随机选取P个3×3大小的像素块,计算像素块的中心到所有特征点的欧氏距离,选择距离最小的特征点作为该像素块的索引,计算像素块的平均纹理灰度值,作为最终的像素块特征,P个特征两两相减得到P×P个像素块差值特征,采用相关性特征选择方法[8],从P×P个像素块差值中选取F对判别性较高的像素块差值特征和阈值构造随机蕨回归器,像素块差值特征计算公式如下:

其中:Ω1、Ω2表示两个3×3的像素块,I(i,j)表示图像中(i,j)点的灰度值,再将像素块差值特征与所选的阈值τ进行比较:

F对像素块差值特征和阈值τ即可构成深度为F的随机蕨回归器,通过随机蕨节点上的阈值τ将像素块差值特征划分为二进制序列,并将二进制序列转化成十进制数作为回归器的索引得到形状增量,进而完成人脸特征点的定位。

1.3 基于多假设融合策略的人脸特征点定位

对于第i幅人脸图像Ii进行M次初始化得到M个初始人,通过计算得到M个预测结果{Si1,Si2,…,SiM},并称之为多假设,为了得到一个更精确的定位结果,提出了多假设融合策略。由于多假设融合策略计算复杂,本文采用区域融合策略,即人脸的同一部位的特征点定位总是来自同一个假设。

为了从多个融合结果中选择出最佳的定位结果,需要定义一个选择最佳结果的函数。正如文献[14]描述的,定义一个映射矩阵W来得到多假设融合策略的最大输出结果作为最佳的定位结果。

其中:Si是最终的输出结果,Ψ表示特征,本文采用2.2节产生的二进制序列作为Ψ特征。可以看出式(14)是一个标准的结构化SVM问题。所以本文使用结构化SVM算法[15-16]学习一个映射自动融合多假设结果。针对本文的问题,定义一个预测形状Si和真实性状S^i之间的损失函数为:Δ(Si,S^i)=‖Si-S^i‖22。考虑到损失函数的复杂度,本文采用Matlab结构化SVM包来解决多假设融合策略问题,从而得到一个最佳的定位结果。

2 算法实现步骤

本文算法具体步骤如下:

1)输入训练图片,通过文献中的已有技术对人的眼和嘴巴中心点进行定位成三点人脸形状,从训练样本中随机抽取M个人脸形状并通过相似变换求出每个初始形状到检测出的3个点的缩放因子c,平移向量t,旋转矩阵R并将其映射到人脸图片上得到一系列的初始形状

2)在人脸图片上随机选择P个像素点,并计算每一个像素到L个特征点的欧氏距离,选择最近的特征点作为该像素点的索引,然后以这P个像素特征点为中心选取3×3区域求平均得到的值作为特征,P个像素块特征两两作差即可得到P×P个像素块差值特征。

3)对于步骤2)得到的像素块特征,采用相关性特征选择方式选择出最具判别性的特征来构造K个随机蕨弱回归器组成第一层的强回归器Rt,得到形状增量ΔS,更新当前阶段的人脸形状,并进入下一级迭代,直到预测误差不再增加停止迭代。

4)通过步骤1)~3),每一个训练样本得到M个定位结果{Si1,Si2,…,SiM},采用多假设融合策略对M个定位结果进行最佳融合。

5)测试过程采用与训练过程同样的初始化方法,并且采用训练过程中构造好的随机蕨回归器,加载训练好的模型,通过一步一步的迭代使初始人脸形状收敛于真实人脸形状。最后对多个定位结果采用多假设融合策略来获得最终的定位效果。

本文算法流程如图1所示。

图1 改进的显式形状回归人脸特征点定位算法流程Fig.1 Flow chart of improved explicit shape regression for face alignment

3 仿真实验与结果分析

实验环境 Windows7 64位,Intel Core i3-2310M CPU处理器,6 GB内存,Matlab R2016a仿真系统。实验数据采用本研究领域公认的 三大数据库 LFPW[17]、HELEN[18]、300-W[19]。LFPW库中的图片来源于网络,包含了大量姿态、光照、表情变化较大的人脸图片,可以更好地验证算法的性能,采用训练集中1100张人脸图片中的800张作为训练图片,测试集300张中的224张作为测试图片。HELEN库包含了2330张高分辨率的网络图片,采用2 000张作为训练样本,330作为测试样本。300-W库具有极大的挑战性,因为其包含了在姿态、表情、背景和图片质量方面大幅度变化的图片。本文采用300-W 库中包含的LFPW、HELEN、AFW库作为训练样本,将IBUG库作为测试样本。LFPW、HELEN、300-W这三个库中的人脸图片都包含了68个特征点,并作为真实人脸形状来进行有监督学习。

参数设置 算法中初始化人脸形状次数M为10,特征点数L为68,第一级回归迭代次数T为10,第二级回归器数量K为500,随机在人脸区域选择的像素特征数P为500,选择出的最具判别性的特征数F为5,即随机蕨深度为5。

衡量标准 在测试算法性能时,本文采用文献[8]的衡量标准来评估人脸形状误差,由于图片中人脸大小各不相同,采用双眼间距离来标准化定位误差,定位误差计算公式如下:

其中:N表示样本数量,L表示特征点个数,Si表示预测的人脸形状,S^i表示真实人脸形状,di表示双眼间的距离。

为了验证本文算法的有效性,分别与文献[6-8]中的算法在LFPW、HELEN人脸库上进行对比。文献[6-8]是当今人脸特征点定位领域定位效果较好的三种算法,本文算法就是在文献[8]ESR算法基础上进行改进得到的。从表1可知,本文算法在LFPW库上比原算法ESR定位误差降低了7.96%,在HELEN库上降低了5.36%,在300-W库上降低了1.94%,本文算法比ESR定位精度高的原因是通过精确的定位人脸和嘴巴来获得更准确的初始人脸形状,并且采用像素块特征,抗光干扰性较强,鲁棒性好,本文算法在最后挑选出多个定位结果较好的区域进行最佳组合,所以本文算法实现了较理想的定位效果。本文改进的ESR算法比文献[6-8]定位效果都要好,基本满足人脸特征点定位的精度需求。

表1 各算法定位误差比较Tab.1 Alignment error comparisons of algorithms

为了更好地体现本文定位算法的优势,对几种算法的定位准确率进行对比。有些学者提出当样本误差<0.25时,表示样本定位正确,还有更严格的评价标准,当样本误差<0.10时,表示样本定位正确。从表2可知,当采用样本误差<0.10的标准时,几种算法定位正确率均达到90%以上。本文算法随着误差标准的放宽,定位准确率逐渐上升,并在样本误差<0.15时,定位正确率率先达到100%。

表2 各算法LFPW库定位正确率比较Tab.2 Alignment accuracy comparison on LFPW dataset of algorithms

从表3可知:文献[6]的定位正确率处于遥遥领先的地位,是因为文献[6]提出的算法主要用来解决人脸存在遮挡的问题,所以在有大量遮挡的HELEN库中比本文算法的定位正确率更高;但本文算法比文献[7]、文献[8]定位正确率都高,基本满足定位需求。总体上看,表3的定位正确率比表2要低,是因为LFPW库中包含的人脸姿态中规中矩,利于定位,而在HELEN库中却包含着大量姿态变化、光照变化、表情变化较大和大面积遮挡的人脸图片,定位起来比较困难。

图2是本文算法在LFPW库的最终定位效果图。由图2可知,本文算法对于具有挑战性的人脸图片能够实现良好的定位效果。主要是由于本文算法在初始化阶段对于各种姿态的人脸图片都能通过相似变换给定准确的初始人脸形状,在特征提取阶段使用像素块特征来对抗光照变化的影响,最后阶段使用多假设融合策略将定位较好的结果进行融合,最终实现了良好的定位效果。

表3 各算法HELEN库定位正确率比较Tab.3 Alignment accuracy comparison on HELEN dataset of algorithms

图2 LFPW库上的实验结果Fig.2 Experimental results on LFPW dataset

图3是本文算法与文献[6-8]算法在HELEN库上的实验效果比较。由图3(a)可知,文献[6-7]算法对于表情丰富的人脸图片鼻子处定位失败,文献[8]算法对于图片左上角的眉毛处定位失败,而本文算法对于各个部位均实现了较准确的定位。由图3(b)可知,对于姿态偏转较大的图片,文献[6-8]算法的定位效果均不太理想,尤其是左侧脸颊,而本文算法采用了基于三点定位的初始化方法,对于大姿态的人脸图片实现了良好的定位。图3(c)是存在大量遮挡人脸图片,几种算法均实现了良好的定位,尤其是本文算法定位效果更接近真实人脸形状。图3(d)是既存在姿态偏转又存在光照变化较大的人脸图片,文献[6]算法鼻子处定位失败,文献[8]算法鼻子和嘴巴均定位失败,主要是由于这两种算法对抗光照变化能力较弱,本文算法在鼻子处定位虽然也存在一定的误差,但是更接近真实的定位效果。

4 结语

本文针对显式形状回归人脸特征点定位算法存在的一些问题提出了改进。首先,采用已有技术定位出双眼和嘴巴三个部位的中心形成三点人脸形状来作为形状初始化的映射标准,以得到更精确的初始人脸形状;然后采用像素块特征来对抗光照变化增加算法的鲁棒性;最后采用多假设融合策略来对多次初始化得到的多个定位结果进行最佳融合进一步提高算法的定位精度。仿真实验结果表明,与原算法相比,本文算法在LFPW、HELEN和300-W人脸库上的定位精度分别提高了7.96%、5.36%和1.94%;但是本文的算法在处理具有大面积遮挡的人脸时,特征点定位效果不理想,这是今后需要重点研究的内容。

图3 HELEN库上的实验结果Fig.3 Experimental results on HELEN dataset

猜你喜欢

人脸形状像素
像素前线之“幻影”2000
有特点的人脸
一起学画人脸
“像素”仙人掌
三国漫——人脸解锁
火眼金睛
高像素不是全部
分一半
长得象人脸的十种动物
心的形状