发明名称 基于测地距的径向基函数人脸表情重定向与动画方法
摘要 本发明公开了一种基于运动捕捉数据的人脸表情重定向和动画算法。通过建立一个基于测地距的径向基函数人脸表情的重定向模型,实现了从运动捕捉数据空间到目标人脸模型运动空间的转换,在转换的过程中考虑了人脸网格的结构,着重解决了使用径向基函数进行空间转换过程中全局性问题。在人脸表情动画阶段,利用了空间转换的结果,使用基于测地距径向基函数的人脸变形模型,对运动数据进行插值,获取整个模型的变形结果。本发明可将同一个捕捉序列应用到不同的人脸模型,模型转换比较容易,同时针对不同的捕捉序列也可用于同一个目标模型,实现了运动捕捉数据的重用,同时也具有较强的动画真实感。
申请公布号 CN102855652B 申请公布日期 2014.08.06
申请号 CN201210284737.1 申请日期 2012.08.10
申请人 大连大学 发明人 魏小鹏;张强;李蓓蓓
分类号 G06T13/40(2011.01)I 主分类号 G06T13/40(2011.01)I
代理机构 大连东方专利代理有限责任公司 21212 代理人 曲永祚;李洪福
主权项 基于测地距的径向基函数人脸表情重定向与动画方法,其特征在于:第一步:首帧运动捕捉数据的预处理,其包括以下3个步骤:步骤1:导入一个表情运动捕捉序列,提取首帧运动捕捉序列,对首帧序列中的标记点位置进行三角剖分,形成一个首帧序列的三角网格;步骤2:根据人脸的语义特征,在首帧序列的三角网格中,去除眼睛及嘴部区域的伪关联;步骤3:依据去除伪关联后的首帧序列的三角网格中标记点之间的关联,求解标记点之间的测地距;第二步:构建表情运动重定向模型;建立首帧运动捕捉数据与目标人脸模型标记点之间的映射关系,其可以表示如下<img file="FDA0000519383210000011.GIF" wi="739" he="140" />所述<img file="FDA0000519383210000012.GIF" wi="62" he="78" />是首帧运动捕捉序列中的标记点的空间坐标(x<sub>i</sub>,y<sub>i</sub>,z<sub>i</sub>);所述x<sub>i</sub>,y<sub>i</sub>和z<sub>i</sub>的单位均为毫米;<img file="FDA0000519383210000013.GIF" wi="271" he="85" />是首帧序列中两个标记点之间的测地距,所述测地距单位是毫米;w<sub>j</sub>是待求的权值系数;n是标记点的个数,所述n是一个整数,根据初始设置的标记点个数其值为60;<img file="FDA0000519383210000014.GIF" wi="66" he="78" />是目标人脸模型上第i个标记点的空间坐标(x<sub>i</sub>,y<sub>i</sub>,z<sub>i</sub>);所述x<sub>i</sub>,y<sub>i</sub>和z<sub>i</sub>的单位均为毫米,1≤i,j≤n;<img file="FDA0000519383210000015.GIF" wi="129" he="78" />是一个多项式,其是一个仿射变换,在求解公式<img file="FDA0000519383210000016.GIF" wi="700" he="140" />组成的线性系统时,同时计算该多项式项:<img file="FDA0000519383210000017.GIF" wi="707" he="338" />若将上述线性系统写成如下矩阵形式:M=Φ·W,所述M∈R<sup>n+3,3</sup>是目标人脸模型上标记点的空间位置矩阵,Φ是基于首帧序列的标记点间测地距的径向基函数<img file="FDA0000519383210000021.GIF" wi="824" he="103" />组成的矩阵,所述<img file="FDA0000519383210000022.GIF" wi="495" he="85" />权值矩阵W通过公式下式求出,W=Φ<sup>‑1</sup>M,通过上述权值矩阵的求解公式,得到了首帧序列标记点与目标人脸模型上标记点之间的映射关系,对于第k帧捕捉序列,将公式M=Φ·W中的Φ换成关于当前帧标记点位置的<img file="FDA0000519383210000023.GIF" wi="424" he="85" />所述k是表情运动序列的长度,即帧长度;从而可以求得当前帧目标人脸模型上标记点的位置矩阵M;第三步:建立并优化基于测地距的径向基函数目标人脸表情的动画模型,其有以下几个步骤:步骤1:在目标人脸模型上搜索与每个标记点空间上最匹配的顶点,由于目标模型上的标记点是依据原始人脸模型上标记点的位置手动设定的,它与目标人脸模型上的顶点没有直接的关联,在求解目标人脸模型上标记点与顶点之间的测地距之前,要保证所有标记点与顶点在同一个网格上,并且顶点与面片之间的关系已经建立;步骤2:预计算目标人脸模型上顶点和标记点之间的测地距<img file="FDA0000519383210000024.GIF" wi="278" he="85" /><img file="FDA0000519383210000025.GIF" wi="45" he="79" />是目标人脸模型上第i个顶点的空间坐标(x<sub>i</sub>,y<sub>i</sub>,z<sub>i</sub>),所述x<sub>i</sub>,y<sub>i</sub>和z<sub>i</sub>的单位均为毫米;m'<sub>j</sub>是目标人脸模型上与第j个标记点<img file="FDA0000519383210000026.GIF" wi="60" he="85" />最匹配的顶点的空间坐标(x<sub>j</sub>,y<sub>j</sub>,z<sub>j</sub>),所述x<sub>j</sub>,y<sub>j</sub>和z<sub>j</sub>的单位均为毫米;为了保证动画的效率,可以进一步预计算目标人脸模型上标记点和顶点之间的径向函数信息<img file="FDA0000519383210000027.GIF" wi="346" he="85" />并且<img file="FDA0000519383210000028.GIF" wi="751" he="103" />所述r为经验值,r=0.375;所述目标人脸模型上标记点之间的径向基函数信息<img file="FDA0000519383210000031.GIF" wi="797" he="103" /><maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>r</mi><mi>i</mi></msub><mo>=</mo><msub><mi>min</mi><mrow><mi>i</mi><mo>&NotEqual;</mo><mi>j</mi></mrow></msub><mrow><mo>(</mo><mo>|</mo><mo>|</mo><msubsup><mi>m</mi><mi>i</mi><mn>0</mn></msubsup><mo>-</mo><msubsup><mi>m</mi><mi>j</mi><mn>0</mn></msubsup><mo>|</mo><mo>|</mo><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000519383210000032.GIF" wi="497" he="83" /></maths>可先行计算,以便于实时求解每一帧的径向基权值矩阵,这里标记点之间的距离<img file="FDA0000519383210000033.GIF" wi="224" he="84" />是欧式距离;步骤3:针对每一帧的运动数据,在目标人脸模型标记点和当前帧标记点的位移之间构建一个径向基函数训练模型,求解出每一帧的径向基权值矩阵W=Φ<sup>‑1</sup>M<sub>1</sub>,Φ使用步骤2中预计算标记点之间的径向基函数<img file="FDA0000519383210000034.GIF" wi="334" he="83" />以减少实时运算的消耗,M<sub>1</sub>为每一帧目标人脸模型上标记点的位移矩阵,这里的位移是将第二步求得的当前帧目标人脸模型上标记点的位置矩阵减去目标人脸模型上标记点的空间位置即得到位移矩阵M<sub>1</sub>;步骤4:利用下面的公式建立一个变形模型<img file="FDA0000519383210000035.GIF" wi="565" he="140" />所述<img file="FDA0000519383210000036.GIF" wi="54" he="78" />是第k帧运动序列中第i个顶点的位移,该位移用一个三维坐标<img file="FDA0000519383210000037.GIF" wi="228" he="79" />表示,其中<img file="FDA0000519383210000038.GIF" wi="176" he="79" />和<img file="FDA0000519383210000039.GIF" wi="52" he="79" />的单位都是毫米,<img file="FDA00005193832100000310.GIF" wi="326" he="85" />是步骤2中预计算的目标人脸模型标记点和顶点之间的径向函数信息,<img file="FDA00005193832100000311.GIF" wi="60" he="85" />是根据步骤3求得的第k帧运动序列的径向基权值矩阵W中提取的权值系数;步骤5:利用下面的公式求出每一帧目标人脸模型上每个顶点的位置<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>v</mi><mi>i</mi></msub><mo>=</mo><msubsup><mi>v</mi><mi>i</mi><mi>k</mi></msubsup><mo>+</mo><msubsup><mi>v</mi><mi>i</mi><mn>0</mn></msubsup><mo>,</mo></mrow>]]></math><img file="FDA00005193832100000312.GIF" wi="227" he="79" /></maths>所述<img file="FDA00005193832100000313.GIF" wi="58" he="78" />是目标人脸模型上第i个顶点在初始状态,即静止时的空间位置;<img file="FDA00005193832100000314.GIF" wi="61" he="78" />是步骤4求得的第k帧运动序列中第i个顶点的位移,v<sub>i</sub>就是第k帧运动序列中第i个顶点的空间位置;对于一个运动捕捉序列,重复步骤3到步骤5,即可求出目标人脸模型上每一帧每个顶点的位置,实时更新每个顶点的空间坐标位置就可产生人脸表情动画。
地址 116622 辽宁省大连市金州新区学府大街10号