发明名称 基于动作捕获数据驱动的二维卡通表情动画制作方法
摘要 本发明公开了一种基于动作捕获数据驱动的二维卡通表情动画制作方法。首先同时使用动作捕获设备捕获演员的表情数据,同时由用户在目标卡通人脸上标记出与演员数据相同的拓扑结构的特征点;然后使用一种基于偏移比例的重定向方法将演员表情数据的第一帧与目标卡通人脸的特征点进行对齐,并以此对齐比例将演员表情数据映射到目标卡通人脸上;将目标卡通人脸矢量化,并最终使用重定向后的动作捕获数据驱动矢量图像形式的卡通人脸进行变形,以达到动画化的效果。本发明由于使用了矢量化和基于偏移比例的重定向技术,在不考虑纹理细节的非真实卡通人脸的动画化的领域可以得到表情丰富且还原度较高的卡通表情动画。
申请公布号 CN102509333B 申请公布日期 2014.05.07
申请号 CN201110402575.2 申请日期 2011.12.07
申请人 浙江大学 发明人 肖俊;王翔宇;庄越挺
分类号 G06T13/80(2011.01)I 主分类号 G06T13/80(2011.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 张法高
主权项 1.一种基于动作捕获数据驱动的二维卡通表情动画制作方法,其特征在于它的步骤如下:1)使用动作捕获数据获取演员表情,并从中跟踪出演员表情特征序列{E<sub>n</sub>};由操作者在目标卡通人脸上手动标注出与演员表情特征序列{E<sub>n</sub>}相同拓扑结构的目标卡通人脸控制点集合E’<sub>0</sub>;2)将目标卡通人脸控制点集合E’<sub>0</sub>作为相对于目标卡通人脸表情特征序列{E’<sub>n</sub>}的第零帧,对演员表情特征序列{E<sub>n</sub>}第零帧中演员人脸控制点集合E<sub>0</sub>与目标卡通人脸控制点集合E’<sub>0</sub>进行数据的对齐,并依照对齐比例映射得出相对于目标卡通人脸表情特征序列{E’<sub>n</sub>};3)将目标卡通人脸进行矢量化;4)使用基于移动最小二乘法的图像变形方法,以矢量化的目标卡通人脸作为目标图像,目标卡通人脸表情特征序列{E’<sub>n</sub>}作为目标卡通人脸表情控制点集合进行变形,得到每一帧的图像,完成基于动作捕获数据驱动的二维卡通表情动画的制作;所述的步骤2)为:(1)在演员表情特征序列{E<sub>n</sub>}和目标卡通人脸表情特征序列{E’<sub>n</sub>}中,均存在一个控制点,两控制点的位移都不随时间改变,将两控制点作为偏移比例的基准点:C(cx,cy)∈E<sub>0</sub>、C’(cx’,cy’)∈E’<sub>0</sub>;(2)对于演员表情特征序列{E<sub>n</sub>}第零帧中一个控制点P<sub>i</sub>∈E<sub>0</sub>且P<sub>i</sub>≠C和目标卡通人脸表情特征序列{E’<sub>n</sub>}第零帧中对应的一个控制点P<sub>i</sub>'∈E'<sub>0</sub>且P<sub>i</sub>'≠C',定义其偏移比例s(sx<sub>i</sub>,sy<sub>i</sub>)∈S:<maths num="0001"><![CDATA[<math><mrow><msub><mi>sx</mi><mi>i</mi></msub><mo>=</mo><mfrac><mrow><msubsup><mi>x</mi><mi>i</mi><mo>,</mo></msubsup><mo>-</mo><msup><mi>cx</mi><mo>,</mo></msup></mrow><mrow><msub><mi>x</mi><mn>1</mn></msub><mo>-</mo><mi>cx</mi></mrow></mfrac></mrow></math>]]></maths><maths num="0002"><![CDATA[<math><mrow><msub><mi>sy</mi><mi>i</mi></msub><mo>=</mo><mfrac><mrow><msubsup><mi>y</mi><mi>i</mi><mo>,</mo></msubsup><mo>-</mo><msup><mi>cy</mi><mo>,</mo></msup></mrow><mrow><msub><mi>y</mi><mi>i</mi></msub><mo>-</mo><mi>cy</mi></mrow></mfrac></mrow></math>]]></maths>(3)对表情特征序列的第j帧,j≠0:表情动画的基准点在整个动画过程中不会发生位移,即C<sub>i</sub>’=C<sub>j</sub>;(4)使用偏移比例S对第j帧的动作驱动数据进行映射:x<sub>i</sub>'=cx'<sub>j</sub>+sx<sub>i</sub>·(x<sub>i</sub>-cx<sub>j</sub>)y<sub>i</sub>'=cy'<sub>j</sub>+sy<sub>i</sub>·(y<sub>i</sub>-cy<sub>j</sub>)其中P<sub>i</sub>(x<sub>i</sub>,y<sub>i</sub>)∈E<sub>j</sub>是表情特征序列中第j帧的第i个控制点;C<sub>j</sub>(cx<sub>j</sub>,cy<sub>j</sub>)∈E<sub>j</sub>是表情特征序列第j帧的基准点;C'<sub>j</sub>(cx'<sub>j</sub>,cy'<sub>j</sub>)=C'(cx',cy')是即将生成的第j帧的表情动画的基准点;生成控制点P<sub>i</sub>'(x'<sub>i</sub>,y'<sub>i</sub>)∈E'<sub>j</sub>是生成表情动画的第j帧的第i个控制点,完成表情特征序列从演员人脸到目标卡通人脸的重定向过程;所述的步骤3)为:(1)将目标图像转化为灰度图像I,对灰度图像I进行边缘检测,得到边缘图像I’;对边缘图像I’进行数学形态学的膨胀,再进行骨骼抽取,得到单宽度边缘图像I”;(2)对单宽度边缘图像I”,建立辅助矩阵M保存单宽度边缘图像I”中每个像素的访问情况,初始化为未访问;由用户在每一个面部器官的轮廓上选取一个点作为根节点v<sub>s</sub>,当前节点v<sub>c</sub>设为v<sub>s</sub>;(3)将当前节点v<sub>c</sub>在辅助矩阵M中对应的位置标记为已访问,初始化搜索尺度s=1,按照顺时针方向搜索以当前节点v<sub>c</sub>为中心,边长为2s+1的正方形的边上的点;当搜索到一个边界节点时,检测辅助矩阵中这个边界节点的已访问性;若已访问,则继续进行搜索;若未访问,则将这个边界节点加入边界点列数组中,并将这个边界节点的八邻域内各个点均设为已访问,并将此点作为根节点重复上述步骤;若未搜索到符合条件的节点,则认为遇到断边沟,将搜索尺度s+=1同样重复上述步骤;当搜索尺度s大于一个特定值时,循环结束,此时得到的边界点列数组即为跟踪得到的面部器官轮廓C,其集合为面部器官轮廓线集合{C};(4)对每一个面部器官轮廓C∈{C},将曲线的起点v<sub>s</sub>与终点v<sub>e</sub>加入轮廓特征点列;用v<sub>s</sub>与v<sub>e</sub>的连线L<sub>se</sub>作为曲线的初始简化,并搜寻曲线上距离L<sub>se</sub>最远的点v<sub>d</sub>;检测v<sub>d</sub>到L<sub>se</sub>的距离d与L<sub>se</sub>的长度l的比值d/l是否小于参数α;若成立,则轮廓抽取完成;否则将v<sub>d</sub>插入轮廓特征点列中起点v<sub>s</sub>之后,并分别对从v<sub>s</sub>到v<sub>d</sub>与从v<sub>d</sub>到v<sub>e</sub>的两条曲线分别重复上述步骤,最终得到面部器官轮廓C的特征点集合V;用特征点集合V作为锚点创建贝塞尔曲线,得到矢量化的面部器官轮廓;所述的步骤4)为:(1)设目标卡通人脸表情特征序列{E’<sub>n</sub>}第零帧E’<sub>0</sub>中的特征点为p<sub>i</sub>:对原始卡通矢量图每一个面部器官矢量轮廓的锚点v,计算相应的权重参数:<maths num="0003"><![CDATA[<math><mrow><msub><mi>w</mi><mi>i</mi></msub><mo>=</mo><mfrac><mn>1</mn><msup><mrow><mo>|</mo><msub><mi>p</mi><mi>i</mi></msub><mo>-</mo><mi>v</mi><mo>|</mo></mrow><mrow><mn>2</mn><mi>&alpha;</mi></mrow></msup></mfrac></mrow></math>]]></maths>其中α为常量参数;(2)根据以上结果计算目标卡通人脸表情特征序列{E’<sub>n</sub>}第零帧E’<sub>0</sub>的加权重心p*:<maths num="0004"><![CDATA[<math><mrow><msup><mi>p</mi><mo>*</mo></msup><mo>=</mo><mfrac><mrow><msub><mi>&Sigma;</mi><mi>i</mi></msub><msub><mi>w</mi><mi>i</mi></msub><mo>*</mo><msub><mi>p</mi><mi>i</mi></msub></mrow><mrow><msub><mi>&Sigma;</mi><mi>i</mi></msub><msub><mi>w</mi><mi>i</mi></msub></mrow></mfrac></mrow></math>]]></maths>(3)对目标卡通人脸表情特征序列{E’<sub>n</sub>}第零帧E’<sub>0</sub>的第j个控制点,计算仿射矩阵:A<sub>j</sub>=(v-p*)(Σ<sub>i</sub>(p<sub>i</sub>-p*)<sup>T</sup>w<sub>i</sub>(p<sub>i</sub>-p*))-<sup>1</sup>(p<sub>j</sub>-p*)<sup>T</sup>(4)设目标卡通人脸表情特征序列{E’<sub>n</sub>}的后续某帧的特征点为q<sub>i</sub>:对原始卡通矢量图每一个面部器官矢量轮廓的锚点v,计算相应的权重参数:<maths num="0005"><![CDATA[<math><mrow><msub><mi>w</mi><mi>i</mi></msub><mo>=</mo><mfrac><mn>1</mn><msup><mrow><mo>|</mo><msub><mi>q</mi><mi>i</mi></msub><mo>-</mo><mi>v</mi><mo>|</mo></mrow><mrow><mn>2</mn><mi>&alpha;</mi></mrow></msup></mfrac></mrow></math>]]></maths>其中α为常量参数;(5)根据以上结果计算目标卡通人脸表情特征序列{E’<sub>n</sub>}后续第j帧的加权重心q*:<maths num="0006"><![CDATA[<math><mrow><mi>q</mi><mo>*</mo><mo>=</mo><mfrac><mrow><msub><mi>&Sigma;</mi><mi>i</mi></msub><msub><mi>w</mi><mi>i</mi></msub><mo>*</mo><mi>q</mi><mo>*</mo></mrow><mrow><msub><mi>&Sigma;</mi><mi>i</mi></msub><msub><mi>w</mi><mi>i</mi></msub></mrow></mfrac></mrow></math>]]></maths>(6)计算对于目标卡通人脸表情特征序列{E’<sub>n</sub>}后续第j帧的刚性形变函数f<sub>r</sub>(x):<maths num="0007"><![CDATA[<math><mrow><msub><mover><mi>f</mi><mo>&RightArrow;</mo></mover><mi>r</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>&Sigma;</mi><mi>i</mi></msub><mrow><mo>(</mo><msub><mi>q</mi><mi>i</mi></msub><mo>-</mo><mi>q</mi><mo>*</mo><mo>)</mo></mrow><msub><mi>A</mi><mi>i</mi></msub></mrow></math>]]></maths>(7)跟据刚性形变函数f<sub>r</sub>(x),计算原始卡通矢量图每一个面部器官矢量轮廓的锚点v形变后的位置v’:<maths num="0008"><![CDATA[<math><mrow><msup><mi>v</mi><mo>&prime;</mo></msup><mo>=</mo><mo>|</mo><mi>v</mi><mo>-</mo><mi>p</mi><mo>*</mo><mo>|</mo><mfrac><mrow><msub><mover><mi>f</mi><mo>&RightArrow;</mo></mover><mi>r</mi></msub><mrow><mo>(</mo><mi>v</mi><mo>)</mo></mrow></mrow><mrow><mo>|</mo><msub><mover><mi>f</mi><mo>&RightArrow;</mo></mover><mi>r</mi></msub><mrow><mo>(</mo><mi>v</mi><mo>)</mo></mrow><mo>|</mo></mrow></mfrac><mo>+</mo><mi>q</mi><mo>*</mo></mrow></math>]]></maths>(8)根据原始卡通矢量图每一个面部器官矢量轮廓的锚点v形变后的位置v’,重构矢量图,即得到目标卡通人脸表情特征序列{E’<sub>n</sub>}后续第j帧所驱动的卡通表情动画的第j帧。
地址 310027 浙江省杭州市西湖区浙大路38号