基于表观模型的人脸特征点提取
2020-03-11闫保中何伟韩旭东
闫保中,何伟,韩旭东
哈尔滨工程大学自动化学院,黑龙江哈尔滨150001
随着5G 时代的到来,催生了诸如人机交互、生物鉴别等方向的应用。众多国内外高校和科研机构在寻求创新的同时把目光转向了以人脸识别、姿态估计和人脸图像编码为基础的与人脸相关的图像处理技术研究。而这些技术能得到快速发展的一个前提是较高精度和较快速度的人脸特征点提取。
不同的研究人员对人脸特征点研究的侧重点有所不同,根据人脸器官的分布规律,人脸特征点涵盖了眼睛轮廓点、瞳孔中心点、眉毛轮廓、鼻尖位置、嘴部轮廓、脸部外轮廓等[1]。Kass等[2]提出的主动轮廓模型,以及Yuille、Hallinan 提出的可变形模板等方法可用于人脸、人眼定位。这类方法称为非参数方法,虽可以在任意图像中获取目标区域,但是精度不高。Cootes等[3]提出的主动形状模型(active shape model,ASM)利用了人脸特征点之间的束缚关系,将获取的特征点限制在一个合理的模型之下,能比较精确地对人脸特征点进行定位。Cootes等[4]在ASM的基础上,提出将纹理模型和形状模型进行融合,进一步得到了主动表观模型[5](AAM),使得人脸特征点提取有较高的精度,此模型已经被广泛应用于人脸特征点检测、人脸定位、人脸表情分析中。
AAM算法在对人脸特征点进行拟合的过程中,过度依赖模型的初始位置[5],当模型的初始位置离目标位置过大时,会影响拟合的精度和速度;而且在拟合过程中会出现不满足人脸器官分布的人脸模型[6],使提取特征点的精度变低。针对以上不足,利用不同的模型进行初始位置的匹配,并对形状参数进行限制,防止非法变形。
1 基于AAM的人脸特征点定位分析
AAM包括模型的建立和对输入图像的拟合计算2个部分[7]。AAM 模型是对象的表观模型,是建立在对象的形状模型之上。基于AAM的人脸特征点提取算法先根据人工标记的数据集训练构建表观模型,再以训练的模型与目标图像作差取平方和来建立能量损失函数模型,以能量值的大小来作为拟合程度的评价指标。在拟合的过程中,通过拟合算法来改变模型参数,参数改变引起形状控制点改变,使模型实例与目标图像完成拟合[8]。当拟合完成后,形状控制点的位置,就是目标图像的特征点位置。
1.1 AAM 模型建立
1.1.1形状建模
当根据数据训练出平均形状S0和形状特征向量S i后,此时AAM 的形状模型就建立完成。
1.1.2表观建模
通过对形状的建模,得到了形状特征向量S i和平均形状向量S0。利用S0经过Delaunay 三角化[10]作为映射的基准网络,将数据集中标记好的特征点进行三角化,通过分段线性仿射的方法映射到基准网络中[11],如图1所示。这时建立表观模型达到归一化的目的。
图1 分段线性仿射示意
然后以与形状建模相似的方式,用主成分分析(principal component analysis,PCA)方法获取前m个表观特征向量A i和平均表观模型A0[12],建立的表观模型公式为通过设置不同的参数,可以获取不同的表观模型实例,就完成了表观模型的建立。
1.2 利用反向组合进行AAM 拟合计算
早期的AAM 拟合计算是通过Lucas-Kanade算法[13]实现的,Lucas-Kanade的数学模型为
为了获取Lucas-Kanade数学模型的最小值,对其进行求导,零求导式的左右两边等于0,得到的表达式为
2 AAM初始化模型优化
AAM 利用全局形状和纹理对人脸的特征点进行搜索和拟合,首先需要训练出一个初始化模型,然后在初始化模型的基础上进行拟合。但是由于初始化模型的预估能力在一定情况下效果不佳,当偏离的位置在能处理的范围之外时,模型将不能进行正确的拟合,收敛的速度慢且不精确。
为了在拟合过程中使模型收敛的速度加快且使拟合的精度提高,提出将不同的头部姿态训练不同的人脸模型。在训练模型时,首先将头部姿态相似的人脸归为一类进行训练,获取多个模型;之后在进行选取初始化模型时,对输入图像进行支持向量机(support vector machines,SVM)分类匹配,粗略判断输入人脸的姿态,相应的姿态选取相应的初始化模型进行拟合,从而提高拟合速度和精度。整体检测流程如图2所示。
图2 基于多模板AAM 的人脸特征点检测
2.1 头部姿态粗估计
基于多模板AAM的核心在于如何将输入的人脸图像对应训练好的人脸模型,所以需要对输入的图像姿态进行预估。头部姿态预估的具体方案是:选取CASIA-webface 人脸数据集和自己采集的人脸作为数据集,在数据集中找出头部正向前方、头部左偏45°、头部右偏45°、头部上扬45°和头部下低45°这5种姿态,如图3所示。
图3 5种人脸初始姿态
2.1.1方向梯度直方图人脸特征提取
在提取方向梯度直方图(histogram of oriented gradient,HOG)特征时,将所有的数据集都缩放到128像素×128像素,处理的速度更快。所以HOG特征提取时窗口个数为15×15,HOG块的大小为16×16。一个block 有4个细胞,且核的个数为9,所以HOG 特征最终得到的特征向量的维数是8 100。
选取HOG作为分类器的特征进行训练,HOG特征参数如表1所示。提取HOG 特征如图4所示。
表1 HOG 参数选择
图4 HOG 特征提取
由于SVM是一个二分类器[15],但是在进行头部姿态粗分类的过程中需要区分5个头部姿态,采用一对一法,将5 种姿态的数据集分为数据集A、B、C、D、E。在训练时,选取A,B;A,C;A,D;A,E;B,C;B,D;B,E;C,D;C,E;D,E这10对子数据集,训练出10个训练结果。然后将输入的被分类对象进行分别测试,采取投票的形式得到最后的结果。
投票的过程如下:假设a、b、c、d、e分别对应5 种姿态结果的计数器,当利用A,B组成的数据集训练的分类器给被分类的对象进行分类,若分类的结果为A,则a进行累加,否则b进行累加。其余组的判断方式与该组相同。最后对应结果为a、b、c、d、e中最大值所对应的类。
通过一对一得到的10个训练模型,通过一张输入的图片,就可以得到初步预估头部姿态。
2.2 多模板AAM 模型建立
在2.1节中,已知输入人脸的初步姿态,需要找到合适的AAM 人脸初始化模型进行匹配,所以需要训练出5个相对应的人脸初始化模型。
在训练初始化模型过程中使用300-W 数据集,该数据集共有训练集样本3 148张,测试集样本共有689张,每张都有标记好的人脸特征点坐标,不需要再进行人工的手动标注,减少了重复性工作。从300-W 数据集中选出头部正向前方、头部左偏45°、头部右偏45°、头部上扬45°和头部下低45°这5种类型的照片和标注点,每种类型200张,进行训练,获取5种类型的初始化模型。模型图如图5所示。
图5 AAM 模型
2.3 特征点获取过程
获取了人脸初始姿态模型和多模板AAM 初始化模型,就可以进行人脸特征点获取,具体步骤如下:
1)提取输入图片HOG 特征,利用训练好的SVM分类器进行头部姿态初步估计;
9月下旬至10月上旬播种,选择中熟油菜品种,用种量是0.3~0.4公斤/亩。基肥施复合肥(15-15-15含量)50公斤/亩,硼肥(10%含量)0.5~1公斤/亩;苗肥于4~5叶期施尿素5公斤/亩,腊肥每亩施尿素5公斤/亩,氯化钾2公斤/亩,于春节前施用;薹肥每亩施尿素、氯化钾各3公斤/亩,初花和盛花期结合一促四防喷施磷酸二氢钾和硼肥。
2)根据预估的头部姿态匹配对应的初始化AAM 模型;
3)利用反向组合进行AAM 拟合计算;
4)多次重复步骤3),不断地迭代拟合,使模型拟合到正确的位置;
5)通过拟合的最终结果获取特征点。
3 AAM拟合改进
不同人脸的外形、表情可能都不相同,但是人脸器官的分布是有规律可循的,即器官特征点之间的距离关系不会有特别大的区别。在利用表观模型进行回归时,AAM的人脸形状会超出这种关系,得到了非人脸的形状。而原AAM 没有对这种情况进行判断,没有对这种非正常的拟合变形进行修正,最终导致特征点没有拟合到正确的位置。
3.1 形状限制项解决非法形变思路
由第1节可知,建立了形状模型S,其表达式如式(1),给定任意一组参数p之后,就能得到一个形状实例S,p值不同,得到的形状就不同。由于S0和S i在拟合的过程中都是已知的值,这时p就决定了拟合的形状。
AAM在模型训练过程中选取了不同表情和不同姿态的50张人脸标注点,这些数据集能很好地表示人脸可能出现的形状情况。将这些人脸数据投影到对应的人脸形状,得到形状系数p,将p值进行统计分析,可以得到一个p值系数空间,如图6所示。如果在拟合的过程中,p值系数超过这个系数空间,表示拟合形状是不合理的,需要修正和限制。
图6 符合人脸形状的p值空间
3.2 改进实现模型
4 基于AAM的特征点提取实验
在实验过程中,依然选用300-W 作为测试数据,300-W 数据集中有689张测试数据集。
实验主要对反向组合AAM算法、多模板AAM算法以及基于多模板AAM的改进算法在特征点定位的时间效率和定位的精度上作比较。本实验的开发环境为Intel Core i5 CUP,利用Matlab程序对不同的算法进行人脸特征点提取。
实验用测试数据集进行实验,利用提取的人脸特征点坐标和数据集中原有标定的人脸特征点坐标的差值作为误差标准,误差标准的计算公式为
在数据集中选取不同姿态的人脸图像,用改进的和未改进的AAM算法进行特征点提取,如图7所示。图中三角形特征点为数据集中手动标记的特征点,圆点为算法提取的特征点。
图7 特征点提取
实验记录了3种算法300-W 数据集中20张不同姿态测试图片的特征点定位误差和时间效率,3种算法的时间效率分布和误差分布散点图如图8、9所示。
图8 3种算法时间效率散点
图9 3种算法误差散点
从测试样本中选取8幅图像的实验数据记录,得到特征点定位时间效率表2和定位误差表3。
表2 不同算法对不同图片特征定位时间效率ms
表3 不同算法对不同图片特征定位误差比较pixel
通过对表2、3中的8组时间和像素误差求平均值,得到对比结果如表4所示。
表4 不同算法速度和定位误差对比表
分析实验数据可以发现:通过初始化模板优化和拟合改进后的AAM 算法在提取特征点时所用的时间明显减少,速度有了明显的提升,这是因为不同姿态的人脸匹配了不同的初始化模型,使初始化模型与输入的人脸模型更贴合,同时拟合的改进减少了模型迭代计算的时间,使速度提升,初始化模板的优化对速度提升的影响更大;改进后的定位误差也与传统的AAM算法相比有明显的改善,因为优化的初始化模型更接近输入模型,且对拟合的过程进行了改进,对不符合人脸器官分布规律的形状做了限制,有效防止了非法变形,使精度进一步提升。
5 结论
针对人脸特征点检测设计多模板的AAM 算法,对不同的人脸匹配不同的初始模型,弥补了传统AAM 算法在初始位置偏离目标位置过大时,难以收敛的不足,使特征点提取速度和精度得到提升。
1)同时对拟合过程中的形状变量进行限制,有效解决了拟合过程中非法变形问题,进而使特征点提取精度进一步提升。
2)使用公开数据集对不同人脸姿态进行了特征点提取实验,实验结果表明,本文的算法能有效提高人脸特征点提取的速度和精度。在后续的研究中,将进一步研究更有效的人脸特征点提取算法,以适应头部偏转较大情况下的特征点提取。
在后续的研究中,将进一步研究更有效的人脸特征点提取算法,以适应头部偏转较大情况下的特征点提取。