一种基于TOF深度相机的面部表情捕捉方法与流程

文档序号:12468407阅读:556来源:国知局
一种基于TOF深度相机的面部表情捕捉方法与流程

本发明涉及计算机视觉及计算机图形学技术领域,尤其涉及一种利用单个TOF深度相机捕捉人脸面部的表情动作并存储为特定的数据格式用于动漫模型等的面部表情捕捉方法。



背景技术:

近年来,随着计算机图形学的发展,计算机动画技术合成人的面部表情动画是当前动画学科研究的一个重点之一,它使得动画制作者能够以演员的表情直接驱动画形象模型,受到了动画制作者们更多的关注。面部表情捕捉能够实时地检测、记录表演者的表情,转化为数字化的“抽象表情”,以便动画软件将它“赋予”模型,使模型具有和表演者一样的表情,并生成最终的表情动画序列。

目前,人脸表情动画总体上可分为基于几何、基于图像、基于运动跟踪的研究方法。其中基于几何的研究方法主要包括关键帧插值法、参数化方法、肌肉模型法等;基于图像的方法主要包括:图像变形、动态纹理映射、面色变化的表情等。

在基于几何的研究方法中,关键帧插值法首先在两个不同的时刻建立几何模型,然后在这两个模型之间进行插值得到中间时刻的模型,从而获得人脸表情动画,这是一种最传统的、最原始的人脸动画方法,同时也是一种标准的人脸动画方法,但它的不足之处是需要很大的工作量。参数化方法是由Parke首次应用于人脸动画(Parke F I.A Parameteric Model for Human Faces [D].Salt Lake City:University of Utah,1974),嘴唇说话时的动作就适合用这种方法,这种方法的不足是产生的人脸表情不够自然,并且在设置参数值时需要大量的手工调整。肌肉模型法是通过一组构成肌肉模型的弹性肌肉的收缩来控制人脸表面网格变化进而模拟人脸表情的。

在基于图像的方法中,图像变形一种是在两个图像之间手工操作对应特征线段来实现2D变形;另一种是通过变形的3D模型映射到2D的参数空间来实现3D模型变形以及通过将几何模型的3D变换和2D变形相结合,利用3D几何插值,并在对应纹理图像间进行图像的变形操作来获得真实的人脸表情动画。除此之外,还有基于Bezier特征曲线和基于径向基神经网络的图像变形等算法。动态纹理映射依赖视点的纹理映射,它每次允许使用不同的纹理图,通过模型的反复绘制来对当前视点的调和权值进行动态的调整,不足是需要的计算和内存量大,而多纹理融合如果独立于视点的话,由于记录和采样存在误差常常使纹理变得模糊。

目前,应用最广的是基于运动跟踪方法,运动跟踪方法主要是利用运动捕捉系统来进行表情捕捉,它主要是利用已有的捕获数据将源模型的人脸表情迁移到目标模型上,从而实现人脸的面部表情捕获,获得逼真的面部表情。

现有的运动捕捉技术根据捕捉设备和原理不同主要分为四大类:机械式、声学式、电学式以及光学式运动捕捉,其中,光学运动捕捉方式具有获取数据便捷、采样精度高、频率高、使用范围广等优点,它采集的数据是以帧为单位的序列标识点(Marker)点集数据,在表演者的脸部关键点贴上Marker,视觉系统将识别和处理这些Maker,就可以实现表情捕捉。

本发明采用的是基于运动跟踪的方法,不同于传统的光学式的捕捉方法。本发明在表情捕捉过程中无需手动标记Marker,直接使用图像识别的方法识别并记录面部关键点的运动数据。它主要是利用已有的捕获数据将源模型的人脸表情迁移到目标模型上,从而实现人脸的面部表情捕获,获得逼真的面部表情。



技术实现要素:

针对目前动漫、电影等产业对面部表情捕获的需求,本申请提供一种基于TOF深度相机的面部表情捕捉方法,无需手动标记Marker,直接使用图像识别的方法识别并记录面部关键点的运动数据。其捕获的数据是人脸的真实运动数据,动作连贯逼真,表情细腻丰富,而且此方法获取到的面部表情捕捉文件可以重复使用,节约了成本。

为解决上述技术问题,本发明提供了一种基于TOF深度相机的面部表情捕捉方法,其包括:

第一步,利用TOF深度相机采集深度图像和彩色图像,采用AAM(Active Appearances Models)算法定位面部特征点,并计算获取面部表情数据;

第二步,处理捕捉面部表情数据,生成面部表情捕捉文件;

第三步,构建三维虚拟人物几何模型,导入面部表情捕捉文件,驱动模型。

其中,在第一步中采用AAM算法标定真实人物的面部特征点,在头部姿态各异的情况下,我们也能够对面部特征点进行精确的定位,从而对真实人物进行面部表情捕捉。

其中,所述第一步进一步具体包括:

a、利用TOF深度相机获取人脸彩色图像和深度图像;

b、建立用于头部姿态判断的随机回归森林模型;

c、训练并建立AAM算法的视角模型;

d、利用AAM算法定位面部特征点;

e、获取面部特征点的三维坐标。

其中,第a步具体为连接TOF深度相机,接通电源,TOF深度相机的数据控制处理单元发出开启指令,其体感相机开启,将彩色数据流和深度数据流传送到数据控制与处理单元,数据控制与处理单元将彩色数据流转换成彩色图像,将深度数据流转换成深度图像。

其中,第b步具体为利用TOF深度相机获取不同的头部姿态相对应的深度图像,然后按照头部姿态的位置将获取到的深度图像分为多个不同的分类训练集,使用脸部近似平面的法向来表示不同的头部姿态,从而建立头部姿态判断的随机回归森林模型。

本发明在原有的AAM算法的基础上进行扩展,针对在对面部特征点进行定位时不同的头部姿态,分别建立相对应的AAM视角模型,每个AAM视角模型又分为形状模型和纹理模型两部分。

其中,所述第d步进一步具体为输入新的图像,使用步骤b建立的头部姿态判断的随机回归森林模型,对给出的新的深度图像判断其中的头部位置和脸部朝向,根据得到的头部姿态信息从c步建立的AAM视角模型中选择与之最接近的AAM视角模型。利用选中的AAM模型对当前的输入图像进行面部特征点的定位。

其中,所述第e步进一步具体为确定面部特征点的位置后,计算并获取人脸面部特征点的坐标信息,TOF深度相机的坐标系是以其自身为坐标原点,正前方为Z轴方向,向左为X轴的正方向,向上为Y轴的正方向。

本发明的有益效果:

本申请提供一种基于TOF深度相机的面部表情捕捉方法,该方法捕获的数据是现实世界人脸的真实的运动数据,动作连贯真实,表情细腻丰富,而且此方法获取到的面部表情捕捉文件可以重复使用,节约了成本。

附图说明

图1为TOF深度相机获取到的彩色图像;

图2为TOF深度相机获取到的深度图像;

图3为手动标记的训练样本;

图4为脸部的特征点分布及名称;

图5为表情捕捉文件导入人脸模型的效果图;

图6为建立头部姿态判断模型所用的深度图像块。

具体实施方式

本发明提供了一种基于TOF深度相机的面部表情捕捉方法,其包括:

第一步,利用TOF深度相机采集深度图像和彩色图像,采用AAM(Active Appearances Models)算法定位面部特征点,并计算获取面部表情数据;

第二步,处理捕捉面部表情数据,生成面部表情捕捉文件;

第三步,构建三维虚拟人物几何模型,导入面部表情捕捉文件,驱动模型。

利用TOF深度相机捕获到的数据驱动三维虚拟人物几何模型做出与表演者一致的表情,需要确定面部特征点的位置信息,这也是实现人脸面部表情捕捉的关键。如何确定和提取特征点信息对捕捉到的人脸面部表情的真实度起到了决定性的作用。面部特征信息很容易受到光照和姿态的影响,TOF深度相机可以同时提供深度图像、RGB彩色图像,这样就大大减小了光照和姿态的影响,可以更加准确的提取人脸面部特征点。本发明针对不同的头部姿态分别建立与其对应的AAM模型,在第一步中采用3D AAM算法标定真实人物的面部特征点,使头部姿态各异的情况下我们也能够对面部特征点进行精确的定位,从而对真实人物进行面部表情捕捉。

所述第一步进一步具体包括:

a、利用TOF深度相机获取人脸彩色图像和深度图像;

b、建立头部姿态判断模型;

c、训练并建立AAM算法模型;

d、利用AAM算法定位面部特征点;

e、获取面部特征点的三维坐标。

第a步具体为连接TOF深度相机,接通电源,TOF深度相机的数据控制处理单元发出开启指令,其体感相机开启,将彩色数据流和深度数据流传送到数据控制与处理单元,数据控制与处理单元将彩色数据流转换成彩色图像,将深度数据流转换成深度图像。。

第b步具体为利用TOF深度相机获取不同的头部姿态相对应的深度图像,然后按照头部姿态的位置将获取到的深度图像分为多个不同的分类训练集,使用脸部近视平面的法向量来表示不同的头部姿态,从而建立头部姿态判断的随机回归森林模型。

所述b步建立头部姿态判断模型的方法建立的是一种基于统计方法的随机回归森林模型,其更进一步具体为首先需要标识出深度图像的头部区域和非头部区域,然后在这两个区域分别选取固定大小的图像区域作为训练集。深度图像块包含图像编号、是否属于头部区域、头部中心位置和头部姿态信息。随机回归森林中每棵树分别使用训练集中一组随机选取的深度图像块建立。树上每个结点分类的依据是从图像块上选取两个矩形块,计算矩形块的深度值的均值,将此均值与某个设定的阈值比较.大于此阈值的进入右子树,否则进入左子树,利用香农熵对阈值和矩形块进行选择.最终生成左右均衡的判定树,如公式1所示。随机取另一组深度图像块建立另一棵判定树,所有判定树组成随机回归森林。

式中,H(P)是香农熵,为左右子树的香农熵和。

其中,所述第c步所采用的AAM算法和传统的AAM算法有所区别。传统的AAM算法进行训练和识别的对象都是在几乎接近正面视角的情况下,本发明在传统的AAM算法的基础上进行改进,针对在对面部特征点进 行定位时不同的三维头部姿态,分别建立相对应的AAM视角模型,每个AAM视角模型又分为形状模型和纹理模型两部分。

所述第c步进一步具体为按照脸部朝向的不同,其中脸部的朝向使用脸部近似平面的法向表示,将训练集分为多个不同视角下的子训练集。对每个子训练集单独建立一个AAM模型,称这样一个单独的AAM模型为一个AAM视角模型。对于每个AAM视角模型,分形状和纹理两部分进行建模。

建立形状模型具体为首先对每个是视角下的训练集进行手工特征点标定,特征点的位置集合被称为形状向量Si,得到训练集L={(Ii,Si)|i=1,2,…,m;其中,Ii表示训练样本,Si表示手工标记的坐标集合。i为点的个数;x,y为点的坐标,然后对形状进行归一化(对图像去除平移、旋转、缩放)并对归一化的形状进行对齐,通过PCA变换计算得出平均形状将训练图像变形到平均形状,因此任意人脸形状S都可以用线性方程表达,Ps是PCA变换计算得到的形状主成分特征分量形成的变换矩阵,Bs是控制形状变换的统计形状参数,得到形状统计模型。

建立纹理模型的具体为得到对应的AAM形状特征向量Si和平均形状选择由经过Delaunay三角剖分得到的形状网格作为进行纹理映射的基准网格,将训练集中的图像根据对应标定形状特征点位置进行Delaunay三角剖分,剖分之后的形状网格包络内的像素值就是需要采样的纹理信息,其次,通过分段线性仿射的方法将其映射到设定的基准网格中,实现对纹理的归一化采样;再次,对归一化后的纹理信息进行PCA降维得到平均纹理这样任意的人脸纹理都能用表示,最后得出的纹理统计模型为:

为平均纹理,Pg为PCA变换计算得到的纹理主要成分特征分量形成的变换矩阵,Bg是控制纹理变换的统计纹理参数。

模型融合

主动表观模型为:其中,是平均表观向量,Q为表观主成分特征向量形成的矩阵,c为控制表观变化的统计表观参数。

所述第d步进一步具体为输入新的图像,使用步骤b建立的头部姿态判断随机回归森林模型,对给出的新的深度图像判断其中的头部位置和脸部朝向,根据得到的头部姿态信息从c步建立的AAM视角模型中选择与之最接近的AAM视角模型。利用选中的AAM模型对当前的输入图像进行面部特征点的定位。其中,进行面部特征点定位的过程就是AAM进行匹配迭代计算的过程,具体步骤如下:

1.初始化模型参数c;

2.计算模型纹理和当前纹理的差Δg=gs-gm

3.利用线性回归方程预测参数c的变化Δc=RcΔg;

4.尝试新的模型参数c′=c-kΔc,k=1;

5.重新计算误差函数Δg′;

6.如果||Δg’||<||Δg||,则接受c’作为新的参数;否则跳转到4,尝k=1.5,2,2.5等

7.取下一帧图像,转2。

所述第e步进一步具体为确定面部特征点的位置后,计算并获取人脸面部特征点的坐标信息,TOF深度相机的坐标系是以其自身为坐标原点,正前方为Z轴方向,向左为X轴的正方向,向上为Y轴的正方向。获取TOF深度相机的水平视角角度值α和垂直视角角度值β,通过换算关系RealWorldXtoZ=2tan(α/2),RealWorldYtoZ=2tan(β/2),即得到了深度图像的宽度值w/高度值h与距离d的比值。

NormalizedX=x/512-0.5

NormalizedY=0.5-y/424

X=NormalizedX*Z*RealWorldXtoZ

Y=NormalizedY*Z*RealWorldYtoZ

综上,可求得索引为x,y处的特征点的三维坐标为(X,Y,Z)。

所述第二步进一步具体为通过动作捕捉文件来驱动虚拟模型来实现人脸面部表情的捕捉。将第一步获得的三维坐标信息,通过转换算法计算得出旋转信息,并将其按照BVH的格式写入动作捕捉文件中。

所述转换算法具体为:

A、向BVH文件中输入特征点的结构信息以及初始姿态信息;

B、读取面部特征点的运动数据,数据格式为每个点的三维坐标;

C、将三维坐标转换成四元数;

D、计算旋转矩阵;

E、将节点坐标转换到局部坐标系下;

F、通过公式3求得欧拉角;

θx=arcsin2(yz-wx)

y、z、w是空间点的坐标;

G、将欧拉角添加到BVH文件中。

本发明具体实施过程如下:

步骤1.获取人脸彩色图像和深度图像

利用TOF深度相机获取彩色数据流和深度数据流,并将彩色数据流转换成彩色图像,将深度数据流转换成深度图像将彩色数据流转换成彩色图像,将深度数据流转换成深度图像,如图1和图2所示。

步骤2.建立头部姿态判断模型

利用TOF深度相机捕获到的数据驱动三维模型做出与表演者一致的表情,需要确定面部特征点的位置信息,这也是实现人脸面部表情捕捉的关键。本发明针对不同的头部姿态分别建立与其对应的AAM模型,使头部姿态各异的情况下我们也能够对面部特征点进行精确的定位。

本发明采用建立头部姿态判断模型方法是一种基于统计方法的随机回归 森林模型。该方法首先需要标识出深度图像的头部区域和非头部区域,然后在这两个区域分别选取固定大小的图像区域作为训练集。深度图像块含括图像编号、是否属于头部区域、头部中心位置和头部姿态信息。随机回归森林中每棵树分别使用训练集中一组随机选取的深度图像块建立。树上每个结点分类的依据是从图像块上选取两个矩形块,计算矩形块的深度值的均值,将此均值与某个设定的阈值比较.大于此阈值的进入右子树,否则进入左子树,利用香农熵对阈值和矩形块进行选择.最终生成左右均衡的判定树,随机取另一组深度图像块建立另一棵判定树,所有判定树组成随机回归森林。

式中,H(P)是香农熵,为左右子树的香农熵和。

步骤3.训练并建立AAM算法的模型

AAM算法把模型分为形状模型和纹理模型两个部分,AAM算法是在ASM算法的基础上(即将人脸图像变形到平均形状)对图像进行纹理分析来定位其特征点。

使用AAM算法定位人脸面部特征点首先需要建立形状和纹理模型。考虑到头部姿态对面部特征点定位准确度的影响,我们针对每一种头部姿态建立一个AAM模型,每次选取最适合的AAM模型进行面部特征点的匹配。

建立形状模型

首先对每一种头部姿态下的训练样本进行手工特征点标定,特征点的位置集合被称为形状向量Si,得到训练集

L={(Ii,Si)|i=1,2,…,m;然后对形状进行归一化(对图像去除平移、旋转、缩放)并对归一化的形状进行对齐,通过PCA变换计算得出平均形状将训练图像变形到平均形状,因此任意人脸形状S都可以用线性方程,表达,Ps是PCA变换计算得到的形状主成分特征分量形成的变换矩阵,Bs是控制形状变换的统计形状参数,得到形状统计模型。

建立纹理模型

建立纹理模型的过程和建立形状模型的过程一致,最后得出的纹理统计 模型为:

为平均纹理,Pg为PCA变换计算得到的纹理主要成分特征分量形成的变换矩阵,bg是控制纹理变换的统计纹理参数。

模型融合

主动表观模型为:其中,是平均表观向量,Q为表观主成分特征向量形成的矩阵,c为控制表观变化的统计表观参数。

步骤4.利用AAM算法定位面部特征点

输入新的图像,使用步骤2建立的随机回归森林模型,对给出的新的深度图像判断其中的头部位置,并且给出一组头部姿态的估计值,计算出给出的深度图像的头部中心的位置和头部姿态信息。然后选择与之最匹配的3DAAM模型。头部姿态估计信息获得头部中心位置和头部姿态,由此来计算头部模型的旋转和平移,使用头部旋转角度计算旋转矩阵R,使用头部中心位置作为平移矩阵T。利用R尺和T对上节中计算得到的3D面部特征点进行旋转和平移,之后再使用相机内参将变换后的点投影到RGB图像平面,得到RGB图像上的特征点集,以此作为AAM模型实例的形状初始值。

1.初始化模型参数c;

2.计算模型纹理和当前纹理的差Δg=gs-gm

3.利用线性回归方程预测参数c的变化Δc=RcΔg;

4.尝试新的模型参数c′=c-kΔc,k=1;

5.重新计算误差函数Δg′;

6.如果||Δg′||<||Δg||则接受c’作为新的参数;否则跳转到4,尝k=1.5,2,2.5等

7.取下一帧图像,转2。

步骤5.获取面部特征点的三维坐标

确定面部特征点的位置后,接下来是计算并获取人脸面部特征点的坐标 信息,TOF深度相机的坐标系是以其自身为坐标原点,正前方为Z轴方向,向左为X轴的正方向,向上为Y轴的正方向。TOF深度相机能获取到深度图像,在3D计算机图形学中,深度图像指从观察视角看去,图像所包含信息与场景物体表面距离相关的一种图像或一个图像通道。这样,假设图像深度值的变化方向(即摄像机拍摄方向)与所需要描述的三维场景的视场方向Z方向相同的话,那么就能够很容易地描述整个三维场景。因此,深度图像也称为距离图像。

TOF深度相机获取到的深度图像像素值是和TOF深度相机镜头到物体间实际的水平距离相关联的,通过这种关联关系可以求得实际空间的Z值,实际空间的X和Y可以通过特征点在深度图像中的索引值x(列)和y(行)求得,计算方法如下:

获取TOF深度相机的水平视角角度值α和垂直视角角度值β,通过换算关系RealWorldXtoZ=2tan(α/2),RealWorldYtoZ=2tan(β/2),即得到了深度图像的宽度值w/高度值h与距离d的比值。

NormalizedX=x/512-0.5

NormalizedY=0.5-y/424

X=NormalizedX*Z*RealWorldXtoZ

Y=NormalizedY*Z*RealWorldYtoZ

综上,可求得索引为x,y处的特征点的三维坐标为(X,Y,Z)。

步骤6.生成面部表情捕捉文件

本发明通过动作捕捉文件来驱动虚拟模型来实现人脸面部表情的捕捉。处理TOF深度相机获取的每一帧图像并从中确定提取特征点的三维坐标信息,通过转换算法计算得出旋转信息,并将其按照bvh的格式写入动作捕捉文件中。

转换算法的实现步骤是:

向BVH文件中输入特征点的结构信息以及初始姿态信息;

读取运动数据将其存储到结构体中;

将三维坐标转换成四元数;

计算旋转矩阵;

将节点坐标转换到局部坐标系下;

将欧拉角输入到BVH文件中。

所有上述的首要实施这一知识产权,并没有设定限制其他形式的实施这种新产品和/或新方法。本领域技术人员将利用这一重要信息,上述内容修改,以实现类似的执行情况。但是,所有修改或改造基于本发明新产品属于保留的权利。

以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

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