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

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

Info

Publication number
CN101488234A
CN101488234A CNA2009100374579A CN200910037457A CN101488234A CN 101488234 A CN101488234 A CN 101488234A CN A2009100374579 A CNA2009100374579 A CN A2009100374579A CN 200910037457 A CN200910037457 A CN 200910037457A CN 101488234 A CN101488234 A CN 101488234A
Authority
CN
China
Prior art keywords
point
muscle
expression
zone
crush
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2009100374579A
Other languages
English (en)
Inventor
冯国灿
熊钊隆
陈伟福
杨关
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CNA2009100374579A priority Critical patent/CN101488234A/zh
Publication of CN101488234A publication Critical patent/CN101488234A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

本发明提供了一种基于肌肉模型的人脸表情动画合成方法,包括下述步骤:(1)确定受影响区域;(2)构造受影响区域点的位移函数;(3)计算受影响区域点的新位置;(4)根据受影响区域点的新位置生成人脸表情动画。所述受影响区域包括挤压区域Er和由挤压区域生成的膨胀区域Eb。本发明在膨胀区域内定义新的位移函数,具有模型简单、计算量少、实时性强、立方体感强、效果逼真和制作成本低等优点,可满足游戏、动画、电影等行业的需求。本方法可应用于游戏、动画等领域生成立体感强、效果逼真的人脸动画表情。

Description

基于肌肉模型的人脸表情动画合成方法
技术领域
本发明涉及计算机技术,特别涉及一种基于肌肉模型的人脸表情动画合成方法。
背景技术
随着计算机硬件技术不断地更新,人们的视觉欣赏要求也越来越高,从二维平面到三维空间,无论是游戏还是动画,都越来越讲究画面的立方体感和真实感。人脸动画,作为最能突出人物特性的动画,在过去三十年里,得到了飞速的发展。人的脸部与动物最明显的区别之一就是微妙多变的表情活动。人的脸部表情动画也是计算机图形与仿真领域最具挑战性的技术之一。这主要由于以下几个原因:第一,人的脸部表情相当的丰富;第二,人脸表情涉及到多个面部器官(眼、嘴、耳朵、脸部)的协调运动;第三,要展现一个高仿真的人脸表情,需要人脸表情心理学方面的特殊知识、人脸肌肉结构的解剖学知识、形状几何学的知识和图形学可视化的知识等。人脸表情动画合成通常包括三个过程:设计脸部模型一一获取脸部数据——驱动模型化的脸部生成各种表情。按照驱动源的不同,人脸表情动画模型可以分为基于参数的人脸模型、基于物理特征的人脸模型、基于图像操作的人脸模型和基于运动跟踪的人脸模型。基于参数的方法即模型参数化,用多边形表示人脸的结构,选择适当的参数可以产生许多面部表情,但描述对应表情的三角形的变化是一个非常复杂的过程。基于肌肉物理特性的人脸表情模型,主要由向量模拟肌肉的运动,这种方法独立于人脸的网格结构,实现起来较容易,速度也快,仿真效果也较好,适合于游戏、动画的要求,缺点是只有通过精确的肌肉定位和参数调节才能模拟特定的人脸结构。基于图像操作的人脸模型常用的方法如形态(Morphing)算法,主要是建立图像像素之间的对应关系,而建立一个合理的扭曲函数(warp function)则是整个算法成败的关键。基于表演跟踪的人脸表情模型主要是用传感器来捕捉表演者的动作数据,并将这些数据直接或间接生成脸部表情,产生细致入微的表情,缺点是成本大,不利于推广。
对于基于人脸肌肉的表情模型,传统方法合成动画表情常常碰到两个问题:
(1)肌肉收缩时会破坏原来脸部的拓扑结构;
(2)肌肉收缩所应该具有的局部皮肤膨胀现象。
因此,传统的生成真实感人脸表情动画算法存在着以下不足之处:(1)传统的位移约束算法在处理脸部的拓扑结构时易出现“突尖”情况;(2)传统的人脸肌肉运动主要是使用线性肌来模拟肌肉的拉伸,线性肌方法在解决脸部皮肤膨胀现象时立体感不够强,变化不够自然;(3)皮肤是不可压缩的,现实中当肌肉收缩时,一部分皮肤组织跟着收缩,而另一部分皮肤组织因此而膨胀,采用保体积法把人脸模型分为表皮层、脂肪层、肌肉层,脸部的三角面片改成是有体积的三角棱柱,人脸肌肉收缩时保持体积不变。采用保体积法,整个求解过程是一个迭代的过程,所以表情生成速度较慢,不能满足实时性较高的游戏和动画行业的需求。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提供一种模型简单,可明显提高动画表情生成速度的基于肌肉模型的人脸表情动画合成方法;本方法在人脸肌肉模型的基础上,可使表情变化带动肌肉的收缩更加自然,从而虚拟人物的表情变化更具视觉效果,立体感更强。
本发明的目的通过下述技术方案实现:一种基于肌肉模型的人脸表情动画合成方法,其特征在于:包括下述步骤——
(1)确定受影响区域,所述受影响区域包括挤压区域Er和由挤压区域生成的膨胀区域Eb
所述挤压区域Er的点P满足
{P|P∈F且
Figure A200910037457D00051
Figure A200910037457D00052
的夹角是锐角},
其中V1为骨结点,V2表示皮肤结点,F表示肌肉向量
Figure A200910037457D00053
影响区域的边缘点集,M表示受肌肉向量影响最大的点。
所述由挤压区域生成的膨胀区域Eb的点P满足
{ P / P &NotElement; E &Exists; Q &Element; E r , | PQ | < e } ,
其中e是一个预设定的值,|PQ|表示人脸网格上从点P到点Q的欧氏距离,E为受肌肉向量影响区域的点集合。
传统的方法中只处理影响区域内受挤压的那些点,这种方法的缺点是肌肉运动的立方体感不强,而且容易造成“突尖”现象。本发明除了处理挤压区域的点还处理挤压区域生成的膨胀区域内的点。
(2)构造受影响区域点的位移函数。
在本发明中,我们重新定义了影响区域内点的位移函数。在拉力的作用下,人脸肌肉变化的凹凸感很强。传统的位移函数只考虑了人脸肌肉挤压上拉部分,在本发明中,针对膨胀区域,我们定义了一个新的位移函数,使得人脸肌肉变化更加自然。
所述挤压区域Er中的点P的位移函数采用线性肌方法处理。
所述受影响区域中由挤压区域生成的膨胀区域Eb中点P的位移函数为
其中M表示受肌肉向量影响最大的点,rmin表示M到集合Er的最短距离,设P0∈Er满足|P0M|=rmin,K2表示肌肉的弹性因子,fm表示肌肉拉力的大小,Fun定义为
F un ( offset ) = sin ( offset effect _ level + 2 &CenterDot; 1 m _ fBulgeLen &CenterDot; &pi; ) , offset < ( effect _ level + 2 ) &times; m _ fBulgeLen , 0 , otherwise
其中,effect_level(预先设定)表示肌肉运动所能影响到的网格范围,m_fBulgeLen表示当前计算点P到P0点的欧氏距离。
(3)计算受影响区域点的新位置。
传统的方法只计算影响区域中挤压区域点的新位置,本发明中我们还计算膨胀区域点的新位置。根据我们前面定义的位移函数及预先设定的参数,我们容易计算出挤压区域和膨胀区域点的位置。
所述挤压区域Er中的点P的新位置由线性肌方法得到。
所述由挤压区域生成的膨胀区域Eb中点P的新位置为
Figure A200910037457D00063
其中,P′表示点新的坐标,P表示点原来的坐标,K1表示位移因子,s是所述步骤(2)中计算得到的位移函数值,Np表示P点处的法向量。
(4)根据受影响区域点的新位置生成人脸表情动画。
本发明方法的原理:考虑到以下因素:(1)肌肉向量控制区域与其周围一定范围内是大致平坦的;(2)人脸网格中共享同一个顶点的边的长度相差不大;(3)接近骨结点一端的皮肤组织会膨胀。传统的人脸肌肉运动主要是使用线性肌来模拟肌肉的拉伸,本发明在此基础上提出了一种伪膨胀算法,直接改变皮肤网格上点的位置,通过参数调整而达到类似膨胀的效果。本算法先计算肌肉运动中肌肉向量所引起的区域,再通过该挤压区域生成膨胀区域。对于挤压区域,可以采用传统的线性肌方法计算;对于膨胀区域,定义了一个新的位移函数,从而方便计算出膨胀区域中点的新的位置。通过伪膨胀法,加入了一个膨胀区域,可使得人脸肌肉运动更加自然,表情变化的立体感和真实感更强,模型的适用性也更强。
本发明与现有技术相比具有如下的优点及有益效果:
(1)模型简单,计算量少。与保体积法相比,本方法直接改变网格上点的位置,通过调整参数达到膨胀的效果,求解过程不需要迭代,效率较高。
(2)人脸网格的拓扑结构得以保留。避免了受控制点位移随拉力增大而差距增大而使得人脸网格呈“突尖”的状况。
(3)加上伪膨胀法后的人脸表情动画变化的立体感更强,变化更自然。在本算法中,我们从受肌肉影响最大的点出发,得到肌肉的影响区域,通过重新计算肌肉向量影响区域的点的位置,可使得表情变化更加的自然,立体感更强。
(4)人脸模型的表情有了更多的细节,表情更加的丰富,更具有真实性。
(5)动画表情生成速度快,能满足一般游戏和动画行业的需求。
(6)由于表情变化更加自然,故容易和语音(主要是口形与发音)对应,通过基于脚本的驱动,生成有声有色的人脸表情动画。
(7)制作过程简便,制作成本低。
(8)适应性强,便于推广。本算法通过ANSI C++实现,便于推广和移植。提供了多个接口,便于调用。
附图说明
图1是肌肉在人脸模型上的分布示意图。
图2是图1所示人脸肌肉模型的下巴的控制点示意图。
图3是二维肌肉向量的示意图。
图4是肌肉模型的侧面示意图。点V1、V2分别表示肌肉向量的头和尾,水平直线表示网格的侧面,线上的点表示网格的结点,其中点M表示受肌肉影响最大的点。
图5是图4所示肌肉模型膨胀的侧面示意图,M点左边深黑色的点集会使它的临近点受到挤压,右边浅黑色的点会拉伸它的临近点。
图6是肌肉处于松弛状态示意图,点集{P-3,P-2,P-1,P0,P1,P2,P3,P4}是Er,其他点的集合是Eb,其中点M表示受肌肉影响最大的点。
图7是图3所示肌肉处于兴奋状态示意图。
图8是没加伪膨胀算法的微笑模型的线框图。
图9是加了伪膨胀算法的微笑模型的线框图。加了伪膨胀算法后,虚拟人物的微笑有一小块肉突起(白色圈),看起来更具有立体感
图10是没加伪膨胀算法的微笑模型的着色图。
图11是加了伪膨胀算法的微笑模型的着色图。加了伪膨胀算法后,虚拟人物的微笑有一小块肉突起(白色圈),看起来更具有立体感。
图12是本发明的一个交互界面。
图13是加了伪膨胀算法的线性肌模型实现头文件。
图14是肌肉运动函数的实现流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
本发明基于肌肉模型的人脸表情动画合成方法的具体包括下述步骤——
(一)预处理
先建立人脸的肌肉模型。传统的人脸肌肉模型主要用到线性肌(Linear Muscle)模型[有颧大肌(Zygomatic_Major)、降口角肌(Angular_Depressor)等]和括约肌(Circular Muscle)模型(有口轮匝肌等),并在些基础上衍生出三种新的肌肉模型:
(1)额肌(HeadMuscle),用于模拟人脸额头部分的肌肉运动。
(2)面颊肌(CheekMuscle),用于模拟人脸面颊部分的肌肉运动。
(3)眼肌(EyeMuscle),用于模型人眼附近肌肉动画。
本实施例中一共用到20块线性肌,1块括约肌,1块额肌,2块面颊肌,2块眼肌。如图1及图2所示,人脸表情变化主要是通过控制人脸肌肉模型的控制点来完成,而这些控制点是通过手动设定的。以这些控制点为顶点,我们可以建立一个人脸肌肉模型的三角剖分。
再定义模型的参数:
(1)V1:骨结点,作为拉伸的源头。
(2)V2:皮肤结点,表明肌肉的作用方向和距离。
(3)Ω:影响范围,以角度的形式表示。
(4)Rs:表示拉力的衰减的开始距离。
(5)Rf:表示拉力的衰减的终端。
(6)Kc:肌肉弹性系数。
(7)E:表示受肌肉向量影响的点的集合,是一个锥体。
(8)F:表示E中边缘点的集合。
(9)fm:表示肌肉拉力的大小。
(10)M:表示E中受肌肉向量影响最大的点。
以上参数是预先给定的或通过简单计算就可得到,其中肌肉向量的示意图参见图3。
(二)确定肌肉运动的挤压区域
对比图4和图5可以看到,肌肉运动对F中的点的影响是不一样的,集合F中的点可以分成两类,M点左边深黑色的点会使它的临近点受到挤压,右边浅黑色的点会拉伸它的临近点。所以我们在线性肌的属性中加入集合Er表示受挤压的点的集合,Er的点满足:
{P|P∈F且
Figure A200910037457D00091
Figure A200910037457D00092
的夹角是锐角}。
在这里,我们只需计算挤压区域,因为确定了挤压区域之后,拉伸区域随之也就确定,这样便节省了计算时间。
(三)确定挤压区域所生成的膨胀区域
传统的线性肌方法只处理了受挤压区域,实际上这样容易造成“突尖”,破坏原有人脸网格的拓扑模型。所以我们提出了一种伪膨胀算法,即还需要计算由挤压区域生成的膨胀区域Eb
{ P / P &NotElement; E &Exists; Q &Element; E r , | PQ | < e } ,
其中,e是一个预设定的值,|PQ|表示人脸网格上从点P到点Q的欧氏距离。
(四)构造挤压区域和膨胀区域点的位移函数
当肌肉处于兴奋状态时,挤压区域Er中的点P的位移函数按线性肌方法处理,我们只需要定义膨胀区域Eb中的点P的位移函数:
Figure A200910037457D00103
其中rmin表示M到集合Er的最短距离,不妨设P0∈Er满足
|P0M|=rmin
K2表示肌肉的弹性因子,fm表示肌肉拉力的大小,Fun定义为
F un ( offset ) = sin ( offset effect _ level + 2 &CenterDot; 1 m _ fBulgeLen &CenterDot; &pi; ) , offset < ( effect _ level + 2 ) &times; m _ fBulgeLen , 0 , otherwise
其中,effect_level(预先设定)表示肌肉运动所能影响到的网格范围,m_fBulgeLen表示当前计算点P到P0点的欧氏距离。
(五)计算挤压区域和膨胀区域中的点的新的位置
当脸部肌肉运动时,挤压区域Er中的点P的新位置由线性肌方法得到,膨胀区域Eb中的点P的位置计算如下:
Figure A200910037457D00105
其中,P表示原来的坐标,K1表示位移因子,s是步骤(四)中计算得到的位移函数值,Np表示P点的法向量。
图6和图7分别表示肌肉处于松弛状态和兴奋状态的示意图。
(六)编程实现
考虑到运行效率和移植性,本算法选择ANSI C++来实现,不过也非常容易用其他开发语言来实现。
图13是加了伪膨胀算法的线性肌模型对象图,主要是增加了一些计算膨胀区域的属性,重定义了肌肉运动函数和肌肉变形函数。
算法的核心是肌肉运动函数,肌肉运动函数的具体的实现流程图如图14所示。
本发明的效果示例图如图8、9、10、11所示,其中图8是没加伪膨胀算法的微笑模型的线框图,图9是加了伪膨胀算法的微笑模型的线框图,图10是没加伪膨胀算法的微笑模型的着色图,图11是加了伪膨胀算法的微笑模型的着色图。加了伪膨胀算法后,虚拟人物的微笑有一小块肉突起(白色圈住的部分),看起来更具有立体感和真实感。
图12是本发明开发的一个交互界面,通过设定不同的参数,可以产生一系列逼真的人脸表情。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (7)

1、一种基于肌肉模型的人脸表情动画合成方法,其特征在于:包括下述步骤——
(1)确定受影响区域;
(2)构造受影响区域点的位移函数;
(3)计算受影响区域点的新位置;
(4)根据受影响区域点的新位置生成人脸表情动画;
所述受影响区域包括挤压区域Er和由挤压区域生成的膨胀区域Eb
2、根据权利要求1所述的基于肌肉模型的人脸表情动画合成方法,其特征在于:所述挤压区域Er的点P满足
{P|P∈F且
Figure A200910037457C00021
Figure A200910037457C00022
的夹角是锐角),
其中V1为骨结点,V2表示皮肤结点,F表示肌肉向量
Figure A200910037457C0002145034QIETU
影响区域的边缘点集,M表示受肌肉向量影响最大的点。
3、根据权利要求1所述的基于肌肉模型的人脸表情动画合成方法,其特征在于:所述由挤压区域生成的膨胀区域Eb的点P满足
其中e是一个预设定的值,|PQ|表示人脸网格上从点P到点Q的欧氏距离,E为受肌肉向量影响区域的点集合。
4、根据权利要求1所述的基于肌肉模型的人脸表情动画合成方法,其特征在于:所述步骤(2)中,受影响区域中由挤压区域生成的膨胀区域Eb中点P的位移函数为
其中M表示受肌肉向量影响最大的点,rmin表示M到集合Er的最短距离,设P0∈E满足|P0M|=rmin,K2表示肌肉的弹性因子,fm表示肌肉拉力的大小,Fun定义为
F un ( offset ) = sin ( offset effset _ level + 2 . 1 m _ fBulgeLen . &pi; ) , offset < ( effset _ level + 2 ) &times; m _ fBulgeLen , 0 , otherwise
其中,effect_level(预先设定)表示肌肉运动所能影响到的网格范围,m_fBulgeLen表示当前计算点P到P0点的欧氏距离。
5、根据权利要求1或4所述的基于肌肉模型的人脸表情动画合成方法,其特征在于:所述由挤压区域生成的膨胀区域Eb中点P的新位置为
Figure A200910037457C00031
其中,P′表示点新的坐标,P表示点原来的坐标,K1表示位移因子,s是所述步骤(2)中计算得到的位移函数值,Np表示P点处的法向量。
6、根据权利要求1所述的基于肌肉模型的人脸表情动画合成方法,其特征在于:所述挤压区域Er中的点P的位移函数采用线性肌方法处理。
7、根据权利要求1所述的基于肌肉模型的人脸表情动画合成方法,其特征在于:所述挤压区域Er中的点P的新位置由线性肌方法得到。
CNA2009100374579A 2009-03-02 2009-03-02 基于肌肉模型的人脸表情动画合成方法 Pending CN101488234A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2009100374579A CN101488234A (zh) 2009-03-02 2009-03-02 基于肌肉模型的人脸表情动画合成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2009100374579A CN101488234A (zh) 2009-03-02 2009-03-02 基于肌肉模型的人脸表情动画合成方法

Publications (1)

Publication Number Publication Date
CN101488234A true CN101488234A (zh) 2009-07-22

Family

ID=40891115

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2009100374579A Pending CN101488234A (zh) 2009-03-02 2009-03-02 基于肌肉模型的人脸表情动画合成方法

Country Status (1)

Country Link
CN (1) CN101488234A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857311A (zh) * 2019-02-14 2019-06-07 北京达佳互联信息技术有限公司 生成人脸三维模型的方法、装置、终端及存储介质
CN109978996A (zh) * 2019-03-28 2019-07-05 北京达佳互联信息技术有限公司 生成表情三维模型的方法、装置、终端及存储介质
CN110288891A (zh) * 2019-07-01 2019-09-27 杨文广 一种用于临床医学教学的注射模拟装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857311A (zh) * 2019-02-14 2019-06-07 北京达佳互联信息技术有限公司 生成人脸三维模型的方法、装置、终端及存储介质
CN109978996A (zh) * 2019-03-28 2019-07-05 北京达佳互联信息技术有限公司 生成表情三维模型的方法、装置、终端及存储介质
CN110288891A (zh) * 2019-07-01 2019-09-27 杨文广 一种用于临床医学教学的注射模拟装置
CN110288891B (zh) * 2019-07-01 2024-03-22 杨文广 一种用于临床医学教学的注射模拟装置

Similar Documents

Publication Publication Date Title
CN100562895C (zh) 一种基于区域分割和分段学习的三维人脸动画制作的方法
CN103208133B (zh) 一种图像中人脸胖瘦的调整方法
CN108335345B (zh) 面部动画模型的控制方法及装置、计算设备
US8624901B2 (en) Apparatus and method for generating facial animation
KR100901274B1 (ko) 캐릭터 애니메이션 시스템 및 그 방법
CN101324961B (zh) 计算机虚拟世界中人脸部三维贴图方法
CN106023288A (zh) 一种基于图像的动态替身构造方法
CN103854306A (zh) 一种高真实感的动态表情建模方法
CN105513114A (zh) 三维动画生成的方法和装置
KR101148101B1 (ko) 얼굴 표정 리타게팅 방법
Ping et al. Computer facial animation: A review
CN104156995A (zh) 一种针对敦煌飞天形象的飘带动画制作方法
JP2008140385A (ja) キャラクタアニメーション時の皮膚のしわのリアルタイム表現方法及び装置
CN110443872B (zh) 一种具备动态纹理细节的表情合成方法
CN114998488A (zh) 一种适用于手语信息传播的虚拟人模型制作方法
Guerraz et al. A procedural approach to animate interactive natural sceneries
CN101488234A (zh) 基于肌肉模型的人脸表情动画合成方法
CN100416611C (zh) 一种基于网格拓扑建模的三维人脸动画制作方法
CN114299200A (zh) 布料动画处理方法及装置、电子设备、存储介质
CN110400366A (zh) 一种基于OpenGL的实时洪水灾害可视化仿真方法
CN116664726B (zh) 视频获取方法、装置和存储介质及电子设备
CN103325086B (zh) 一种基于四面体坐标系的三维图形的变形方法
US11948240B2 (en) Systems and methods for computer animation using an order of operations deformation engine
Wu et al. A sketch-based interactive framework for real-time mesh segmentation
Galbraith et al. BlobTree trees

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20090722