一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于生成3D对象的多边形网格的自回归神经网络的制作方法

2022-11-16 17:02:45 来源:中国专利 TAG:

用于生成3d对象的多边形网格的自回归神经网络


背景技术:

1.本说明书涉及使用神经网络生成对象的三维网格。
2.神经网络是采用一层或多层非线性单元来预测接收的输入的输出的机器学习模型。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中的下一层、即下一隐藏层或输出层的输入。网络的每一层根据相应参数集的当前值从接收的输入生成输出。


技术实现要素:

3.本说明书描述了一个或多个物理位置中的一个或多个计算机的系统,该系统使用自回归网格生成神经网络来生成对象的三维(3d)网格,即生成指定三维网格的顶点和面的输出序列。
4.本说明书中描述的主题的特定实施例能够被实现,以便实现一个或多个以下优点。
5.使用神经网络来生成对象的表示的传统方法已经使用对象形状的替代表示——例如,体素、点云、占据函数和表面——来生成3d对象。在这些传统方法中,网格重建被保留为后处理步骤,并且所得到的网格最多具有不同的质量。另一方面,所描述的技术使用自回归神经网络直接生成3d网格,并且有效地解决了网格中存在的无序元素和离散面结构。这使得网格多样化和逼真的几何形状,并直接可用于各种图形应用。
6.此外,生成的网格能够有效地以各种情境输入中的任何一种为条件,允许系统有效地生成具有真实几何形状但也是由情境输入表征的特定类型对象的网格。
7.本说明书中描述的主题的一个或多个实施例的细节在附图和以下描述中被阐述。根据说明书、附图和权利要求书,本主题的其他特征、方面和优点将变得显而易见。
附图说明
8.图1示出示例网格生成系统。
9.图2示出网格生成神经网络的操作的示例。
10.图3是用于生成指定网格的输出序列的示例过程的流程图。
11.图4是用于生成网格的顶点的示例过程的流程图。
12.图5是用于生成网格的面的示例过程的流程图。
13.不同附图中相同的附图标记和名称表示相同的元素。
14.具体实现
15.本说明书描述了一个或多个物理位置中的一个或多个计算机的系统,该系统使用自回归网格生成神经网络来生成三维网格,即生成指定对象的三维网格的顶点和面的输出序列。
16.例如,网格生成神经网络能够包括:顶点生成神经网络,顶点生成神经网络生成包括网格的顶点的顶点坐标的第一序列;以及面生成神经网络,面生成神经网络生成包括网
格令牌的第二序列,网格令牌标识哪些顶点构成网格的每个面。
17.因为网格生成神经网络是自回归的,所以网格生成神经网络能够被用于在给定相同情境输入的情况下,通过在每个输出位置从由神经网络生成的概率分布采样来生成许多不同但高质量的网格。
18.一旦生成了输出序列,系统就能够生成和渲染网格,或者能够将该序列提供给另一系统用于网格生成和渲染。例如,系统能够从任何给定的情境输入生成一个或多个网格,并且能够提供所生成的网格以呈现给用户,例如作为插入到视频游戏、虚拟现实场景、电影或另一虚拟世界中的候选。作为另一示例,生成的网格能够被用作计算机视觉系统的输出,或者被插入到与机器人交互的虚拟环境中,例如,作为学习机器人的控制策略的一部分。
19.因此,一个或多个其他神经网络可以基于输出网格来训练。例如,计算机视觉神经网络可以被训练以辨认输出网格的形状。可替换地,代理可以被训练以在虚拟环境中对由输出网格表示的对象执行任务。这可以包括将输出网格定位在虚拟环境中,并且指示强化学习代理对由输出网格表示的对象执行动作以执行任务。强化学习代理可以基于响应于在虚拟环境中采取的行动而接收到的奖励来训练。
20.生成的网格可以用于渲染包括对象的图像(例如对象的图像或者诸如虚拟环境的场景内的对象的图像)。渲染过程可以产生表示包括对象的三维(3d)场景的视图的二维(2d)图像。该过程可以指定对象在环境中的位置。这可以是虚拟现实或增强现实渲染过程的一部分。因此,环境的视图(例如,视场)的位置和/或方位可以取决于物理(真实世界)环境的视图(例如,视场)的位置和/或方位(例如,基于来自一个或多个传感器的位置和/或方位测量,一个或多个传感器诸如虚拟现实或增强现实头戴式耳机内的一个或多个传感器)。
21.一个或多个生成的网格可以被直接集成到计算机图形引擎(例如,图形处理器单元,gpu)中。如上所述,这些能够被计算机图形引擎用来渲染虚拟环境的图像。计算机图形引擎可以存储一个或多个生成的网格,并在需要渲染由一个或多个生成的网格表示的一个或多个对象时访问它们(例如,在一个或多个对象形成虚拟环境的一部分的情况下)。作为渲染过程的一部分,变形可以被应用于存储的网格(例如,以反映正在被渲染的对象的结构的变化)。网格可以用于光线跟踪。例如,光线跟踪可以渲染虚拟光线在虚拟环境中的何处被建模,并且其中,由特定网格表示的对象的反射被建模作为渲染过程的一部分。这可以包括识别光线和网格之间的交点,并基于对象的属性对交点打阴影。
22.作为另一示例,生成的网格可以被输出到一个或多个(附加的)制造设备,用于制造具有由生成的网格描述的形状的一个或多个对象。该输出可以包括切片网格和/或将网格转换成适于制造的格式(例如,经由附加的制造)。该格式可以是指令集合(例如,g代码),当由一个或多个制造设备运行时,使得一个或多个制造设备制造一个或多个对象。指令集合可以是计算机可读指令。将网格转换成用于制造的格式可以基于用户偏好,诸如在附加的制造的情况下的层厚度。
23.图1示出示例网格生成系统100。网格生成系统100是被实现为一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,其中可以实现下述系统、组件和技术。
24.网格生成系统100是使用自回归网格生成神经网络110生成指定对象的三维网格152的输出序列150的系统。
25.三维对象的三维网格是定义三维对象形状的顶点和多边形面的集合。
26.在一些情况下,多边形面都具有相同的大小,即相同数量的顶点。作为一个特定的示例,所有的多边形面能够是具有三个顶点的三角形。
27.在一些其他情况下,面可以具有可变的大小,即可变数量的顶点。允许面具有不同数量的顶点能够导致对象的更紧凑的表示,即具有更少面的表示。例如,对象的任何大的平坦表面能够被表示为具有许多顶点的单个面,而不是多个三角形的集合。
28.在本说明书中,系统100被描述为被配置为生成由具有可变数量的顶点的多边形面组成的网格。然而,将会理解,系统100也可以替代地被配置为限制网格中每个面中的顶点数量,使得每个面具有相同数量的顶点。
29.在一些实现中,系统100执行无条件网格生成,即,生成输出序列150,而不显式地以输入为条件。在这些情况下,系统100将生成真实网格,其表示出现在用于训练自回归网格神经网络110的训练数据中的网格。
30.在一些其他实现中,系统100执行有条件网格生成。在这些情况下,系统100接收指定要被生成的网格的情境的情境输入102,并使用神经网络110生成由情境输入102表征的对象的真实网格。
31.系统100能够被配置为接收各种情境输入中的任何一种。
32.作为一个示例,情境输入能够是标识该对象的对象类的输入,即指定生成的网格表示的对象应该属于的对象类的输入。
33.作为另一示例,情境输入能够是对象的图像,即作为生成的网格应该表示的对象的图像的输入。
34.作为另一示例,情境输入能够是对象的体素化表示,即表示生成的网格应该表示的对象的体素集合。
35.将在下面参考图3-图5更详细地描述执行有条件网格生成,即如何以情境输入102为条件调节神经网络110。
36.通常,由系统100生成的输出序列150表示对象的三维网格152的顶点和面。具体地,输出序列能够包括第一子序列,第一子序列包括网格的顶点的顶点坐标,其后是第二子序列,第二子序列包括标识哪些顶点构成网格的面中的每一个的网格令牌。
37.一旦生成了输出序列150,系统100能够生成和渲染网格152,或者能够将序列150提供给另一系统用于网格生成和渲染。例如,系统100能够从任何给定的情境输入102生成一个或多个网格,并且能够提供生成的网格以呈现给用户,例如作为插入到视频游戏、虚拟现实场景、电影或另一虚拟世界中的候选。作为另一示例,生成的网格能够被用作计算机视觉系统的输出,或者被插入到与机器人交互的虚拟环境中,例如,作为学习机器人的控制策略的一部分。
38.因此,一个或多个其他神经网络可以基于输出网格来训练。例如,计算机视觉神经网络可以被训练以识别输出网格的形状。可替换地,代理可以被训练以在虚拟环境中对由输出网格表示的对象执行任务。这可以包括将输出网格定位在虚拟环境中,并且指示强化学习代理对输出网格表示的对象执行动作以执行任务。强化学习代理可以基于响应于在虚拟环境中采取的行动而接收到的奖励来训练。
39.生成的网格可以用于渲染包括对象的图像(例如对象的图像或者诸如虚拟环境的场景内的对象的图像)。渲染过程可以产生表示包括对象的三维(3d)场景的视图的二维
(2d)图像。该过程可以指定对象在环境中的位置。这可以是虚拟现实或增强现实渲染过程的一部分。因此,环境的视图(例如,视场)的位置和/或方位可以取决于物理(真实世界)环境的视图(例如,视场)的位置和/或方位(例如,基于来自一个或多个传感器的位置和/或方位测量,一个或多个传感器诸如虚拟现实或增强现实头戴式耳机内的一个或多个传感器)。
40.一个或多个生成的网格可以被直接集成到计算机图形引擎(例如,图形处理器单元,gpu)中。如上所述,这些能够被计算机图形引擎用来渲染虚拟环境的图像。计算机图形引擎可以存储一个或多个生成的网格,并在需要渲染由一个或多个生成的网格表示的一个或多个对象时访问它们(例如,在一个或多个对象形成虚拟环境的一部分的情况下)。作为渲染过程的一部分,变形可以被应用于存储的网格(例如,以反映正在被渲染的对象的结构的变化)。网格可以用于光线跟踪。例如,光线跟踪可以渲染虚拟光线在虚拟环境中的何处被建模,并且其中,由特定网格表示的对象的反射被建模作为渲染过程的一部分。这可以包括识别光线和网格之间的交点,并基于对象的属性对交点打阴影。
41.作为另一示例,生成的网格可以被输出到一个或多个(附加的)制造设备,用于制造具有由生成的网格描述的形状的一个或多个对象。该输出可以包括切片网格和/或将网格转换成适于制造的格式(例如,经由附加的制造)。该格式可以是指令集合(例如,g代码),当由一个或多个制造设备运行时,使得一个或多个制造设备制造一个或多个对象。指令集合可以是计算机可读指令。将网格转换成用于制造的格式可以基于用户偏好,诸如在附加的制造的情况下的层厚度。
42.输出序列150包括在输出序列150内的多个输出位置中的每一个处的相应的网格令牌。系统100使用自回归网格生成神经网络110以自回归方式生成网格令牌,即通过逐个生成网格令牌,以已经在输出序列150中任何更早的输出位置处生成的网格令牌为条件、在任何给定位置生成网格令牌。取决于输出位置,网格令牌可以包括以下中的任何一个:网格顶点的坐标值、网格顶点的标识符、停止令牌或新的面令牌(face token)。这些中的每一个将在下面更详细地描述。
43.换句话说,在任何给定的输出位置,系统100通过使用自回归网格生成神经网络110处理给定输出位置的输入来生成给定输出位置的网格令牌,以生成给定输出位置的可能网格令牌的概率分布,其中神经网络110以(至少)已经在输出序列中的任何更早输出位置被选择的任何网格令牌为条件。
44.系统100然后使用概率分布从输出位置的可能网格令牌中选择输出位置的网格令牌。
45.系统100如何生成给定输出位置的输入以及对于给定输出位置哪些令牌是可能的网格令牌取决于给定输出位置在输出序列150中的位置。
46.具体地,如下面将更详细描述的,系统100首先生成表示网格中多边形面的顶点坐标的网格令牌,然后生成标识哪些顶点构成网格中多个面中的每一个的网格令牌。
47.因此,输出序列150包括第一输出位置集合,随后是第二输出位置集合。第一输出位置集合处的网格令牌表示网格顶点的坐标,并且第二输出位置集合处的网格令牌标识构成多个面中的每一个的顶点。
48.换句话说,系统100将顶点和面的联合分布分解成条件分布的乘积,一个对于可能的顶点坐标(每个顶点坐标以已经选择的坐标为条件),并且一个对于面顶点(每个面顶点
以已经选择的面顶点为条件)。
49.为了生成定义网格的数据,即生成输出序列150,系统首先从顶点分布采样顶点,然后从以采样的顶点为条件的面分布采样面。
50.这将在下面参考图2更详细地描述。
51.图2示出自回归网格生成神经网络110的操作的示例。
52.在图2的示例中,神经网络110包括顶点生成神经网络210和面生成神经网络220。
53.如图2所示,系统首先使用顶点生成神经网络生成网格顶点,然后以生成的顶点为条件生成网格面。在图2的示例中,顶点生成神经网络210被示出为在三个输出位置生成顶点的z、y和x坐标。
54.为了生成给定的网格顶点,系统在三维坐标系中生成顶点的x、y和z坐标,其中z是垂直轴。
55.更具体地,系统将顶点坐标生成为级联的值元组的展平序列,每个元组表示网格顶点中的不同一个网格顶点的三个坐标。作为特定示例,在每个元组内,三个值可以按照该顺序表示网格的(z,y,x)坐标。
56.因此,输出序列150包括指定网格顶点的坐标的第一输出位置集合。也就是说,第一集合中的每个输出位置与网格顶点中的一个的z、y或x坐标相对应。
57.具体地,为了生成第一子集中的任何给定输出位置处的坐标,系统使用顶点生成神经网络处理在给定输出位置之前的输出位置处已经生成的坐标序列。
58.顶点生成神经网络包括:顶点编码器(在图中称为“顶点变换器”),生成已经生成的坐标中的每一个的相应嵌入;以及顶点解码器,处理嵌入的序列以生成给定输出位置处坐标的可能值的概率分布。这能够等效地被称为使用顶点编码器生成嵌入,然后使用顶点解码器处理嵌入的序列。
59.当在本说明书中使用时,嵌入是令牌的数字表示。具体地,嵌入是嵌入空间中的数字表示,即固定数量的数值的有序集合,其中数值的数量等于嵌入空间的维数。例如,嵌入能够是浮点向量或其他类型的数值。
60.例如,系统能够量化可能坐标值的空间,并且对于第一集合中的每个输出位置,顶点解码器能够生成对于结果量化集合中的量化坐标值的概率分布,即分类(categorical)分布。然后,系统使用概率分布为给定输出位置选择网格令牌,即坐标值。这将在下面参考图4进行更详细的描述。
61.在一些实现中,系统对顶点生成神经网络输出的罗吉特(logit)应用掩模,以掩蔽对于给定输出位置无效的任何网格令牌。这也将在下面参考图4进行描述。
62.顶点编码器能够以各种方式生成给定坐标值的嵌入。作为特定示例,嵌入能够是以下两个或更多的组合,例如级联、求和或平均:(1)坐标嵌入,其指示输入令牌是x、y还是z坐标;(2)位置嵌入,其指示令牌属于序列中的哪个顶点;或者(3)值嵌入,其表达令牌的量化坐标值。嵌入(1)、(2)和(3)能够被预先确定,也能够与顶点生成神经网络的训练被联合学习。
63.在一些实现中,并非生成表示顶点的各个坐标的网格令牌,即,其中每个令牌仅表示x、y或z坐标中的一个,而是系统能够生成每个表示给定顶点的所有三个坐标的网格令牌,即,每个元组能够表示单个顶点的完整坐标元组。例如,系统能够使用离散logit的混合
来建模顶点的三个坐标的概率分布。
64.一旦生成了顶点坐标序列,即生成了输出序列150中第一位置子集处的网格令牌,系统就使用面生成神经网络220来生成指定对象的三维网格中的面的数据。图2的示例示出生成四个网格令牌的神经网络220,该四个网格令牌标识组成所得网格的矩形面的四个顶点。
65.每个面由输出序列150中的第一位置子集指定的三个或更多顶点来定义(“组成”)。具体地,系统使用面生成神经网络来生成在输出序列150中的第二输出位置子集处的网格令牌。在第二子集中的位置中的一个处的每个网格令牌或者(i)标识由顶点生成神经网络生成的顶点中的一个,或(ii)是指示先前面被完成并且新的面将从下一个输出位置处的下一个网格令牌开始的新的面令牌。
66.因此,一旦已经生成输出位置的第二子集处的网格令牌,则网格中的面是:(i)由第二子集中第一新的面令牌之前的网格令牌所标识的顶点组成的第一面;(ii)由第二子集中任意两个新的面令牌之间的位置处的网格令牌组成的相应面;以及(iii)由输出序列中最后一个新的面令牌之后的网格令牌标识的顶点组成的最后一个面。
67.为了生成在第二子集处的网格令牌,面生成神经网络包括面编码器,该面编码器生成输入集合的相应情境嵌入,该输入集合由(i)由顶点生成神经网络的输出指定的多个顶点中的每一个、(ii)新的面令牌,以及(iii)停止令牌组成。
68.面生成神经网络还包括面解码器,该面解码器在位置的第二子集处自回归地生成网格令牌,位置的第二子集以该输入集合的相应情境嵌入为条件来定义面。
69.下面参考图5描述在第二子集中生成情境嵌入和网格令牌。
70.该系统(或另一系统)在训练数据上训练自回归网格生成神经网络,训练数据包括指定训练数据集中的网格的训练输出序列,并且在系统有执行条件网格生成的情况下,包括每个训练输出序列的相应情境输入。
71.具体地,当自回归网格生成神经网络包括顶点生成神经网络和面生成神经网络时,系统能够训练顶点生成神经网络来优化一个目标函数,该目标函数测量由顶点生成神经网络分配给训练输出序列中的基准真值顶点坐标的概率。该系统还训练面生成神经网络来优化第二目标函数,该第二目标函数测量由面生成神经网络分配给由基准真值输出序列指定的面的概率(以来自基准真值训练序列的基准真值顶点为条件)。
72.作为特定示例,系统能够通过最大化以下对数似然目标来训练顶点生成神经网络,该对数似然目标通过由顶点生成神经网络在输出位置的第一子集中的对应位置处生成的概率分布来测量分配给给定基准真值输出序列中的基准真值顶点坐标的对数似然。
73.作为另一特定示例,该系统能够通过最大化以下对数似然目标来训练面生成神经网络,该对数似然目标通过输出位置的第二子集中的对应位置处的概率分布来测量分配给给定基准真值输出序列中的基准真值顶点的对数似然。
74.图3是用于生成定义三维网格的输出序列的示例过程300的流程图。为了方便起见,过程300将被描述为由位于一个或多个位置的一个或多个计算机的系统来执行。例如,例如图1的网格生成系统100的适当编程的网格生成系统能够执行过程300。
75.可选地,系统获得情境输入(步骤302)。具体地,如上所述,系统能够执行无条件网格生成或者能够执行有条件网格生成,在无条件网格生成中,系统生成不以任何输入为条
件的真实网格,而在有条件网格生成中,系统生成由情境输入表征的对象的真实网格。
76.系统使用自回归网格生成神经网络生成指定对象的三维网格的顶点和面的输出序列(步骤304)。
77.输出序列包括在多个输出位置中的每一个位置处的相应网格令牌,并且系统顺序地,即逐个地生成网格令牌。
78.为了在给定输出位置生成网格令牌,系统使用自回归网格生成神经网络处理时间步长的输入,其中神经网络至少以已经在任何更早输出位置选择的任何网格令牌为条件,以生成给定输出位置的可能网格令牌的概率分布。对于输出序列中的不同输出位置,可能的网格令牌通常会有所不同。当已经获得情境输入时,对于至少一些输出位置,自回归网格生成神经网络也以情境输入为条件。
79.作为特定示例,输出序列能够包括第一输出位置集合,随后是第二输出位置集合。第一输出位置集合处的网格令牌能够是网格的多个顶点中的每一个的相应坐标,即,第一输出位置中的一个处的每个网格令牌是网格的顶点中的一个的坐标。第二输出位置集合处的网格令牌从组成网格的多个面中的每一个面的多个顶点中标识顶点,即,第二输出位置中的一个处的每个网格令牌标识网格的一个面的相应顶点。
80.为第一输出位置集合中的位置生成概率分布在下面参照图4描述。
81.为第二输出位置集合中的位置生成概率分布在下面参照图5描述。
82.系统然后使用概率分布从给定输出位置的可能网格令牌中选择输出位置处的网格令牌。例如,系统能够选择具有最高概率的可能网格令牌,或者从概率分布中采样网格令牌。
83.当系统被配置为从概率分布中采样时,由于计算的自回归特性,给定相同的情境输入,系统能够生成多个不同的真实网格。
84.图4是用于在第一输出位置子集中的给定输出位置生成网格令牌的示例过程400的流程图。为了方便起见,过程400将被描述为由位于一个或多个位置的一个或多个计算机的系统来执行。例如,例如图1的网格生成系统100的适当编程的网格生成系统能够执行过程400。
85.系统能够重复地执行过程400,以生成网格的所有顶点的相应坐标。因为由系统生成的网格通常具有可变数量的顶点,所以系统能够重复地执行过程400,直到满足停止准则为止。
86.例如,系统能够重复地执行过程400,以将坐标添加到第一输出位置子集,直到系统选择预定的停止令牌为止。一旦预定的停止令牌已经被选择,系统就将在停止令牌之前所选择的网格令牌视为第一输出位置子集处的令牌。
87.系统为在输出序列中任何更早的输出位置已经选择的任何顶点坐标生成相应的嵌入(步骤402)。具体地,系统能够通过使用如上参考图2所述的顶点编码器处理嵌入来生成相应的嵌入。
88.系统使用顶点解码器处理相应的嵌入,以生成给定输出位置的概率分布(步骤404)。
89.作为特定示例,顶点解码器能够是具有transformer架构的神经网络,即,能够具有以transformer的解码器架构。
90.transformer是一种神经网络,其作为生成输出的一部分对其输入重复地应用注意机制。根据transformer的配置,transformer能够包括编码器和解码器两者、仅包括编码器或仅包括解码器。transformer的配置示例和transformer的组件的细节,例如,注意力层、注意力网络层内的前馈层以及产生网络输出的注意力神经网络的输出层在vaswani等人,attention is all you need,arxiv:1706.03762、raffel等人,exploring the limits of transfer learning with a unified text-to-text transformer,arxiv:1910.10683和devlin等人,bert:pre-training of deep bidirectional transformers for language understanding,arxiv:1810.04805中被更详细地描述,其全部内容通过引用被整体并入本文
91.通常,顶点解码器的输出包括所有可能坐标和停止令牌的相应logit,即相应分数。在一些实现中,系统然后将softmax应用于相应的logit以生成概率分布。
92.在一些其他实现中,系统首先掩蔽输出位置的任何可能的网格令牌的logit,该网格令牌在给定已经在第一子集中的更早位置选择的网格令牌的情况下是无效的,然后,在掩蔽之后,应用softmax来生成概率分布。掩蔽网格令牌的logit指的是将logit设置为一个值,例如负无穷大,使得当由softmax处理时,网格令牌的结果概率为零(并且因此当从分布中采样时或者当选择分布中的最高概率时,系统不选择该网格令牌)。
93.例如,系统能够掩蔽停止令牌的logit,除非在前的坐标是顶点的最后一个坐标,例如,当元组被排序(z,y,x)时顶点的x坐标,即,使得系统不停止生成坐标,而最后一个顶点的坐标仅被部分生成。
94.作为另一示例,系统能够对顶点的生成施加附加的要求,并且然后,在一些或所有输出位置,掩蔽logit以确保满足那些要求。
95.作为一个特定的示例,系统能够基于顶点的三个坐标中的指定的一个坐标的位置,对生成顶点的顺序施加要求。当生成每个顶点的指定坐标时,系统能够掩蔽违反对顺序施加的要求的指定坐标的那些值的logit。
96.例如,系统能够要求顶点的z坐标单调递增,即首先生成具有最小z坐标值的顶点,并且顶点的z坐标从那里开始单调递增。在此示例中,当生成除第一个顶点之外的任何顶点的z坐标时,系统能够掩蔽等于或小于在先顶点的z坐标值的任何可能坐标值(或者等效地,不大于所有在先顶点的所有z坐标值的任何可能坐标值)的logit。
97.系统使用概率分布选择输出位置处的网格令牌,例如通过从概率分布中采样网格令牌(步骤406)。如上所述,如果系统采样或选择停止令牌,则系统将已经生成的顶点标识为网格中仅有的顶点。
98.图5是用于在第二输出位置子集中的输出位置处生成网格令牌的示例过程500的流程图。为了方便起见,过程500将被描述为由位于一个或多个位置的一个或多个计算机的系统来执行。例如,例如图1的网格生成系统100的适当编程的网格生成系统能够执行过程500。
99.系统生成输入集合的相应情境嵌入,其由(i)多个顶点中的每一个、(ii)新的面令牌以及(iii)停止令牌组成(步骤502)。这些嵌入被称为“情境”嵌入,因为集合中任何给定输入的嵌入依赖于集合中其他输入的值。
100.为了生成相应的情境嵌入,系统使用面编码器来处理(i)多个顶点中的每一个、
(ii)新的面令牌以及(iii)停止令牌。如上所述,新的面令牌是指定的令牌,当被选择时,指示当前面是完整的,并且随后的网格令牌将指示新面中的下一个顶点。
101.面编码器是被配置为处理输入序列以生成序列中的每个输入的相应嵌入的神经网络。作为特定示例,面编码器能够是具有transformer架构的神经网络,即,能够具有以transformer的编码器的架构。
102.然后,系统可以重复地执行步骤504-510,以生成三维网格的面,即,为三维网格的每个面标识组成该面的顶点。因为系统生成的网格通常具有可变数量的面,所以系统能够重复地执行步骤504-510,直到满足停止准则为止。
103.例如,系统能够重复地执行步骤504-510来标识面顶点,直到系统选择停止令牌为止。一旦停止令牌被选择,系统就将已经由在停止令牌之前所选择的网格令牌定义的面视为网格的面。
104.换句话说,系统对第二输出位置集合中的每个输出位置执行步骤504-510,以选择输出位置处的网格令牌。
105.具体地,为了选择第二输出位置集合中的给定输出位置处的网格令牌,系统为给定输出位置生成解码器输入,该解码器输入包括在第二集合中的任何更早输出位置处生成的每个网格令牌的相应嵌入(步骤504)。具体地,系统生成网格令牌的相应嵌入的序列。
106.系统能够以多种方式中的任何一种来计算给定网格令牌的嵌入。作为一个特定示例,系统能够生成表征由网格令牌标识的顶点在网格内的位置的一个或多个嵌入,然后将这些嵌入与网格令牌的情境嵌入进行组合,例如级联、平均或求和。表征顶点位置的嵌入能够包括顶点所属于的面的标识符的嵌入、顶点在面内的位置的嵌入或两者。嵌入能够是预先确定的,也能够利用神经网络的训练被联合学习。
107.系统使用面解码器来处理解码器输入,以生成指针向量(步骤506)。指针向量是具有与情境嵌入相同维度的向量。
108.面解码器是被配置为处理输入序列并生成向量作为输出的神经网络。作为特定示例,面解码器能够具有transformer架构,即,能够具有掩模的transformer解码器架构,并且指针向量能够是由transformer解码器生成的解码器输入中的最后一个嵌入的输出嵌入。
109.在一些实现中,掩模的transformer解码器内的每个注意力层仅将掩模的自注意力应用于解码器输入。在一些其他实现中,为了允许对顶点的附加条件作用,掩模的transformer解码器还包括一个或多个注意力层,其将交叉注意力应用到顶点的情境嵌入中。
110.根据指针向量和(i)多个顶点中的每一个、(ii)新的面令牌以及(iii)停止令牌的相应情境嵌入,系统生成(i)多个顶点中的每一个、(ii)新的面令牌以及(iii)停止令牌的概率分布(步骤508)。
111.具体地,对于每个情境嵌入,系统计算情境嵌入和指针向量之间的点积,以生成logit。
112.在一些实现中,系统然后对logit应用softmax以生成概率分布。
113.在一些实现中,系统掩蔽输出位置的任何可能的网格令牌的logit,该网格令牌在给定在更早位置已经选择的网格令牌的情况下是无效的,并且然后应用softmax来生成概
率分布。例如,系统能够掩蔽停止令牌的logit,直到每个顶点都被包括在至少一个面中为止。作为另一个示例,在给定的面内,系统可以掩蔽已经作为面的一部分被包括的顶点的logit。
114.系统使用概率分布,例如通过从概率分布中采样,来选择给定位置处的网格令牌(步骤510)。
115.如上所述,在一些实现中,系统接收情境输入,并且令生成的输出序列以接收的情境输入为条件。
116.系统能够用各种方式中的任何一种来实现这种条件作用,但是通常,对于输出序列中的至少一些输出位置,系统在输出序列处生成网格令牌,其中网格生成神经网络以情境输入为条件。
117.使得网格生成神经网络以情境输入为条件的一些具体示例如下。
118.如上所述,在一些实现中,情境输入是描述整个网格的全局特征,例如,对象的对象类的标识符。在这些实现中,系统能够生成对象类的学习嵌入,并且如果必要的话,将该嵌入投影到与由顶点生成神经网络和面生成神经网络所操作的嵌入相同的维度。然后,系统能够将嵌入与神经网络的一些或所有隐藏层的输出相结合。作为特定示例,当顶点生成神经网络和面生成神经网络具有transformer架构时,系统能够将嵌入与transformer的每个块中自注意力层之后的中间表示相结合。
119.在一些其他实现中,情境输入是高维输入,如图像或体素集合。对于高维情境输入,系统联合训练,即与网格生成神经网络联合训练,输出情境输入的情境嵌入序列的域适当(domain-appropriate)编码器。
120.顶点解码器、面解码器或两者能够以情境嵌入的顺序为条件。具体地,顶点解码器、面解码器或两者能够包括将交叉注意力应用到情境嵌入序列中的一个或多个注意力层。
121.具体地,当情境输入是对象的图像时,系统使用图像编码器神经网络来处理图像,以生成图像嵌入序列,并且如上所述令网格生成神经网络以图像嵌入的序列为条件。作为特定的示例,图像编码器神经网络能够是由一系列下采样残差块组成的二维卷积神经网络。
122.类似地,当情境输入是表示对象的体素集合时,系统使用体素编码器神经网络来处理体素,以生成体素嵌入序列,并且如上所述令网格生成神经网络以体素嵌入的序列为条件。作为一个特定的示例,体素编码器神经网络能够是由一系列下采样残差块组成的三维卷积神经网络。
123.本说明书结合系统和计算机程序组件使用术语“配置”。对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着该系统已经在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中使得该系统执行这些操作或动作。一个或多个计算机程序被配置为执行特定的操作或动作意味着一个或多个程序包括指令,当由数据处理装置执行时,这些指令使得该装置执行这些操作或动作。
124.本说明书中描述的主题和功能操作的实施例能够在数字电子电路、有形体现的计算机软件或固件、计算机硬件中实现,包括本说明书中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本说明书中描述的主题的实施例能够被实现为一个或多个计算
机程序,即编码在有形非暂时性存储介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质能够是机器可读存储设备、机器可读存储基底、随机或串行存取存储设备,或者它们中的一个或多个的组合。可替换地或附加地,程序指令能够被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以编码信息,用于传输到合适的接收器装置,以由数据处理装置执行。
125.术语“数据处理装置”指的是数据处理硬件,并且包括用于处理数据的所有种类的装置、设备和机器,例如可编程处理器、计算机或多个处理器或计算机。该装置还能够是或进一步包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置能够可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
126.计算机程序也可以被称为或描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码,能够用任何形式的编程语言编写,包括编译或解释语言,或者声明性或过程性语言;并且它能够以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其他单元。程序可以但不需要与文件系统中的文件相对应。程序能够存储在保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本、存储在专用于所讨论的程序的单个文件中,或者存储在多个协作文件中,例如,存储一个或多个模块、子程序或代码部分的文件。计算机程序能够被部署为在一台计算机或位于一个地点或分布在多个地点并通过数据通信网络互连的多台计算机上执行。
127.在本说明书中,术语“数据库”被广泛地用于指代任何数据的集合:数据不需要以任何特定的方式被结构化,或者根本不需要被结构化,并且其能够被存储在一个或多个位置的存储设备上。因此,例如,索引数据库能够包括多个数据的集合,每个集合能够被不同地组织和访问。
128.类似地,术语“引擎”被广泛地用来指被编程来执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为安装在一个或多个位置的一台或多台计算机上的一个或多个软件模块或组件。在一些情况下,一台或多台计算机将专用于一个特定的引擎;在其他情况下,能够在同一台或多台计算机上安装和运行多个引擎。
129.本说明书中描述的过程和逻辑流程能够由一个或多个可编程计算机来执行,所述一个或多个可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。这些过程和逻辑流程也能够由专用逻辑电路来执行,例如fpga或asic,或者由专用逻辑电路和一个或多个编程计算机的组合来执行。
130.适于执行计算机程序的计算机能够基于通用或专用微处理器或两者,或者任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的中央处理器和用于存储指令和数据的一个或多个存储设备。中央处理单元和存储器能够由专用逻辑电路来补充或并入其中。通常,计算机还将包括或可操作地耦合到一个或多个用于存储数据的大容量存储设备,例如磁盘、磁光盘或光盘,以从该大容量存储设备接收数据或向其传送数据,或两者。然而,计算机不需要有这样的设备。此外,计算机能够嵌入在另一设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备,例如通用串行总线(usb)闪存驱动器,仅举几个示例。
131.适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及dvd-rom盘。
132.为了提供与用户的交互,本说明书中描述的主题的实施例能够在计算机上实现,该计算机具有用于向用户显示信息的显示设备,例如crt(阴极射线管)或lcd(液晶显示器)监视器,以及用户能够用来向计算机提供输入的键盘和定点设备,例如鼠标或轨迹球。也能够使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机能够通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求,向用户设备上的web浏览器发送网页。此外,计算机能够通过向个人设备,例如运行消息应用程序的智能手机,递送文本消息或其他形式的消息,并接收来自用户的响应消息来与用户交互。
133.用于实现机器学习模型的数据处理装置还能够包括例如专用硬件加速器单元,用于处理机器学习训练或生产,即推理、工作负载的通用和计算密集型部分。
134.机器学习模型能够使用机器学习框架来实现和部署,例如tensorflow框架、microsoft cognitive toolkit框架、apache singa框架或apache mxnet框架。
135.本说明书中描述的主题的实施例能够在计算系统中实现,该计算系统包括例如作为数据服务器的后端组件,或者包括例如应用服务器的中间件组件,或者包括例如具有图形用户界面的客户端计算机、web浏览器或用户可以通过其与本说明书中描述的主题的实现交互的应用的前端组件,,或者一个或多个这样的后端、中间件或前端组件的任何组合。该系统的组件能够通过任何形式或介质的数字数据通信来互连,例如通信网络。通信网络的示例包括局域网(lan)和广域网(wan),例如因特网。
136.计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是由于在需要的计算机上运行的计算机程序而产生的,并且彼此具有客户端-服务器关系。在一些实施例中,服务器向用户设备发送数据,例如html页面,例如为了向与充当客户端的设备交互的用户显示数据并从该用户接收用户输入。能够在服务器处从设备接收在用户设备处生成的数据,例如用户交互的结果。
137.虽然本说明书包含许多具体的实施细节,但是这些不应该被解释为对任何发明的范围或可能要求保护的范围的限制,而是对特定发明的特定实施例所特有的特征的描述。本说明书中在独立实施例的情境中描述的某些特征也能够在单个实施例中组合实现。相反,在单个实施例的情境中描述的各种特征也能够在多个实施例中单独或以任何合适的子组合来实现。此外,尽管特征可能在上面被描述为在某些组合中起作用,并且甚至最初被如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下能够从该组合中删除,并且所要求保护的组合可以针对子组合或子组合的变体。
138.类似地,尽管在附图中以特定顺序描述了操作,并且在权利要求中以特定顺序叙述了操作,但是这不应该被理解为要求这些操作以所示的特定顺序或顺序来执行,或者要求所有示出的操作都被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应该理解,所描述的程序组件和系统通常能够一起集成在单个软
件产品中或者打包成多个软件产品。
139.已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。例如,权利要求中所述的动作能够以不同的顺序来执行,并且仍然获得期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献