用于在计算机动画中构建肌肉到皮肤的变换的系统和方法与流程

未命名 07-19 阅读:85 评论:0

用于在计算机动画中构建肌肉到皮肤的变换的系统和方法
1.相关申请的交叉引用
2.本技术是美国临时申请63/076,856和63/076,858的非临时申请,并且根据35u.s.c.119要求美国临时申请63/076,856和63/076,858的优先权,该两个申请的全部内容特此通过引用明确并入本文。
3.本技术与2020年10月28日提交的共同未决和共同拥有的美国申请17/082,859,17/082,890和17/082,895相关,特此通过引用将这些申请中的每个的全部内容明确并入本文。
技术领域
4.本公开总体上涉及用于生成计算机生成的影像的工具。本公开更特别地涉及用于构建学习肌肉到皮肤的变换以创建角色的计算机生成的影像的机器学习模型的装置和技术。


背景技术:

5.许多行业生成或使用计算机生成的影像,诸如图像或视频序列。计算机生成的影像可以包括基于现场参与者的计算机动画角色。例如,长片创建者可能想要生成具有与现场参与者、人类或其他参与者相同或基本上类似的面部动作、移动、行为等的计算机动画角色。现有的动画系统可以在细节上重建非常类似于现场参与者的计算机动画角色的皮肤表面。模拟可能看起来与现场参与者类似的计算机动画角色的移动和/或面部动作仍然具有挑战性,因为在模拟过程中可能涉及大量的变量。例如,人的面部有40多块由7根神经控制的肌肉,一个面部动作可以分解成这些肌肉移动变化的不同组合。
6.一些现有的动画系统在很大程度上依赖于捕获现场参与者的面部扫描,并且要处理的面部扫描的量对于实验来说通常是巨大的,以获得不同的面部动作,这通常是繁琐的并且有时是不切实际的操作。
7.至少优选实施例的对象是解决上述缺点中的至少一些。另外的或替代的对象是至少为公众提供的有用的选择。


技术实现要素:

8.本文描述的实施例提供了一种用于学习动画系统中的面部动作的应变到皮肤的变换的计算机实现的方法。在数据束时间段上接收表示多个面部移动的参与者(actor)面部的多个面部扫描。数据束包括在数据束时间段上的时变面部肌肉应变向量的第一缓存,在数据束时间段上从多个面部扫描生成时变皮肤表面向量的第二缓存。数据束和对应于参与者的解剖数据被输入到学习模型。由学习模型基于在数据束时间段上的时变面部肌肉应变向量的第一缓存和对应于参与者的解剖数据来生成预测皮肤表面向量。基于预测皮肤表面向量和来自第二缓存的在数据束时间段上的时变皮肤表面向量的基准实况(ground truth)皮肤表面来计算度量。通过最小化计算的度量来更新学习模型的参数。
9.本说明书中使用的术语“包括”是指“至少部分由
……
组成”。当解释本说明书中包括术语“包括”的每个陈述时,除了此术语或以此术语开头的特征之外的特征也可以存在。诸如“包括(comprise)”和“包括(

comprises)”的相关术语将以相同的方式解释。
10.在一些实现方式中,学习模型是线性回归模型并且通过基于所计算的度量求解约束最小二乘(constrained least square)问题来更新。
11.在一些实现方式中,学习模型是全连接层,并且计算的度量是l2损失目标(loss objective)。
12.在一些实现方式中,生成多个数据束的训练数据集。该多个数据束对应于包括面部动作、对话和情绪描绘的任意组合的多种类型的面部移动。
13.在一些实现方式中,从更新的学习模型中导出至少面部肌肉应变向量和皮肤表面向量之间的变换关系。
14.在一些实现方式中,导出具有不是从多个面部扫描中的任一个获得的应变值的调整后的面部肌肉应变向量。使用变换关系,从调整后的面部肌肉应变向量生成调整后的预测皮肤表面向量。
15.在一些实现方式中,确定调整后的预测皮肤表面向量匹配期望的皮肤表面向量。调整后的面部肌肉应变向量被发送到动画创建系统,用于基于调整后的面部肌肉应变向量创建动画皮肤表面。
16.在一些实现方式中,多个面部扫描包括参与者的中性姿势的第一面部扫描和参与者的非神经姿势的第二面部扫描,并且其中第二面部扫描与第一面部扫描相隔一段时间。
17.在一些实现方式中,跨一段时间从参与者收集多个面部扫描,并且从在从该段时间收集的类似面部扫描中平均的面部扫描中获得基准实况皮肤表面。
18.在一些实现方式中,多个面部移动包括面部动作、对话和/或情绪描绘中的一者或多者。
附图说明
19.将参考附图描述根据本公开的各种实施例,在附图中:
20.图1图示了可以用于基于从对现场参与者的扫描中训练的机器学习模型来渲染显示角色动画的动画内容的动画流水线。
21.图2a至图2b图示了根据本文描述的一个实施例的示例神经系统,其中,使用如图1中所示的机器学习模型来学习肌肉、关节(joint)参数和/或其他结构的参数与面部动作的皮肤表面表情之间的变换关系。
22.图3提供了图示根据本文描述的实施例的从扫描结果生成数据束的示例过程的框图。
23.图4a至图4b图示了根据本文描述的实施例的肌肉向量和关节向量与由图1中描述的机器学习模型配置的皮肤表面表示之间的变换函数的方面。
24.图5是图示了图1和图6所示的系统的计算机系统可以在其上实现的示例计算机系统的框图。
25.图6图示了可以用于生成静止图像和/或图像视频序列形式的影像的示例视觉内容生成系统。
具体实施方式
26.在下面的描述中,将描述各种实施例。出于解释的目的,阐述了具体的配置和细节,以便提供对实施例的透彻理解。然而,对于本领域技术人员来说也将显而易见的是,可以在没有具体细节的情况下实践这些实施例。此外,为了不模糊所描述的实施例,可以省略或简化众所周知的特征。
27.如今的视频应用程序可以采用计算机动画技术来创建人类或非人类的模拟角色以呈现视频。例如,电影业一直在使用计算机动画来生成通常在物理上很难甚至不可能由人类参与者来扮演的角色。此类计算机动画角色的物理外观可以由动画制作者经由配置时变参数来设计和控制,以模拟生物(人类或非人类)的肌肉、关节和骨骼结构和移动。以此方式,可以创建计算机动画角色来模仿真实生物的角色。
28.如本文所用,动画制作者可以指试图基于动画制作者的输入和动画制作者可用的其他数据来生成一个或多个图像(诸如形成动画的视频序列)的人类艺术家、电影制作人、摄影图像创建者等。在一些实施例中,动画制作者可以是自动化或部分自动化的过程。动画制作者的输入可以包括可移动元素的位置值的规范。例如,可以由角色中每个可用关节的值来指定关节连接的(articulated)角色的移动。
29.如本文所用,装备(rig)可以指对应于角色的元素、允许的移动等的数据的表示。一种此类装备是面部装备。可以向动画制作者提供动画创建系统的用户接口,该用户接口允许动画制作者输入面部装备的各种可移动元素的值。一些可移动的元素可以是颌和肌肉的集合。根据所提供的面部装备的可移动元素的变量的规范,动画创建系统可以生成面部装备的姿势。例如,当对应于嘴两侧的肌肉的收缩量的变量被设置为表示那些肌肉的最大收缩的值时,动画创建系统将输出具有张开的嘴的面部的姿势。通过逐帧改变变量,并且因此逐帧改变姿势,动画创建系统可以输出可以作为输入提供到渲染系统的元素的位置、元素的厚度等。
30.对应于面部装备的元素的特定表情、移动或放置以便传递面部元素的表情或定位的面部装备的状态可以在计算机存储器中被表示为诸如应变向量的数据结构。应变向量可以具有表示颌位置、眼睛位置以及可以由应变向量来指定的面部装备中每块肌肉的应变值的分量。例如,当肌肉处于中性状态时,肌肉的应变在其自然姿势下可以具有0.0的值。当肌肉随着时间移动时,应变值可以约从-1.0变化到1.0,表示肌肉的压缩或伸长状态。因此,现场参与者的特定表情可以由应变向量来表示,并且该应变向量可以用于移动或定位该现场参与者、虚构角色等的面部装备的元素,以生成计算机生成的影像。在一些实施例中,应变值分量是每块肌肉一个,每个应变值分量具有表示其对应肌肉的当前应变值的值。对于处于中性位置的肌肉,应变值可以具有固定值,并且对该肌肉,应变值可以具有一个范围的值,其覆盖相对于中性位置的收缩和相对于中性位置的松弛。在一个非常具体的实施例中,应变的中性位置值为零,相对于中性位置收缩的肌肉的应变值为负数,并且相对于中性位置放松的肌肉的应变值为正数。在该特定实施例中,应变值可以对应于分配给对应位置肌肉的长度。
31.考虑到面部装备可以包括大量肌肉,手动地和单独地设置应变向量中的每块肌肉的应变值可能是繁琐的过程,并且很难将应变向量分量值手动地匹配到期望的状态或表情。
32.如本文所用,面部动作或面部姿势是指在每块面部肌肉对应于特定应变值的一时间实例(time instance)的面部肌肉的特定状态。例如,在特定时间实例对现场参与者的每次面部扫描都可以捕获单个面部动作或面部姿势。中性姿势是指每块面部肌肉都处于休息状态而没有引起应变的状态。
33.面部表情被认为包含多个面部动作或面部姿势。例如,面部表情“咧嘴笑”可以包括跨越一段时间的多个连续的面部动作。连续的面部动作可以对应于嘴唇从中性位置到向上位置的一系列面部肌肉移动。
34.在一个实施例中,动画制作者可以通过输入或以其他方式指定或确定一组应变来生成角色(正做出表情、也许根据台词交谈,以及四处移动)的面部的动画,其中应变是可以移动的肌肉的度量。在示例中,肌肉的应变被表示为数值,其中0.0对应于处于休息或默认位置的肌肉,正数对应于肌肉收缩并且负数对应于肌肉松弛。例如,肌肉m的应变s的数值可以如等式1表达。
35.sm=(rest_lengthm–
lengthm)/rest_lengthm(等式1)。
36.制作面部动画的一个困难是,有大量的面部肌肉,为每个肌肉指定应变可能是繁琐的,尤其是在需要创建许多场景的情况下。现有的动画系统通常生成做出特定面部表情的现场参与者的大量面部扫描,并且分析每个扫描以获得特定面部表情的动画参数。例如,具体的每个面部动作可以对应于指示肌肉附着在哪里、哪些肌肉被激活、两端附着在哪里、相应的肌肉厚度、相应被激活的肌肉的应变、相应被激活的关节等的参数。然后动画制作者可以使用所获得的动画参数来模拟例如计算机动画角色的面部表情。此过程通常是繁琐且耗时的,因为每个模拟的面部表情都需要从做出相同面部表情的现场参与者处捕获大量面部扫描并且随后对大量面部扫描进行数据分析。
37.鉴于需要高效的计算机动画机制来模仿计算机动画角色的面部表情,本文描述的实施例提供了一种导出参与者的面部肌肉和解剖数据与对应的皮肤表面之间的变换的基于机器学习的机制。例如,对于表示“微笑”的皮肤表面,变换模型导出与什么面部肌肉被激活、什么是肌肉应变、什么是关节移动等相关的移动向量。此类导出的移动向量可以用于模拟皮肤表面的“微笑”。
38.通过训练从现场参与者的大量面部扫描创建的数据集(例如,以数据束(data bundle)的形式)来训练机器学习模型。如本文所用,数据实例可以指:与在特定时间戳处发生的事件相关的数据。例如,数据实例可以是在特定时间戳捕获的现场参与者的面部扫描、对应于特定时间戳的肌肉状态的肌肉应变参数、对应于在特定时间戳发生的面部动作的皮肤表面表示向量等。如本文所用,数据束可以指在一个时间段(数据束时间段)上存储在缓存中的数据实例的集合。例如,数据实例的集合可以记录该实例在数据束时间段上的时变值。
39.例如,每个数据束捕获在数据束时间段上的面部肌肉移动的缓存、在数据束时间段上的皮肤表面移动的缓存以及对应于现场参与者的解剖数据。因此,可以使用在数据束时间段上的面部肌肉移动的缓存作为输入,并且使用在数据束时间段上的皮肤表面移动的缓存作为基准实况标签(ground truth label),来训练机器学习模型。
40.图1图示了动画流水线100,该动画流水线100可以用于:基于从对现场参与者的扫描中训练的机器学习模型来渲染显示角色动画的动画内容。如那里所示,现场参与者102
(“参与者a”)可以配备有基准104,并且由扫描仪106扫描他们的面部、表情和/或身体。扫描仪106然后将扫描结果输出或存储到扫描结果存储108。基准(fiducial)104允许从扫描得到的扫描数据包括在给定特定动作的情况下现场参与者102的面部表面上的特定点如何移动的指示。在一个实施例中,基准104可以是可选的,并且可以采用其他捕获硬件和光流软件来跟踪皮肤表面,从而导致高分辨率的皮肤纹理捕获和毛孔级别跟踪。
41.如果扫描仪106捕获三维(“3d”)中的数据,则扫描数据还可以指示对应于现场参与者面部的表面的3d空间中的表面流形(manifold)。如本文所用,流形用于指对应于包括多个面部动作(例如,“微笑”、“咧嘴笑”、“抽泣”等)的某些面部表情的面部表面的时变(time-varying)拓扑。
42.尽管可以预期现场参与者102的颅骨是恒定的形状,并且仅通过平移和旋转(以及颌移动)来改变,但是不预期表面流形是恒定的,颌移动、嘴中的气压、肌肉移动以及其他可移动部分移动并且相互作用。相反,不同的移动和面部动作导致参与者面部的不同厚度、皱纹等。
43.来自扫描仪106的输出可以被存储为扫描结果108,扫描结果108可以包括皮肤表面表示、肌肉参数、关节参数、应变参数等。扫描结果108被提供到数据束生成114以在数据束时间段t上生成扫描结果的一个或多个数据束。例如,每个数据束记录表示皮肤表面、肌肉参数、关节参数、应变参数等在数据束时间段t上的变化的相应的时变向量。图3图示了数据束的进一步的示例数据结构。
44.可以假设每个人类参与者都有或多或少相同的面部肌肉。可以提供解剖模型数据集112,该解剖模型数据集112表示肌肉、肌肉连接的位置、存在哪些其他典型的面部元素(眼睛、眼睑、鼻子、嘴唇、人中等)以及大多数人脸可以共有的其他特征。当然,不是所有的人脸都是一样的,肌肉的实际位置、厚度、连接的位置、可以放松和收缩的程度都是因人而异的细节,颅骨的形状也是如此。从特定的现场参与者直接确定这些细节通常是不实际的,因为这可能需要侵入性程序或复杂的计算机化轴向断层扫描(cat)或磁共振成像(mri)扫描。解剖模型112可以表示参与者a的肌肉模型。
45.在一个实施例中,此解剖模型112可以被提供到肌肉模拟器110,该肌肉模拟器110执行基于物理学的肌肉模拟并且为参与者a提供动态肌肉激活数据集113。
46.在一个实施例中,表示解剖模型112的数据连同由数据束生成模块114生成的数据束可以被输入到机器学习模型118。例如,机器学习模型118可以包括具有多个参数的深度神经网络(dnn)。
47.基于数据束中的参数(诸如肌肉、应变、关节等的参数)以及来自解剖模型112的颅骨参数,机器学习模型118生成预测皮肤表面表示(例如,可见的面部动作,诸如“微笑”、“皱眉”等)。以此方式,机器学习模型118可以通过表示来自参与者a的扫描结果108的数据束形式的训练数据集来学习肌肉、应变、关节等的参数与参与者a的皮肤表面表示之间的肌肉到皮肤的变换。因此,基于肌肉到皮肤的变换,机器学习模型118可以通过调整肌肉、关节和应变参数来生成新的皮肤表面表示。
48.替代地,基于数据束中的皮肤表面表示,机器学习模型118可以反向导出支持皮肤表面表示的肌肉、应变、关节等的参数。以此方式,机器学习模型118可以通过表示来自参与者a的扫描结果108的数据束形式的训练数据集来学习参与者a的皮肤表面表示和肌肉、应
变、关节等的参数之间的皮肤到肌肉的变换。因此,基于皮肤到肌肉的变换,机器学习模型118可以确定反向导出目标皮肤表面表示的肌肉、关节和应变参数。可以关于图2a至图2b来描述机器学习模型118的进一步细节。
49.在一种实现方式中,机器学习模型118可以被训练以推断现场参与者的颅骨形状、肌肉体积、移动范围等,以构建参与者的多种可能的移动的流形。机器学习模型118可以输出要存储在流形存储装置116中的流形。流形可以表示看似合理(plausible)的面部动作的范围。从逻辑上讲,流形可以表示对应于应变向量的高维空间中的一组解或约束。例如,机器学习模型118可以通过自动编码器(ae)架构来实现,并且首先用应变向量来训练以学习应变空间中的面部流形。
50.在一个实现方式中,机器学习模型118可以被训练成:基于来自数据束生成114的数据束,来确定参与者a做出的移动或动作调整(例如,从“微笑”到“咧嘴笑”)的动作轨迹和动作范围(例如,张开的嘴、露出牙齿、嘴向上的角度改变等)。然后,机器学习模型118可以确定适用于动作范围的肌肉应变向量的子集,例如,使用哪些肌肉,以及对应的应变是什么。机器学习模型118可以确定将数据束的变化限制为肌肉应变向量的子集的变化的流形。例如,对于移动或动作调整(例如,从“微笑”到“咧嘴笑”),流形模型116可以将数据束中的应变向量的变化限制到与张开嘴和露出牙齿的肌肉相关的肌肉应变向量的子集,以及改变嘴的向上角度的对应应变。
51.对应地,当移动或表情调整(例如,从“微笑”到“咧嘴笑”)发生时,流形模型116还将肌肉向量或应变向量的更新向量值的搜索限制为数据向量的更新缓存的允许值的流形。允许值的流形模型116对应于现场参与者的已知可行面部动作。
52.使用动画创建系统120,动画制作者112可以生成对应于为其导出肌肉模型的现场参与者的面部动作的网格。网格可以存储在网格变形存储124中。如果网格对应于参与者a的面部表面,则动画制作者122可以使用动画创建系统120来生成不是由参与者a具体做出的面部动作的面部表面,但是该面部表面将接近参与者a尝试该面部动作时的面部表面。动画创建系统120可以通过将动画制作者的输入投影到流形上来约束动画制作者的输入,这将具有以下效果:将不对应于看似合理的面部动作的动画制作者的输入变换成确实对应于看似合理的面部动作的应变向量。动画制作者的输入可以在存储器中被表示为应变向量,该应变向量具有对应于一些面部肌肉的分量,以及可以与肌肉不相关或更容易直接表示的其他动画变量,诸如颌移动、眼睛移动等。应变向量可以由值的阵列来表示,其中阵列中的值对应于作为特定维度上的也许表示一块肌肉上的应变的应变值的向量分量。
53.渲染器126可以处理面部表面,也许将其映射到来自角色模型存储128的角色模型(诸如由参与者a扮演的非人类角色)以形成可以存储在动画输出存储130中的动画输出。
54.图2a图示了根据本文描述的一个实施例的示例神经系统200a,其中,如图1中所示的机器学习模型118用于学习肌肉、关节的参数和/或其他结构或参数与面部动作所导致皮肤表面之间的肌肉到皮肤的变换关系。神经系统200包括机器学习模型118a(其可以类似于图1中示出的机器学习模型118的一部分或一个应用),该机器学习模型118a可以接收数据束211a-n作为输入。例如,数据束211a-n可以由关于图1描述的数据束生成模块114创建。每个数据束211a-n包括表示皮肤表面表示201、(一块或多块)肌肉参数202、(一个或多个)应变参数203、(一个或多个)关节参数204、(可选的)掩模参数205、(可选的)扫描掩模参数206
等在数据束时间段上的演变的时变向量。例如,数据束211a中的皮肤表面表示201可以采取皮肤向量序列s={s1,s2,
…stb
}的形式,其中tb表示数据束时间段的长度。肌肉向量202、应变向量203、关节向量204、(可选的)掩模向量205和(可选的)扫描掩模向量206可以采取与上面所描述的皮肤向量类似的形式,作为数据束时间段tb上的向量序列。
55.在一个实施例中,机器学习模型118可以用数据束211a-n的数据集连同对应于特定人类参与者的解剖数据212来训练。例如,解剖数据112可以包括描述肌肉附着的位置及其体积的肌肉模型,以及表示参与者的颅骨形状和轮廓的颅骨模型,和/或用于其他非肌肉动画变量的控制向量。在一个实现方式中,解剖数据212可以从图1中描述的解剖模型存储112中检索出并且可以是特定人类参与者的静态数据。
56.机器学习模型118a可以包括一编码器,该编码器将肌肉向量202、应变向量203、关节向量204、(可选的)掩模向量205、(可选的)扫描掩模向量206、解剖数据212等编码成输入表示。机器学习模型118还可以包括一解码器,该解码器从肌肉向量202、应变向量203、关节向量204、掩模向量205、扫描掩模向量206的编码输入生成预测皮肤表面表示。
57.在另一个实现方式中,线性回归模型可以用于学习从肌肉/关节/应变向量到最终皮肤的关系。此模型可以通过求解约束最小二乘问题来优化。也就是说,在重构的皮肤和基准实况皮肤242之间使用l2损失。线性回归模型也可以被视为深度学习中的全连接层。
58.然后将预测皮肤表面表示与包含在数据束201a-n中的用作基准实况242的皮肤表面向量201进行比较。因此,损失模块250可以计算训练损失,例如,来自机器学习模型118a的预测皮肤表面表示和来自训练数据束211a-n中的皮肤表面向量201的基准实况标签242之间的交叉熵损失(cross-entropy loss)。所计算的损失又可以用于更新机器学习模型118a的参数,以例如经由后向传播路径252建立肌肉到皮肤的关系。
59.以此方式,机器学习模型118a被配置为在肌肉向量、关节向量、应变向量、掩模向量、扫描掩模向量和解剖数据与皮肤表面向量之间建立肌肉到皮肤的变换。机器学习模型118a然后可以用于生成流形模型,该流形模型基于颅骨流形上的一组点的肌肉向量、关节向量、应变向量、掩模向量、扫描掩模向量的输入来预测所得的皮肤表面表示。
60.另一个方面,机器学习模型118可以用于导出可产生特定皮肤表面表示的对应肌肉向量、关节向量、应变向量、掩模向量、扫描掩模向量。图2b图示了根据本文描述的一个实施例的示例神经系统200b,其中,如图1中所示的机器学习模型118用于学习面部动作的皮肤表面表示与肌肉和/或关节的参数之间的皮肤到机器的变换关系。例如,机器学习模型118b可以被认为是机器学习模型118a的反向,该机器学习模型118b学习从皮肤表面表示到基础(underlying)肌肉向量和关节向量的变换关系。
61.类似于机器学习模型118a的输入,数据束211a-n和解剖数据212可以被输入到机器学习模型118b。机器学习模型118b接收多个数据束211a-n的输入。每个数据束211a-n包括表示皮肤表面表示201、(一块或多块)肌肉参数202、(一个或多个)应变参数203、(一个或多个)关节参数204、掩模参数205、扫描掩模参数206等在数据束时间段上的演变的时变向量。
62.机器学习模型118b可以对来自每个数据束的皮肤参数201连同解剖数据212进行编码,并且生成对导致皮肤表面参数201的基础肌肉/关节/应变参数的预测。(一个或多个)肌肉参数202、(一个或多个)应变参数203、(一个或多个)关节参数204中的一者或多者可以
用作损失模块250的基准实况标签243。损失模块250然后可以计算基准实况标签243和来自机器学习模型118b的预测肌肉/关节/应变参数之间的交叉熵损失。该损失可以用于更新机器学习模型118b,例如,经由后向传播路径253。
63.在一个实施例中,机器学习模型118b可以通过自动编码器(ae)架构来实现,并且首先用应变向量来训练以学习应变空间中的面部流形。例如,ae可以包括六个隐藏层,示例维度为178、159、124、89、124、159、178(输出层)。
64.在一个实施例中,损失模块250可以计算基准实况应变向量和在机器学习模块118b的输出处的重构的应变向量之间的l1损失。
65.在另一个示例中,损失模块250可以采用基准实况应变向量和重构的应变向量之间的kullback-leibler(kl)距离作为损失。例如,kl-损失可以用于变分自动编码器(vae)模型的中间层。
66.因此,机器学习模型118b可以被训练以学习皮肤表示和基础肌肉/关节/应变参数之间的变换关系。因此,在给定目标皮肤表面表示的情况下,所学习的变换关系可以用于导出肌肉/关节/应变参数,并且所导出的肌肉向量、关节向量、应变向量然后可以被动画制作者用于创建新的皮肤表面表示,例如新的面部动作。
67.在一些实现方式中,给定来自数据束201a-n的应变和皮肤向量,可以端到端地训练机器学习模型118a和118b的组合(统称为118)。例如,机器学习模型118b可以首先学习皮肤变形(皮肤到肌肉)与第一目标(例如,l2损失)的关系,并且来自机器学习模型118b的输出的预测的皮肤可以被输入到机器学习模型118a,用于重构肌肉应变向量。然后,可以将重构的肌肉应变向量与基准实况应变进行比较,以计算第二损失目标(例如,l2、k-l距离),使得可以基于第一损失目标和第二损失目标的加权和来联合训练机器学习模型118a-b。
68.在另一个实现方式中,机器学习模型118a可以首先学习肌肉到皮肤的关系,然后将预测的皮肤作为输入输出到机器学习模型118b。机器学习模型118a和机器学习模型118b可以以如上所描述的类似方式被联合训练。
69.图3提供了图示根据本文描述的实施例的从扫描结果生成数据束的示例过程的框图。如关于图1至图2所描述的,人类参与者的面部动作的扫描结果被打包成作为机器学习模型的输入的数据束的形式。对于数据束周期时间tb,在[0,tb]期间的整个时间实例中,可以捕获面部扫描305a-n并且将其存储在缓存中。每个面部扫描(例如,305a-n中的任一个)可以包括在数据束时间段[0,tb]期间的相应时间实例捕获的皮肤表面表示(例如,311a-n中的任一个)、肌肉向量(例如,312a-n中的任一个)、应变向量(例如,313a-n中的任一个)、关节向量(例如,314a-n中的任一个)、掩模向量(例如,315a-n中的任一个)、扫描掩模向量(例如,316a-n中的任一个)。例如,肌肉向量312a还可以包括眼部肌肉移动向量(包括焦点等)的缓存。对于另一个示例,关节向量314a还可以包括颌移动向量的缓存等。
[0070]
因此,通过将在数据束时间段上的若干扫描打包到皮肤表面向量311a-n、肌肉向量312a-n、应变向量313a-n、关节向量314a-n、掩模向量315a-n、扫描掩模向量316a-n等的缓存中,来生成数据束211。例如,可以从面部移动的5000-7000帧扫描中生成特定人类参与者的训练数据集。又例如,训练数据的一部分(例如5%),可以是从木偶生成的合成数据。面部移动可以包括面部动作、对话和/或情绪描绘中的一者或多者。面部扫描的训练帧可以包括60%的动作帧、25%的当参与者清晰地对话时的面部扫描、10%的情感表情帧、5%的基
于镜头的扫描(例如,对于中性面部)。数据束211还可以包括静态解剖数据向量317。
[0071]
扫描305a-n的缓存的打包可以在多个数据束时间段内重复以生成数据束序列作为机器学习模型的训练数据。
[0072]
在一个实施例中,数据束211可以可选地从不同日期拍摄的面部扫描中生成。例如,参与者的面部状况可能变化(即使轻微地),例如,早晨肿胀、由于疲劳而下垂等,导致不同的皮肤(即使具有相同的肌肉应变向量),反之亦然。因此,可以例如跨多天在一天的同一时间对现场参与者进行面部扫描,以使现场参与者具有“微笑”表情,并且可以跨多天对面部扫描进行平均,以恰当地表示面部扫描数据。
[0073]
例如,为了生成数据束的训练数据集,面部扫描305a-n可以从处于中性姿势或面部动作的现场参与者的面部扫描开始,例如,面部扫描305a可以对应于中性或休息的面部动作的扫描。面部扫描305b可以包括不同的面部移动、姿势或表情,诸如“微笑”、“咧嘴笑”、“皱眉”等。然后面部扫描可以在中性姿势处结束,例如,面部扫描305n可以再次显示中性面部动作。以此方式,一系列面部扫描305a-n可以捕获在两个方向上跨不同面部动作的肌肉/关节移动的一系列演变。
[0074]
图4a图示了根据本文描述的实施例的在图2a中描述的机器学习模型118a的推断阶段将肌肉向量和关节向量变换成皮肤表面表示的方面。可以通过训练图2a中示出的机器学习模型118a来建立变换模型f(),在给定对应于特定人类参与者的已知解剖数据的情况下,该变换模型f()将肌肉向量404、应变向量405、关节向量406和/或其他向量变换成皮肤表面向量410,例如如等式2所示。
[0075]
皮肤表面向量=f(肌肉向量、关节向量、应变向量、

、解剖数据)(等式2)。
[0076]
当解剖数据对于特定的人类参与者是静态的时,肌肉向量、应变向量、关节向量和/或其他向量(诸如掩模向量、扫描掩模向量等)是确定输出皮肤表面向量410的变量。
[0077]
因此,在给定所配置的肌肉向量、应变向量和关节向量的情况下,变换f()可以用于预测所产生的皮肤表面。例如,如图2a中所描述的,在机器学习模型118a的训练阶段,包括肌肉向量404、应变向量405、关节向量406和皮肤表面基准实况(例如,表示“温和的微笑”)的缓存的数据束可以用于训练机器学习118a,以通过最小化预测皮肤表面表示410和基准实况皮肤表面之间的损失来获得变换f()。在建立f()之后,在机器学习模型118a的推断阶段期间,动画制作者(诸如艺术家、程序员等)可以将肌肉向量404、应变向量405和关节向量406的值调整为例如肌肉向量+δ407、应变向量+δ406、关节向量+δ408,其中δ表示相应向量的调整量。
[0078]
在一些实现方式中,基准实况皮肤242可以可选地从跨多天平均的面部扫描中获得,例如,同一现场参与者在不同天的同一时间执行“温柔的微笑”。以此方式,平均的基准实况皮肤242可以更公平地表示现场参与者的“实况”,克服了由于肿胀、疲劳和/或类似状况引起的轻微的日常变化。
[0079]
然后应变向量+δ406、肌肉向量+δ407、关节向量+δ408可以用于生成经修改的数据束。例如,可以生成经修改的数据束,该经修改的数据束包括在数据束时间段上的应变向量+δ406、肌肉向量+δ407、关节向量+δ408等的缓存。然后,经修改的数据束可以被发送到机器学习模型118a,该机器学习模型118a又可以生成预测的皮肤表面411。
[0080]
例如,如果皮肤表面410表示属于表情“微笑”的面部动作,则动画制作者或艺术家
可以修改导致表情“微笑”的已知肌肉向量404和关节向量406,以生成不同的面部动作。例如,动画制作者可以将某些肌肉的应变修改为更大的值,指示更强的肌肉移动,和/或将关节向量的张开角修改为更大的值,指示更宽的颌关节张开,使得可以暴露更多的牙齿等。所得的经修改的应变向量+δ406、肌肉向量+δ407、关节向量+δ408可以被输入到机器学习模型118a,以生成看起来可以像属于表情“咧嘴笑”的面部动作的预测的皮肤表面411。以此方式,动画制作者或艺术家可以不断地调整对肌肉或关节向量的修改,直到获得满意的“咧嘴笑”的皮肤表面。
[0081]
然后,应变向量+δ406、肌肉向量+δ407、关节向量+δ408的缓存可以被发送到动画创建系统120,例如,用于动画化“咧嘴笑”的表情。
[0082]
图4b图示了根据本文描述的实施例的在图2b中描述的机器学习模型118b的推断阶段将皮肤表面变换回肌肉向量和关节向量的方面。可以通过训练图2b中示出的机器学习模型118b来建立变换模型f1(),在给定对应于特定人类参与者的已知解剖数据的情况下,该变换模型将皮肤表面变换回基础肌肉和/或关节向量,例如,如等式3所示。
[0083]
(肌肉向量,应变向量,关节向量)=f1(皮肤表面向量,

,解剖数据)(等式.3)
[0084]
例如,如果皮肤表面410表示属于表情“微笑”的面部动作,则动画制作者或艺术家可能想要生成期望的皮肤表面412,例如“咧嘴笑”。来自机器学习模型118b的经训练的变换f1()可以被应用来反向导出导致期望的皮肤表面412“咧嘴笑”的对应肌肉向量414、应变向量415、关节向量416等。
[0085]
因此,可以生成包括在数据束时间段上导出的肌肉向量414、应变向量415、关节向量416等的缓存的新的数据束。可以将导出的肌肉向量414、应变向量415、关节向量416等应用于肌肉模拟器模型110,使得肌肉模型在数据束时间段上随着经修改的数据束而变化。包括导出的肌肉向量414、应变向量415、关节向量416等的缓存的新的数据束近似于根据艺术家从“温和的微笑”到“咧嘴笑”的移动调整而获得的数据束,例如,就好像当现场参与者执行皮肤表面“咧嘴笑”时,该数据束是直接从现场参与者的面部扫描直接获得的一样。
[0086]
因此,肌肉向量414、应变向量415、关节向量416等的新数据束可以被输出到动画创建系统120,以动画化“咧嘴笑”的期望皮肤表面。
[0087]
在一个实施例中,动画制作者或艺术家可以使用机器学习模型118a-b的组合来获得肌肉和/或关节向量/参数以实现期望的皮肤表面。例如,动画制作者可以在图4b中的推断阶段使用机器学习模型118b来导出假定可以实现期望的皮肤表面的对应的肌肉和/或关节向量。使用导出的肌肉和/或关节向量作为机器学习模型118a的输入,动画制作者也可以在图4a中的推断阶段使用机器学习模型118a来验证是否可以实际获得期望的皮肤表面。动画制作者可以不断地调整输入的肌肉和/或关节向量,同时观察从机器学习模型118a输出的结果皮肤表面,直到皮肤表面达到期望的表情。
[0088]
以此方式,可以在无需花费时间或资源来雇佣现场参与者来执行另外的皮肤表面的情况下导出对应于调整后的和/或期望的皮肤表面的数据束。所生成的包括在数据束时间段上的肌肉向量414、应变向量415、关节向量416等的缓存的数据束可以被提供到动画创建系统120,以生成形成表情“咧嘴笑”的期望皮肤表面。
[0089]
因此,即使在没有执行期望的面部表情的现场人类参与者的精确皮肤扫描的情况下,由机器学习模型118a-b建立的变换f()及其逆变换f1()也可以用于配置肌肉向量、关
节向量和/或其他参数以生成或模拟皮肤表面。可以极大地提高动画创建的效率,并且动画创建系统可以模拟各种各样的面部表情。
[0090]
至于动画创建系统120的输入和输出,输入可以包括指示肌肉模型中的一些或所有肌肉的应变值的输入应变向量,以及其他动画变量的值,诸如颌角的标量值、对应于眼睛旋转的两个2d向量等。连同描绘肌肉附着的位置及其体积的肌肉模型、表示参与者的颅骨形状和轮廓的颅骨模型以及用于其他非肌肉动画变量的控制向量,动画创建系统402可以确定肌肉所占据的体积,并且由此确定角色的皮肤的表面,并且输出可以描绘对应于输入应变向量404的表情的角色的皮肤的网格流形。
[0091]
使用上述方法和装置,动画制作者可以在肌肉语义(semantics)的域(domain)中指定面部动作,与限制动画制作者将记录的表情组合为扫描的面部形状的混合相比,这可以简化动画过程。在一般情况下,肌肉的长度由其应变值和其休息长度确定。允许的应变值可以受到流形的约束,使得应变值保持在看似合理的边界内。对于参与者面部表情的给定扫描、该现场参与者的肌肉模型、以及该现场参与者的颅骨模型,ai过程可以确定可能的应变向量,当该可能的应变向量被输入到动画生成系统时,将导致很大程度上匹配扫描的表情的表情。知道了应变值,动画生成系统可以提供这些作为动画制作者修改表情的域。在使用参与者面部的动态扫描作为训练的基准实况来训练ai系统之后,可以导出将允许模拟其他未捕获到的表情的肌肉模型。
[0092]
在一些情况下,可以有一百多块肌肉表现在肌肉模型中,从参与者的动态扫描中提取应变向量和控制向量的ai系统有可能能够提供近似的解决方案来匹配表情。控制向量可以包括除了颌和眼睛位置之外的其他值。
[0093]
如此处所解释的,动画过程可以通过使用人脸的高分辨率扫描、模拟肌肉、面部控制向量和约束的独特组合来模拟面部动作以生成无限的面部动作。在一个实施例中,采用ai系统来接收从一系列肌肉应变输入生成的面部控制向量,并且相对于被配置为将模拟的面部动作约束到看似合理的表情的面部动作流形来处理这些向量。模拟不需要局限于模拟对应于真实世界物理动作的面部动作,而是更广泛地可以是由做出和记录的表情引导的面部动作的产物。
[0094]
单独的ai系统可以用于训练和导出肌肉模型以及训练和导出流形。在一些实施例中,为了达到目标表情(和对应的皮肤形状),肌肉模型可以是可微分的。人工智能系统可以包括变分自动编码器(vae)。
[0095]
ai使用肌肉控制向量,而不是混合形状权重或其他方法,然后能够指定这些肌肉控制向量上的应变,其继而会指定模拟器中肌肉收缩的长度。每个肌肉扫描都可以由曲线来表示,该曲线可以具有作为应变的函数的长度。肌肉向量可以包括影响表示角色的皮肤的网格的应变。肌肉可以包括休息长度和附着点,并且一起表示肌肉几何形状。使用输入扫描、应变、肌肉控制向量和流形约束的组合,动画系统可以输出看似合理的面部动作。
[0096]
根据一个实施例,本文描述的技术由被编程为依照固件、存储器、其他存储装置或其组合中的程序指令来执行该技术的一种或通用计算系统来实现。可以使用专用计算设备(诸如台式计算机系统、便携式计算机系统、手持设备、网络设备或结合了硬连线和/或程序逻辑的任何其他设备)来实现该技术。
[0097]
例如,图5是图示了计算机系统500的框图,系统100的计算机系统(参见图1)和/或
视觉内容生成系统600(参见图6)可以在计算机系统500上实现。计算机系统500包括用于传递信息的总线502或其他通信机制,以及与总线502耦合的用于处理信息的处理器504。处理器504可以是例如通用微处理器。
[0098]
计算机系统500还包括主存储器506(诸如随机存取存储器(ram)或其他动态存储设备),该主存储器506耦合到总线502,用于存储信息和由处理器504执行的指令。主存储器506还可以用于在执行由处理器504执行的指令期间存储临时变量或其他中间信息。在存储在处理器504可访问的非暂态存储介质中时,此类指令使得计算机系统500成为专用机器,该专用机器被定制为执行指令中指定的操作的。
[0099]
计算机系统500还包括用于为处理器504存储静态信息和指令的耦合到总线502的只读存储器(rom)508或其他静态存储设备。存储设备510(诸如磁盘或光盘)被提供并且耦合到总线502,用于存储信息和指令。
[0100]
计算机系统500可以经由总线502耦合到显示器512(诸如计算机监测器),用于向计算机用户显示信息。包括字母数字键和其他键的输入设备514耦合到总线502,用于向处理器504传递信息和命令选择。另一种类型的用户输入设备是光标控件516(诸如鼠标、轨迹球或光标方向键),用于向处理器504传递方向信息和命令选择并且用于控制显示器512上的光标移动。此输入设备通常在两个轴线(第一轴线(例如,x)和第二轴线(例如,y))上具有两个自由度,这允许设备指定平面中的位置。
[0101]
计算机系统500可以使用定制的硬连线逻辑、一个或多个asic或fpga、固件和/或程序逻辑来实现本文描述的技术,该定制的硬连线逻辑、一个或多个asic或fpga、固件和/或程序逻辑与计算机系统相结合使得或计算机系统500成为专用机器或者将计算机系统500编程为专用机器。根据一个实施例,由计算机系统500响应于处理器504执行包含在主存储器506中的一个或多个指令的一个或多个序列来执行本文的技术。这些指令可以从另一个存储介质(诸如存储设备510)读入主存储器506。执行包含在主存储器506中的指令序列使得处理器504执行本文描述的过程步骤。在替代实施例中,硬连线电路可以用于代替软件指令或与软件指令相结合。
[0102]
本文使用的术语“存储介质”是指存储使的机器以特定方式操作的数据和/或指令的任何非暂态介质。此类存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括诸如光盘或磁盘,诸如存储设备510。易失性介质包括动态存储器,诸如主存储器506。存储介质的常见形式包括例如软磁盘、软盘、硬盘、固态驱动器、磁带或任何其他磁性数据存储介质、cd-rom、任何其他光学数据存储介质、任何具有孔图案的物理介质、ram、prom、eprom、flash-eprom、nvram、任何其他存储器芯片或盒式磁带。
[0103]
存储介质不同于传输介质,但可以与传输介质结合使用。传输介质参与存储介质之间的信息传送。例如,传输介质包括同轴电缆、铜导线和光纤,包括包含总线502的导线。传输介质也可以采取声波或光波(诸如在无线电波和红外数据通信期间生成的那些)的形式。
[0104]
各种形式的介质可能涉及将一个或多个指令的一个或多个序列运载到处理器504以供执行。例如,指令最初可以运载在远程计算机的磁盘或固态驱动器上。远程计算机可以将指令加载到其动态存储器中并且通过网络连接发送指令。计算机系统500本地的调制解调器或网络接口可以接收数据。总线502将数据运载到主存储器506,处理器504从主存储器
506中检索并且执行指令。由主存储器506接收到的指令可以可选地在由处理器504执行之前或之后存储在存储设备510上。
[0105]
计算机系统500还包括耦合到总线502的通信接口518。通信接口518提供耦合到连接到本地网络522的网络链路520的双向数据通信。例如,通信接口518可以是综合业务数字网(isdn)卡、电缆调制解调器、卫星调制解调器或提供连接到对应类型电话线的数据通信连接的调制解调器。也可以实现无线链路。在任何此类实现方式中,通信接口518发送和接收运载表示各种类型信息的数字数据流的电、电磁或光信号。
[0106]
网络链路520通常通过一个或多个网络向其他数据设备提供数据通信。例如,网络链路520可以通过本地网络522提供连接到主机计算机524或连接到由因特网服务提供商(isp)526操作的数据装备的连接。isp 526又通过现在通常称为“因特网”528的全球分组数据通信网络提供数据通信服务。本地网络522和因特网528两者都使用运载数字数据流的电、电磁或光信号。传输介质的示例形式有:通过各种网络的信号以及网络链路520上和通过通信接口518的信号(其将数字数据运载到计算机系统500和从计算机系统500运载数字数据)。
[0107]
计算机系统500可以通过(一个或多个)网络、网络链路520和通信接口518发送消息和接收数据,包括程序代码。在因特网的示例中,服务器530可以通过因特网528、isp 526、本地网络522和通信接口518传输应用程序的请求代码。接收到的代码可以在其被接收时由处理器504执行,和/或存储在存储设备510或其他非易失性存储装置中以供以后执行。
[0108]
例如,图6图示了示例视觉内容生成系统600,其可以用于生成静止图像和/或图像的视频序列形式的影像(imagery)。视觉内容生成系统600可以生成现场动作场景、计算机生成的场景或其组合的影像。在实际的系统中,为用户提供了允许他们指定(在必要时在高级别和低级别上)要进入该影像的内容的工具。例如,用户可以是动画艺术家,并且可以使用视觉内容生成系统600来捕获在录音场(sound stage)现场表演的两个人类参与者之间的交互,并且用以模仿被替换的人类参与者的移动和举止的方式来表现的计算机生成的拟人化非人类来替换其中一个人类参与者,然后添加第三计算机生成的角色和计算机生成的背景场景元素,所有这些都是为了讲述期望的故事或生成期望的影像。
[0109]
由视觉内容生成系统600输出的静止图像可以在计算机存储器中表示为像素阵列(诸如像素颜色值的二维阵列),每个像素阵列都与在二维图像阵列中具有位置的像素相关联。像素颜色值可以由每个像素三个或更多(或更少)个颜色值(诸如红色值、绿色值和蓝色值(例如,以rgb格式))来表示。此类像素颜色值的二维阵列的维度可以对应于优选的和/或标准的显示方案,诸如1920像素列
×
1280像素行。图像可以以压缩格式存储,也可以不以压缩格式存储,但无论哪种方式,期望的图像都可以表示为像素颜色值的二维阵列。在另一个变型中,图像由用于三维呈现的一对立体图像来表示,并且在其他变型中,图像输出的一些或全部可以表示三维影像,而不仅是二维视图。
[0110]
存储的视频序列可以包括多个图像,诸如上面所描述的静止图像,但是其中多个图像中的每个影像在时序中具有位置并且存储的视频序列被布置成使得当每个影像在时序所指示的时间按顺序显示时,显示器呈现看起来是移动和/或变化的影像。在一种表示中,多个图像中的每个图像是具有指定帧号的视频帧,该指定帧号对应于从视频序列开始播放到该指定帧被显示所经过的时间量。帧速率可以用于描述每单位时间显示多少帧存储
的视频序列。示例视频序列可以包括每秒24帧(24fps)、50fps、140fps或其他帧速率。在一些实施例中,帧被交错或以其他方式呈现以供显示,但是为了描述清楚起见,在一些示例中,假设视频帧具有一个指定的显示时间,并且应理解,其他变化也是可能的。
[0111]
创建视频序列的一种方法是简单地使用相机来记录现场动作场景,即物理上发生的并且可以由相机记录的事件。被记录的事件可以是被解释为被观看的事件(诸如看到两个人类参与者彼此交谈)和/或可以包括由于巧妙的相机操作而被不同地解释的事件(诸如关于一个阶段移动参与者以使一个看起来比另一个大,尽管参与者实际上被类似地构建,或使用具有其他微型对象的微型对象以便被解释为包含与原对象一样大小的对象的场景)。
[0112]
为了讲故事或其他目的而创建视频序列通常要求无法用现场参与者创建的场景,诸如会说话的树、拟人化的对象、太空战斗等等。此类视频序列可以是通过计算生成的,而不是从现场场景中捕获光线生成的。在一些情况下,视频序列的整体可以是通过计算生成的,如计算机动画长片的情况。在一些视频序列中,期望有一些计算机生成的影像和一些现场动作,也许要小心地将两者合并。
[0113]
尽管可以通过手动指定每帧中每个像素的每个颜色值来创建计算机生成的影像,但这可以太繁琐而不切实际。因此,创建者使用各种工具在更高的级别上指定影像。作为示例,艺术家可以指定对象和/或照明在场景空间(诸如三维坐标系)中的位置,以及相机视点和相机视图平面。将所有这些作为输入,渲染引擎可以计算帧中的每个中的像素颜色值中的每个。在另一个示例中,艺术家指定具有一些指定纹理的关节连接的对象的位置和移动,而不是指定表示每个帧中该关节连接的对象的每个像素的颜色。
[0114]
在特定示例中,渲染引擎执行光线跟踪,其中通过以下来确定像素颜色值:计算哪些对象位于场景空间中从相机视点通过相机视图平面的对应于该像素的点或部分所跟踪的光线上。例如,相机视图平面可以被表示为矩形,该矩形在场景空间中具有被划分为对应于要生成的最终图像的像素的网格的位置,并且如果由场景空间中的相机视点和该网格中的给定像素定义的光线首先与实心的、不透明的蓝色对象相交,则该给定像素被分配蓝色。当然,对于现代计算机生成的影像,由于存在照明问题、反射、插值和其他考虑因素,因此确定像素颜色——并且由此生成影像——可能更加复杂。
[0115]
如图6所示,现场动作捕获系统602捕获在平台604上演的现场场景。本文更详细地描述了现场动作捕获系统602,但是可以包括计算机处理能力、图像处理能力、一个或多个处理器、用于存储可以由一个或多个处理器执行的程序指令的程序代码存储装置、以及用户输入设备和用户输出设备(不是所有都被示出)。
[0116]
在特定的现场动作捕获系统中,相机606(1)和606(2)捕获场景,而在一些系统中,可以有从现场场景捕获信息的(一个或多个)其他传感器608(例如,红外相机、红外传感器、运动捕获(“mo-cap”)检测器等)。在平台604上,可能有人类参与者、动物参与者、无生命对象、背景对象,并且可能有诸如绿色屏幕610的对象(其被设计成以使得它容易被计算机生成的影像覆盖的方式在现场场景记录中被捕获)。平台604还可以包含用作可以在捕获后用于确定捕获期间对象在哪里的基准(诸如基准612(1)-(3))的对象。现场动作场景可以由一个或多个灯(诸如顶灯614)照亮。
[0117]
在捕获现场动作场景期间或之后,现场动作捕获系统602可以将现场动作镜头输
出到现场动作镜头存储装置620。现场动作处理系统622可以处理现场动作镜头以生成关于该现场动作镜头的数据,并且将该数据存储到现场动作元数据存储装置624中。现场动作处理系统622可以包括计算机处理能力、图像处理能力、一个或多个处理器、用于存储可以由一个或多个处理器执行的程序指令的程序代码存储装置、以及用户输入设备和用户输出设备(不是所有都被示出)。现场动作处理系统622可以处理现场动作镜头以确定一帧或多帧中的对象的边界,确定现场动作场景中的对象的位置、相机相对于某个动作的位置、移动对象和基准之间的距离等。在感测或检测到元素的情况下,元数据可以包括顶灯614的位置、颜色和强度,因为这在后处理中可能是有用的,以匹配计算机生成并且覆盖在现场动作镜头上的对象上的计算机生成的照明。现场动作处理系统622也许会基于预定的程序指令自主地操作,以在接收和输入现场动作镜头时生成和输出现场动作元数据。现场动作镜头可以是相机捕获的数据,也可以是来自其他传感器的数据。
[0118]
动画创建系统630是视觉内容生成系统600的另一个部分。动画创建系统630可以包括计算机处理能力、图像处理能力、一个或多个处理器、用于存储可由一个或多个处理器执行的程序指令的程序代码存储装置、以及用户输入设备和用户输出设备(不是所有都被示出)。动画创建系统630可以被动画艺术家、管理人员和其他人用于指定要生成的影像的细节(也许通过编程和/或交互地)。根据用户输入和来自数据库或其他数据源的数据(指示为数据存储632),动画创建系统630可以生成指示对象(例如,马、人类、球、茶壶、云、光源、纹理等)的数据并且将其输出到对象存储装置634,生成表示场景的数据并且将其输出到场景描述存储装置636,和/或生成表示动画序列的数据并且将其输出到动画序列存储装置638。
[0119]
场景数据可以指示对象和其他视觉元素的位置、它们的参数值、照明、相机位置、相机视图平面以及渲染引擎650可以用来渲染cgi影像的其他细节。例如,场景数据可以包括在二维空间、三维空间或其他维空间(诸如2.5维空间、四分之三维空间、伪3d空间等)中指定的若干关节连接的角色、背景对象、照明等的位置,以及从其渲染影像的相机视点和观看地点的位置。例如,场景数据可以指示在视频的右半部分有一只红色的、模糊的、会说话的狗,并且在视频的左半部分有一棵静止的树,所有这些都由位于相机视点上方和后方的亮点光源照亮。在一些情况下,相机视点不是显然的,但可以从视见平截头体(viewing frustum)确定。在将影像渲染到矩形视图的情况下,平截头体将是截棱锥。渲染视图的其他形状也是可能的,并且对于不同的形状相机视图平面可以不同。
[0120]
动画创建系统630可以是交互式的,允许用户读入动画序列、场景描述、对象细节等并且对这些进行编辑,可以将它们返回到存储器以更新或替换现有数据。例如,操作员可以将对象从对象存储装置读入会将这些对象变换成更简单的形式的烘焙处理器(baking processor),并且将这些对象作为新的或不同的对象返回到对象存储装置634。例如,操作员可以读入具有几十个指定参数(可移动关节、颜色选项、纹理等)的对象,为这些参数选择一些值,然后保存作为现在具有固定值的这些参数的简化对象的经烘焙的对象(baked object)。
[0121]
来自数据存储632的数据可以用于驱动对象呈现,而不是必须指定场景的每个细节。例如,如果艺术家正在创建飞船经过地球表面的动画,则艺术家可以指定动画创建系统630从包含地球海岸线坐标的文件中的数据存储632读取数据,并且使用该海岸线数据生成
场景的背景元素,而不是手动绘制或指定海岸线。
[0122]
动画序列数据可以是具有可控属性的对象的控制点的时间序列数据的形式。例如,对象可以是具有可以类似于典型人类移动的方式移动的四肢和关节的人形角色。艺术家可以在高的级别(诸如“左手在时间t1到t2从位置(x1,y1,z1)移动到(x2,y2,z2)”),在较低级别(例如,“每帧移动肘关节2.5度”)或甚至在非常高的级别(例如,“角色a应移动,与为此场景给出的物理定律一致,沿着指定的路径从点p1到点p2”)指定动画序列。
[0123]
动画场景中的动画序列可以由现场动作场景中发生的事情指定。动画驱动程序生成器644可以读入现场动作元数据,诸如表示现场动作场景期间现场参与者的身体部位的移动和位置的数据,并且生成要存储在动画序列存储装置638中的对应动画参数,以用于动画化cgi对象。这在以下情况下是有用的:人类参与者在佩戴mo-cap基准(例如,参与者服装外的高对比度标记、参与者皮肤、面部等上的高可见度涂料)时捕获现场动作场景并且这些基准的移动由现场动作处理系统622确定。动画驱动生成器644可以将该移动数据转换成关节连接的cgi角色的关节如何随时间移动的规范。
[0124]
渲染引擎650可以读入动画序列、场景描述和对象细节,以及渲染引擎控制输入,诸如分辨率选择和一组渲染参数。分辨率选择对于操作员控制渲染速度和细节清晰度之间的权衡可以是有用的,因为对于电影制作者测试特定的交互或方向来说速度可以比清晰度更重要,而对于电影制作者生成将用于要分发的长片的最终拷贝的数据来说清晰度可以比速度更重要。渲染引擎650可以包括计算机处理能力、图像处理能力、一个或多个处理器、用于存储可由一个或多个处理器执行的程序指令的程序代码存储装置、以及用户输入设备和用户输出设备(不是所有都被示出)。
[0125]
视觉内容生成系统600还可以包括将现场镜头与动画内容合并的合并系统660。可以通过以下来获得和输入现场镜头:从现场动作镜头存储装置620中读取以获得现场动作镜头、从现场动作元数据存储装置624中读取以获得细节(诸如将现场动作场景中的对象从其背景中分割出来的捕获图像中的假定分割(也许借助于绿色屏幕610是现场动作场景的一部分的事实))以及从渲染引擎650获得cgi影像。
[0126]
合并系统660也可以从用于合并/组合规则集存储装置662中读取数据。规则集中的规则的非常简单的示例可以是:“从现场镜头获得包括二维像素阵列的完整图像,从渲染引擎650获得包括二维像素阵列的完整图像,并且当现场镜头中的对应像素是绿色的特定颜色时,输出每个像素是来自渲染引擎650的对应像素的图像,否则输出来自现场镜头中的对应像素的像素颜色值”。
[0127]
合并系统660可以包括不计算机处理能力、图像处理能力、一个或多个处理器、用于存储可由一个或多个处理器执行的程序指令的程序代码存储装置、以及用户输入设备和用户输出设备(是所有都被示出)。合并系统660可以按照编程指令自主地操作,或可以具有操作员可以通过其控制合并过程的用户接口或编程接口。在一些实施例中,操作员可以指定在合并过程中使用的参数值和/或可以指定要对合并系统660的输出进行的特定调整,诸如修改分割对象的边界、插入模糊以消除瑕疵、或添加其他效果。基于其输入,合并系统660可以输出要存储在静态图像存储装置670中的图像和/或要存储在动画/组合视频存储装置672中的视频形式的图像序列。
[0128]
因此,如所描述的,视觉内容生成系统600可以用于使用各种部件和工具(其中一
些在本文中被更详细地描述)来生成将现场动作与计算机生成的动画相结合的视频。尽管视觉内容生成系统600对于此类组合可以是有用的,但是通过适当的设置,视觉内容生成系统可以用于输出完整的现场动作镜头或完整的cgi序列。该代码也可以由暂态计算机可读介质(例如,诸如以通过网络传输的信号的形式的传输介质)提供和/或运载。
[0129]
除非本文另外指出或与上下文明显矛盾,否则本文描述的过程的操作可以以任何合适的顺序来执行。本文描述的过程(或其变型和/或组合)可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以通过硬件或其组合实现为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)。该代码可以例如以包括可以由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读存储介质上。计算机可读存储介质可以是非暂态的。该代码也可以由暂态计算机可读介质(例如,诸如以通过网络传输的信号的形式的传输介质)运载提供。
[0130]
除非另有具体说明或与上下文明显矛盾,否则诸如形式为“a、b、和c中的至少一者”或“a、b和c中的至少一者”的短语的连接性语言应结合通常使用的上下文来理解,以表示项目、术语等可以是a或b或c,或a和b和c的集合的任何非空子集。例如,在具有三个成员的集合的说明性示例中,连接性短语“a、b、和c中的至少一者”和“a、b和c中的至少一者”是指以下集合中的任一个:{a}、{b}、{c}、{a、b}、{a、c}、{b、c}、{a、b、c}。因此,此类连接性语言一般不旨在暗示某些实施例要求a中的至少一个、b中的至少一个和c中的至少一个各自存在。
[0131]
除非另有声明,否则本文提供的任何和所有示例或示例语言(例如,“诸如”)的使用仅旨在更好地阐明本发明的实施例并且不对本发明的范围构成限制。说明书中的任何语言都不应被解释为指示任何未要求保护的元素对于本发明的实践是必不可少的。
[0132]
在前面的说明书中,已经参考可以随实现方式的不同而不同的许多具体细节描述了本发明的实施例。因此,说明书和附图被认为是说明性的而不是限制性的。本发明范围的唯一和排他性的指示以及申请人想要成为的本发明的范围,是从本技术以此类权利要求发布的特定形式发布的该组权利要求的字面和等效范围,包括任何随后的修正。
[0133]
在阅读了本公开之后,本领域普通技术人员可以想到进一步的实施例。在其他实施例中,可以有利地进行上述公开的发明的组合或子组合。部件的示例布置是为了说明的目的而示出的,并且应理解,组合、添加、重新布置等被考虑在本发明的替代实施例中。因此,尽管已经针对示例性实施例描述了本发明,但是本领域技术人员将认识到许多修改是可能的。
[0134]
例如,本文描述的过程可以使用硬件部件、软件部件和/或它们的任意组合来实现。因此,说明书和附图被认为是说明性的而不是限制性的。然而,显而易见的是,在不脱离权利要求中所阐述的本发明的更广泛的精神和范围的情况下,可以对本发明进行各种修改和改变,并且本发明旨在涵盖所附权利要求范围内的所有修改和等效物。
[0135]
在本说明书中,参考了专利说明书、其他外部文件或其他信息源,这一般是为了提供讨论本发明特征的上下文。除非另有明确说明,否则对此类外部文件或此类信息源的引用不应被解释为承认此类文件或此类信息源在任何管辖范围内都是现有技术或构成本领域公知常识的一部分。
[0136]
本文引用的所有参考文献,包括出版物、专利申请和专利,特此以引用方式并入本
文,其程度与每篇参考文献均单独且具体指示以引用方式并入并且在本文中完整阐述的程度相同。

技术特征:
1.一种用于学习动画系统中的面部动作的应变到皮肤的变换的计算机实现的方法,所述方法包括:接收在数据束时间段上的表示多个面部移动的参与者面部的多个面部扫描;从所述多个面部扫描生成数据束,所述数据束包括在所述数据束时间段上的时变面部肌肉应变向量的第一缓存、在所述数据束时间段上的时变皮肤表面向量的第二缓存;将所述数据束和对应于所述参与者的解剖数据输入到学习模型;由所述学习模型基于在所述数据束时间段上的时变面部肌肉应变向量的所述第一缓存和对应于所述参与者的所述解剖数据来生成预测皮肤表面向量;基于所述预测皮肤表面向量和来自在所述数据束时间段上的时变皮肤表面向量的所述第二缓存的基准实况皮肤表面来计算度量;以及通过最小化所计算的度量来更新所述学习模型的参数。2.根据权利要求1所述的方法,其中,所述学习模型是线性回归模型,并且通过基于所计算的度量求解约束最小二乘问题来更新所述学习模型。3.根据权利要求1所述的方法,其中,所述学习模型是全连接层,并且所计算的度量是l2损失目标。4.根据权利要求1所述的方法,其还包括:生成多个数据束的训练数据集,其中,所述多个数据束对应于包括面部动作、对话和情绪描绘的任意组合的多种类型的面部移动。5.根据权利要求1所述的方法,其还包括:从更新的学习模型中导出至少所述面部肌肉应变向量和所述皮肤表面向量之间的变换关系。6.根据权利要求5所述的方法,其还包括:获得具有不是从所述多个面部扫描中的任一个获得的应变值的调整后的面部肌肉应变向量;以及使用所述变换关系,从调整后的面部肌肉应变向量生成调整后的预测皮肤表面向量。7.根据权利要求6所述的方法,其还包括:确定所述调整后的预测皮肤表面向量与期望的皮肤表面向量相匹配;以及将所述调整后的面部肌肉应变向量发送到动画创建系统,用于基于所述调整后的面部肌肉应变向量创建动画皮肤表面。8.一种用于学习动画系统中的面部动作的应变到皮肤的变换的系统,所述系统包括:通信接口,其接收在数据束时间段上的表示多个面部移动的参与者面部的多个面部扫描;存储器,其存储多个处理器可执行指令;以及一个或多个硬件处理器,其读取所述多个处理器可执行指令以执行:从所述多个面部扫描生成数据束,所述数据束包括在所述数据束时间段上的时变面部肌肉应变向量的第一缓存、在所述数据束时间段上的时变皮肤表面向量的第二缓存;将所述数据束和对应于所述参与者的解剖数据输入到学习模型;由所述学习模型基于在所述数据束时间段上的时变面部肌肉应变向量的所述第一缓存和对应于所述参与者的所述解剖数据来生成预测皮肤表面向量;
基于所述预测皮肤表面向量和来自在所述数据束时间段上的时变皮肤表面向量的所述第二缓存的基准实况皮肤表面来计算度量;以及通过最小化所计算的度量来更新所述学习模型的参数。9.根据权利要求8所述的系统,其中,所述学习模型是线性回归模型,并且通过基于所计算的度量求解约束最小二乘问题来更新。10.根据权利要求8所述的系统,其中,所述学习模型是全连接层,并且所计算的度量是l2损失目标。11.根据权利要求8所述的系统,其中,所述一个或多个硬件处理器读取所述多个处理器可执行指令以进一步执行:生成多个数据束的训练数据集,其中,所述多个数据束对应于包括面部动作、对话和情绪描绘的任意组合的多种类型的面部移动。12.根据权利要求8所述的系统,其中,所述一个或多个硬件处理器读取所述多个处理器可执行指令以进一步执行:从更新的学习模型中导出至少所述面部肌肉应变向量和所述皮肤表面向量之间的变换关系。13.根据权利要求12所述的系统,其中,所述一个或多个硬件处理器读取所述多个处理器可执行指令以进一步执行:获得具有不是从所述多个面部扫描中的任一个获得的应变值的调整后的面部肌肉应变向量;以及使用所述变换关系,从所述调整后的面部肌肉应变向量生成调整后的预测皮肤表面向量。14.根据权利要求13所述的系统,其中,所述一个或多个硬件处理器读取所述多个处理器可执行指令以进一步执行:确定所述调整后的预测皮肤表面向量与期望的皮肤表面向量相匹配;以及将所述调整后的面部肌肉应变向量发送到动画创建系统,用于基于所述调整后的面部肌肉应变向量创建动画皮肤表面。15.一种存储用于学习动画系统中的面部动作的应变到皮肤的变换的多个处理器可执行指令的非暂态处理器可读介质,所述处理器可执行指令由一个或多个硬件处理器执行以执行:接收在数据束时间段上的表示多个面部移动的参与者面部的多个面部扫描;从所述多个面部扫描生成数据束,所述数据束包括在所述数据束时间段上的时变面部肌肉应变向量的第一缓存、在所述数据束时间段上的时变皮肤表面向量的第二缓存;将所述数据束和对应于所述参与者的解剖数据输入到学习模型;由所述学习模型基于在所述数据束时间段上的时变面部肌肉应变向量的所述第一缓存和对应于所述参与者的所述解剖数据来生成预测皮肤表面向量;基于所述预测皮肤表面向量和来自在所述数据束时间段上的时变皮肤表面向量的所述第二缓存的基准实况皮肤表面来计算度量;以及通过最小化所计算的度量来更新所述学习模型的参数。

技术总结
一种动画系统,其中采用机器学习模型来学习面部肌肉移动和皮肤表面移动之间的变换关系。例如,对于表示“微笑”的该皮肤表面,该变换模型导出与什么面部肌肉被激活、什么是肌肉应变、什么是关节移动等相关的移动向量。此类导出的移动向量可以用于模拟该皮肤表面的“微笑”。。。


技术研发人员:B
受保护的技术使用者:联合技术旧金山公司
技术研发日:2020.11.11
技术公布日:2023/7/17
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐