自适应人脸关键特征点选择方法与流程

文档序号:15616380发布日期:2018-10-09 21:29阅读:1211来源:国知局

本发明主要涉及图像处理技术,具体涉及一种自适应人脸关键特征点选择方法。



背景技术:

人脸关键点定位或称人脸对齐是目前学术界研究的焦点,这项技术基于人脸框的精准检测,在检测到人脸框后精准定位出眼睛、鼻子、嘴巴和下巴等对于人脸识别、人脸跟踪、人脸动画和3d人脸建模等工作是必不可少的。近些年,随着个人和网络照片的爆炸式增长,全自动、高效和强大的人脸关键点定位方法是十分需要的。

人脸关键点精准定位在较大面部表情、面部遮挡、光照变化等情况下仍然面临挑战。现有的人脸关键点定位方法或多或少都会受到以上几个因素的影响。

目前关于人脸关键点定位的方法有很多。matthewsandbaker等人在2004年提出aam方法,该方法基于整张面部的外观模型,并通过最小化纹理残差进行优化。由于外观模型对捕捉复杂表情的能力有限,因此在脸部表情较大的数据集上aam方法的效果不尽如人意。dollar等人在2010年提出一种级联姿态回归方法,使用一系列随机蕨来逐步预测对象姿态参数。cao等人在级联回归方法的基础上于2014年提出一种显式的形状回归面对齐的方法,采用无参数表示法,通过最小化面对齐误差,并且使用基于稀疏编码的模型压缩,算法可较快速且准确地进行人脸关键点定位。然而该算法在特征选择方面只考虑到了全局特征而未考虑到局部特征。



技术实现要素:

本发明的目的在于提出一种自适应人脸关键特征点选择方法,为了充分利用人脸关键点周围的局部特征,提出一种自适应特征提取方法。在训练样本上,设置一个区间和一个间隔,以间隔为步长循环遍历区间,分别得到关键点周围由小到大区域的像素特征。然后使用一种基于相关性的特征选择方法,在候选像素点中选择相关性最大的像素点。基于训练样本的标签信息,采用有监督的机器学习方法训练一系列随机蕨,逐步拟合残差,并将信息保存在叶结点上。循环结束后输出最优特征提取区域以及最优关键点定位结果。

本发明的技术方案如下:

步骤1,将训练集中的图片标记出人脸框。训练集中的图片都是事先手动标记出了关键点的位置,并将位置坐标保存在一个文件中。因此,我们基于关键点坐标来标记人脸框。方法为:分别找到关键点中x、y坐标最小和最大的点,然后算出人脸形状的宽度和高度,最终的人脸框的宽度和高度为1.5倍人脸形状的宽度和高度。

这里解释一下人脸形状的概念。人脸形状就是一系列人脸关键点坐标构成的一个序列。

步骤2,使用步骤1获得的人脸框对人脸形状进行归一化。将人脸关键点坐标值转换为[-1,1]之间。

步骤3,对于每一张训练图片样本,生成i=20个初始化形状。方法为在训练集中随机选择i=20个非当前训练图片样本中的人脸形状。

步骤4,对于步骤3中的每一个初始化形状,将其与该图片的真实形状做差,得到该初始化形状的残差,这个残差就是后面的预测目标。

步骤5,对于步骤3中的每一个初始化形状,遍历它的每一个关键点,设置一个区间[0,γ],设置一个间隔δ,以δ为步长,循环遍历区间[0,γ]。

步骤6,对步骤5中每一个关键点,在其周围[-γ,γ]之间随机生成n个候选像素点,然后求出这n个候选像素点的灰度值。

步骤7,使用一种基于相关性的特征选择方法,先将所有获得的像素点的灰度值两两做差,再从所有的像素差值中求出最有代表性的m个像素差。

步骤8,记录下这m个像素差所对应的2m个像素的位置,即与最邻近关键坐标点之间的横纵坐标的偏移。

步骤9,根据步骤7中生成的m个像素差来训练随机蕨,随机蕨的每个父节点都只有两个子节点,类似于二叉树。随机蕨的深度为m,叶结点个数为2m。随机蕨的分裂阈值是随机产生的,对于m个像素差,分别与m个分裂阈值进行比较,若小于分裂阈值落入左子节点,反之落入右子节点。

步骤10,对于一个随机蕨,每个训练样本都会最终落入到一个叶结点中。对于每个叶结点,取所有落入该叶结点的训练样本的残差的平均值作为该叶结点的值。

步骤11,更新残差值以及当前预测形状的值。当前残差值为上一级的残差值减去落入的叶结点的残差值;当前预测形状值为上一级预测形状值加上落入的叶结点的残差值。

步骤12,根据更新后的残差值生成新的最有代表性的m个像素差,然后生成新的随机蕨,以此类推,共生成k=500个随机蕨。

步骤13,将k=500个随机蕨的叶结点信息以及每次选择的2m个像素点的偏移信息存储到文件中。

步骤14,更新残差值与预测形状值,转到步骤6,并且循环迭代t=10次。

步骤15,对于测试图片样本,同样在训练样本集中随机选择i=20个人脸形状作为初始人脸形状。对于每一个初始形状,读取步骤13生成的文件,根据偏移信息获得2m个像素点,计算灰度值,然后计算像素差,落入随机蕨相应叶结点中求得残差。根据步骤11方法更新残差值与预测形状值,遍历k=500个随机蕨,经历t=10次大循环,获得最后预测形状。然后对i=20个最后预测形状取平均得到最终预测形状。

附图说明

读者在参照附图阅读了本发明的具体实施方式以后,将会更清楚地了解本发明的各个方面。其中:

图1为本发明自适应人脸关键特征点选择方法的流程图;

图2为自适应关键点区域选择的示意图;

图3为算法在lfpw-68关键点数据集上面的运行结果;

具体实施方式

步骤1,将训练集中的图片标记出人脸框。具体方法为:首先找到人脸形状中x坐标最小的关键点坐标(x1,y1),然后依次找到x坐标最大的、y坐标最小的、y坐标最大的关键点坐标(x2,y2)、(x3,y3)、(x4,y4)。令width表示人脸形状的宽度,height表示人脸形状的高度。由公式(1)可以求出width和height。人脸框的宽度和高度为1.5倍人脸形状的宽度和高度。令人脸框左上角顶点坐标为(x0,y0),其中x0,y0可以由公式(2)求得。根据人脸框左上角顶点坐标和人脸框的宽度和高度,可以唯一确定人脸框。

width=x2-x1height=y4-y3(1)

x0=x1-0.25*widthy0=y3-0.25*height(2)

步骤2,使用步骤1获得的人脸框对人脸形状进行归一化。具体方法为:对于每一个人脸关键点的坐标(xi,yi),横坐标xi减去人脸框的中心点坐标的横坐标,再除以人脸框宽度的一半。纵坐标yi减去人脸框的中心点坐标的纵坐标,再除以人脸框高度的一半。给出人脸形状s的定义为公式(3)。其中nfp为特征点的个数。

s=[x1,y1,...,xnfp,ynfp]t(3)

步骤3,对于每一张训练图片样本,生成i=20个初始化形状。方法为在训练集中随机选择i=20个非当前训练图片样本中的人脸形状。

步骤4,对于步骤3中的每一个初始化形状si,将其与该图片的真实形状做差,得到该初始化形状的残差,这个残差就是后面的预测目标。由公式(4)所示,其中为该图片的真实形状。

步骤5,对于步骤3中的每一个初始化形状,遍历它的每一个关键点,设置一个区间[0,γ],设置一个间隔δ,以δ为步长,循环遍历区间[0,γ]。我们取γ=0.2、δ=0.01。

步骤6,对步骤5中每一个关键点j,在其周围[-γ,γ]之间随机生成n个候选像素点。n的取值不固定,根据经验,当关键点个数为68时,取n=6;当关键点个数为29时,取n=10。根据步骤2分别求出这n个像素点在人脸框中的相对坐标,由公式(5)所示,其中表示对关键点j的第α个偏移,是个二维向量,分别存储x和y方向的偏移。random表示生成随机数的函数,生成的候选像素点的相对坐标由公式(6)确定。要求候选像素点的灰度值还要将其转化为图片上的绝对坐标,方法为步骤2的逆过程。

步骤7,定义一种基于相关性的特征选择方法,由公式(7)所示,首先我们先随机生成m个随机的投影方向v。对于每一个投影方向vm,将其与yi相乘,得到一维预测目标然后由公式(8)可以求出预测目标与两个像素点ρm、ρn的像素差之间的相关性,对所有候选像素点两两之间做差,然后分别与进行计算就可求出相关性最大的那一对像素点。循环m次,则可以找到2m个像素点,这里规定这2m个点中没有相同的点,如果有重复则抛弃这个结果继续寻找。公式(9)给出了σ(ρm-ρn)的计算方法,公式(8)中对于同一预测目标是固定值,故不必计算。

σ(ρm-ρn)=cov(ρm,ρm)+cov(ρn,ρn)-2cov(ρm,ρn)(9)

步骤8,记录下这m个像素差所对应的2m个像素点的位置,即与最邻近关键点坐标之间的横纵坐标的偏移。

步骤9,根据步骤8中生成的m个像素差来训练随机蕨,随机蕨的每个父节点都只有两个子节点,类似于二叉树。随机蕨的深度为m,叶结点个数为2m。随机蕨的分裂阈值是随机产生的,令[-c,c]表示样本中所有像素点差值的范围,那么分裂阈值的区间设置为[-0.2c,0.2c]。对于m个像素差,分别与m个分裂阈值进行比较,若小于分裂阈值落入左子节点,反之落入右子节点。

步骤10,对于一个随机蕨,每个训练样本都会最终落入到一个叶结点中。对于每个叶结点ωb,我们希望它最终存储的值可以最大限度的表示落入这个叶结点的所有样本的目标残差值。这个目标可由公式(10)表示,其中yb为叶结点最后的值,表示所有落入该叶结点的目标残差值。为了达到公式(10)中的效果,我们采用公式(11),一种改进的平均值公式,在公式中我们使用了一个收缩参数β=1000,可以更好的达到对公式(10)中目标函数的逼近效果。至此,我们得到叶结点的值yb。

步骤11,更新残差值以及当前预测形状的值。由公式(12)(13)所示当前残差值yt为上一级的残差值yt-1减去落入叶节点的残差值ybt-1;当前预测形状值st为上一级预测形状值st-1加上落入叶节点的残差值。这样不断拟合残差,最终的目标是令残差项为零,这样就可以达到关键点的精确定位。

yt=yt-1-ybt-1(12)

st=st-1+ybt-1(13)

步骤12,根据新的残差值利用公式(7)(8)(9)生成新的最有代表性的m个像素差,然后生成新的随机蕨,以此类推,共生成k=500个随机蕨。

步骤13,将k=500个随机蕨的叶结点信息以及每次选择的2m个像素点的偏移信息存储到文件中。

步骤14,利用公式(12)(13)更新残差值与预测形状值,转到步骤6,并且循环迭代t=10次。

步骤15,对于测试图片样本,同样在训练样本集中随机选择i=20个人脸形状作为初始人脸形状。对于每一个初始形状,读取步骤13生成的文件,根据偏移信息获得2m个像素点,计算灰度值,然后计算像素差,落入随机蕨相应的叶结点中求得残差。利用公式(12)(13)更新残差值与预测形状值,遍历k=500个随机蕨,经历t=10次大循环,获得最后预测形状。然后对i=20个最后预测形状取平均得到最终预测形状。整个过程可以看做公式(14)(15),没有引入参数,只是在训练集中选择初始化样本并且根据训练集中真实形状进行预测。

s=si/|i|(15)。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1