用于使二级特征动画化的系统和方法与流程

文档序号:37383052发布日期:2024-03-22 10:35阅读:17来源:国知局
用于使二级特征动画化的系统和方法与流程

本技术涉及用于面部的计算机动画的系统和方法。更具体地,本技术涉及基于面部几何图形的动画使二级面部组件动画化的系统和方法。


背景技术:

1、面部(例如人类或其他角色的面部)的计算机动画可能涉及一级面部几何图形以及若干二级面部组件(例如头发、面部毛发、下颌骨、眉毛(左和右)、睫毛(上和下;左和右)、舌头等)的几何图形的动画,这些组件可能与一级面部几何图形——即覆盖面部的皮肤的几何图形具有某种依赖性。在当前的动画技术中,使这些二级面部组件动画化可以由艺术家手动(例如逐帧地)完成,或者可以通过面部动画装备程序地完成,该面部动画装备指定二级面部组件的几何图形对一级面部几何图形的依赖性。这些依赖性通过3d动画装备应用中可用的几何操作来表示,例如将二级几何图形锚定到一级几何图形中的固定点(使得将一级几何图形点的任何旋转/平移都应用于二级几何图形)。离线(即非实时)3d动画应用(例如面部动画装备)往往提供丰富的运算符集,并且可以添加自定义运算符,这些运算符可以被组合成复杂的规则网络,以驱动这样的几何图形。这些离线3d动画应用并不适合于实时应用,因为在实时应用中,一级面部几何图形可能每秒变化数次(例如动画视频的每一帧)。相比之下,存在实时3d动画应用(例如由epic游戏等公司制作的虚幻引擎(unrealengine),该应用提供了适合于高效(即实时)计算的有限范围的预定义运算符。目前,还没有用于离线3d动画应用与实时3d动画应用之间的运算符的直接映射。人们普遍希望能够从非实时动画设置(例如,从艺术家和/或从面部动画装备)中获得与二级面部组件对一级面部几何图形的依赖性有关的信息,并且将这些信息压缩为二级面部组件动画信息,该二级面部组件动画信息可以被部署到具有有限工具集的实时动画应用中。

2、人脸的二级面部组件可能会对逼真动画,特别是逼真的实时动画带来特别的挑战。由于用于对每个二级面部组件建模的点(或顶点)的数量以及这些二级面部组件对一级面部几何图形的依赖性,使二级面部组件逼真地动画化可能本身就很复杂。此外,二级面部组件的动画可能相互依赖。例如,上睫毛的动画取决于一级面部几何图形,但是在一些情况下(例如当角色眯眼时),上睫毛可能会被其他二级面部组件(例如角色的眉毛或下睫毛)触碰和推开。

3、为了实时地使面部逼真地动画化,希望在人类观察者的感知时间内使一级面部几何图形和二级面部组件的几何图形二者动画化。例如,对于每秒24帧的帧速率的实时动画,动画中的一帧必须在0.0416秒内生成。然而,这种帧生成率通常会包括该帧的整个动画,因此,用于使面部(特别是用于使二级面部组件)动画化的时间预算可能会大大少于此。

4、普遍希望考虑到一级面部几何图形使二级面部组件动画化的方法。

5、相关技术的前述示例和与此相关的限制旨在是说明性的而非排他性的。通过阅读说明书和研究附图,相关技术的其他限制对于本领域技术人员将变得明显。


技术实现思路

1、结合系统、工具和方法来描述和示出以下实施方式及其方面,所述系统、工具和方法意在是示例性和说明性的,而不限制范围。在各种实施方式中,上述问题中的一个或更多个得以减少或消除,而其他实施方式针对其他改进。

2、本发明的一个方面提供了一种用于生成基于计算机的面部动画的一个或更多个帧的方法。该方法包括:在处理器处获得面部动画训练数据的多个帧,对于面部动画训练数据的多个帧中的每一帧,面部动画训练数据包括:训练一级面部几何图形的训练表示,训练一级面部几何图形的训练表示包括用于训练多个一级面部顶点的几何信息;以及训练二级面部组件几何图形的对应训练表示,训练二级面部组件几何图形的训练表示表示包括用于训练多个二级面部组件顶点的几何信息。面部动画训练数据还包括子集索引,子集索引包括所训练的多个一级面部顶点的子集的索引。该方法包括:由处理器使用面部动画训练数据训练二级面部组件模型;在处理器处获得一级面部动画的一个或更多个帧,一级面部动画的一个或更多个帧中的每一帧包括动画一级面部几何图形的动画表示,动画一级面部几何图形的动画表示包括动画多个一级面部顶点的几何信息;以及对于一级面部动画的一个或更多个帧中的每一帧:由处理器基于一级面部动画的帧和二级面部组件模型生成二级面部组件动画的对应帧,二级面部组件动画的对应帧包括动画二级面部组件几何图形的动画表示,动画二级面部组件几何图形的动画表示包括动画多个二级面部组件顶点的几何信息,其中,二级面部组件几何图形基于动画一级面部几何图形。

3、本发明的另一个方面提供了一种用于训练用于基于计算机的面部动画的二级面部组件模型的方法,其中,二级面部组件模型将一级面部动画的一个或更多个帧作为输入,一级面部动画的一个或更多个帧中的每一帧包括动画一级面部几何图形的动画表示,动画一级面部几何图形的动画表示包括动画多个一级面部顶点的几何信息,并且对于一级面部动画的一个或更多个帧中的每一帧,二级面部组件模型输出二级面部组件动画的对应帧,二级面部组件动画包括动画二级面部组件几何图形的动画表示,动画二级面部组件几何图形的动画表示包括动画多个二级面部组件顶点的几何信息,其中,二级面部组件几何图形考虑了一级面部几何图形。该方法包括:在处理器处获得面部动画训练数据的多个帧,对于面部动画训练数据的多个帧中的每一帧,面部动画训练数据包括:训练一级面部几何图形的训练表示,训练一级面部几何图形的训练表示包括训练多个n个一级面部顶点的几何信息;以及训练二级面部组件几何图形的对应训练表示,训练二级面部组件几何图形的对应训练表示包括训练多个m个二级面部组件顶点的几何信息。面部动画训练数据还包括子集索引,子集索引包括所训练的多个n个一级面部顶点的子集p的索引(p≤n)。该方法包括:使用面部动画训练数据训练二级面部组件模型。使用面部动画训练数据训练二级面部组件模型包括:对组合训练矩阵执行矩阵分解(例如,主成分分析(pca)、独立成分分析(ica)、非负矩阵因式分解(nmf)、任何其他合适的矩阵分解或降维技术等),组合训练矩阵包括:多个f个帧,多个f个帧中的每一帧包括与多个n个一级面部顶点中的子集p对应的p个一级面部训练顶点位置;以及m个二级面部组件训练顶点位置;以生成组合矩阵分解;以及基于组合矩阵分解生成二级面部组件模型。

4、对于一级面部动画的一个或更多个帧中的每一帧,动画一级面部几何图形的动画表示可以包括多个k个一级面部动画混合形状权重。对于二级面部组件动画的每个对应帧,动画二级面部组件几何图形的动画表示可以包括多个q个二级面部组件动画混合形状权重。

5、二级面部组件模型可以包括权重转换矩阵c,并且对于一级面部动画的一个或更多个帧中的每一帧,基于一级面部动画的帧和二级面部组件模型生成二级面部组件动画的对应帧可以包括:将权重转换矩阵c右乘以一级面部动画的帧的多个k个一级面部动画混合形状权重,以在偏移矢量内生成二级面部组件动画的对应帧的多个q个二级面部组件动画混合形状权重。

6、二级面部组件模型可以包括权重转换偏移矢量并且对于一级面部动画的一个或更多个帧中的每一帧,基于一级面部动画的帧和二级面部组件模型生成二级面部组件动画的对应帧可以包括:将权重转换偏移矢量与权重转换矩阵c右乘以一级面部动画的帧的多个k个一级面部动画混合形状权重的乘积相加,以生成二级面部组件动画的对应帧的多个q个二级面部组件混合形状权重。

7、该方法可以包括实时执行以下步骤:在处理器处获得一级面部动画的一个或更多个帧,以及对于一级面部动画的一个或更多个帧中的每一帧,由处理器基于一级面部动画的帧和二级面部组件模型生成二级面部组件动画的对应帧。实时可以包括以至少与一个或更多个帧中的每一帧的动画帧速率一样快的速率、以至少每秒15帧的速率和/或以至少每秒24帧的速率来执行。

8、获得面部动画训练数据的多个帧可以包括:从计算机实现的动画装备接收训练一级面部几何图形的训练表示和训练第二面部组件几何图形的训练表示。获得面部动画训练数据的多个帧可以包括:至少部分地从用户输入接收训练一级面部几何图形的训练表示和训练第二面部组件几何图形的训练表示。

9、子集索引可以包括p个一级面部顶点的子集的索引,其中子集的数量p小于或等于多个一级面部顶点的数量。子集索引可以包括被用户选择为与第二面部组件几何图形相关的p个一级面部顶点的子集的索引。子集索引可以包括与二级面部组件几何图形接近(例如在接近阈值内或被选择为最接近的p个一级面部顶点)的p个一级面部顶点的子集的索引。子集索引可以包括被确定为与二级面部组件几何图形相关的p个一级面部顶点的子集的索引。这种相关性可以基于与二级面部组件几何图形如何相对于一级面部几何图形移动相关的p个一级面部顶点的集合来确定。

10、获得面部动画训练数据的多个帧可以包括以下操作中的至少一个:对于面部动画训练数据的一个或更多个帧中的每一帧,获得训练一级面部几何图形的训练表示;或者将训练一级面部几何图形的训练表示转换为多个n个一级面部训练顶点位置,每个一级面部训练顶点位置包括3个坐标。

11、获得面部动画训练数据的多个帧可以包括以下操作中的至少一个:对于面部动画训练数据的一个或更多个帧中的每一帧,获得训练一级面部几何图形的训练表示;或者将训练一级面部几何图形的训练表示转换为p个一级面部顶点的子集中的每一个的位置,p个一级面部顶点中的每一个包括3个坐标。

12、获得面部动画训练数据的多个帧可以包括以下操作中的至少一个:对于面部动画训练数据的一个或更多个帧中的每一帧,获得训练二级面部组件几何图形的训练表示;或者将训练二级面部组件几何图形的训练表示转换为多个m个二级面部组件训练顶点位置,每个二级面部组件训练顶点位置包括3个坐标。

13、使用面部动画训练数据训练二级面部组件模型可以包括:对组合训练矩阵执行矩阵分解(例如,主成分分析(pca)、独立成分分析(ica)、非负矩阵因式分解(nmf)、任何其他合适的矩阵分解或降维技术等),组合训练矩阵包括:多个f个帧,多个f个帧中的每一帧包括与p个一级面部顶点的子集对应的p个一级面部训练顶点位置;以及m个二级面部组件训练顶点位置;以生成组合矩阵分解;以及基于组合矩阵分解生成二级面部组件模型。

14、组合矩阵分解可以包括:维度为[q,3(m+p)]的组合基矩阵,其中,q是组合矩阵分解的混合形状的数量;以及维度为3(m+p)的组合平均矢量。

15、基于组合矩阵分解生成二级面部组件模型可以包括:从组合矩阵分解:通过从组合基矩阵中提取与p个一级面部顶点的子集对应的长度为q的3p个矢量(例如3p个列),生成维度为[q,3p]的组合一级子集基矩阵;以及通过从组合平均矢量中提取与p个一级面部顶点的子集对应的3p个元素,生成维度为3p的组合一级面部子集平均矢量。

16、基于组合矩阵分解生成二级面部组件模型可以包括:从组合矩阵分解:通过从组合基矩阵中提取与m个二级面部组件顶点对应的长度为q的3m个矢量(例如3m个列),生成维度为[q,3m]的二级面部组件基矩阵;以及通过从组合平均矢量中提取与m个二级面部组件顶点对应的3m个元素,生成维度为3m的二级面部组件平均矢量。

17、基于组合矩阵分解生成二级面部组件模型可以包括:基于组合一级子集基矩阵生成维度为[q,3p]的投影矩阵p,其中,投影矩阵p将p个一级面部顶点的子集的3p个位置或偏移的矢量投影到组合一级子集基矩阵的对应权重集中;以及至少部分基于投影矩阵p生成形成二级面部组件模型的一部分的权重转换矩阵c。

18、生成投影矩阵p可以包括:选择使得与将权重从组合一级子集基矩阵转换回p个一级面部顶点的子集的3p个位置或偏移(例如重建)相关联的误差最小化的投影矩阵p。生成投影矩阵p可以包括:选择使得与使用组合一级子集基矩阵将组合一级子集基矩阵的权重转换回p个一级面部顶点子集的3p个位置或偏移(例如重建)相关联的最小二乘误差最小化的投影矩阵p。生成投影矩阵p可以包括:根据p=(ata)-1at计算投影矩阵p,其中,at是组合一级子集基矩阵,并且a是其转置形式。

19、至少部分基于投影矩阵p生成形成二级面部组件模型一部分的权重转换矩阵c可以包括:基于一级面部动画确定维度为[k,3p]的一级顶点子集混合形状的矩阵v*;以及根据c=pv*t生成权重转换矩阵c。

20、动画一级面部几何图形的动画表示可以包括维度为[k,3n]的一级面部混合形状矩阵,其中,k表示动画一级面部几何图形的混合形状分解中的一级面部混合形状的数量,并且n表示动画一级面部几何图形的顶点的数量;以及基于一级面部动画确定一级顶点子集混合形状v*的矩阵包括:从一级面部混合形状矩阵中提取与p个一级面部顶点的子集对应的长度为k的3p个矢量(例如3p个列)。

21、对于一级面部动画的一个或更多个帧中的每一帧,动画一级面部几何图形的动画表示可以包括多个k个一级面部动画混合形状权重。对于一级面部动画的一个或更多个帧中的每一帧,动画二级面部组件几何图形的动画表示可以包括多个q个二级面部组件动画混合形状权重。对于一级面部动画的一个或更多个帧中的每一帧,基于一级面部动画的帧和二级面部组件模型生成二级面部组件动画的对应帧可以包括:将权重转换矩阵c右乘以一级面部动画的帧的多个k个一级面部动画混合形状权重,以在偏移矢量内产生生成包括二级面部组件动画的对应帧的多个q个二级面部组件动画混合形状权重的矢量。

22、基于组合分解生成二级面部组件模型可以包括:至少部分地基于投影矩阵p生成形成二级面部组件模型的一部分的权重转换偏移矢量

23、至少部分地基于投影矩阵p生成形成二级面部组件模型的一部分的权重转换偏移矢量可以包括:基于一级面部动画确定维度为3p的输入一级顶点子集平均矢量以及根据生成权重转换偏移矢量其中,是维度为3p的组合一级顶点子集平均矢量。

24、动画一级面部几何图形的动画表示可以包括维度为3n的输入一级面部平均矢量,其中,n表示一级面部几何图形的顶点数;并且基于一级面部动画确定输入一级顶点子集平均矢量包括:从输入一级面部平均矢量中提取与p个一级面部顶点的子集对应的3p个元素。

25、对于一级面部动画的一个或更多个帧中的每一帧,动画一级面部几何图形的动画表示可以包括多个k个一级面部动画混合形状权重。对于一级面部动画的一个或更多个帧中的每一帧,动画二级面部组件几何图形的动画表示包括多个q个二级面部组件动画混合形状权重。对于一级面部动画的一个或更多个帧中的每一帧,基于一级面部动画的帧和二级面部组件模型生成二级面部组件动画的对应帧可以包括:将权重转换矩阵c右乘以一级面部动画的帧的多个k个一级面部动画混合形状权重,以在偏移矢量内生成二级面部组件动画的对应帧的多个q个二级面部组件动画混合形状权重;以及将权重转换偏移矢量与将权重转换矩阵c右乘以一级面部动画的帧的多个k个一级面部动画混合形状权重的乘积相加,以生成包括二级面部组件动画的对应帧的多个q个二级面部组件混合形状权重的矢量。

26、对于一级面部动画的一个或更多个帧中的每一帧,由处理器基于一级面部动画的帧和二级面部组件模型生成二级面部组件动画的对应帧可以包括:对于二级面部组件动画的对应帧,根据重建三维顶点几何图形(独立于中性或从中性偏移),其中,是包括二级面部组件动画的对应帧的多个q个二级面部组件混合形状权重的矢量,d是维度为[q,3m]的二级面部组件基矩阵,是维度为3m的二级面部组件平均矢量,并且是包括m个二级面部组件顶点的3m个坐标的矢量。

27、要强调的是,本发明涉及上述特征的所有组合,即使这些特征被记载在不同的权利要求中。

28、除了上述示例性方面和实施方式之外,通过参照附图并且研究以下具体实施方式,另外的方面和实施方式将变得明显。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1