南洋理工 & 清华 & 伦敦帝国 & 西湖大学开源 MeshAnything V2 | AMT 技术提升网格生成性能和效率 !
在基于图的图中,每个节点都表示一个目标,每个边都表示两个目标之间的关联。 基于图的图可以用于表示许多类型的数据结构,如社交网络、知识图谱等。这种表示法具有高度的可扩展性和可迁移性,因此在许多应用程序中得到广泛应用。 本文将介绍基于图的图的基本概念、常见算法和应用场景,并提供一个基于Python库的简单实现。根据提供的内容,这个文本并没有明确的标题和段落。如果您能提供具体的文本内容,我将很高兴为您提供帮助。 基于面的自回归 Transformer (Autoregressive Transformer)MeshAnything V2,可生成与应用给定形状对应的艺术家创建的网格(AM)。该模型可以与各种3D资产生产 Pipeline 集成,实现高质量的、高度可控的AM生成。 与以前的方法相比,MeshAnything V2在效率和性能上都有所提高,尽管使用的模型大小相同。这些改进归功于作者新提出的网格标记方法:相邻网格标记分词(AMT)。这与以前的方法不同,它使用单个顶点来表示每个面,尽可能避免使用三个顶点。 与以前的方法相比,AMT需要大约一半的标记序列长度才能表示相同网格的平均值。此外,AMT的标记序列更大而且结构更好,从根本上改善了AM生成。作者进行了大量的实验,结果表明AMT显著提高了AM生成的效率和性能。
1 Introduction
由于网格的可控性和紧凑性优势,它们已成为各种行业(包括游戏、电影和虚拟现实)的占主导地位的3D表示。几十年来,3D行业一直依赖人工艺术家手动创建网格,这是一个既耗时又费力的过程。
为了解决这个问题,近年来出现了一项研究工作,专注于自动生成由艺术家创建的网格(AMs)以取代手工劳动。受大型语言模型(LLMs)的成功启发,这些方法将AMs视为一系列的脸,并使用自动回归 Transformer (Vaswani等人,2017年)以类似于LLM的方式生成。与产生密集网格的重建方法不同的方法是,这些方法从人类艺术家创建的网格分布中学习,因此生成的AMs是高效、美丽并能无缝替代手工创建的网格。
尽管这些方法取得了一些成功,但它们仍然面临重大挑战。一个主要的局限是目前方法(Nash等人,2020年;Alliegro等人,2023年;Siddiqui等人,2023年;Weng等人,2024年;Chen等人,2024年;20)不能生成具有大量面的网格。尤其是可以生成的最大面数目前限制为800。这种限制的主要原因是目前分词方法的低效。这些方法将网格视为一系列面,每个面由三个顶点组成,每个顶点通常需要三个分词来表示。因此,每个网格都被分词为包含其面数九倍的分词序列,导致计算和内存需求产生显著增加。此外,分词序列具有高度冗余,这 harm 了序列学习并降低了性能。
本工作旨在解决此问题。作者提出了一种新的网格分词方法,名为相邻网格分词(AMT),该方法将网格处理为更紧凑和结构良好的分词序列,从而提高效率和性能。AMT通过在可能的情况下用一个顶点表示每个面来实现这一目标。如图1和算法1所示,在分词过程中,在编码一个面后,AMT会找到并编码其相邻面,该面共享一个边,只需要一个额外的顶点来表示相邻面。当相邻面无法找到时,AMT将向序列中添加一个特殊分词符&来标记这个事件,并从尚未编码的面上重新开始。理想情况下,因为AMT用一个顶点表示一个面,序列长度可以减少到大约三分之三。
为了测试AMT的有效性,作者在MeshAnything(Chen等人,2024年)设置中进行了广泛的实验。作者的实验表明,AMT平均可以将序列长度减少一半,从而将注意力块的计算负载和内存使用降低近四倍。此外,AMT的压缩和良好的分词序列还提高了模型的性能。此外,AMT还可以应用于无条件或其他条件网格生成设置(Siddiqui等人,2023年),并且其有效性不会受到VQ-VAE 的干扰。
此外,作者引入了MeshAnything V2,该版本配备了AMT。V2将最大面数从800增加到1600。得益于AMT,V2的性能和效率显著优于其以前的版本(Chen等人,2024年)。作者向社区开源了MeshAnything V2。
总的来说,作者的贡献如下:
- 作者引入了一种新的网格分词方法,名为相邻网格分词(AMT),与以前的分词方法相比,AMT所需的分词序列长度约为一半,从而从根本上降低了艺术家创建网格的计算负担。
- 作者装备MeshAnything V2,并引入了MeshAnything V2。V2将生成的最大面数翻了一倍,同时保持了更好的准确性和效率。
- 广泛的实验表明,AMT显著提高了网格生成的效率和性能。
2 Related Work
Artist-Created Mesh Generation
如图2所示:相邻网格标记化(AMT)的说明。与使用三个顶点表示一个面的先前方法不同,在可能的情况下,AMT使用单顶点。当这样做不现实时,AMT增加一个特殊的标记符"&"并重新开始。作者的实验表明,AMT平均将标记序列长度减少一半。其紧凑且有结构的序列表示增强了序列学习,从而显著提高了网格生成的效率和性能。
与产生密集网格的前人工作不同,最近的研究关注由人类艺术家创作的网格,即艺术家创建的网格(AMs)(Nash等人,2020年;Alligero等人,2023年;Siddiqui等人,2023年;Chen等人,2024年;Weng等人,2024年;Chen等人,2024年)。这些方法将网格处理成有序的面序列并学习生成 this sequence。(Nash等人,2020年)首先提出了使用自回归 Transformer 依次生成顶点和面。(Siddiqui等人,2023年)使用VQ-VAE学习网格词汇,然后使用仅包含解码器的 Transformer 学习该词汇。(Alligero等人,2023年)与其他方法不同,它使用离散随机扩散模型生成AMs而不是自回归 Transformer 。(Chen等人,2024年)直接使用顶点坐标的离散化作为标记索引,跳过类似于 (Siddiqui等人,2023年的) VQ-VAE的需求。(Weng等人,2024年)将转轴顶点用作粗糙网格表示,然后生成完整的网格标记。(Chen等人,2024年)生成与给定形状对齐的AMs,可以与各种3D资产生产方法集成,将其结果转换为AMs。
如图2所示,所有这些方法都将网格处理成面序列,并使用三个顶点表示单个面,导致高度冗余的表示。与这些方法不同,作者新提出的相邻网格标记化 (AMT) 使用单个顶点表示单个面,提供了更紧凑和有结构的网格表示,从而显著提高了网格生成的效率和性能。
3D Generation
近年来,3D生成逐渐成为3D研究领域的主流研究方向之一。这个领域专注于为3D行业生成多样、高质量的3D资产。生成对抗网络(GANs)(Wu et al., 2016; Achlioptas et al., 2018; Goodfellow et al., 2020)通过训练生成器和判别器网络来产生合成3D数据,从而区分生成数据和真实数据。最近,一些新领域的工作直接以前馈方式生成3D资产。(Hong et al., 2023)开创了这些方法,并使用 Transformer 直接回归给定条件的3D模型的参数。此外,将扩散模型(Ho et al., 2020)应用于直接生成3D资产的研究已广泛开展。(Zhang et al., 2024)通过首先使用蝶形 Transformer 生成高质量的3D形状并使用材料扩散模型生成详细纹理,目前3D生成方法取得了最高的性能。
网格是3D生成中的关键部分,艺术家生成的网格生成与3D生成密切相关。然而,与先前的3D生成方法相比,它主要关注序列学习,这在其他3D生成方法中很少见,以生成高质量的网格拓扑结构。
3 Method
Adjacent Mesh Tokenization
在本节中,作者详细介绍了Adjacent Mesh Tokenization(AMT),一种用于艺术家创建网格(AM)生成的独特分词方法。与先前的方法相比,AMT通过在可能的情况下用一个顶点表示每个面,将网格处理成一个更紧凑且结构良好的分词序列。为了简单起见,作者在三角形网格上描述AMT。但值得注意的是,AMT可以轻松地推广到具有可变多边形的网格的生成。
分词是序列学习的一个重要组成部分,因为它将各种数据格式(如文本、图像和音频)转换为分词序列,这些分词序列随后作为序列模型的训练真实输入。在推理过程中,序列模型生成一个分词序列,该序列随后被解码为目标数据格式。因此,分词在序列学习过程中起着至关重要的作用,决定了序列模型从学习到的数据序列的质量。
作者首先概述了先前的方法中使用的分词方法。尽管在细节上存在差异,但先前的分词方法可以归并为以下形式:给定一个网格,先按其z-y-x坐标对顶点进行升序排序,其中z表示垂直轴。接下来,按最低顶点索引,然后按次低顶点索引等进行排序。网格然后被视为一个有序的面的序列:
其中表示网格中的第i个面,是中的面数。
然后,每个被表示为一个有序的三点序列:
在这个网格中, 以及 分别构成第 i 个面的顶点。值得一提的是, 和 已经按顺序排序并具有固定的顺序。
将等式 2 代入等式 1 得到:
称为 ,其中 是网格, 是顶点总数。(3)
由于排序,得到的 是唯一的,并且其长度是网格中面数的3倍。显然, 包含大量冗余信息,因为每个顶点都出现在与它属于的脸相等的次数中。
为了解决这个问题,作者提出了相邻网格标记化(AMT)方法,以获得比先前方法更紧凑且结构良好的 。作者的关键观察是, 的主要冗余来自用三个顶点表示每个面,如等式 2 所示,这导致已经访问过的顶点在 中冗余出现。因此,AMT 的目标是尽可能只用一个顶点表示每个面。如图2 和算法 1 所示,AMT 在标记化过程中有效地编码相邻面,只使用一个额外的顶点。当没有相邻面可用时,如图2 的最后一步所示,AMT 在序列中插入特殊标记“&”以表示这一事件,并从尚未编码的面开始重新启动过程。(3)
为了反编码,只需按照算法 1 描述的逆向进行标记化算法即可。
在理想情况下,当特殊标记“&”很少使用时,AMT可以将通过先前的方法获得的的长度缩短至几乎为三分之一。当然,在极端情况下,如网格中的每个面都完全与其他面断开连接,AMT的表现可能会比先前的方法差。然而,由于用于AM生成的数据集Deitke等人(2023年)和Chang等人(2015年)由人类艺术家创建,因此网格通常具有良好的拓扑结构。因此,AMT的整体性能明显优于先前的方法。如4.3节所示,在Obiayverse测试集中,AMT平均可以将的长度缩短一半。
网格标记化中的排序讨论。先前的方法和AMT最初对网格的顶点和面进行排序。主要目的是将网格数据处理成具有固定模式的序列,以便于序列模型的学习。在AMT中,为了保持这一设计,作者始终在有多个选择时,选择排序列表中索引较早的面。此外,由于这种设计,AMT处理过的标记序列对每个网格都是独特的。此外,AMT尽可能优先访问相邻的面。相比之下,先前的方法盲目地遵循排序顺序,可能会导致在序列中,空间上距离顶点相邻的顶点,从而可能增加序列复杂度。如4.3节所示,相对于先前的方法,AMT在速度和内存使用方面明显具有优势,同时提高了准确性,证明了由AMT生成的序列更紧凑且结构良好。
关于AMT和VQ-VAE的使用。获得后,网格生成方法需要将其处理成序列以供序列学习。Siddiqui等人(2023年)提出训练一个VQ-VAE(Van Den Oord等人,2017年)来实现这一目标。他们将作为输入,并使用VQ-VAE学习一个几何嵌入的词汇。在训练VQ-VAE后,他们使用VQ-VAE的量化特征作为 Transformer (Vaswani等人,2017年的)输入。最近,(Chen等人,2024a)提出了一种将转换成标记序列的方法。他们摒弃了VQ-VAE,并直接使用顶点的离散坐标作为标记索引。重要的是强调,VQ-VAE是否被使用并不影响AMT的有效性。这是因为AMT在上述方法之前操作。例如,在使用VQ-VAE的情况下,AMT首先将(代表)缩短。然后,缩短后的被量化为与VQ-VAE相关的嵌入序列。
MeshAnything V2
在这部分中,作者介绍了MeshAnything V2。它配备了AMT,并将最大生成的面(Face)数量从增加到,而没有增加参数数量。MeshAnything V2在性能和效率上实现了基于形状的条件艺术家创建网格(AM)生成,同时提高了形状条件的学习效果和效率。作者还利用它来展示如何将AMT应用于网格生成。
遵循(Chen等人,2024b)的研究,MeshAnything V2也针对给定形状生成AM,实现与各种3D资产生产 Pipeline 的高度可控制AM生成集成。也就是说,作者试图学习分布,其中表示AM,表示3D形状条件。
正如(Chen等人,2024b)所述,V2使用点云作为形状条件输入。作者还使用与(Chen等人,2024b)中的研究相同的点云-艺术家创建网格数据对。目标分布使用与(Chen等人,2024b)中相同的解码器优先 transformer 进行学习,具有相同的大小和架构。为了注入,作者首先使用预训练的点云编码器(Zhao等人,2024)将其编码为固定长度的标记序列,并将其作为transformer标记序列的前缀。然后,将处理为网格标记序列。将其与点云标记序列拼接,作为transformer的真正值序列。在训练transformer时,使用对数损失输入,并让transformer自动回归生成对应的,然后进行反标记化,得到。
与(Chen等人,2024b)方法的主要区别在于作者如何获得。与(Chen等人,2024b)中使用的网格标记化方法不同,作者使用新提出的相邻网格标记化(AMT)处理,并获得更紧凑和高效的序列。遵循(Chen等人,2024a)的研究,作者直接使用中离散化的坐标作为标记索引,并添加一个新初始化表示AMT中&的特殊标记的代码表项。最后,依次将坐标标记序列与特殊标记&结合,获得transformer输入的网格标记序列。正如3.1节中所述,是否使用VQ-VAE并不影响AMT的应用和有效性。
为了帮助transformer学习AMT的序列模式,除了(Chen等人,2024)中使用的绝对位置编码外,作者添加了以下AMT的嵌入:当表示具有三个顶点的面时,作者添加一个特定嵌入的三个新顶点;当表示具有一个顶点的面时,作者添加不同的嵌入的单一生成顶点。此外,作者为&标记提供了特殊的嵌入。
4 Experiments
Implementation Details
MeshAnything V2的实验设置与(Chen等,2024)一致,除了作者为其配备了新提出的邻接几何标记(AMT)。作者仍然使用OPT-M(Zhang等,2022)作为自回归 Transformer (Vaswani等,2017),以及来自(Zhao等,2024)的预训练点编码器。作者在(Chen等,2024)中收集的相同合并数据集上进行训练,这次作者使用少于1600个面的网格作为实验数据集,而不是800。这导致了包含100万点云和网格对的数据集。作者将2万数据样本作为评估数据集随机采样。为了容纳具有更多面的网格,作者对每个点云随机采样了8192个点,而不是(Chen等,2024中的4096个点)。此外,与(Chen等,2024)不同,作者在训练过程中更新来自(Zhao等,2024)的点编码器,因为作者在处理最多有1600个面的复杂网格时,发现其精度不足。
MeshAnything V2用32台A800 GPU训练了四天。每个GPU的批处理量为8,从而总批处理量为256。
Qualitative Experiments
作者提出了MeshAnything V2的定性结果。如图1所示,MeshAnything V2可以有效地生成与给定形状高度对齐的高质量艺术家创建网格。与各种3D资产生产 Pipeline 集成后,V2成功实现了高度可控制的AM生成。
Quantitative Experiments
平均标记序列长度。作者从数据集中随机抽取10k个网格样本,这些样本具有少于1600个面,并使用先前的标记化方法和AMT分别对它们进行标记序列的分词。在Transformer Vaswani等人(2017)学习中,一个顶点需要几个标记来表示,而特殊符号&只需要一个标记。因此,当AMT找不到下一个相邻面时所造成的损失相对较小。由于顶点在(Chen等人,2024年;a)以及本文中都是用三个标记来表示,作者将基于此标准计算 Transformer 的基础输入标记长度。对于每个样本,作者用作者方法获得的标记序列长度除以前的方法获得的标记序列长度,然后将结果平均以确定AMT平均减少标记序列长度的比例。在上述的10k个网格样本中,作者发现这个比例为0.4973,表明AMT方法显著减少了标记序列长度。此外,这个实验只展示了AMT算法在缩短序列长度方面的优越性;其更紧凑且结构良好的序列特性也为序列学习提供了进一步优势。
消融研究。作者将通过比较MeshAnything V2与没有AMT的其变体来验证AMT的有效性。这个变体完全遵循V2的设置,除了AMT取代为前述方法的原始网格标记化(Siddiqui等人,2023年;Chen等人,2024年;2024年a;2024年b)。这也作为与(Chen等人,2024年b)进行公平比较的手段,因为(Chen等人,2024年b)的原型是在少于800个面的数据上进行训练,而作者是将其在1600个面的数据上进行训练的。此外,(Chen等人,2024年b)的训练数据量非常小,而作者在将批次大小提高到V2的256时,观察到了显著的性能提升。
作者遵循(Chen等人,2024年b)的评估指标设置来定量评估网格质量。作者从 ground truth网格和生成的网格中均匀采样100k个点,并在作者的2K评估数据集上计算以下指标:
- 切向距离(CD): 通过计算点云之间的切向距离评估重构网格的整体质量。
- 边缘切向距离(ECD): 通过在尖锐边缘和角落附近采样点来评估对尖锐边界的保留情况。
- 法线一致性(NC): 评估表面法线质量。
- 网格顶点数量 (#V): 统计网格中的顶点数量。
- 网格面数 (#F): 统计网格中的面数。
- 顶点比率(V_Ratio): 估计的顶点数量与实际顶点数量之比。
- 面比率(F_Ratio): 估计的面数量与实际面数量之比。
如表1所示,作者的结果表明V2显著优于其变体,证明了AMT的有效性。它表明AMT不仅提高了训练速度并减少了内存压力,而且提高了生成质量。值得注意的是,尽管V2和其变体的训练周期相同,但变体消耗了近两倍于V2的GPU小时数。此外,该表显示AMT消耗了更多的顶点和面。这可能是因为变体的性能仍然较弱,它倾向于忽略细节并使用更简单的拓扑结构来表示具有高面数的复杂网格。作者还观察到,AMT和变体的顶点比例和面比例都大于1.0,这意味着它们平均使用的面数相对于 GT 情况更多, Unlike(Chen等人,2024年b)的结果,大约是0.88。(Chen等人,2024年b),作者怀疑这是因为V2包含更多具有超过800个面的复杂网格,这使得模型在为简单形状产生复杂的拓扑时偶尔产生更复杂的拓扑。
5 Limitations and Conclusion
在这项工作中,作者提出了MeshAnything V2,这是一种基于形状的条件艺术家创建网格(AM)生成模型,它生成与给定形状对齐的网格。
V2在性能和效率方面都显著优于MeshAnything(Chen等人,2024b),这是作者新提出的相邻网格标记化(AMT)。
与使用三个顶点代表面的 previous 方法不同,AMT 尽可能地使用单个顶点。作者的实验表明,从 AMT 中得到的紧凑且结构良好的标记序列长度降低了一半。
AMT 得到的可压缩且层次清晰的标记序列极大地提高了序列学习,从而显著提高了 AM 生成的效率和性能。
参考
[1].MeshAnything V2: Artist-Created Mesh Generation With Adjacent Mesh Tokenization.