
MagicArticulate: 超48K海量数据革新3D动画,自回归Transformer驱动关节智能生成! 精华
论文链接:https://arxiv.org/pdf/2502.12135
Git链接:https://chaoyuesong.github.io/MagicArticulate/
亮点直击
- 首个大规模关节化基准数据集,包含超过48,000个具有高质量关节标注的模型;
- 一种新颖的两阶段框架,有效处理骨架生成和蒙皮权重预测;
- 实现了当前最先进的性能,并在实际动画生产流程中展现了实用性。
总结速览
解决的问题
随着3D内容创作的快速增长,自动将静态3D模型转换为支持真实动画的可关节化版本的需求日益增加。然而,传统方法严重依赖人工标注,既耗时又费力。此外,缺乏大规模的基准数据集也阻碍了基于学习的解决方案的发展。
提出的方案
MagicArticulate是一个高效的框架,能够自动将静态3D模型转换为可关节化资产。其主要贡献包括:
- 引入ArticulationXL,一个包含超过33,000个3D模型的大规模基准数据集,这些模型具有高质量的关节标注。Articulation-XL2.0已开源,包含超过48,000个3D模型。
- 提出一种新颖的骨架生成方法,将任务表述为序列建模问题,利用自回Transformer模型处理骨骼或关节数量的变化及其依赖关系。
- 通过功能性扩散过程预测蒙皮权重,结合了顶点与关节之间的体积测地距离先验。
应用的技术
- 自回归Transformer模型用于骨架生成,处理骨骼和关节的变化及依赖关系。
- 功能性扩散过程用于蒙皮权重预测,结合顶点与关节之间的体积测地距离先验。
- 使用ArticulationXL数据集,提供大规模的高质量关节标注。
达到的效果
MagicArticulate在各种对象类别上显著优于现有方法,实现了高质量的关节化,支持真实的动画效果。其在实际动画生产流程中展现了实用性,并实现了当前最先进的性能。
Articulation-XL
为了促进3D模型关节化的大规模学习,推出了Articulation-XL,这是一个从Objaverse-XL精心筛选的数据集。数据集构建流程包括三个主要阶段:初步筛选、基于VLM的筛选和类别标注。
初始数据收集。首先从Objaverse-XL中识别出包含骨架和蒙皮权重标注的3D模型。为了确保数据质量和实用性,应用以下筛选标准:1)根据骨架和网格相似性去除重复数据;2)排除仅有单个关节/骨骼结构的模型;3)过滤掉包含超过100根骨骼的数据,这部分数据在数据集中所占比例可忽略不计。通过初步筛选,获得了38,800个带有关节化标注的候选模型。
基于VLM的筛选。然而,注意到许多初始候选模型的骨架定义不佳,可能会影响学习(见下图3)。为了确保数据集质量,进一步实施了基于视觉语言模型(VLM)的筛选流程:1)从四个视角渲染每个对象及其骨架;2)然后利用GPT-4o根据特定标准评估骨架质量(详见补充材料)。此过程最终收集了超过33,000个具有高质量关节化标注的3D模型,形成了精心筛选的数据集Articulation-XL。该数据集展示了多样的结构复杂性:每个模型的骨骼数量从2到100不等,关节数量从3到101分布如下图2c所示。
类别标签标注。此外,还利用视觉语言模型(VLM)根据特定指令自动为每个模型分配类别标签。这些类别的分布通过词云和饼图展示,如上图2a和图2b所示。观察到对象类别的丰富多样性,其中与人类相关的模型构成了最大的子集。
方法
我们提出了一个两阶段的流程,使3D模型准备好进行关节化。给定一个输入的3D网格,我们的方法首先使用自回归Transformer生成结构一致的骨架。随后,我们在功能性扩散过程中预测蒙皮权重,条件基于输入形状及其对应的骨架。
自回归骨架生成
在MagicArticulate的初始阶段,为3D模型生成骨架。
与依赖固定模板的先前方法不同,本文方法通过自回归生成框架处理3D对象固有的结构多样性,如上图所示。
问题表述
其中,M 可以来源于多种输入,包括直接的3D模型、文本到3D的生成或基于图像的重建。
骨架生成的一个关键挑战在于不同物体的关节结构复杂性各异。传统方法 [3, 22] 通常采用预定义的骨架模板,这对于像人体这样的特定类别效果良好,但无法推广到具有多样结构模式的对象。当处理我们的大规模数据集时,这一限制尤为明显,因为该数据集包含广泛的对象类别。
为了解决这一挑战,本文从最近的自回归网格生成研究中获得灵感 [9, 30],并将骨架生成重新表述为一个序列建模任务。这一新颖的表述使能够:
- 处理不同3D模型中骨骼或关节数量的变化;
- 捕捉骨骼之间的内在依赖关系;
- 有效扩展到多样化的对象类别。
基于序列的生成框架
本框架通过四个关键组件将骨架生成任务转化为一个序列建模问题:骨架标记化、序列排序、形状条件化和自回归生成。
序列排序。 在这项工作中,研究了两种不同的排序策略。我们的第一种方法遵循了最近3D网格生成方法中的序列排序策略 [28, 30]。在这种方法中,关节首先按升序z-y-x顺序排序(其中z代表垂直轴),并相应地更新骨骼中的关节索引。然后,骨骼首先按其较低的关节索引排序,然后按较高的排序。此外,对于每个骨骼,关节索引循环置换,使较低的索引首先出现。在本文中将这种排序称为空间序列排序。然而,这种排序策略破坏了骨骼之间的父子关系,并且不利于识别根关节。因此,构建骨架层次结构需要额外的处理。
为了克服这些限制,提出了一种称为分层序列排序的方法,该方法利用骨架的内在层次结构,通过逐层处理骨骼来实现。在对关节按照升序的 z-y-x 顺序进行排序并更新其在骨骼中的索引后,我们首先对直接连接到根关节的骨骼进行排序。当根关节有多个子关节时,我们从与索引最小的子关节相连的骨骼开始,然后按升序依次处理。对于后续层,骨骼按照其直接父关节分组,在每个组内,骨骼根据子关节的索引按升序排列。此外,对于同一层中的多个组,先处理对应于最小父关节索引的组,然后依次处理索引较大的组。
基于形状的生成 按照 [8, 9] 的惯例,我们通过从输入网格M中采样 8,192 个点来利用点云作为形状条件。随后,我们将该点云输入一个预训练的形状编码器 [52],该编码器将原始 3D 几何信息转换为适合 Transformer 处理的固定长度特征序列。然后,将这一编码后的特征序列附加到 Transformer 输入骨架序列的起始位置,用于自回归生成。此外,对于每个序列,在形状潜在特征后插入一个 <bos>
标记,以表示骨架序列的开始。同样,在骨架序列之后添加一个 <eos>
标记,以表示骨架序列的结束。
自回归学习 对于骨架生成,采用了一种仅解码器的 Transformer 架构,具体来说是 OPT-350M 模型,该模型在序列建模任务中表现出了强大的能力。在训练过程中,我们提供真实的目标序列,并使用交叉熵损失来监督模型的下一个token预测。
在推理阶段,生成过程以仅包含形状标记作为输入开始,模型依次生成每个骨架标记,直到生成 <eos>
标记为止。然后,将生成的标记序列解码以恢复最终的骨架坐标和连接结构。
蒙皮权重预测
第二阶段的重点是预测蒙皮权重,它控制网格如何随骨架运动而变形。在本工作中,我们将蒙皮权重表示为定义在网格表面上的n维函数,该函数是连续的、高维的,并且在不同的骨架结构之间表现出显著的变化。为了解决这些复杂性,我们采用了功能性扩散框架来进行精确的蒙皮权重预测。
预备知识:功能性扩散
扩散过程逐渐将功能噪声g(将相同的域映射到范围)添加到原始函数:
这种公式自然地与我们的任务需求一致。通过将蒙皮权重视为网格表面上的连续函数,我们可以捕捉顶点之间平滑过渡的权重。此外,该框架的灵活性允许其适应不同的网格拓扑和骨架结构。
蒙皮权重预测
我们采用去噪扩散概率模型 (DDPM) [16] 作为调度器。在实践中,将蒙皮权重和体积测地先验规范化到 [-1, 1] 的范围,然后再添加噪声。将在下文中对该设计进行消融研究。
实验
实现细节
数据集。 在两个数据集上评估我们的方法:提出的 Articulation-XL 和 ModelsResource。Articulation-XL 包含 33k 个样本,其中 31.4k 用于训练,1.6k 用于测试。ModelsResource 是一个较小的数据集,包含 2,163 个训练样本和 270 个测试样本。每个对象的关节数量从 3 到 48 不等,平均为 25.0 个关节。虽然 ModelsResource 中的数据保持一致的直立和面朝前的方向,但 Articulation-XL 中的 3D 模型展示了不同的方向。我们已验证 Articulation-XL 和 ModelsResource 之间没有重复。
训练细节。 训练过程包括两个阶段。对于骨架生成,在 8 个 NVIDIA A100 GPU 上训练自回归 Transformer 大约两天。对于蒙皮权重预测,模型在相同的硬件配置上训练约一天。为了增强模型的鲁棒性,我们应用了数据增强,包括缩放、平移和旋转变换。
骨架生成结果
指标。 采用 [43] 中的三个标准指标来评估骨架质量:CD-J2J、CD-J2B 和 CD-B2B。这些基于 Chamfer 距离的指标通过计算关节到关节、关节到骨骼和骨骼到骨骼之间的距离来测量生成和真实骨架之间的空间对齐。较低的值表示更好的骨架质量。
基准方法。 将我们的方法与两个具有代表性的方法进行比较:Pinocchio [3],一种传统的模板拟合方法,以及 RigNet,一种使用图卷积的基于学习的方法。所有方法都在 Articulation-XL 和 ModelsResource 数据集上进行评估。
比较结果。 定性比较如下图 6 所示,我们在各种对象类别中比较了不同的方法。
Pinocchio 在与其预定义模板不同的对象上表现不佳,特别是在非人形对象中(如右侧第 2 行和第 3 行所示)。RigNet 在 ModelsResource 上测试时表现有所改善,该数据保持一致的直立和面朝前的方向。然而,它在处理复杂拓扑时仍然困难(如左侧第 1 行和第 2 行所示)。此外,RigNet 在 Articulation-XL 上表现较差,其中数据展示了不同的方向。相比之下,我们的方法生成的高质量骨架在各种对象类别中与艺术家创建的参考非常匹配。
定量结果如下表 1 所示。我们的方法在所有指标上在两个数据集上均优于基准方法。此外,比较了使用空间和层次顺序策略的方法。空间顺序始终表现更好,这可能是因为层次顺序要求模型分配部分能力来学习骨架的层次结构和识别根关节。使用空间顺序获得的结果非常适合骨架驱动的姿态转移应用,而从层次顺序中获得的结果更容易与 3D 模型集成用于动画。
泛化分析。 为了评估泛化能力,通过在 Articulation-XL 上训练 RigNet 和我们的 MagicArticulate 并在 ModelsResource 上测试来进行跨数据集评估。如上表 1 所示(标记为 *),本文方法在与直接在 ModelsResource 上训练的 RigNet 相比保持竞争力,而 RigNet 在测试未见过的数据分布时性能显著下降,甚至比基于模板的方法 Pinocchio 更差。
为了进一步评估在真实世界中的适用性,在Tripo 2.0 [1]生成的AI 3D网格上评估所有方法(下图7)。本方法成功为多种对象类别生成了合理的骨架,而RigNet尽管在我们的大规模数据集上进行了训练,却未能产生有效结果。尤其是,即使是Pinocchio的基于模板的方法也难以为基本类别(如人类和四足动物)生成准确的骨架,这突显了我们的方法在处理新颖对象结构方面的优势。
视频结果
蒙皮权重预测结果
基线。 将我们的方法与Geodesic Voxel Binding (GVB)、Autodesk Maya 中的一种几何方法和RigNet进行比较。在Articulation-XL上进行训练时,我们过滤出一个包含28k训练样本和1.2k测试样本的子集,排除关节数超过55的样本(这些样本在真实世界案例和Articulation-XL中都只占小部分)。
比较结果。 下图8中的定性比较展示了预测的蒙皮权重及其L1误差图,与艺术家创建的参考进行对比。我们的方法预测的蒙皮权重更准确,在多种对象类别中误差显著更低。相比之下,GVB和RigNet在关节边界附近区域显示出较大偏差。
定量结果如下表2所示,支持了定性观察,表明我们的方法在大多数指标上持续优于基线,在两个数据集上均表现出色。
消融实验
骨架生成的消融实验
进行了消融实验,以评估基于VLM的数据过滤和采样网格点数量对骨架生成的影响。结果如下表3所示,去掉数据过滤后性能显著下降,突显了高质量训练数据的重要性。我们还改变了输入到预训练形状编码器 [52] 的采样点数量。正如下表3所示,采样8192个点可以获得最佳性能。
蒙皮权重预测的消融实验
对蒙皮权重预测框架的三个关键组件进行了消融实验。ModelsResource上的定量结果如下表4所示。首先,移除体积测地距离初始化会导致精度下降0.6%和召回率下降3.9%,这表明该组件在引导权重分布的准确性方面起到了关键作用。其次,去掉我们的归一化策略(即在添加噪声之前将蒙皮权重和测地距离都缩放到-1,1)会导致L1误差增加8.7%。最后,排除预训练编码器 [52] 的全局形状特征会导致预测结果不够准确。这些结果验证了我们设计选择的合理性,并表明每个组件对最终性能都做出了重要贡献。
结论
本项工作提出了 MagicArticulate,用于将静态3D模型转换为支持真实动画的可关节化资产。首先引入了一个大规模的数据集 Articulation-XL,包含高质量的关节标注数据,该数据集从 Objaverse-XL 精心筛选而来。在此数据集的基础上,我们开发了一种新颖的两阶段pipeline:第一阶段通过自回归序列建模生成骨架,自然地处理不同3D模型中骨骼或关节数量的变化;第二阶段通过功能性扩散过程预测蒙皮权重,该过程结合了顶点与关节之间的体积测地距离先验。大量实验表明,本文方法在各种对象类别上表现出卓越的性能和泛化能力。
本文转自 AI生成未来 ,作者:AI生成未来
