基于肌肉模型的人脸表情动画合成方法

文档序号:6481916阅读:348来源:国知局
专利名称:基于肌肉模型的人脸表情动画合成方法
技术领域
本发明涉及计算机技术,特别涉及一种基于肌肉模型的人脸表情动画 合成方法。
背景技术
随着计算机硬件技术不断地更新,人们的视觉欣赏要求也越来越高, 从二维平面到三维空间,无论是游戏还是动画,都越来越讲究画面的立方 体感和真实感。人脸动画,作为最能突出人物特性的动画,在过去三十年 里,得到了飞速的发展。人的脸部与动物最明显的区别之一就是微妙多变 的表情活动。人的脸部表情动画也是计算机图形与仿真领域最具挑战性的 技术之一。这主要由于以下几个原因第一,人的脸部表情相当的丰富; 第二,人脸表情涉及到多个面部器官(眼、嘴、耳朵、脸部)的协调运动; 第三,要展现一个高仿真的人脸表情,需要人脸表情心理学方面的特殊知 识、人脸肌肉结构的解剖学知识、形状几何学的知识和图形学可视化的知 识等。人脸表情动画合成通常包括三个过程设计脸部模型——获取脸部
数据一一驱动模型化的脸部生成各种表情。按照驱动源的不同,人脸表情 动画模型可以分为基于参数的人脸模型、基于物理特征的人脸模型、基于 图像操作的人脸模型和基于运动跟踪的人脸模型。基于参数的方法即模型 参数化,用多边形表示人脸的结构,选择适当的参数可以产生许多面部表 情,但描述对应表情的三角形的变化是一个非常复杂的过程。基于肌肉物 理特性的人脸表情模型,主要由向量模拟肌肉的运动,这种方法独立于人 脸的网格结构,实现起来较容易,速度也快,仿真效果也较好,适合于游 戏、动画的要求,缺点是只有通过精确的肌肉定位和参数调节才能模拟特
定的人脸结构。基于图像操作的人脸模型常用的方法如形态(Morphing) 算法,主要是建立图像像素之间的对应关系,而建立一个合理的扭曲函数 (warp function)则是整个算法成败的关键。基于表演跟踪的人脸表情模 型主要是用传感器来捕捉表演者的动作数据,并将这些数据直接或间接生 成脸部表情,产生细致入微的表情,缺点是成本大,不利于推广。对于基于人脸肌肉的表情模型,传统方法合成动画表情常常碰到两个 问题
(1) 肌肉收縮时会破坏原来脸部的拓扑结构;
(2) 肌肉收縮所应该具有的局部皮肤膨胀现象。
因此,传统的生成真实感人脸表情动画算法存在着以下不足之处
(1) 传统的位移约束算法在处理脸部的拓扑结构时易出现"突尖"情况;
(2) 传统的人脸肌肉运动主要是使用线性肌来模拟肌肉的拉伸,线性肌
方法在解决脸部皮肤膨胀现象时立体感不够强,变化不够自然;(3)皮肤 是不可压縮的,现实中当肌肉收縮时, 一部分皮肤组织跟着收縮,而另一 部分皮肤组织因此而膨胀,采用保体积法把人脸模型分为表皮层、脂肪层、 肌肉层,脸部的三角面片改成是有体积的三角棱柱,人脸肌肉收縮时保持 体积不变。采用保体积法,整个求解过程是一个迭代的过程,所以表情生 成速度较慢,不能满足实时性较高的游戏和动画行业的需求。

发明内容
本发明的目的在于克服现有技术的缺点与不足,提供一种模型简单, 可明显提高动画表情生成速度的基于肌肉模型的人脸表情动画合成方法; 本方法在人脸肌肉模型的基础上,可使表情变化带动肌肉的收縮更加自 然,从而虚拟人物的表情变化更具视觉效果,立体感更强。
本发明的目的通过下述技术方案实现: 一种基于肌肉模型的人脸表情 动画合成方法,其特征在于包括下述步骤——
(1)确定受影响区域,所述受影响区域包括挤压区域五,和由挤压区 域生成的膨胀区域^。
所述挤压区域&的点P满足
{尸I尸£ F且^与^^的夹角是锐角}, 其中V,为骨结点,V2表示皮肤结点,F表示肌肉向量^影响区域 的边缘点集,M表示受肌肉向量^影响最大的点。 所述由挤压区域生成的膨胀区域^的点P满足 (尸l尸《E且3QeA,1/^1〈4,
其中e是一个预设定的值,IPQI表示人脸网格上从点P到点Q的欧氏 距离,£为受肌肉向量^"2影响区域的点集合。传统的方法中只处理影响区域内受挤压的那些点,这种方法的缺点是 肌肉运动的立方体感不强,而且容易造成"突尖"现象。本发明除了处理 挤压区域的点还处理挤压区域生成的膨胀区域内的点。 (2)构造受影响区域点的位移函数。
在本发明中,我们重新定义了影响区域内点的位移函数。在拉力的作
用下,人脸肌肉变化的凹凸感很强。传统的位移函数只考虑了人脸肌肉挤
压上拉部分,在本发明中,针对膨胀区域,我们定义了一个新的位移函数,
使得人脸肌肉变化更加自然。
所述挤压区域A中的点P的位移函数采用线性肌方法处理。
所述受影响区域中由挤压区域生成的膨胀区域&中点P的位移函数

s,阔,-r画》口人
其中M表示受肌肉向量影响最大的点,rmin表示M到集合&的最短距离, 设尸q e^满足I |二 r min,夂2表示肌肉的弹性因子,/ ,表示肌肉拉力的
大小,Fw"定义为
sin(-^-.——-.;t), <—/,/ + 2) x m—lg
0, ozfe'"wis"e
其中,effect—level(预先设定)表示肌肉运动所能影响到的网格范围, m—ffiulgeLen表示当前计算点P到P。点的欧氏距离。
(3) 计算受影响区域点的新位置。 传统的方法只计算影响区域中挤压区域点的新位置,本发明中我们还
计算膨胀区域点的新位置。根据我们前面定义的位移函数及预先设定的参
数,我们容易计算出挤压区域和膨胀区域点的位置。
所述挤压区域A中的点P的新位置由线性肌方法得到。 所述由挤压区域生成的膨胀区域&中点P的新位置为
其中,尸'表示点新的坐标,P表示点原来的坐标,K,表示位移因子,
s是所述步骤(2)中计算得到的位移函数值,Np表示P点处的法向量。
(4) 根据受影响区域点的新位置生成人脸表情动画。
6本发明方法的原理考虑到以下因素(l)肌肉向量控制区域 与其周围一定范围内是大致平坦的;(2)人脸网格中共享同一个顶 点的边的长度相差不大;(3)接近骨结点一端的皮肤组织会膨胀。 传统的人脸肌肉运动主要是使用线性肌来模拟肌肉的拉伸,本发明 在此基础上提出了一种伪膨胀算法,直接改变皮肤网格上点的位置, 通过参数调整而达到类似膨胀的效果。本算法先计算肌肉运动中肌 肉向量所引起的区域,再通过该挤压区域生成膨胀区域。对于挤压 区域,可以采用传统的线性肌方法计算;对于膨胀区域,定义了一 个新的位移函数,从而方便计算出膨胀区域中点的新的位置。通过 伪膨胀法,加入了一个膨胀区域,可使得人脸肌肉运动更加自然, 表情变化的立体感和真实感更强,模型的适用性也更强。 本发明与现有技术相比具有如下的优点及有益效果
(1) 模型简单,计算量少。与保体积法相比,本方法直接改变网格 上点的位置,通过调整参数达到膨胀的效果,求解过程不需要迭代,效率
給古 牧问o
(2) 人脸网格的拓扑结构得以保留。避免了受控制点位移随拉力增 大而差距增大而使得人脸网格呈"突尖"的状况。
(3) 加上伪膨胀法后的人脸表情动画变化的立体感更强,变化更自 然。在本算法中,我们从受肌肉影响最大的点出发,得到肌肉的影响区域, 通过重新计算肌肉向量影响区域的点的位置,可使得表情变化更加的自 然,立体感更强。
(4) 人脸模型的表情有了更多的细节,表情更加的丰富,更具有真实性。
(5) 动画表情生成速度快,能满足一般游戏和动画行业的需求。
(6) 由于表情变化更加自然,故容易和语音(主要是口形与发音) 对应,通过基于脚本的驱动,生成有声有色的人脸表情动画。
(7) 制作过程简便,制作成本低。
(8) 适应性强,便于推广。本算法通过ANSI C+ +实现,便于推广 和移植。提供了多个接口,便于调用。


图1是肌肉在人脸模型上的分布示意图。图2是图1所示人脸肌肉模型的下巴的控制点示意图。 图3是二维肌肉向量的示意图。
图4是肌肉模型的侧面示意图。点V,、 V2分别表示肌肉向量的头和 尾,水平直线表示网格的侧面,线上的点表示网格的结点,其中点M表示 受肌肉影响最大的点。
图5是图4所示肌肉模型膨胀的侧面示意图,M点左边深黑色的点集
会使它的临近点受到挤压,右边浅黑色的点会拉伸它的临近点。
图6是肌肉处于松弛状态示意图,点集(P—3, P-2, P-i, P。, P,, P2, P3, PJ是 &,其他点的集合是&,其中点M表示受肌肉影响最大的点。 图7是图3所示肌肉处于兴奋状态示意图。 图8是没加伪膨胀算法的微笑模型的线框图。
图9是加了伪膨胀算法的微笑模型的线框图。加了伪膨胀算法后,虚 拟人物的微笑有一小块肉突起(白色圈),看起来更具有立体感
图IO是没加伪膨胀算法的微笑模型的着色图。
图11是加了伪膨胀算法的微笑模型的着色图。加了伪膨胀算法后, 虚拟人物的微笑有一小块肉突起(白色圈),看起来更具冇立体感。
图12是本发明的一个交互界面。
图13是加了伪膨胀算法的线性肌模型实现头文件。
图14是肌肉运动函数的实现流程图。
具体实施例方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实 施方式不限于此。 实施例
本发明基于肌肉模型的人脸表情动画合成方法的具体包括下述步骤一 (一)预处理
先建立人脸的肌肉模型。传统的人脸肌肉模型主要用到线性肌 (Linear Muscle )模型[有颧大肌(Zygomatic_Major)、降口角肌 (Angular—Depressor)等]和括约肌(Circular Muscle)模型(有口轮匝肌等),
并在些基础上衍生出三种新的肌肉模型(1) 额肌(HeadMuscle),用于模拟人脸额头部分的肌肉运动。
(2) 面颊肌(CheekMuscle),用于模拟人脸面颊部分的肌肉运动。
(3) 眼肌(EyeMuscle),用于模型人眼附近肌肉动画。
本实施例中一共用到20块线性肌,l块括约肌,l块额肌,2块面颊 肌,2块眼肌。如图1及图2所示,人脸表情变化主要是通过控制人脸肌 肉模型的控制点来完成,而这些控制点是通过手动设定的。以这些控制点 为顶点,我们可以建立一个人脸肌肉模型的三角剖分。
再定义模型的参数
(1) 骨结点,作为拉伸的源头。
(2) K2: 皮肤结点,表明肌肉的作用方向和距离。
(3) Q: 影响范围,以角度的形式表示。
(4) 表示拉力的衰减的开始距离。
(5) / /: 表示拉力的衰减的终端。
(6) 肌肉弹性系数。
(7) E: 表示受肌肉向量^影响的点的集合,是一个锥体。
(8) F: 表示E中边缘点的集合。
(9) 表示肌肉拉力的大小。
(10) M:表示E中受肌肉向量影响最大的点。
以上参数是预先给定的或通过简单计算就可得到,其中肌肉向量的示
意图参见图3 。
(二)确定肌肉运动的挤压区域
对比图4和图5可以看到,肌肉运动对F中的点的影响是不一样的, 集合尸中的点可以分成两类,M点左边深黑色的点会使它的临近点受到 挤压,右边浅黑色的点会拉伸它的临近点。所以我们在线性肌的属性中加
入集合A表示受挤压的点的集合,^的点满足
{尸I尸e F且^与^F,的夹角是锐角}。
在这里,我们只需计算挤压区域,因为确定了挤压区域之后,拉伸区
9域随之也就确定,这样便节省了计算时间。
(三) 确定挤压区域所生成的膨胀区域 传统的线性肌方法只处理了受挤压区域,实际上这样容易造成"突
尖",破坏原有人脸网格的拓扑模型。所以我们提出了一种伪膨胀算法, 即还需要计算由挤压区域生成的膨胀区域A:
(尸l尸g五且3QeA,l尸2K4
其中,e是一个预设定的值,iPQl表示人脸网格上从点P到点Q的欧 氏距离。
(四) 构造挤压区域和膨胀区域点的位移函数
当肌肉处于兴奋状态时,挤压区域&中的点P的位移函数按线性肌
方法处理,我们只需要定义膨胀区域&中的点P的位移函数
5 朋(网-r腿))口/附
其中rmin表示M到集合A的最短距离,不妨设尸。e K满足
I AAf |= r min,
L表示肌肉的弹性因子,.A表示肌肉拉力的大小,F""定义为
1
sin(-^-.--.7T),q^e 4 〈(^k^」^v^/ + 2)xw—/Bwlge/^",
0, c^/7mv/w
其中,effect一level(预先设定)表示肌肉运动所能影响到的网格范围, m—ffiulgeLen表示当前计算点P到P。点的欧氏距离。
(五)计算挤压区域和膨胀区域中的点的新的位置 当脸部肌肉运动时,挤压区域K中的点P的新位置由线性肌方法得
到,膨胀区域^中的点P的位置计算如下 尸'二户+ (《,ft[W》
其中,P表示原来的坐标,K,表示位移因子,s是步骤(四)中计算得到 的位移函数值,Np表示P点的法向量。
图6和图7分别表示肌肉处于松弛状态和兴奋状态的示意图。
10(六)编程实现
考虑到运行效率和移植性,本算法选择ANSIC++来实现,不过也非 常容易用其他开发语言来实现。
图13是加了伪膨胀算法的线性肌模型对象图,主要是增加了一些计 算膨胀区域的属性,重定义了肌肉运动函数和肌肉变形函数。
算法的核心是肌肉运动函数,肌肉运动函数的具体的实现流程图如图
14所示。
本发明的效果示例图如图8、 9、 10、 ll所示,其中图8是没加伪膨 胀算法的微笑模型的线框图,图9是加了伪膨胀算法的微笑模型的线框 图,图IO是没加伪膨胀算法的微笑模型的着色图,图11是加了伪膨胀算 法的微笑模型的着色图。加了伪膨胀算法后,虚拟人物的微笑有一小块肉 突起(白色圈住的部分),看起来更具有立体感和真实感。
图12是本发明开发的一个交互界面,通过设定不同的参数,可以产 生一系列逼真的人脸表情。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上 述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改 变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明 的保护范围之内。
ii
权利要求
1、一种基于肌肉模型的人脸表情动画合成方法,其特征在于包括下述步骤——(1)确定受影响区域;(2)构造受影响区域点的位移函数;(3)计算受影响区域点的新位置;(4)根据受影响区域点的新位置生成人脸表情动画;所述受影响区域包括挤压区域Er和由挤压区域生成的膨胀区域Eb。
2、 根据权利要求1所述的基于肌肉模型的人脸表情动画合成方法, 其特征在于所述挤压区域&的点P满足{尸I尸e F且M尸与,t的夹角是锐角}, 其中V,为骨结点,V2表示皮肤结点,F表示肌肉向量^影响区域 的边缘点集,M表示受肌肉向量^影响最大的点。
3、 根据权利要求1所述的基于肌肉模型的人脸表情动画合成方法, 其特征在于所述由挤压区域生成的膨胀区域^的点P满足(尸i尸g五且30e五r,l尸gl〈d, 其中e是一个预设定的值,IPQI表示人脸网格上从点P到点Q的欧氏距离, 五为受肌肉向量^影响区域的点集合。
4、 根据权利要求1所述的基于肌肉模型的人脸表情动画合成方法, 其特征在于所述步骤(2)中,受影响区域中由挤压区域生成的膨胀区 域^中点P的位移函数为S二(^CF""(岡-rJ口厶其中M表示受肌肉向量影响最大的点,rmin表示M到集合《的最短距离,设尸0 e^满足I |= r min, L表示肌肉的弹性因子,/m表示肌肉拉力的大小,/^定义为sin(-.-.;r),< (^fec/—feve/ + 2) x w—,w lg eLe",其中,effectjevd(预先设定)表示肌肉运动所能影响到的网格范围, m—ffiulgeLen表示当前计算点P到P。点的欧氏距离。
5、 根据权利要求1或4所述的基于肌肉模型的人脸表情动画合成方 法,其特征在于所述由挤压区域生成的膨胀区域A中点P的新位置为尸二尸+其中,尸'表示点新的坐标,P表示点原来的坐标,K,表示位移因子,s是所述歩骤(2)中计算得到的位移函数值,Np表示P点处的法向量。
6、 根据权利要求1所述的基于肌肉模型的人脸表情动画合成方法, 其特征在于所述挤压区域A中的点P的位移函数采用线性肌方法处理。
7、 根据权利要求1所述的基于肌肉模型的人脸表情动画合成方法,其特征在于所述挤压区域A中的点P的新位置由线性肌方法得到。
全文摘要
本发明提供了一种基于肌肉模型的人脸表情动画合成方法,包括下述步骤(1)确定受影响区域;(2)构造受影响区域点的位移函数;(3)计算受影响区域点的新位置;(4)根据受影响区域点的新位置生成人脸表情动画。所述受影响区域包括挤压区域E<sub>r</sub>和由挤压区域生成的膨胀区域E<sub>b</sub>。本发明在膨胀区域内定义新的位移函数,具有模型简单、计算量少、实时性强、立方体感强、效果逼真和制作成本低等优点,可满足游戏、动画、电影等行业的需求。本方法可应用于游戏、动画等领域生成立体感强、效果逼真的人脸动画表情。
文档编号G06T15/70GK101488234SQ20091003745
公开日2009年7月22日 申请日期2009年3月2日 优先权日2009年3月2日
发明者冯国灿, 关 杨, 熊钊隆, 陈伟福 申请人:中山大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1