【三维生成】Edify 3D:可扩展的高质量的3D资产生成(英伟达)

在这里插入图片描述


标题:Edify 3D: Scalable High-Quality 3D Asset Generation
项目:https://research.nvidia.com/labs/dir/edify-3d
demo:https://build.nvidia.com/Shutterstock/edify-3d

文章目录

  • 摘要
  • 一、前言
  • 二、多视图扩散模型
    • 2.1.消融研究
  • 三、重建模型
    • 3.1 消融研究
  • 四、数据处理
  • 五、结果
  • 六、应用:三维场景生成
  • 拓展:《GenUSD: 3D Scene Generation Made Easy》
    • 1.场景布局生成(按层次结构划分的)
    • 2.Text-to-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节中生成的材料规范,就可以合成任何新对象。所生成的三维资产具有高质量的表面几何图形和纹理贴图,而且它们也非常忠实于所提供的描述,因此不需要任何外部资产输入。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android Framework禁止弹出当前VOLTE不可用的提示窗口

文章目录 VoLTE简介VoLTE 的优势 当前VOLTE不可用的弹窗弹窗代码定位屏蔽弹出窗口 VoLTE简介 VoLTE(Voice over LTE)是一种基于4G LTE网络的语音通话技术。它允许用户在4G网络上进行高质量的语音通话和视频通话,而不需要回落到2G或3G网络。V…

Element UI 打包探索【3】

目录 第九个命令 node build/bin/gen-cssfile gulp build --gulpfile packages/theme-chalk/gulpfile.js cp-cli packages/theme-chalk/lib lib/theme-chalk 至此,dist命令完成。 解释why Element UI 打包探索【1】里面的why Element UI 打包探索【2】里面…

去哪儿大数据面试题及参考答案

Hadoop 工作原理是什么? Hadoop 是一个开源的分布式计算框架,主要由 HDFS(Hadoop 分布式文件系统)和 MapReduce 计算模型两部分组成 。 HDFS 工作原理 HDFS 采用主从架构,有一个 NameNode 和多个 DataNode。NameNode 负…

深度学习中的梯度下降算法:详解与实践

梯度下降算法是深度学习领域最基础也是最重要的优化算法之一。它驱动着从简单的线性回归到复杂的深度神经网络模型的训练和优化。作为深度学习的核心工具,梯度下降提供了调整模型参数的方法,使得预测的结果逐步逼近真实值。本文将从梯度下降的基本原理出…

VM+Ubuntu18.04+XSHELL+VSCode环境配置

前段时间换了新电脑,准备安装Linux学习环境:VM虚拟机、Ubuntu18.04操作系统、XSHELL、XFTP远程连接软件、VSCode编辑器等,打算把安装过程记录一下。 1. 虚拟机介绍 为什么要用虚拟机? 想学习Linux操作系统,一般有3种…

《Opencv》基础操作<1>

目录 一、Opencv简介 主要特点: 应用领域: 二、基础操作 1、模块导入 2、图片的读取和显示 (1)、读取 (2)、显示 3、 图片的保存 4、获取图像的基本属性 5、图像转灰度图 6、图像的截取 7、图…

【Android】ARouter的使用及源码解析

文章目录 简介介绍作用 原理关系 使用添加依赖和配置初始化SDK添加注解在目标界面跳转界面不带参跳转界面含参处理返回结果 源码基本流程getInstance()build()navigation()_navigation()Warehouse ARouter初始化init帮助类根帮助类组帮助类 completion 总结 简介 介绍 ARouter…

国内首家! 阿里云人工智能平台 PAI 通过 ITU 国际标准测评

近日,阿里云人工智能平台 PAI 顺利通过中国信通院组织的 ITU-T AICP-GA(Technical Specification for Artificial Intelligence Cloud Platform:General Architecture)国际标准和《智算工程平台能力要求》国内标准一致性测评&…

.NET9 - Swagger平替Scalar详解(四)

书接上回,上一章介绍了Swagger代替品Scalar,在使用中遇到不少问题,今天单独分享一下之前Swagger中常用的功能如何在Scalar中使用。 下面我们将围绕文档版本说明、接口分类、接口描述、参数描述、枚举类型、文件上传、JWT认证等方面详细讲解。…

【单点知识】基于PyTorch进行模型部署

文章目录 0. 前言1. 模型导出1.1 TorchScript1.1.1 使用 torch.jit.trace1.1.2 使用 torch.jit.script 1.2 ONNX1.2.1 导出为 ONNX 格式 1.3 导出后的模型加载1.3.1 加载 TorchScript 模型1.3.2 加载 ONNX 模型 2. 模型优化2.1 模型量化2.2 模型剪枝 3. 服务化部署3.1 Flask 部…

java基础知识(常用类)

目录 一、包装类(Wrapper) (1)包装类与基本数据的转换 (2)包装类与String类型的转换 (3)Integer类和Character类常用的方法 二、String类 (1)String类介绍 1)String 对象用于保存字符串,也就是一组字符序列 2)字符串常量对象是用双引号括起的字符序列。例如:&quo…

Servlet细节

目录 1 Servlet 是否符合线程安全? 2 Servlet对象的创建时间? 3 Servlet 绑定url 的写法 3.1 一个Servlet 可以绑定多个url 3.2 在web.xml 配置文件中 url-pattern写法 1 Servlet 是否符合线程安全? 答案:不安全 判断一个线程…

w~视觉~3D~合集3

我自己的原文哦~ https://blog.51cto.com/whaosoft/12538137 #SIF3D 通过两种创新的注意力机制——三元意图感知注意力(TIA)和场景语义一致性感知注意力(SCA)——来识别场景中的显著点云,并辅助运动轨迹和姿态的预测…

fastjson不出网打法—BCEL链

前言 众所周知fastjson公开的就三条链,一个是TemplatesImpl链,但是要求太苛刻了,JNDI的话需要服务器出网才行,BCEL链就是专门应对不出网的情况。 实验环境 fastjson1.2.4 jdk8u91 dbcp 9.0.20 什么是BCEL BCEL的全名应该是…

GitLab使用操作v1.0

1.前置条件 Gitlab 项目地址:http://******/req Gitlab账户信息:例如 001/******自己的分支名称:例如 001-master(注:master只有项目创建者有权限更新,我们只能更新自己分支,然后创建合并请求&…

MATLAB GUI设计(基础)

一、目的和要求 1、熟悉和掌握MATLAB GUI的基本控件的使用及属性设置。 2、熟悉和掌握通过GUIDE创建MATLAB GUI的方法。 3、熟悉和掌握MATLAB GUI的菜单、对话框及文件管理框的设计。 4、熟悉和掌握MATLAB GUI的M文件编写。 5、了解通过程序创建MATLAB GUI的方法。 二、内…

RabbitMQ简单应用

概念 RabbitMQ 是一种流行的开源消息代理(Message Broker)软件,它实现了高级消息队列协议(AMQP - Advanced Message Queuing Protocol)。RabbitMQ 通过高效的消息传递机制,主要应用于分布式系统中解耦应用…

【es6】原生js在页面上画矩形及删除的实现方法

画一个矩形,可以选中高亮,删除自己效果的实现,后期会丰富下细节,拖动及拖动调整矩形大小 实现效果 代码实现 class Draw {constructor() {this.x 0this.y 0this.disX 0this.disY 0this.startX 0this.startY 0this.mouseDo…

【前端】JavaScript中的隐式声明及其不良影响分析

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 💯前言💯什么是隐式声明?💯隐式声明的常见情景1. 赋值给未声明的变量2. 非严格模式下的隐式声明3. 函数中的变量漏掉声明4. for 循环中的隐式声明5. 使用…

windows基础之病毒编写

声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…