发明内容
为弥补现有技术的不足,本发明目的是提供一种人脸比对方法,解决人脸表情变化和姿态变化的影响,提高比对的准确性、精度和鲁棒性,保障比对的真实性。
为了实现上述目的,本发明的技术方案如下:
一种人脸比对方法,包含:人脸比对方法,其特征在于,包含:
步骤601,人脸跟踪,获取特征点;
步骤603,提取详细的人脸特征数据;
步骤605人脸比对,将该人脸特征数据与人脸数据库中的每一个人脸的特征数据进行比对,获得其相似性;具体方法为:
(1)选取数据库中的一个人脸k的特征模板库k=0,...,K;
(2)对特征模板
j=0,...,M,计算输入人脸的特征
与
之间的相似度S
kji;
(3)计算输入人脸与特征模板
的相似度
(5)重复步骤(1)-(4),获得输入人脸与数据库中所有K个人脸的相似度,取其中最大者 得到其对应的人脸k’;
其中,M为人的特征模板个数,N为选取的人的人脸特征点个数,i为人脸特征。
步骤607,判断是否已找到匹配的人脸;δ为相似度阈值,若Smax>δ,则判断输入人脸与数据库中的人脸k’相匹配;
步骤608,判断表情是否有显著变化;根据连续多帧人脸特征点进行分析,包括但不限于:嘴巴的张开与闭合,眼睛的张开与闭合,判断人脸的表情是否发生了显著的变化;
在人脸表情有显著变化时,执行步骤609,输出比中的人脸。
其中,该步骤603提取详细的人脸特征数据的具体方法为:
根据步骤601人脸检测跟踪得到的精确的人脸特征点位置,插值获得其他选取的人脸特征点的位置;
根据双眼位置对图像进行归一化处理;
计算得到人脸特征点i的Gabor特征
所有特征点的Gabor特征即组成一个人脸特征数据
i=1,2,...,N,N为选取的人脸特征点个数。
其中,该人脸特征点为人脸上的显著特征点,人脸特征点的特征选取所有80个Gabor复系数,表达完整的人脸信息,完整表达不同人脸之间的差异性。
其中,该步骤601人脸跟踪,获取特征点所选取的人脸特征为人脸的共同性的特征。
进一步的,该人脸比对方法还包含步骤604人脸注册;保存人脸特征数据至人脸数据库;具体方法为:
将步骤603获得的详细人脸特征数据加入此人的人脸特征模板库
j=0,...,M,M为此人的特征模板个数,保存至数据库。
其中,该步骤601人脸跟踪,获取特征点的具体包含离线训练方法和在线跟踪方法;
该离线训练方法包含多层结构人脸模型训练方法和人脸特征点的离线模板训练方法;
该多层结构人脸模型训练方法为该在线跟踪方法提供人脸模型,该离线模板训练方法为该在线跟踪方法提供人脸特征点离线模板;
该多层结构人脸模型训练方法包含如下步骤:
步骤301,选取适当的人脸图像作为训练样本;
步骤302,对人脸图像的特征点进行标记;
步骤3031-3061,得到基准形状模型;
步骤3032-3062,得到全局形状模型;
步骤3033-3063,得到局部形状模型。
其中,该基准形状模型、该全局形状模型与该局部形状模型的获得方法为:
用s表示一个人脸形状向量:
其中,
为平均人脸形状;P为一组正交的主形状变化模式;b为形状参数向量;
人脸形状向量s表示为(sR,sG,sL)T,其中sR、sG和sL分别表示基准特征点、全局特征点和局部特征点;
刚性基准形状的点分布模型
全局基准形状的点分布模型
局部形状模型的点分布模型
第i个局部形状向量为sGi,Li={sGi,sLi},其中sGi,sLi分别表示属于第i个局部形状的全局和局部特征点,
其中,人脸特征点的表达方法为:
给定灰度图像
中的一个像素
其附近的局部图像
中的像素为
一系列Gabor系数
表达该点附近的局部外观,定义为:
其中Gabor核ψj为高斯包络函数限定的平面波,
其中,k
v为频率,
为方向,k
j为特征小波矢量,k
jx为特征小波x方向矢量,k
jy为特征小波y方向矢量,选v=0,1,...,9,μ=0,1,...,7,j=μ+8v,
且频率波宽设为σ=2π;
Gabor核由10个频率、8个方向组成80个Gabor复系数,用以表达像素点附近的外观特征,用一个jet向量
表示这些系数,J
j=α
j exp(iφ
j),j=0,1,...,79,
其中,αj和φj分别为第j个Gabor系数的幅值和相位;
对80个Gabor复系数进行实验筛选,得到该人脸特征点表达所用的小波特征,
其中,人脸特征点的离线模板训练方法如下:
步骤401,选取N张适当的人脸图像作为训练样本;
步骤402,对人脸图像的特征点进行标记;
步骤403,对图像进行归一化处理;
步骤404,计算所有样本的Gabor特征;
步骤405,获得各样本Gabor特征之间的相似度;
其中,
和
为Gabor特征,α′
j和
分别为Gabor系数的幅值和相位;
如果ΓxxΓyy-ΓxyΓyx≠0,其中
Φx=∑jαjα′jkjx(φj-φ′j),
Γxy=∑jαjα′j kjxkjy,
Φy,Γxx,Γyx和Γyy类似地进行定义;
对每个特征点,计算N个Gabor特征两两之间的相似度,当其相似度大于阈值ST时即认为两者相似,ST通过实验选取,选取0.85;步骤406,计算各样本Gabor特征的相似特征数n;
步骤407,选择n最大的样本Gabor特征;
步骤408,判断n是否大于nT;
若步骤408的判断结果为否,则执行步骤411,处理下一特征点,然后返回步骤404继续执行;
若步骤408的判断结果为是,则执行步骤409,将Gabor特征加入离线模板;对每一个Gabor特征,设有n
i个与其相似的Gabor特征,将n
i值最大且大于阈值n
T的Gabor特征加入样本特征集
n
T也通过实验选取,选取n
T=2;
步骤410,将该Gabor特征从样本中删除,同时将与其相似度大于阈值S
T’的Gabor特征从
中删除,S
T’大于S
T,选取0.9;
返回步骤405,对步骤405-409作迭代计算;对重复上述过程,直到选不出样本为止;
最终的样本特征集即为该人脸特征点的特征样本,作为人脸特征的离线模板提供给该在线跟踪方法使用,
其中,在线跟踪方法包含:
步骤501,初始化,初始化变量和参数设置,参数包含但不限于图像格式、分辨率、颜色空间,跟踪模式;
步骤502,输入一帧图像;
步骤503,图像归一化,将输入图像转换成标准尺寸的图像;
步骤504,判断是否重新检测;
若步骤504的判断结果为是,则执行步骤505,利用基准形状模型,基于ASM形状约束,对齐基准特征点;
步骤506,利用全局形状模型,基于ASM形状约束,对齐全局特征点;
步骤507,利用局部形状模型,基于ASM形状约束,对齐局部特征点;
步骤508,更新在线特征模板,根据得到的脸部特征点的位置更新其小波特征作为该人脸的在线特征模板;
步骤515,估计人脸姿态,根据六个基础点的位置估计人脸的姿态;
返回步骤502循环执行在线跟踪方法的步骤502至步骤508以及步骤515并执行步骤516,输出人脸特征点及人脸姿态信息;
若步骤504的判断结果若为否,则执行步骤509,基于在线特征模板更新眼角点;
然后执行步骤510,基于离线特征模板调整眼角点;
然后执行步骤511,更新其他特征点;
然后执行步骤512,根据前一帧的人脸姿态更新各形状模型的平均形状;
然后执行步骤513,基于形状约束更新全局特征点;
然后执行步骤514,基于形状约束更新局部特征点;
然后返回步骤508,继续执行在线跟踪方法步骤509至步骤514,
步骤603,提取详细的人脸特征数据;
其中,提取详细的人脸特征数据的具体方法为:
根据步骤601人脸检测跟踪得到的精确的人脸特征点位置,插值获得其他选取的人脸特征点的位置;
根据双眼位置对图像进行归一化处理;
计算得到人脸特征点i的Gabor特征
所有特征点的Gabor特征即组成一个人脸特征数据
i=1,2,...,N,N为选取的人脸特征点个数,
步骤605人脸比对,将该人脸特征数据与人脸数据库中的每一个人脸的特征数据进行比对,获得其相似性;具体方法为:
(6)选取数据库中的一个人脸k的特征模板库
k=0,...,K;
(7)对特征模板
j=0,...,M,计算输入人脸的特征
与
之间的相似度S
kji;
(8)计算输入人脸与特征模板的相似度
(9)计算输入人脸与人脸k的相似度为
(10)重复步骤(1)-(4),获得输入人脸与数据库中所有K个人脸的相似度,取其中最大者
得到其对应的人脸k’;
其中,M为人的特征模板个数,N为选取的人的人脸特征点个数,i为人脸特征,
步骤607,判断是否已找到匹配的人脸;δ为相似度阈值,若Smax>δ,则判断输入人脸与数据库中的人脸k’相匹配;
步骤608,判断表情是否有显著变化;根据连续多帧人脸特征点进行分析,包括但不限于:嘴巴的张开与闭合,眼睛的张开与闭合,判断人脸的表情是否发生了显著的变化;
在人脸表情有显著变化时,执行步骤609,输出比中的人脸。
如上所述的人脸比对方法,其中,该人脸特征点为人脸上的显著特征点,人脸特征点的特征选取所有80个Gabor复系数,表达完整的人脸信息,完整表达不同人脸之间的差异性。
如上所述的人脸比对方法,其中,该步骤601人脸跟踪,获取特征点所选取的人脸特征为人脸的共同性的特征。
如上所述的人脸比对方法,其中,还包含:
步骤602,检测图像质量,判断是否满足条件,本步骤是对于步骤601所获取的图像质量进行判断,判断图像以及特征点的提取结果是否满足注册或比对的条件,检测的参数包括图像的亮度、光照的均匀性等,
若步骤602的判断结果为否,则执行步骤610,
若步骤602的判断结果为是,则执行步骤603,提取详细的人脸特征数据,应注意的是:为完整表达不同人脸之间的差异性,需提取适当的人脸特征点,以便充分表达人脸信息,所述人脸特征数据选取人脸上的显著特征点作为比对依据,除了人脸的共同性的特征外,还增加双眉之间的中点、鼻根即双眼之间的中点、鼻尖的特征点,根据精度、运算性能要求,对特征点的选取适当进行调整,而人脸特征点的特征必须选取式Jj=αjexp(iφj),j=0,1,...,79中所有80个Gabor复系数,表达完整的人脸信息,以使不同人脸之间的差异最大化,步骤603的具体方法为:
根据人脸检测跟踪得到的精确的人脸特征点位置,插值获得其他选取的人脸特征点的位置,鼻根为双眼位置的中点、鼻尖为4个鼻测点的中心点,
根据双眼位置对图像进行归一化处理,
根据式J
j=α
jexp(iφ
j),j=0,1,...,79计算得到人脸特征点i的Gabor特征
所有特征点的Gabor特征即组成一个人脸特征模板
i=1,2,...,N,N为选取的人脸特征点个数,
然后执行步骤604人脸注册或者步骤605人脸比对,
步骤604人脸注册;保存人脸特征数据至人脸数据库;具体方法为:
将步骤603获得的详细的人脸特征数据与此人已有的人脸特征模板库进行比较,若其相似度S>S
T,则不保存该特征,否则将该特征加入此人的人脸特征模板库
j=0,...,M,M为此人的特征模板个数,保存至数据库;其相似度S的具体计算方法为:
(4)计算输入人脸与特征模板
的相似度为:
其中,N为选取的人脸特征点个数;
本发明的有益效果是:
1.本发明选取人脸上的显著特征点作为比对依据,人脸特征点的特征从所有80个Gabor复系数中选取,表达了完整的人脸信息,使不同人脸之间的差异最大化,人脸比对的准确性和鲁棒性较好。
2.使用本发明的人脸比对方法,消除了人脸表情、姿态的影响,在比对中判断出了人脸的真实性,使得跟踪和比对准确性、精度和鲁棒性更高。
3.使用本发明,能够判断当前输入为真实的人脸还是静态的照片。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面进一步阐述本发明。
本发明人脸比对方法主要包括两个部分,一是训练部分,即注册部分,一是比对部分。无论是训练部分,还是比对部分,都需先对人脸特征进行检测、跟踪,从而得到精确的人脸特征点的位置。
图1-图5示出了人脸检测跟踪、获取特征点的具体方法。下面详细说明:
图1表示了本发明跟踪方法的组成框架。本发明人脸跟踪方法包含离线训练方法102和在线跟踪方法101两部分。离线训练方法102包含:多层结构人脸模型训练方法1021和人脸特征点的离线模板训练方法1022;前者为在线跟踪方法101提供人脸模型103,后者为人脸跟踪方法101提供人脸特征点离线模板104。
图2为本发明人脸特征点示意图。图3为本发明多层结构人脸模型训练方法的流程图。下面结合图2与图3详细说明本发明多层结构人脸模型训练方法。
人的面部特征具有很大的相似性,这些特征点的相对运动表达了人脸表情和人脸姿态的变化。给定这些人脸的特征点,用人脸特征点集的统计关系表示人脸模型,即可以构建出一个点分布模型(PDM)来表达人脸的可能的形状变化。
本发明基于ASM的原理,从一系列人脸图像训练得到多层结构人脸模型。
多层结构人脸模型训练方法首先执行步骤301,选取适当的人脸图像作为训练样本。然后执行步骤302,对人脸图像的特征点进行标记。
然后执行步骤3031-3061,得到基准形状模型。具体为:步骤3031,基于刚性基准点组成形状向量,来表示基准特征点的位置;然后执行步骤3041,根据Procrustes变换对齐所有形状向量到一个统一的坐标框架下;然后执行步骤3051,由PCA方法获得形状约束参数,步骤3061,得到基准形状模型。
执行步骤3032-3062,得到全局形状模型。具体为:步骤3032,基于全局基准点组成形状向量,来表示全局特征点的位置;然后执行步骤3042,根据Procrustes变换对齐所有形状向量到一个统一的坐标框架下;然后执行步骤3052,由PCA方法获得形状约束参数,步骤3062,得到全局形状模型。
执行步骤3033-3063,得到局部形状模型。具体为:步骤3033,基于局部基准点组成形状向量,来表示局部特征点的位置;然后执行步骤3043,根据Procrustes变换对齐所有形状向量到一个统一的坐标框架下;然后执行步骤3053,由PCA方法获得形状约束参数,步骤3063,得到局部形状模型。
步骤3031-3061、步骤3032-3062和步骤3033-3063的计算方法具体为:
用向量s表示一个人脸形状:
其中,为平均人脸形状;P为一组正交的主形状变化模式;b为形状参数向量。
现有的ASM方法通过迭代过程搜索人脸形状,迭代中所有的特征点位置同时更新,也就是说特征点之间的相互影响是简单的平行关系。鉴于人脸的复杂结构,以及表情丰富的特点,这种简单的平行机制并不足以描述特征点之间的相互关系。例如,假设眼角位置固定,则眼睛的开闭并不能影响口、鼻的特征点定位。
本发明将人脸特征点组织为多个层次,以更好地适应头部运动、表情变化等对特征点位置的不同影响,我们称为多层结构人脸模型。第一类为基准特征点,基本只受头部姿态的影响,如眼角、鼻端等。第二类为全局特征点,用来约束整个人脸的全局形状,包括基准特征点和其他关键点、如嘴角、眉端等。第三类为局部特征点,只用来约束人脸各组成部分如眼、嘴、眉的细部特征,位于其轮廓边界上,如上下嘴唇的轮廓点,上下眼睑等,主要受表情变化影响。基于此,本发明构建的多层结构人脸模型说明如下:
如上所述,人脸形状向量s可表示为(sR,sG,sL)T,其中sR、sG和sL分别表示基准特征点、全局特征点和局部特征点。基于此,人脸形状模型可分为刚性基准形状、全局基准形状、以及以下局部形状:左眉、右眉、左眼、右眼、鼻、嘴等。对于刚性基准形状和全局基准形状,其点分布模型(PDM)可以从训练数据学习得到如下,
对于局部形状模型,第i个局部形状向量为sGi,Li={sGi,sLi},其中sGi,sLi分别表示属于第i个局部形状的全局和局部特征点。亦有,
以上(2)、(3)、(4)三式即构成了本发明的多层结构人脸模型。其中各参数均基于ASM的原理通过训练得到。图2显示了本发明优选的一组特征点,其中所有的星形点201为基准特征点,所有的星形点201和空心原点202组成全局特征点,实心原点203为局部特征点。
图4为本发明人脸特征点的离线模板训练方法流程图。
人脸特征点的特征表达有很多种,如灰度特征、边缘特征、小波特征等等。本发明采用多尺度多方向Gabor小波来建模特征点附近的局部外观,表达人脸特征点。基于Gabor小波的特征表达具有人类视觉的心理物理基础,并且对于光照变化以及外观变化下的表情识别、人脸识别和特征点表示等都具有很好的鲁棒性。
本发明小波特征的计算方法为:
给定灰度图像
中的一个像素
其附近的局部图像
中的像素为
一系列Gabor系数
可表达该点附近的局部外观,定义为:
其中Gabor核ψj为高斯包络函数限定的平面波
其中,k
v为频率,
为方向,k
j为特征小波矢量,k
jx为特征小波x方向矢量,k
jy为特征小波y方向矢量,选v=0,1,...,9,μ=0,1,...,7,j=μ+8v,
且频率波宽设为σ=2π。
由此,本发明优选的Gabor核由10个频率、8个方向组成80个Gabor复系数,用以表达像素点附近的外观特征。特别地,可用一个jet向量
表示这些系数,可写成
Jj=αj exp(iφj),j=0,1,...,79 (8)
其中,αj和φj分别为第j个Gabor系数的幅值和相位。
给定一幅图像,每个标记的人脸特征点都可以计算得到Gabor小波的jet向量,该jet向量即表达了该点的特征。然而,针对每一个人脸特征点,并非所有80个Gabor复系数均适合表达该特征。为使其能表达各种人脸的共同特征,须对80个Gabor复系数进行实验筛选。以嘴角特征点为例,本发明优选的Gabor复系数为:j=24,...,55。
由此,优选出的即为本发明方法中所用的小波特征。
本发明人脸特征点的离线模板训练方法如下:
首先执行步骤401,选取N张适当的人脸图像作为训练样本。
步骤402,对人脸图像的特征点进行标记。
步骤403,对图像进行归一化处理,以保证所有特征点的Gabor特征的计算条件是相近的,从而保证特征采样的精确性。根据双眼的位置,得到双眼的中点作为基准点,双眼的连线作为图像的横轴,双眼连线的中垂线作为纵轴,对图像进行旋转,同时对图像进行缩放以使双眼之间的距离(瞳距)达到一特定值。通过这种归一化处理后能保证Gabor特征表达的精度和鲁棒性。
然后执行步骤404,计算所有样本的Gabor特征。具体方法是:
将标记的特征点坐标转换至归一化图像中,对每个人脸特征点,根据式(5)-(8)计算其Gabor特征。则对每一个特征点而言,共得N个Gabor特征
i=0,...,N。
然后,执行步骤405,获得各样本Gabor特征之间的相似度;方法为:
如果ΓxxΓyy-ΓxyΓyx≠0,其中
Φx=∑jαjα′jkjx(φj-φ′j),
Γxy=∑jαjα′jkjxkjy,
Φy,Γxx,Γyx和Γyy类似地进行定义。
对每个特征点,根据式(9)、(10)计算N个Gabor特征两两之间的相似度,当其相似度大于阈值ST时即认为两者相似,ST可通过实验选取,选取0.85。
然后执行步骤406,计算各样本Gabor特征的相似特征数n。
然后执行步骤407,选择n最大的样本Gabor特征。
然后执行步骤408,判断n是否大于nT。
若步骤408的判断结果为否,则执行步骤411,处理下一特征点。然后返回步骤404,继续执行本发明方法。
若步骤408的判断结果为是,则执行步骤409,将Gabor特征加入离线模板。对每一个Gabor特征,设有n
i个与其相似的Gabor特征,将n
i值最大且大于阈值n
T的Gabor特征加入样本特征集
n
T也通过实验选取,选取n
T=2。
然后执行步骤410,将该Gabor特征从样本中删除,同时将与其相似度大于阈值S
T’的Gabor特征从
中删除,这里S
T’应大于S
T,选取0.9。
然后返回步骤405,对步骤405-409作迭代计算。对
重复上述过程,直到选不出样本为止。
最终的样本特征集
即为该人脸特征点的特征样本,作为人脸特征的离线模板提供给在线跟踪使用。
图5为本发明人脸跟踪方法的流程图。
本发明方法包含:
步骤501,初始化。本步骤主要初始化引擎,包含:初始化变量,参数设置,参数包括图像格式、分辨率、颜色空间,跟踪模式等。
然后执行步骤502,输入一帧图像。本步骤是根据步骤501设置好的格式输入一帧图像数据。
然后执行步骤503,图像归一化。本步骤是对输入图像进行归一化处理。即根据前一帧的人脸信息,主要为双眼的位置信息,将输入图像转换成标准尺寸的图像,优选的尺寸可为256×256。
对人脸图像进行归一化处理,是为了保证所有特征点的计算条件相近,从而保证特征采样的精确性。根据双眼的位置,得到双眼的中点作为基准点,双眼的连线作为图像的横轴,双眼连线的中垂线作为纵轴,对图像进行旋转,同时对图像进行缩放以使双眼之间的距离(瞳距)达到一特定值。通过这种归一化处理后能保证Gabor特征表达的精度和鲁棒性。
然后执行步骤504,判断是否重新检测。本步骤是根据前一帧的检测结果判断是否重新进行人脸特征检测,若为第一帧图像,则直接进行特征检测。
步骤504的判断结果若为是,则继续步骤505,基于形状约束获得基准特征点。本步骤是利用基准形状模型517,基于ASM形状约束对齐基准特征点,基准特征点不会因为表情的变化而运动,如眼角、鼻端。基准形状模型517的获得方法请参见图2和图3及其对应说明。
步骤505基于形状约束获得基准特征点的具体方法为:
首先需对图像进行归一化预处理。
其次,根据双眼的位置确定刚性基准点的位置。根据双眼位置和人脸模型中的刚性基准形状模型对齐刚性基准点,获得这些基准点的初始位置。然后根据式(2)迭代更新其形状参数,直到满足迭代终止条件,即获得刚性基准点的准确位置。迭代过程中,刚性基准点的精度根据其Gabor特征与离线特征模板的相似度进行判断。具体步骤如下:
(1)对每一刚性基准点i,计算其当前位置
的Gabor特征
(2)根据式(9)、(10)计算
与离线特征模板
中每个Gabor特征的相似度,取相似度最大者作为
与模板的相似度S
i,并获得其相对位移为
(3)当满足以下条件之一时,迭代过程结束,否则转入步骤4):a)所有刚性基准点的平均相似度
小于上一次迭代的平均相似度
b)90%以上的点的绝对位移值足够小,即
这里阈值d
T根据所需保证的精度确定,如可选d
T=2;
(4)对相对位移值
进行限定,减少突变误差,使得|dx
i|≤dx
T,|dy
i|≤dy
T,这里阈值dx
T和dy
T根据所需保证的精度确定,如可选dx
T=dy
T=10;
(6)根据更新的坐标
和刚性基准形状模型及式(2)更新形状参数。根据更新的形状参数获得新的刚性基准点坐标值;
(7)迭代次数t增加1次。若t超过阈值,则迭代过程结束,否则转入步骤(1)。
然后执行步骤506,基于形状约束获得全局特征点。本步骤是利用全局形状模型518,基于ASM形状约束,对齐全局特征点。全局特征点除包括8个基准特征点外,还包括其他受表情影响较小的点,如嘴角、眉尖等。获得全局形状模型518的具体方法请参见图2和图3及其对应说明。
步骤506的基于形状约束获得全局特征点的具体方法与步骤505相同,不同的是其利用刚性基准点的位置以及全局基准形状模型,并在迭代中固定刚性基准点的位置不变。
然后执行步骤507,基于形状约束获得局部特征点。本步骤是针对人脸的每一个局部特征,利用局部形状模型519,基于ASM形状约束对齐局部特征点。本发明人脸的局部特征点主要包括左眼、右眼、嘴、鼻的轮廓点,如左(右)眼包括眼角、上、下眼睑等,嘴部包括两个嘴角、上/下唇的中点,以及上/下唇中点与嘴角之间的轮廓点等。获得局部形状模型519的具体方法请参见图2和图3及其对应说明。
步骤507基于形状约束获得局部特征点的具体方法与步骤505相同,不同的是其利用局部形状模型,并固定全局基准点的位置不变。
然后执行步骤508,更新在线特征模板。本步骤是根据得到的脸部特征点计算其Gabor小波特征,作为新的在线特征模板
然后执行步骤515,估计人脸姿态。本步骤是根据6个基础点的位置估计人脸的姿态,6个基础点为:4个眼角点和2个鼻端点。
本发明既可以构建多层结构人脸模型以适应人脸表情的变化,也可以构建不同角度下的人脸形状模型以适应人脸角度的变化,不再赘述。
然而,构建的人脸模型毕竟只能采样有限的角度,如正面人脸,左侧面人脸45度,右侧面人脸45度,等等。为保证人脸特征跟踪的精度,需估计出人脸的角度以选取适当的人脸形状模型,并对其进行角度的补偿。本发明根据人脸的刚性基准特征点的位置即能较好地估计出人脸角度,说明如下。
为减少人脸表情的影响,需选取人脸的基准特征点进行人脸姿态的估计,本发明选择4个眼角点和2个鼻端点作为参考。为估计人脸的姿态,这六个点的三维坐标必须先进行初始化。一般地,特征点的三维坐标Xi=(xi,yi,zi )由通用的三维人脸模型,实际应用中,可要求用户面向摄像头以获得其正面人脸图像,根据检测结果,特征点的xi和yi值自动调整为该用户的值,深度值则仍采用三维模型的值进行近似。设人脸姿态参数αface=(σpan,φtilt,κswing,λ),其中(σpan,φtilt,κswing )为人脸三个方向的欧拉角,λ为人脸大小的缩放值。步骤515估计人脸姿态的具体步骤如下:
1)构建N个三角形。选择任意三个非共线性的特征点组成一个三角形Ti,对每一个Ti,构建一个局部坐标系统Ct。
2)由每个三角形获得投影矩阵M。图像坐标与局部坐标系统Ct的关系可表示为
其中,(c,r)表示坐标系统C
t中三维点(x
t,y
t,0)的投影图像,(c
0,r
0)是参考点(x
t0,y
t0,0)的投影图像,M是2×2的投影矩阵。通过限定欧拉角在
到
的范围,可以从M恢复出两组人脸姿态参数,进而生成完全投影矩阵P
i,但其中只有一个是正确的。
3)计算完全投影矩阵的投影偏差。根据完全投影矩阵Pi将特征点的三维坐标投影到图像中,进而获得其与实际特征点图像坐标的偏差derror。如果derror大于阈值d,则删除该矩阵;否则保留该矩阵,并设置其权重为ωi=(d-derror)2。
4)加权得到最终结果。通过对N个三角形的检测,最终得到K个完全投影矩阵Pi,i=1…K,及其对应的权重ωi,i=1…K。对每个Pi,可得到唯一的一组参数αi=(σpan,φtilt,κswing,λ)。最终的人脸姿态参数为:
然后返回步骤502循环执行在线跟踪方法步骤502至508以及步骤515,并执行步骤516,输出人脸特征点及人脸姿态信息。
步骤504的判断结果若为否,则执行步骤509,基于在线模板更新眼角点。本步骤是基于在线模板与特征点的上一帧位置的小波特征进行比较,计算4个眼角点的位移,从而得到眼角的新位置。步骤509的具体获得方法为:
(1)根据前一帧的双眼位置对图像进行归一化预处理;
(2)根据在线特征模板更新刚性基准点中的眼角特征点:对于眼角特征点
计算其在当前图像的Gabor特征
然后根据式(10)计算
与在线特征模板
的位移
则眼角特征点可更新为:
然后执行步骤510,基于离线特征模板调整眼角点。本步骤是计算离线训练的特征模板与在线特征模板的距离和相似度,根据该距离和相似度对眼角位置进行修改得到新的位置。
获得离线特征模板的具体方法见图4及其对应的说明。
步骤510的具体计算方法为:根据离线特征模板对眼角特征点进行再修正:对于眼角特征点
根据式(9)、(10)计算在线特征模板
与离线特征模板
的相似度S′
i和位移
则眼角特征点可进一步修正为
其中ε为相似度调整值,根据精度要求进行设置,如优选可设为ε=0.55。
然后执行步骤511,更新其他特征点。首先,计算新的眼角特征点位置与上一帧位置的平均位移作为人脸刚性运动的初步估计,更新其他特征点所有特征点的坐标为:
然后对每一特征点,重复步骤509与510,对眼角特征点以外的其他特征点的位置进行更新。
然后执行步骤512,根据前一帧的人脸姿态更新各形状模型的平均形状。本步骤是根据前一帧估计的人脸姿态进行误差补偿,对人脸的形状模型进行更新,以得到该姿态下的形状模型。
然后执行步骤513,基于形状约束更新全局特征点。本步骤是对全局特征点,根据补偿的全局形状模型进行形状约束,获得形状参数,根据该形状参数获得准确的全局特征点。本步骤是基于步骤512所更新的形状模型约束更新全局特征点的位置。
然后执行步骤514,基于形状约束更新局部特征点。本步骤是针对人脸的每一个局部特征,这一过程中,全局特征点不再更新。本步骤是基于步骤512所更新的形状模型约束更新其局部特征点的位置。
然后执行步骤508,对所有特征点,计算其Gabor特征作为新的在线特征模板
以上过程根据检测的人脸及人眼的位置完成了人脸特征点的检测定位。由于各个人脸的差异性,其特征点的Gabor特征与离线特征模板的相似度各不相同。为此,根据当前人脸特征点位置获得其Gabor特征作为后续帧人脸跟踪的特征模板,即在线特征模板
以提高人脸特征跟踪的效率和精度。
图6为本发明人脸比对方法的流程图。本发明方法包含:
步骤601,人脸跟踪,获取特征点。本步骤对输入的视频或者摄像头实时画面中的人脸进行处理,获取特征点的精确位置。其详细方法在图1-图5及其对应的说明书中详细说明。
应该注意的是,本发明的跟踪部分选取的人脸特征为人脸的共同性的特征,如图2中所示28个特征点。
然后执行步骤602,检测图像质量,判断是否满足条件。本步骤是对于步骤601所获取的图像质量进行判断,判断图像以及特征点的提取结果是否满足注册或比对的条件。检测的参数包括图像的亮度、光照的均匀性等。
若步骤602的判断结果为否,则执行步骤610。
若步骤602的判断结果为是,则执行步骤603,提取详细的人脸特征数据。应注意的是:为完整表达不同人脸之间的差异性,需提取适当的人脸特征点,以便充分表达人脸信息。本发明选取人脸上的显著特征点作为比对依据,除了图2中所示28个特征点外,还增加双眉之间的中点、鼻根即双眼之间的中点、鼻尖,等等。根据精度、运算性能等要求,可对特征点的选取适当进行调整。而人脸特征点的特征必须选取式(8)中所有80个Gabor复系数,表达完整的人脸信息,以使不同人脸之间的差异最大化。步骤603的具体方法为:
根据人脸检测跟踪得到的精确的人脸特征点位置,插值获得其他选取的人脸特征点的位置,如:鼻根为双眼位置的中点、鼻尖为4个鼻测点的中心点,等等。
根据双眼位置对图像进行归一化处理。
根据式(8)计算得到人脸特征点i的Gabor特征
所有特征点的Gabor特征即组成一个人脸特征模板
i=1,2,...,N,N为选取的人脸特征点个数。
然后执行步骤604人脸注册或者步骤605人脸比对。
步骤604人脸注册是保存人脸特征数据至人脸数据库。具体方法为:
将步骤603获得的详细的人脸特征数据与此人已有的人脸特征模板库进行比较,若其相似度S>S
T,则不保存该特征,否则将该特征加入此人的人脸特征模板库
j=0,...,M,M为此人的特征模板个数,保存至数据库。阈值S
T根据实验选取,其相似度S的具体计算方法为:
(5)对特征模板
j=0,...,M,根据式(9)计算输入人脸的特征
与
之间的相似度S
ji;
步骤604执行完之后,执行606退出。
步骤605是将该人脸特征数据与人脸数据库中的每一个人脸的特征数据进行比对,获得其相似性,保存其与数据库中各人脸的相似度值。具体方法为:
假设数据库中有K个人脸的特征模板库,则
(1)选取数据库中的一个人脸k的特征模板库
k=0,...,K;
(2)对特征模板
j=0,...,M,根据式(9)计算输入人脸的特征
与
之间的相似度S
kji;
(5)重复步骤(1)-(4),获得输入人脸与数据库中所有K个人脸的相似度,取其中最大者 得到其对应的人脸k’
其中,M为人的特征模板个数,N为选取的人的人脸特征点个数,i为人脸特征。
然后执行步骤607,判断是否已找到匹配的人脸。当步骤605所得出的相似度值超过设定的阈值时,即判断为找到了匹配的人脸。设δ为相似度阈值,可根据实验确定。若Smax>δ,则认为与输入人脸相匹配的是数据库中的人脸k’,否则认为数据库中没有匹配的人脸。
步骤607的判断结果若为否,则执行步骤610。
步骤607的判断结果若为是,则继续步骤608,判断表情是否有显著变化。本步骤是根据连续多帧人脸特征点进行分析,如嘴巴的张开与闭合,眼睛的张开与闭合等,判断人脸的表情是否发生了显著的变化。本步骤是为了判断当前的输入是真实的人还是静态的照片。表情没有显著变化即认为当前输入是静态照片。相反,表情有显著变化,则认为当前输入是真实的人脸。
步骤608的判断结果为否时,执行步骤610。
步骤608的判断结果为是时,执行步骤609,输出比中的人脸。本步骤是输出比中的一个或多个人脸,输出顺序可以定义,例如:按照相似度由大到小的顺序;或者按照相似度由小到大的顺序;或者定义其他顺序。
然后执行步骤606,退出。
步骤610是判断是否满足退出条件。本发明可以设置多个退出条件,如:处理视频的时间超过了一定的时间长度,或者在对人脸与数据库进行了一定的比较后仍然没有找到匹配的人脸,等等。
本发明选取人脸上的显著特征点作为比对依据,如:双眉之间的中点,鼻根即双眼之间的中点,鼻尖等。根据精度、运算性能等要求,可对特征点的选取适当进行调整。人脸特征点的特征从式(8)中所有80个Gabor复系数中选取,表达了完整的人脸信息,使不同人脸之间的差异最大化。人脸比对的准确性和鲁棒性较好。
使用本发明的人脸比对方法,消除了人脸表情、姿态的影响,在比对中判断出了人脸的真实性,使得跟踪和比对准确性、精度和鲁棒性更高。
使用本发明,能够判断当前输入为真实的人脸还是静态的照片。
以上说明和图示仅为了清楚说明和易于理解本发明,本领域技术人员应可以增加或者减少某个步骤,或者对某个步骤做出简单变换,所有简单的变换和增减均属于本发明的保护范围。