标题:Edify 3D: Scalable High-Quality 3D Asset Generation
项目:https://research.nvidia.com/labs/dir/edify-3d
demo:https://build.nvidia.com/Shutterstock/edify-3d
文章目录
摘要
Edify 3D,一种为高质量的3D资产生成而设计的高级解决方案。我们的方法首先使用扩散模型在多个视点上合成所描述对象的RGB和表面法线图像。然后使用多视图观测来重建物体的形状、纹理和PBR材料。我们的方法可以在2分钟内生成具有详细的几何图形、干净的形状拓扑、高分辨率拓扑的高质量纹理和材料
一、前言
创建详细的数字3D资产对于跨各种数字领域开发场景、角色和环境至关重要。这种能力对于视频游戏设计、扩展现实、电影制作和仿真等行业来说是无价的。要使3D内容能够投入生产,它必须满足行业标准,包括 精确的网格结构、高分辨率的纹理和材料地图 。因此,制作如此高质量的3D内容通常是一个非常复杂和耗时的过程。随着对3D数字体验的需求的增长,在3D资产创造中对高效、可扩展的解决方案的需求变得越来越重要。
最近,许多研究工作研究了训练人工智能模型的三维资产生成(Lin et al.,2023)。然而,一个重大的挑战是,适合进行模型训练的三维资产的可用性有限。创建3D内容需要专门的技能和专业知识,这使得这些资产比图像和视频等其他视觉媒体要少得多。这种稀缺性提出了一个关键的研究问题,即如何设计可伸缩的模型,以有效地从这些数据中生成高质量的3D资产。
核心功能:
- 文本到3D的生成。给定输入文本描述,Edify 3D生成具有上述属性的数字3D资产。
- 图像到三维图像的生成。Edify 3D还可以从对象的参考图像中创建一个3D资产,自动识别图像中的前景对象。
模型设计:
Edify 3D的核心技术依赖于两种类型的神经网络:扩散模型 和Transformer。随着更多的培训数据可用,这两种架构都显示出了巨大的可伸缩性(scalability)和在提高生成质量方面的成功。 按照Sugar(2024) ,我们训练了以下模型:
- 多视图扩散模型。训练多个扩散模型,从多个角度合成一个物体的RGB外观和表面法线( Flexible isosurface extraction for gradient-based mesh optimization,2023 )。输入可以是文本提示符、参考图像,或者两者都有。
- 重建模型。利用合成的多视图RGB和表面法线图像,一个重建模型预测了三维形状的几何形状、纹理和材料。**基于Transformer(LRM 2023)**来预测三维对象作为潜在标记的神经表征,然后进行等面提取和网格处理
Edify 3D的最终输出是一个3D资产,其中包括网格几何、纹理贴图和材质贴图。图2为Edify 3D的整体管道。
二、多视图扩散模型
创建多视图图像的过程类似于视频生成。我们将Text-2-Img模型微调为姿态感知的多视图扩散模型。模型以文本提示和相机姿态作为输入,从不同的角度合成物体的外观。训练出以下模型:
- 1.一个基本的多视图扩散模型,基于输入文本提示和相机姿态合成RGB外观。
- 2.一个多视图 ControlNet,合成对象的表面法线,以多视图RGB合成和文本提示为条件。
- 3.一种多视图的 upscaling ControlNet,它将多视图RGB图像超解析为更高的分辨率,条件是给定3D网格的栅格化纹理和表面法线
使用 Edify Image模型(NVIDIA 2024) 作为基础扩散模型架构(具有27亿个参数的U-Net),在像素空间中操作扩散。ControlNet 编码器使用来自U-Net的权重进行初始化,并扩展了原始文本到图像的扩散模型中的自注意层, 用一种新的机制来关注不同的视图(图3) ,作为一个具有相同权重的视频扩散模型。摄像机的pose(旋转和平移)通过一个轻量级的MLP进行编码,该MLP随后被作为时间嵌入添加到视频扩散模型架构中。
训练。在渲染图上微调 text-to-Img 模型。联合训练使用随机选择的视图数量(1、4和8)。多视图ControlNet 首先用多视图曲面法线图像来训练base模型。随后添加了一个以RGB图像为输入的ControlNet encoder,冻结base模型来训练。
2.1.消融研究
根据视角数量进行缩放。推理过程中,可以采样任意数量的视图,同时保持良好的多视图一致性,如图4所示。生成更多的视图,可以在多视图图像中更广泛地覆盖对象的区域,得到的三维重建的质量更好。
跨不同数量的观点进行训练。训练时,为每个训练对象采样1、4或8个视图,为每个视图数量分配不同的采样比,这样可以在推理过程中采样任意数量的视图,但最好将训练视图与推理过程中预期的视图相匹配。这有助于尽量减少训练和推理性能之间的差距。我们比较了两种模型——一种主要在4个视图图像上训练,另一种主要在8个视图图像上训练——并在相同的视点下采样10个视图图像。如图5所示,与主要使用4视图训练的模型相比,主要使用8视图训练的模型产生更自然的图像,具有更好的多视图一致性。
三、重建模型
从图像观测中提取三维结构通常被称为摄影测量法,它已被广泛应用于许多三维重建任务。我们 使用基于Transformer 的重建模型(LRM,Adobe 2023)从多视图图像中生成三维网格几何图形、纹理贴图和材料贴图。基于Transformer 的模型对看不见的物体图像具有很强的泛化能力 ,包括从二维多视图扩散模型的合成输出。
具体使用一个仅解码器的Transformer 模型,将潜在的三维表示为三平面。输入的RGB图像和法线图像作为重建模型的条件,在三平token和输入条件之间应用交叉注意力。通过MLPs对三平面标记进行处理,以预测有符号距离函数(SDF)和PBR属性的神经场(Karis,2013),这些属性用于基于SDF的体积绘制(Yariv et al.,2021)。通过isosurface extraction将神经SDF转换为三维网格(Lorensen和Cline,1998;Shen等人,2023年)。PBR属性通过UV映射被提取到纹理和材料贴图中,包括反照率颜色和材料属性,如粗糙度和金属通道。
训练 。使用大规模的图像和三维资产数据来训练我们的重建模型。通过基于sdf的体渲染,模型对深度、法线、掩码、反照率和材质通道进行监督,并从艺术家生成的网格渲染输出(model is supervised on depth, normal, mask, albedo, and material channels through SDF-based volume rendering,with outputs rendered from artist-generated meshes)。由于曲面法线计算相对昂贵,我们只在曲面上计算法线,并对地面真相进行监督。我们发现,将SDF的不确定性(Yariv et al.,2021)与相应的渲染分辨率对齐,可以提高最终输出的视觉质量。此外,我们在损失计算过程中掩蔽目标边缘,以避免混叠造成的噪声样本。为了平滑样本间的噪声梯度,我们应用指数移动平均(EMA)来聚合最终重建模型的权重。
mesh网格后处理 。从isosurface extraction 中获得稠密的三角形 3D mesh后,进行以下步骤的后处理:
- 1.Retopologize 成为具有简化几何和自适应拓扑的四边形(四)网格。
- 2.根据生成的四元网格拓扑结构生成UV映射。
- 3.将反照率和材料神经场分别烘焙成纹理图和材料图。
这些后处理步骤使生成的网格更适合于进一步的编辑,这对于面向艺术和面向设计的下游应用程序至关重要
3.1 消融研究
实验设置 。为了验证,我们从数据集中随机选择78个shapes,报告了LPIPS的反照率预测评分,以量化基本纹理重建性能。对于材料的预测精度,我们对粗糙度和金属值使用 𝐿 2 𝐿_2 L2误差。还使用真实值和预测深度之间的𝐿2误差作为评估重建形状的几何精度的代理。用于输入和输出的摄像机姿态固定在20°的高高度,指向原点(图6)。
根据视点的数量进行缩放 。实验法线,重建模型恢复的输入视图,始终比新视图更准确。该模型可以根据视点的数量进行扩展,也就是说,随着提供更多的信息,其性能会得到提高。随着输入视图的数量从4个增加到16个,结果也会不断改善。
基于模型随视点数量的缩放规律,进一步研究了训练视点的数量是否会影响重建质量:使用固定的8视图来验证,使用4、6、8和10个视图进行训练,结果如图7a所示。虽然摄像机姿态的随机采样在训练过程中提供了不同的视点,但随着同一训练步骤中训练视图数量的增加,重建质量不断提高。
根据计算进行缩放 。我们研究了在不改变模型大小(即模型参数的数量)的情况下,对重建模型的计算要求的影响。为了进行分析,我们缩小了自注意块和交叉注意块中的三平面token的size,以减少计算。请注意,此调整不会改变模型参数的数量。我们从图7b中观察到,随着token数量的增加,results 与available compute成比例的improve 。
四、数据处理
Edify 3D是在非公共的大规模图像、预渲染的多视图图像和三维形状数据集的组合上进行训练的。我们重点关注对三维形状数据的预处理。原始的3D数据经过几个预处理步骤,以实现模型训练所需的质量和格式。
格式转换。 第一步,将所有3D形状转换为统一的格式。我们三角化mesh,打包所有纹理文件,并将材料转换为金属粗糙度格式
质量过滤。我们从大规模的三维数据集中过滤掉不是对象为中心的数据。 我们从多个视点渲染形状,并使用AI分类器来删除部分3D扫描、大型场景、形状拼贴画,以及包含辅助结构的形状,如背景和地平面。为了保证质量,这一过程通过多轮主动学习进行,人类专家不断策划具有挑战性的例子来改进人工智能分类器。此外,我们应用基于规则的过滤来删除有明显问题的形状,比如那些过薄或缺乏纹理的形状
典型的Canonical位姿对齐。 我们将我们的训练形状与它们的规范位姿对齐,以减少在训练模型时潜在的模糊性。姿态对齐也可以通过主动学习来实现。我们手动管理少量的示例,训练一个姿态预测器,在完整的数据集中寻找困难的示例,并重复这个过程。定义规范姿态也很至关重要。虽然许多物体,如汽车、动物和鞋子已经有了自然的典型姿势,但其他形状可能缺乏清晰的正面,在这种情况下,我们将功能部分定义为正面,并优先保持左右对称
AI提取标题。 为了标题化这些3D形状,我们为每个形状渲染一个图像,并使用视觉语言模型(VLM)为图像生成长标题和短标题。为了增强标题的全面性,我们还向VLM提供了形状的元数据(例如,标题、描述、类别树)
五、结果
图8展示了文本到3D生成结果,图9是图像到3D生成结果。生成的网格包括详细的几何图形和尖锐的纹理,用分解良好的反照率颜色来代表表面的基本颜色。对于图像到3D的生成,Edify 3D不仅可以准确地恢复参考对象的底层三维结构,而且还可以在输入图像中没有直接观察到的表面区域生成详细的纹理。
Edify 3D生成的资产以组织良好的拓扑的四网格形式(quad mesh)出现,如图10所示。这些结构化的网格允许更容易的操作和精确的调整,使它们非常适合各种下游编辑任务和渲染应用程序。这使得我们能够无缝集成到3D工作流中,这需要视觉保真度和灵活性。
六、应用:三维场景生成
使用Edify 3D作为3D资产生成API,我们可以设计一个可伸缩的系统,仅从一个输入文本提示符生成3D场景(Lin et al.,2024)。该系统使用大型语言模型(LLM)生成3D对象的场景布局(OpenAI et al.,2023),它指定了3D对象的位置和大小。因此,该系统可以生成一个真实而复杂的三维场景,并与描述整个场景的文本提示符相一致地对齐。
我们在图11中展示了一个三维场景生成的例子结果。从Edify 3D中生成的资产包括详细的几何图形和纹理,形成一个场景组合和一个生成的场景布局。由于所有的3D资产都是单独创建的,生成的3D场景自然可用于各种专业应用程序,如艺术家创作、3D设计或具体化AI模拟
拓展:《GenUSD: 3D Scene Generation Made Easy》
提示:这里对文章进行总结:
摘要 :GenUSD是一个端到端文本到场景的生成框架,它可以将自然语言查询转换为现实的3D场景,包括3D对象和布局。该过程包括两个主要步骤:1)大型语言模型(LLM)将分层生成一个场景布局。首先提出了一个将场景分解为多个功能和空间上不同的子场景的高级规划。然后,对于每个子场景,LLM提出带有详细位置、姿态、大小和描述的对象。为了管理复杂的对象关系和复杂的场景,我们引入了对象布局设计元功能作为LLM的工具。2)一个新的文本到三维模型基于LLM的描述生成具有表面网格和高分辨率纹理贴图的每个三维对象。组装好的3D资产形成了最终的3D场景,表示为通用场景描述(USD)格式。GenUSD通过合并防止碰撞的功能来确保物理上的合理性。
1.场景布局生成(按层次结构划分的)
High-level Subscene Planning (高级子场景规划) 即使是像“工业仓库”这样的简单查询,也可能意味着复杂的、未声明的需求。现实世界的场景可能包括数百件物品,从手推车和传送带等大物品到工具包和盒子等小物品。为了减轻语言模型在一次生成所有对象时的规划负担 ,GenUSD采用分治策略,将整个场景𝑞分解为𝑚个在功能和空间上不同的子场景 𝑠 1 , . . . , 𝑠 𝑚 𝑠_1,...,𝑠_𝑚 s1,...,sm。 例如,像“舒适的书店咖啡馆”这样的查询可以被分割为一个入口、主座位区、柜台和卫生间。这种任务分解显著提高了整体场景的复杂性和布局质量。
Main Objects Proposal .对于每个生成的子场景 𝑠 𝑖 𝑠_𝑖 si,GenUSD提出了可能在该子场景中发现的相关对象:至少生成 𝑛 𝑛 n 个相关对象,每个对象都有详细的描述,包括后续三维对象生成的形状、颜色和材料信息的描述(第2.2节)
初步实验表明,LLM在持续生成各种大小的物体方面存在挑战。因此,GenUSD主要生成较大的对象,同时在这些较大的对象上注释较小的对象(只有名称),如果它们有一个支持的平面,例如,在“厨房柜台”上标记“锅”、“杯子”和“抹布”。
Subscene Layout Generation via Meta function.根据object proposal,为每个子场景构建一个可行的对象布局仍然具有挑战性。以前的作品不能处理与数百个对象相关的复杂场景布局生成。受llm出色的代码解决能力的启发,我们建议利用 object layout meta functions 来提示LLM。这些元函数对关系场景图进行编码,以设计布局,它们的执行为每个对象提供了详细的姿态和位置。具体来说,我们开发了一个带有自定义类和元函数的Python接口来确定对象的位置和姿态(图2)。这些元函数解决了对象布局设计中的常见需求,包括: 1)对象关系约束,如旁边、面对面和顶部。2)几何对象布局模式,如行、网格和圆。Python的控制循环提供了为布局设计设计通用元函数的灵活性。总之,所述LLM首先使用元函数为子场景创建高级对象布局设计。然后,它执行这些元函数来生成详细的对象姿态和位置。
2.Text-to-3D模型实现物体生成
GenUSD通过集成一个新的文本到3d生成模型(https://build.nvidia.com/shutterstock/edify-shutterstock-3d-txt23d-2pt7b) 来解决这一缺陷,该模型通过简单地使用对象的描述和第2.1.2节中生成的材料规范,就可以合成任何新对象。所生成的三维资产具有高质量的表面几何图形和纹理贴图,而且它们也非常忠实于所提供的描述,因此不需要任何外部资产输入。