MagicArticulate: 超48K海量数据革新3D动画,自回归Transformer驱动关节智能生成!

论文链接:https://arxiv.org/pdf/2502.12135
Git链接:https://chaoyuesong.github.io/MagicArticulate/

亮点直击

  • 首个大规模关节化基准数据集,包含超过33,000个具有高质量关节标注的模型;

  • 一种新颖的两阶段框架,有效处理骨架生成和蒙皮权重预测;

  • 实现了当前最先进的性能,并在实际动画生产流程中展现了实用性。

总结速览

解决的问题

随着3D内容创作的快速增长,自动将静态3D模型转换为支持真实动画的可关节化版本的需求日益增加。然而,传统方法严重依赖人工标注,既耗时又费力。此外,缺乏大规模的基准数据集也阻碍了基于学习的解决方案的发展。

提出的方案

MagicArticulate是一个高效的框架,能够自动将静态3D模型转换为可关节化资产。其主要贡献包括:

  • 引入ArticulationXL,一个包含超过33,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对象固有的结构多样性,如下图5所示。

问题表述

给定一个输入的3D网格,目标是生成一个结构上有效的骨架,以捕捉对象的关节结构。骨架由两个关键组件组成:定义空间位置的关节集合,以及通过关节索引指定拓扑结构的骨骼连接。形式上,旨在学习条件分布。

其中, 可以来源于多种输入,包括直接的3D模型、文本到3D的生成或基于图像的重建。

骨架生成的一个关键挑战在于不同物体的关节结构复杂性各异。传统方法 [3, 22] 通常采用预定义的骨架模板,这对于像人体这样的特定类别效果良好,但无法推广到具有多样结构模式的对象。当处理我们的大规模数据集时,这一限制尤为明显,因为该数据集包含广泛的对象类别。

为了解决这一挑战,本文从最近的自回归网格生成研究中获得灵感 [9, 30],并将骨架生成重新表述为一个序列建模任务。这一新颖的表述使能够:

  • 处理不同3D模型中骨骼或关节数量的变化;

  • 捕捉骨骼之间的内在依赖关系;

  • 有效扩展到多样化的对象类别。

基于序列的生成框架

本框架通过四个关键组件将骨架生成任务转化为一个序列建模问题:骨架标记化、序列排序、形状条件化和自回归生成。

骨架标记化。 将每个骨架 表示为一个骨骼序列,其中每个骨骼由其连接的两个关节定义(总共6个坐标)。为了确保一致和离散的表示,我们采用了精心设计的标记化过程。我们首先将输入网格及其对应的骨架缩放并平移到单位立方体 ,确保它们的空间对齐。随后,将归一化的关节坐标映射到离散的 空间,导致一个长度为 的序列,其中 为骨骼数量。因此,离散化的坐标被转换为token,作为自回归Transformer的输入。与MeshGPT不同的是,基于我们对数据集的分析,省略了VQ-VAE压缩步骤。具体来说,在Articulation-XL中,大多数模型的骨骼数少于100个(即600个token)。鉴于这些相对较短的序列长度,使用VQ-VAE压缩可能会引入伪影,而在计算效率上并无显著好处。

序列排序。 在这项工作中,研究了两种不同的排序策略。我们的第一种方法遵循了最近3D网格生成方法中的序列排序策略 [28, 30]。在这种方法中,关节首先按升序z-y-x顺序排序(其中z代表垂直轴),并相应地更新骨骼中的关节索引。然后,骨骼首先按其较低的关节索引排序,然后按较高的排序。此外,对于每个骨骼,关节索引循环置换,使较低的索引首先出现。在本文中将这种排序称为空间序列排序。然而,这种排序策略破坏了骨骼之间的父子关系,并且不利于识别根关节。因此,构建骨架层次结构需要额外的处理。

为了克服这些限制,提出了一种称为分层序列排序的方法,该方法利用骨架的内在层次结构,通过逐层处理骨骼来实现。在对关节按照升序的 z-y-x 顺序进行排序并更新其在骨骼中的索引后,我们首先对直接连接到根关节的骨骼进行排序。当根关节有多个子关节时,我们从与索引最小的子关节相连的骨骼开始,然后按升序依次处理。对于后续层,骨骼按照其直接父关节分组,在每个组内,骨骼根据子关节的索引按升序排列。此外,对于同一层中的多个组,先处理对应于最小父关节索引的组,然后依次处理索引较大的组。

基于形状的生成 按照 [8, 9] 的惯例,我们通过从输入网格 中采样 8,192 个点来利用点云作为形状条件。随后,我们将该点云输入一个预训练的形状编码器 [52],该编码器将原始 3D 几何信息转换为适合 Transformer 处理的固定长度特征序列。然后,将这一编码后的特征序列附加到 Transformer 输入骨架序列的起始位置,用于自回归生成。此外,对于每个序列,在形状潜在特征后插入一个 <bos> 标记,以表示骨架序列的开始。同样,在骨架序列之后添加一个 <eos> 标记,以表示骨架序列的结束。

自回归学习 对于骨架生成,采用了一种仅解码器的 Transformer 架构,具体来说是 OPT-350M 模型,该模型在序列建模任务中表现出了强大的能力。在训练过程中,我们提供真实的目标序列,并使用交叉熵损失来监督模型的下一个token预测。

其中, 表示独热编码的真实标签序列, 表示预测的序列。

在推理阶段,生成过程以仅包含形状标记作为输入开始,模型依次生成每个骨架标记,直到生成 <eos> 标记为止。然后,将生成的标记序列解码以恢复最终的骨架坐标和连接结构。

蒙皮权重预测

第二阶段的重点是预测蒙皮权重,它控制网格如何随骨架运动而变形。在本工作中,我们将蒙皮权重表示为定义在网格表面上的 维函数,该函数是连续的、高维的,并且在不同的骨架结构之间表现出显著的变化。为了解决这些复杂性,我们采用了功能性扩散框架来进行精确的蒙皮权重预测。

预备知识:功能性扩散

功能性扩散[46]将经典的扩散模型扩展为直接作用于函数上,使其特别适用于我们的任务。
考虑一个函数 ,其从域 映射到范围 :

扩散过程逐渐将功能噪声 (将相同的域映射到范围)添加到原始函数:

其中, 和 控制噪声调度。目标是训练一个去噪器 来恢复原始函数:

这种公式自然地与我们的任务需求一致。通过将蒙皮权重视为网格表面上的连续函数,我们可以捕捉顶点之间平滑过渡的权重。此外,该框架的灵活性允许其适应不同的网格拓扑和骨架结构。

蒙皮权重预测

基于功能性扩散框架,我们将蒙皮权重预测表述为学习一个映射 ,从3D点到其对应的权重。具体来说,我们模型的输入由从网格表面采样的3D点 组成。输出是一个 维的蒙皮权重矩阵 。在训练期间,采样点的真实蒙皮权重从其最近的顶点复制过来,并将在推理时也复制回去。 表示数据集中关节的最大数量。

为了提高预测精度,引入了两个关键组件。首先,将生成过程基于关节坐标和由预训练编码器 [52] 提取的全局形状特征。其次,利用从 [13] 计算得到的体积测地先验。具体来说,计算从每个网格顶点到每个关节的体积测地先验。然后,我们根据采样点的最近顶点将这些先验分配给采样点,并将其标准化以匹配蒙皮权重的范围,形成一个体积测地矩阵 。我们的模型学习预测实际蒙皮权重与此几何先验之间的残差,即 ,从而实现更稳定的预测。

按照 [46],使用 预测来优化我们的模型,目标是:

我们采用去噪扩散概率模型 (DDPM) [16] 作为调度器。在实践中,将蒙皮权重和体积测地先验规范化到 [-1, 1] 的范围,然后再添加噪声。将在下文中对该设计进行消融研究。

实验

实现细节

数据集。 在两个数据集上评估我们的方法:提出的 Articulation-XL 和 ModelsResource [38, 43]。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的基于模板的方法也难以为基本类别(如人类和四足动物)生成准确的骨架,这突显了我们的方法在处理新颖对象结构方面的优势。

蒙皮权重预测结果

指标。 使用三个指标评估蒙皮权重的质量:精确度、召回率和L1范数误差。精确度和召回率测量识别显著关节影响的准确性(定义为权重大于,参考[43]),而L1范数误差计算所有顶点上预测与真实蒙皮权重之间的平均差异。我们还将在附录中报告变形误差。

基线。 将我们的方法与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%,这表明该组件在引导权重分布的准确性方面起到了关键作用。其次,去掉我们的归一化策略(即在添加噪声之前将蒙皮权重和测地距离都缩放到)会导致L1误差增加8.7%。最后,排除预训练编码器 [52] 的全局形状特征会导致预测结果不够准确。这些结果验证了我们设计选择的合理性,并表明每个组件对最终性能都做出了重要贡献。

结论

本项工作提出了 MagicArticulate,用于将静态3D模型转换为支持真实动画的可关节化资产。首先引入了一个大规模的数据集 Articulation-XL,包含高质量的关节标注数据,该数据集从 Objaverse-XL 精心筛选而来。在此数据集的基础上,我们开发了一种新颖的两阶段pipeline:第一阶段通过自回归序列建模生成骨架,自然地处理不同3D模型中骨骼或关节数量的变化;第二阶段通过功能性扩散过程预测蒙皮权重,该过程结合了顶点与关节之间的体积测地距离先验。大量实验表明,本文方法在各种对象类别上表现出卓越的性能和泛化能力。

参考文献

[1] MagicArticulate: Make Your 3D Models Articulation-Ready

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/977571.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【洛谷入门赛】B4019 皆与生物有缘

题意 两个老师会对你进行打分&#xff0c;我们要做的是把两个老师每题给的分全加起来&#xff0c;然后 2 \div 2 2 再向上取整&#xff0c;输出这个值即可。 思路 首先&#xff0c;我们要输入。 根据我们总结的题意&#xff0c;我们还需要把所有分数加起来。 因为我们尽…

如何选择更安全的无人自助管理私人影院物联网框架?

对于无人自助管理的私人电影院来说&#xff0c;安全是至关重要的&#xff0c;在物联网层面上&#xff0c;更要确保其相关安全措施&#xff0c;才能更好地安全运转。选择更安全的无人自助管理私人影院物联网框架时&#xff0c;可以从以下几个关键方面进行评估&#xff1a; 1. 安…

基本网络安全的实现

基本网络安全的实现 一 &#xff1a;AAA AAA 是Authentication&#xff0c;Authorization and Accounting&#xff08;认证、授权和计费&#xff09;的简 称&#xff0c;它提供了一个用来对认证、授权和计费这三种安全功能进行配置的一致性框架&#xff0c; 它是对网络安全…

【大模型】Ubuntu下 fastgpt 的部署和使用

前言 本次安装的版本为 fastgpt:v4.8.8-fix2。 最新版本fastgpt:v4.8.20-fix2 问答时报错&#xff0c;本着跑通先使用起来&#xff0c;就没有死磕下去&#xff0c;后面bug解了再进行记录。   github连接&#xff1a;https://github.com/labring/FastGPT fastgpt 安装说明&…

python--泰坦尼克号人员存活模型训练+预测

1.先到Kaggle平台下载关于泰坦尼克号的数据。 泰坦尼克号数据集&#xff1a;这是Kaggle上的经典数据集&#xff0c;用于预测乘客是否幸存。 地址&#xff1a;Titanic - Machine Learning from Disaster | Kaggle 包含以下文件&#xff1a; train.csv&#xff1a;训练集&#…

【Azure 架构师学习笔记】- Azure Databricks (12) -- Medallion Architecture简介

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (11) – UC搭建 前言 使用ADB 或者数据湖&#xff0c;基本上绕不开一个架构“Medallion”&#xff0c; 它使得数据管理更为简单有效。ADB 通过…

spring中的注解介绍

本篇文章专门用来介绍spring中的各种注解。 1、RestController 1、含义 2、举例 3、使用场景 RestController 通常用于开发 RESTful API&#xff0c;适合返回 JSON 或 XML 数据的场景 4、总结 RestController 是 Spring 中用于简化 RESTful Web 服务开发的注解&#xff0c;它结…

嵌入式开发:傅里叶变换(5):STM32和Matlab联调验证FFT

目录 1. MATLAB获取 STM32 的原始数据 2. 将数据上传到电脑 3. MATLAB 接收数据并验证 STM32进行傅里叶代码 结果分析 STM32 和 MATLAB 联调是嵌入式开发中常见的工作流程&#xff0c;通常目的是将 STM32 采集的数据或控制信号传输到 MATLAB 中进行实时处理、分析和可视化…

Linux设备驱动开发-SPI驱动开发详解(包含设备树处理详细过程)

基础知识及 SPI 相关结构体介绍 引脚&#xff1a;MISO&#xff08;master 输入&#xff0c;slave 输出&#xff09;&#xff0c;MOSI&#xff08;master 输出&#xff0c;slave 输入&#xff09;&#xff0c;片选引脚&#xff0c;SCK&#xff08;时钟&#xff09; 控制寄存器&…

嵌入式八股文(五)硬件电路篇

一、名词概念 1. 整流和逆变 &#xff08;1&#xff09;整流&#xff1a;整流是将交流电&#xff08;AC&#xff09;转变为直流电&#xff08;DC&#xff09;。常见的整流电路包括单向整流&#xff08;二极管&#xff09;、桥式整流等。 半波整流&#xff1a;只使用交流电的正…

C++初阶——简单实现stack和queue

目录 1、Deque(了解) 1.1 起源 1.2 结构 1.3 优缺点 1.4 应用 2、Stack 3、Queue 4、Priority_Queue 注意&#xff1a;stack&#xff0c;queue&#xff0c;priority_queue是容器适配器(container adaptor) &#xff0c;封装一个容器&#xff0c;按照某种规则使用&#…

【Git】六、企业级开发模型

文章目录 Ⅰ. 前言Ⅱ. 系统开发环境Ⅲ. Git 分支设计规范master分支release分支develop分支feature分支hotfix分支 Ⅰ. 前言 ​ 我们知道&#xff0c;一个软件从零开始到最终交付&#xff0c;大概包括以下几个阶段&#xff1a;规划、编码、构建、测试、发布、部署和维护。 ​…

Apache SeaTunnel 构建实时数据同步管道(最新版)

文章作者 王海林 白鲸开源 数据集成引擎研发 Apache SeaTunnel Committer & PMC Member&#xff0c;Apache SkyWalking Committer&#xff0c;多年平台研发经验&#xff0c;目前专注于数据集成领域。 导读 在当今数字化快速发展的时代&#xff0c;数据已然成为企业决策…

在 Windows 上配置 Ollama 服务并开放局域网访问

为了在局域网内共享 Ollama 服务&#xff0c;我们需要完成以下两步&#xff1a; 1、设置 Ollama 的环境变量 OLLAMA_HOST&#xff0c;使其监听局域网的 IP 地址。 &#xff08;1&#xff09; 配置 Ollama 服务的监听地址 Ollama 服务使用环境变量 OLLAMA_HOST 来指定监听的地…

错误 MSB3073 命令“setlocal“

最近在搞opencv的c版本。报了这个错很头疼。 点击项目>属性 把这里命令行删掉就行。

【时时三省】(C语言基础)常量和变量

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 在计算机高级语言中&#xff0c;数据有两种表现形式&#xff1a;常量和变量。 常量 在程序运行过程中&#xff0c;其值不能被改变的量称为常量。数值常量就是数学中的常数。 常用的常量有以…

deep-research 专用评测数据集

Deep Research自2025年2月初由OpenAI推出后迅速引发全球关注&#xff0c;其通过端到端强化学习技术实现多步骤研究任务自动化&#xff0c;能在数十分钟内生成分析师水平报告&#xff0c;效率远超人类&#xff08;耗时从30分钟到30天不等&#xff09;&#xff0c;被学者评价为“…

WordPress平台如何接入Deepseek,有效提升网站流量

深夜改代码到崩溃&#xff1f;《2024全球CMS生态报告》揭露&#xff1a;78%的WordPress站长因API对接复杂&#xff0c;错失AI内容红利。本文实测「零代码接入Deepseek」的保姆级方案&#xff0c;配合147SEO的智能发布系统&#xff0c;让你用3个步骤实现日均50篇EEAT合规内容自动…

QT零基础学习之路(六)--如何添加资源文件

源码地址&#xff08;优先更新&#xff09;&#xff1a;点击此处