一种三维人脸动画的制作方法

文档序号:6553444阅读:346来源:国知局
专利名称:一种三维人脸动画的制作方法
技术领域
本发明属于计算机三维动画技术领域。
三维人脸动画技术起步于70年代。其后,很多研究人员在这个领域做了大量的研究工作,以期能够产生具有真实感的人脸动画,并能够实时的模拟真实人脸的各种表情和动作。但由于人脸生理结构本身的复杂性,以及人们对人脸外观的敏感性,使得达到这一目标较为困难。目前这方面的工作取得了一些进展,但是,作为实际运用的系统,它们还存在某些不足。
《美国计算机学会计算机图形专业组’95年会论文集》(ACM SIGGRAPH ’95Conference Proceedings,pp.55-62)公布的一种基于三维人脸分层模型的动画系统,其系统模型的设计十分复杂,需要大量的手工工作;在模拟人脸运动过程中,所需的计算量也非常大,难以实现实时性;且由于计算量随网格模型规模(即网格模型中网格点的数量)非线性加速增长,使得该技术的可扩放性较差。
《美国计算机学会计算机图形专业组’98年会论文集》(ACM SIGGRAPH ’98Conference Proceedings,pp.55-66)公开了一种先实时跟踪预先标记在真实人脸上的大量的标志点,然后通过这些标志点的线性组合来计算三维人脸网格模型上网格点的运动的系统;该论文集的第75-84页描述了一种通过对大量手工标记的对应特征点进行线性插值来计算运动过程中网格点位置的系统。这两种系统中,运动数据的采集(跟踪标志点或标记特征点)需要耗费大量的计算或手工工作,运动的控制复杂;由于这两种系统采用的插值方法,人脸动画要获得较高的真实感,需要设置大量的标志点或特征点,工作繁重。
《美国计算机学会数学软件学报》(ACM Transactions on Mathematical Software,vol.22,col.4,pp.469-483,December 1996)提到的狄里克利自由变形算法(DFFD-Dirichlet Free-Form Deformation)在模拟三维曲面变形方面具有较好的性能。目前,这种算法主要用于三维几何实体的整体造型,尚未见被用于模拟三维人脸的运动。
本发明的目的是提出一种三维人脸动画的制作方法,在保证三维人脸动画具有较高真实感的前提下,减小系统的计算量,提高系统的实时性;减轻模型设计的工作量;简化三维人脸运动的控制;提高系统的可扩放性。
这种三维人脸动画的制作方法,其特征在于首先获取三维人脸网格模型;然后对三维人脸网格模型进行功能区划分;根据各功能区的运动特性、以及功能区之间运动的相互影响,设计运动控制点;运用DFFD算法,计算控制点对网格模型运动的影响;最后通过驱动控制点的运动,来驱动三维人脸网格模型的运动,模拟真实的脸部运动;
所述三维人脸网格模型的获取,即采集三维人脸网格模型的数据,包括采用三维激光扫描仪扫描真实的人脸生成三维人脸网格模型、或从计算机存储设备中读取已有的三维人脸网格模型,然后用三维绘图软件包将三维人脸模型绘制在显示器上;所述三维人脸网格模型功能区的划分,是对应于人脸主要运动器官,如鼻子、嘴巴、眼球、脸颊、额头等等,将绘制在显示器上的整个三维人脸模型划分成若干个功能区;划分时,使用计算机输入设备如鼠标拾取、或键盘输入,指定各个功能区包含的网格点和面片(即网格模型上由网格点间连线围成的多边形);还可以对各功能区进一步的细分;所述根据各功能区的运动特性以及功能区之间运动的相互影响设计运动控制点,是使用计算机输入设备,如鼠标拾取和拖动或键盘输入,按如下方法指定已有的网格点,或添加新的三维空间点,作为运动控制点根据人们对人脸运动特性的视觉直观认识,在功能区运动幅度较大的区域或几乎不发生运动的区域,设计控制该功能区运动的控制点即主动控制点;根据人脸器官之间运动的相互影响关系即器官之间的连带运动,在网格模型上对应的区域,设计控制相应功能区之间连带运动的控制点即被动控制点,作为施加这种运动影响的功能区的受控点,并作为接受这种运动影响的功能区的控制点;所述运用DFFD算法计算控制点对网格模型运动的影响,是使用计算机计算控制点对受控点的控制系数除眼球、牙齿功能区的运动可以用简单的刚体运动来模拟外,各个功能区分别采用DFFD算法计算功能区中每一个控制点对受控点的控制系数,这种计算可采取(1)非实时计算预先计算各控制点对受控点的控制系数,然后在三维人脸网格模型的运动过程中,保持控制系数不变;或(2)实时计算实时计算各控制点对受控点的控制系数,即在三维人脸网格模型的运动过程中,当某功能区中控制点与受控点的空间位置发生变化后,重新计算控制点对受控点的控制系数;所述驱动三维人脸网格模型的运动,是首先移动控制点,然后根据控制点的运动位移和它对受控点的控制系数,计算受控点的运动位移,最后根据计算结果移动受控点,从而驱动三维网格模型的运动;主动控制点的移动可采用硬件或软件的方法硬件方法如用鼠标拖动控制点、或用键盘输入控制点的位移;软件的方法如从磁盘文件中读出控制点的位移,或从第三方软件中获取人脸运动数据,根据其规则转化为控制点的位移;某些主动控制点的位移也可以采用邻近主动控制点位移的平滑插值得到;被动控制点的移动则是将其作为相关主动控制点的受控点,经过计算得到;受控点位移的具体计算方法是,将控制点的位移和它对某个受控点的控制系数相乘,作为控制点对该受控点的运动影响,把某个受控点受到的所有运动影响叠加起来,作为该受控点的位移。
与现有技术相比较,本发明的优点在于
由于本发明采用了功能区划分技术,系统能很好地分别模拟运动规律相对独立的各功能区的运动;由于本发明引入了被动控制点,系统能够很好地模拟功能区之间运动的相互影响;对功能区的进一步细分,能更加细腻地模拟人脸运动;由于DFFD是一种局部变形技术,且在模拟连续曲面变形方面性能很好,所以本发明采用DFFD模拟人脸肌肤运动,能获得较高的真实感,在实时计算的方式下,真实感能得到进一步的提高。所以在三维人脸动画的真实感上,计算量较小的本发明与计算量很大的现有技术具有可比性。
DFFD的计算量随计算规模呈非线性的加速增长,所以降低计算规模能大大降低计算量。由于本发明采用三维人脸网格模型功能区划分技术,降低了DFFD的计算规模,从而大大降低了系统的计算量,提高了系统的实时性;并且在采用非实时计算方式时,各功能区只预先进行一次DFFD的计算,更进一步降低了系统的计算量,能很好地适用于计算能力较弱的硬件条件。所以,与现有技术相比,本发明大大降低了系统的计算量,因此具有良好的实时性。
由于本发明网格模型的功能区数量不多,所以划分功能区的工作量较小;划分时,还可根据网格模型的规模选择功能区的细分程度,以降低系统的计算量或提高运动模拟的细腻程度,所以功能区的划分具有一定的灵活性。由于用较少的控制点即可较好的模拟人脸运动,所以控制点的数量较少,控制点设计的工作量较小;对不同的模型,控制点与功能区的相对位置大致保持不变,具有一定的通用性;根据对运动细节模拟的精细程度,可以增加或删除一些控制点,所以控制点的设计具有一定的灵活性;最后,模型的运动仅由数量较少的主动控制点来控制,并且由于一些主动控制点基本不发生运动,而还有一些主动控制点的运动可以通过邻近主动控制点运动的平滑插值来得到,这就使得本发明需要直接驱动的主动控制点数量进一步减少,因此运动控制较为简单。所以,同现有技术相比较,本发明减少了模型设计的工作量,简化了三维人脸的运动控制,且模型的设计和运动的控制具有一定的通用性和灵活性。
对于不同规模的三维人脸网格模型,通过功能区的划分、控制点的设计、计算方式的选择,可以满足对运动模拟的真实感和实时性的要求。所以,与现有技术相比,本发明具有良好的可扩放性。
附图1是从计算机存储设备中读取的已有的三维人脸网格模型示例图。
图2是本发明实施例的一种对图1三维人脸网格模型主要功能区划分和控制点设计方式示例图。
以下结合


本发明的实施例。
实施例1本实施例是基于附图1的一个简单实施方案。
首先可通过三维激光扫描仪扫描真实人脸得到原始的三维人脸网格模型,或从计算机存储设备中读取已有的三维人脸网格模型,采用三维绘图软件包将三维人脸网格模型绘制在显示器上,得到附图1;然后通过计算机输入设备对原始的三维人脸网格模型附图1进行主要功能区的划分、以及功能区控制点的设计,得到附图2。具体设计的做法如下将绘制在显示器上的三维人脸网格模型先划分出左眼球和右眼球(1)、前额(包括上眼睑)(2)、鼻子(3)、左脸颊(包括左下眼睑)(4)、右脸颊(包括右下眼睑)(5)、嘴上部(6)、嘴下部(包括下巴)(7)、上颌牙齿(8)、下颌牙齿(9)等功能区,剩下部分作为一个功能区;为了更精细的模拟眼部的运动,还可以将前额和左、右脸颊功能区进一步细分,将眼睑从相应的功能区中划分出来,作为独立的功能区。
然后设计各功能区的控制点嘴下部功能区中,选取下嘴唇上下唇线上的部分网格点,下巴上的部分网格点,与剩余部分功能区交界上的部分网格点作为主动控制点;嘴上部功能区中,选取嘴角的网格点为被动控制点,唇线上的部分网格点作为主动控制点;左右脸颊功能区中,选取下眼睑轮廓上的部分网格点,颧骨附近的点作为主动控制点,选取与嘴上部、嘴下部功能区交界上的部分网格点作为被动控制点;鼻子功能区中,选取鼻梁、鼻尖和鼻翼上的部分网格点作为主动控制点,选取与其它功能区交界上的部分网格点作为被动控制点;前额功能区中,选取上眼睑轮廓上的部分网格点、眉心和眉骨附近的点,与剩余功能区交界上的部分网格点作为主动控制点;选取眼角上的网格点为被动控制点。为区别起见,在本实施例的附图2中,分别采用空心圆点、空心方形点和空心菱形点表示主动控制点,空心三角形点表示被动控制点,实心圆点表示受控点。
由于功能区和控制点的数量较小,所以上述模型设计的工作量较小。
然后采用DFFD算法分别计算各功能区中控制点对受控点的控制系数。由于每个功能区的控制点和网格点较少,所以系统计算量较小。
最后,采用硬件或软件的方法,驱动主动控制点,然后计算所有控制点和受控点的位移,根据计算结果移动这些点,以模拟人脸运动。
主动控制点中,有些点是大致不动的,比如前额功能区中与剩余部分功能区交界上的主动控制点,又如嘴下部功能区中与剩余部分功能区交界上的主动控制点,在附图2中它们是采用空心方形点表示的点。
还有一些主动控制点,它们的运动可以通过相关控制点运动的平滑插值来计算,比如嘴上部功能区中唇线上的部分主动控制点,它们的运动可以通过嘴角和嘴唇中部的几个控制点运动的贝塞尔(Bezier)插值得到,下嘴唇唇线和上下眼睑轮廓上的部分主动控制点也采取类似的处理,在附图2中它们采用空心菱形点表示。
在模拟人脸运动时,上述两类主动控制点的运动无需考虑,系统只需驱动剩下的主动控制点一在附图2中采用空心圆点表示,即可控制网格模型的运动,所以运动的控制较为简单。
若采用鼠标拖动的方法来驱动控制点,其具体操作是用鼠标将需要驱动的主动控制点移动到所需的位置,然后根据这些主动控制点的位移计算相关网格点的位移,最后移动这些网格点,人脸模型即从一个形状变化到另一个形状,从而得到了人脸的运动的效果。
若采用读入磁盘文件的方法来驱动主动控制点,其具体操作是预先将需要驱动的主动控制点的位移写入磁盘文件中,每个时刻主动控制点的位移作为一帧数据,写入若干帧;然后从该磁盘文件中连续读入各帧,根据每帧的数据移动相应的主动控制点,驱动人脸模型运动;连续地处理各帧,驱动人脸模型连续运动,从而得到了人脸动画的效果。
也可采用微软文字语音转化引擎(Microsoft Text-to-Speech Engine)来驱动主动控制点,其具体操作是向该引擎输入一段文字,该引擎就会产生这段文字的发音,同时产生发音过程中每个音素所对应的嘴形参数;从该引擎连续接收这些嘴形参数,根据其解释规则将嘴形参数转化为人脸模型中嘴部主动控制点的位移,然后移动相应的主动控制点,驱动模型嘴部的运动;连续处理这些嘴形参数,驱动人脸模型连续运动,从而得到人脸说话的效果。
从本实施例最后获得的人脸动画效果与现有技术相比,在类似的人脸运动真实感的效果下,由于本发明方法使所划分的功能区和设计的控制点数量较少,所以模型设计的工作量比现有技术大大减小;由于单个功能区所含的网格点和控制点较少,所以系统的计算量也比现有技术有较大的降低;由于需要直接驱动的主动控制点的数量较少,所以模型运动的控制比现有技术简单,大大降低了三维人脸动画制作的开销,更便于实施应用。
权利要求
1.一种三维人脸动画的制作方法,其特征在于首先获取三维人脸网格模型;然后对三维人脸网格模型进行功能区划分;根据各功能区的运动特性、以及功能区之间运动的相互影响,设计运动控制点;运用DFFD算法计算控制点对网格模型运动的影响;最后通过驱动控制点的运动来驱动三维人脸网格模型的运动,模拟真实的脸部运动;所述三维人脸网格模型的获取,即采集三维人脸网格模型的数据,然后用三维绘图软件包将三维人脸模型绘制在显示器上;所述三维人脸网格模型功能区的划分,是对应于人脸主要运动器官,将整个人脸模型划分成若干个功能区;所述根据各功能区的运动特性以及功能区之间运动的相互影响设计运动控制点,是使用计算机输入设备,按如下方法指定已有的网格点或添加新的三维空间点作为运动控制点根据人们对人脸运动特性的视觉直观认识,在功能区运动幅度较大的区域或几乎不发生运动的区域,设计控制该功能区运动的控制点即主动控制点;根据人脸器官之间运动的相互影响关系即器官之间的连带运动,在网格模型上对应的区域,设计控制相应功能区之间连带运动的控制点即被动控制点,作为施加这种运动影响的功能区的受控点,并作为接受这种运动影响的功能区的控制点;所述运用DFFD算法计算控制点对网格模型运动的影响是指,除眼球、牙齿功能区的运动可以用简单的刚体运动来模拟外,对各个功能区分别采用DFFD算法计算功能区中每一个控制点对受控点的控制系数;所述驱动三维人脸网格模型的运动,是首先移动控制点,然后根据控制点的运动位移和它对受控点的控制系数,计算受控点的运动位移,最后根据计算结果移动受控点,从而驱动三维网格模型的运动;受控点位移的具体计算方法是将控制点的位移和它对某个受控点的控制系数相乘,作为控制点对该受控点的运动影响,把某个受控点受到的所有运动影响叠加起来,作为该受控点的位移。
2.如权利要求1所述三维人脸动画的制作方法,其特征在于所述三维人脸网格模型功能区的划分,还对整个人脸模型划分成的若干功能区进行进一步细分。
3.如权利要求1所述三维人脸动画的制作方法,其特征在于所述采用DFFD算法分别计算功能区中每一个控制点对受控点的控制系数采取非实时计算即预先计算各控制点对受控点的控制系数,在三维人脸网格模型的运动过程中,保持控制系数不变。
4.如权利要求1所述三维人脸动画的制作方法,其特征在于所述采用DFFD算法分别计算功能区中每一个控制点对受控点的控制系数分别采取实时计算即实时计算各控制点对受控点的控制系数,即在三维人脸网格模型的运动过程中,当某功能区中控制点与受控点的空间位置发生变化后,重新计算控制点对受控点的控制系数。
全文摘要
本发明三维人脸动画的制作方法,其特征是:首先获取三维人脸网格模型,然后对模型进行功能区划分,根据各功能区的运动特性和功能区之间运动的相互影响,设计运动控制点;采用DFFD算法计算控制点对模型运动的影响;通过驱动控制点来驱动模型的运动,模拟真实的人脸运动;此方法在保证模拟人脸运动的真实感的基础上,降低了模型设计的工作量和系统计算量,简化了模拟运动的控制,具有较好的实时性和可扩放性。
文档编号G06T15/00GK1383102SQ0111358
公开日2002年12月4日 申请日期2001年4月25日 优先权日2001年4月25日
发明者张青山, 陈国良 申请人:中国科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1