新智元报道

编辑:alan

【新智元导读】对于专业应用和创意工作流来说,除了高质量的形状和纹理,更需要可以独立操作的「零部件级3D模型」。为此,Meta与牛津大学的研究人员推出了全新的多视图扩散模型。

当前AI生成的3D模型,已经拥有相当高的质量。

但这些生成结果通常只是单个物体的某种表示(比如隐式神经场、高斯混合或网格),而不包含结构信息。

对于专业应用和创意工作流来说,除了高质量的形状和纹理,更需要可以独立操作的「零部件级3D模型」。


比如上图中的几个例子,3D模型应该由多个有意义的部分组成,可以分离、组合与编辑。

而上图中的效果,正是出自Meta与牛津大学的研究人员推出的全新多视图扩散模型——PartGen。


论文地址:https://arxiv.org/pdf/2412.18608

项目地址:https://silent-chen.github.io/PartGen

PartGen可以使用文本、图像或非结构化3D对象作为输入,生成上面说的「子结构可分离」的3D模型。

同一些SOTA生成工作流类似,PartGen也采用两阶段方案,以消除零部件分割和重建的歧义:

首先,多视图生成器根据给定条件,生成3D对象的多个视图,由第一个多视图扩散模型提取一组合理且视图一致的部分分割,将对象划分为多个部分。

然后,第二个多视图扩散模型将每个部分分开,填充遮挡并馈送到3D重建网络,对这些补充完整的视图进行3D重建。


PartGen在生成过程中考虑了整个对象的上下文,以确保各部分紧密集成。这种生成式补全模型可以弥补由于遮挡而丢失的信息,还原出完全不可见的部分。


作者在合成以及真实的3D资产上评估了PartGen,如图所示,其性能大大优于之前的类似方法。


作者还将PartGen部署到真实的下游应用程序,例如3D零件编辑,以证明模型的实力。

零部件级3D生成

零件很重要,因为零件可以支持重用、编辑或者动画。

人类艺术家在制作3D模型时,会自然地以这种角度考虑。

比如一个人的模型可以分解成衣服和配饰,以及各种解剖特征(头发、眼睛、牙齿、四肢等)。

零件承载的信息和功能也很重要,比如不同的部分可能具有不同的动画或不同的材质。

零件还可以单独替换、删除或编辑。比如在视频游戏中,角色更换武器或衣服。

另外,由于其语义意义,零部件对于机器人、具身人工智能和空间智能等3D理解和应用也很重要。

PartGen将现有3D生成方法从非结构化,升级为零部件组合的方法,从而解决了两个关键问题:

1)如何自动将3D对象分割成多个部分; 2)如何提取高质量、完整的3D零部件,即使是在外观部分遮挡、或者根本看不到的情况下。


多视图零部件分割

3D对象分割并没有所谓的「黄金标准」。因此,分割方法应该对合理的部分分割的分布进行建模,而不是对单个分割进行建模。

可以使用概率扩散模型来学习这项任务,从而有效地捕捉和建模这种模糊性。

作为整个生成流程的第一阶段,研究人员将零件分割转换为随机多视图一致性着色问题(stochastic multi-view-consistent colouring problem),利用经过微调的多视图图像生成器,在3D对象的多个视图中生成颜色编码的分割图。

作者不假设任何确定性的零件分类法——分割模型从艺术家创建的大量数据中学习,如何将对象分解为多个部分。

考虑将多数图图像作为输入,模型的任务就是预测多个部分的mask。给定一个映射,将分割图渲染为多视图RGB图像,然后对预训练模型进行微调。


作者使用VAE将多视图图像编码到潜在空间中,并将其与噪声潜在空间堆叠起来,作为扩散网络的输入。

这种方法有两个优势:首先是利用了预训练的图像生成器,保证了天生具有视图一致性;其次,生成方法允许简单地从模型中重新采样来进行多个合理的分割。

上下文部分补全

对于第二个问题,即在3D中重建分割的零件,普遍的方法是在现有的对象视图中屏蔽零件,然后使用3D重建网络进行恢复。

然而,当零件被严重遮挡时,这项任务相当于非模态重建,是高度模糊的,确定性重构网络无法很好地解决。

本文建议微调另一个多视图生成器来补全部分的视图,同时考虑整个对象的上下文。

类似于上一个阶段,研究人员将预训练的VAE分别应用于蒙版图像和上下文图像,产生2 × 8个通道,并将它们与8D噪声图像和未编码的部分掩码堆叠在一起,获得扩散模型的25通道输入。


通过这种方式,即使零件在原始输入视图中仅部分可见,甚至不可见,也可以可靠地重建这些零件。此外,生成的部分可以很好地组合在一起,形成一个连贯的3D对象。

最后一步是在3D中重建零件。因为零件视图已经是完整且一致的,所以可以简单地使用重建网络来生成预测,此阶段的模型不需要特殊的微调。

训练数据

为了训练模型,研究人员从140k 3D艺术家生成的资产集合中构建了数据集(商业来源获得AI训练许可)。数据集中的示例对象如图3所示。


对于方法中涉及微调的三个模型,每个模型的数据预处理方式都不同。

为了训练多视图生成器模型,首先必须将目标多视图图像(4个视图组成)渲染到完整对象。

作者从正交方位角和20度仰角对4个视图进行着色,并将它们排列在2 × 2网格中。

在文本条件下,训练数据由多视图图像对及其文本标题组成,选择10k最高质量的资产,并使用类似CAP3D的工作流生成它们的文本标题。

在图像条件下,使用所有140k模型数据,设置随机采样以单个渲染的形式出现。

为了训练零件分割和补全网络,还需要渲染多视图零件图像及其深度图。

由于不同的创作者对部分分解有不同的想法,因此作者过滤掉数据集中可能缺乏语义的过于精细的部分(首先剔除占用对象体积小于5%的部分,然后删除具有10个以上部分或由单个整体组成的资产)。

最终的数据集包含45k个对象(210k个零部件)。

下游应用

下图给出了几个应用示例:部件感知文本到3D生成、部件感知图像到3D生成,以及真实世界的3D对象分解。

如图所示,PartGen可以有效地生成具有不同部件的3D对象,即使在严重重叠的情况下,例如小熊软糖。


给定一个来自GSO(Google Scanned Objects)的3D对象,渲染不同的视图以获得图像网格,图6的最后一行显示,PartGen可以有效地分解现实世界的3D对象。


当3D对象被分解之后,它们就可以通过文本输入进一步修改。如图7所示,PartGen可以根据文本提示有效地编辑零件的形状和纹理。

参考资料:

https://x.com/MinghaoChen23/status/1871809184620323279

ad1 webp
ad2 webp
ad1 webp
ad2 webp