Edify 3D: Scalable High-Quality 3D Asset Generation

Deep Imagination Research | NVIDIA

目录

一、Abstract

二、核心内容

1、多视图扩散模型

3、重建模型:

4、数据处理模块:

三、结果

        1、文本到 3D 生成结果

2、图像到 3D 生成结果

3、四边形网格拓扑结构


一、Abstract

        NVIDIA 开发的用于高质量 3D 资产生成的 Edify 3D 模型。该模型通过多视图扩散模型合成物体的 RGB 外观和表面法线图像,再用重建模型预测 3D 形状的几何、纹理和基于物理的渲染(PBR)材质,Edify 3D能够在 2 分钟内生成具有详细几何结构、清晰形状拓扑、高分辨率纹理和材质的 高质量3D 资产。

1、能在短短两分钟内,生成包含完整 UV 贴图、4K 纹理和 PBR 材质的高品质 3D 模型

2、采用独特的技术架构,将多视角扩散模型与基于 Transformer 的重建技术相结合

3、支持文本到 3D 生成和图像到 3D 生成

4、能生成具有精确网格结构的 3D 模型,保证纹理的高分辨率和材质贴图的完整性,可生成多样化的 3D 资产

5、具有出色的技术扩展性,随着训练视角数量的增加,模型生成的图像质量和一致性不断提升

6、可用于生成复杂的 3D 场景,通过与大语言模型(LLM)结合,根据文本提示定义场景布局、物体位置和尺寸,创建连贯且真实的 3D 场景组合。

PS:UV贴图:用于将 2D 纹理映射到 3D 模型表面,从而使模型具有真实的外观细节

二、核心内容

Edify 3D 模型

  • 核心能力:文本到 3D 生成和图像到 3D 生成。
  • 模型设计:基于扩散模型和 Transformer,训练多视图扩散模型和重建模型。

       Edify 3D的最终输出是一个3D资产,其中包括网格几何、纹理贴图和材质贴图

Edify 3D 的工作流程:

1、文本提示(Text prompt)

        图的左上角有一个文本提示:“A steampunk robot turtle with rusty mechanical parts.”(一只带有生锈机械部件的蒸汽朋克机器龟)。

2、多视图扩散模型(Multi - view diffusion model)

        文本提示作为输入进入多视图扩散模型。该模型生成多个视角的 RGB 图像(RGB images),这些图像展示了机器龟从不同角度的外观。

3、多视图 ControlNet(Multi - view ControlNet)

        多视图扩散模型生成的 RGB 图像作为输入进入多视图 ControlNet。该模型生成多个视角的法线图像(Normal images),这些图像展示了机器龟表面的法线方向。

4、重建模型(Reconstruction model)

        多视图 RGB 图像和法线图像作为输入进入重建模型。重建模型生成潜在 3D 标记(Latent 3D tokens)。

5、等值面提取和网格处理(Isosurface extraction & mesh processing)

        潜在 3D 标记经过等值面提取和网格处理,生成网格几何(Mesh geometry)。

6、光栅化低分辨率纹理和表面法线(Rasterize low - resolution texture and surface normal)

        网格几何用于光栅化低分辨率纹理和表面法线。

7、放大 ControlNet(Upscaling ControlNet)

        低分辨率纹理和表面法线作为输入进入放大 ControlNet。该模型生成高分辨率 RGB 图像。

8、更新(Update)

        高分辨率 RGB 图像被用于更新纹理贴图(Texture map)和材质贴图(Material map)。

9、最终 3D 资产(3D asset)

        最终生成的 3D 资产包括网格几何、纹理贴图和材质贴图。图的右下角展示了最终生成的 3D 机器龟模型。

1、多视图扩散模型

        根据输入的文本提示和相机姿态来合成 RGB 外观,从不同的角度合成物体的外观。训练出以下模型:

  • 基本的多视图扩散模型:基于输入文本提示和相机姿态合成RGB外观。
  • 多视图 ControlNet:它以多视图 RGB 合成和文本提示为条件,合成物体的表面法线。这意味着它可以根据输入的多个视角的图像信息以及文本描述,来推断出物体表面的法线方向,从而为后续的 3D 重建提供更准确的几何信息。
  • 多视图放大 ControlNet:以给定 3D 网格的光栅化纹理和表面法线为条件,将多视图 RGB 图像超分辨率到更高分辨率。它利用已有的纹理和表面法线信息,对图像进行放大处理,提高图像的清晰度和细节

        使用 Edify Image模型(NVIDIA 2024) 作为基础扩散模型架构(具有27亿个参数的U-Net),在像素空间中操作扩散。ControlNet 编码器使用来自U-Net的权重进行初始化,并扩展了原始文本到图像的扩散模型中的自注意层, 用一种新的机制来关注不同的视图 ,作为一个具有相同权重的视频扩散模型。摄像机的pose(旋转和平移)通过一个轻量级的MLP进行编码,该MLP随后被作为时间嵌入添加到视频扩散模型架构中。

多视图 ControlNet

        ControlNet 的神经网络架构,用于为大型预训练文本到图像扩散模型添加空间条件控制。ControlNet 通过锁定预训练模型的参数并利用其强大的编码层作为骨干,学习各种条件控制,从而实现更精细的图像生成控制。

3、重建模型

       重建模型以多视图 RGB 和表面法线图像为输入,利用基于 Transformer 的模型预测 3D 形状的几何、纹理和材料。通过一系列处理步骤,最终得到 3D 资产的网格几何、纹理图和材质图。基于Transformer 的模型对看不见的物体图像具有很强的泛化能力 包括从二维多视图扩散模型的合成输出。

模型选择与 3D 表示

  • Decoder-Only Transformer 模型:我们采用了一种仅含解码器的 Transformer 模型。Transformer 架构在自然语言处理等领域有广泛应用,其特点是基于注意力机制来处理序列数据,能够很好地捕捉长距离依赖关系。这里使用的仅含解码器的版本,重点在于根据输入生成相应的输出,在这个情境下是用于后续的 3D 重建相关任务。
  • 潜在 3D 表示为三平面(Triplanes):模型的潜在 3D 表示采用了三平面的形式。三平面是一种对 3D 信息进行编码和表示的方式,它可以将 3D 空间的信息以一种特定的结构进行组织,以便于模型后续对 3D 数据的处理和分析。

输入条件与注意力机制

  • 输入作为重建模型的条件:输入的 RGB 图像和法线图像在这里充当重建模型的条件。RGB 图像提供了物体的颜色等外观信息,法线图像则给出了物体表面的法线方向等几何信息。
  • 交叉注意力层应用:在三平面标记和输入条件之间应用了交叉注意力层。交叉注意力机制可以让模型在处理过程中更好地关注到输入条件中的不同部分与三平面标记之间的关联,从而更有效地利用输入信息来生成准确的 3D 重建结果。

三平面标记处理与预测

  • 通过 MLPs 处理三平面标记:三平面标记会通过多层感知机(MLPs)进行处理。MLPs 是一种常见的神经网络结构,能够对输入数据进行非线性变换,在这里用于进一步处理三平面标记,挖掘其中蕴含的信息。
  • 预测神经场:经过 MLPs 处理后,三平面标记用于预测有符号距离函数(SDF)和基于物理的渲染(PBR)属性的神经场。神经场是一种对空间中各点属性进行描述的数学表示,通过预测这些神经场,可以得到关于物体在 3D 空间中的几何形状(通过 SDF)以及材质等外观属性(通过 PBR 属性)的相关信息。

基于 SDF 的渲染与 3D 网格生成

  • 基于 SDF 的体渲染:预测得到的神经场用于基于 SDF 的体渲染。体渲染是一种将 3D 数据渲染成 2D 图像的技术,通过基于 SDF 的方式,可以根据物体的几何形状准确地渲染出其在不同视角下的外观。
  • 3D 网格生成:神经有符号距离函数(Neural SDF)通过等值面提取被转换为 3D 网格。3D 网格是 3D 模型的一种常见表示形式,它由一系列的顶点、边和面组成,通过等值面提取从神经 SDF 中获取到合适的表面信息,从而构建出 3D 网格,这是得到最终 3D 模型几何形状的重要步骤。
4、数据处理模块

        对 3D 形状数据进行预处理,包括格式转换、质量过滤、姿态对齐、PBR 渲染和 AI 字幕等操作,以提高数据质量和适用性,为模型训练做好准备

  • 格式转换:将所有 3D 形状转换为统一格式,包括三角化网格、打包纹理文件和将材料转换为金属 - 粗糙度格式,丢弃损坏的纹理或材料的形状3。
  • 质量过滤:从大规模 3D 数据集中过滤出非对象中心的数据,通过多轮主动学习使用 AI 分类器去除部分 3D 扫描、大型场景、形状拼贴以及包含辅助结构的形状,还应用基于规则的过滤去除有明显问题的形状4。
  • 姿态对齐:通过主动学习将训练形状对齐到其规范姿态,对于缺乏明确正面的形状,定义功能部分为正面并优先保持左右对称5。
  • PBR 渲染:使用内部路径追踪器对 3D 数据进行逼真渲染,采用多样化的相机参数采样技术,以适应不同的使用场景6。
  • AI 字幕:为每个 3D 形状渲染一张图像,使用视觉语言模型(VLM)生成长短字幕,并提供形状的元数据以增强字幕的全面性

PBR 属性处理

        烘焙到纹理和材质贴图:基于物理的渲染(PBR)属性通过 UV 映射被烘焙到纹理贴图和材质贴图中。UV 映射是一种将 3D 模型表面映射到 2D 平面的技术,通过这种方式可以将 PBR 属性准确地赋予到相应的纹理和材质贴图上。

        包含的属性内容:这些 PBR 属性包括反照率颜色以及诸如粗糙度和金属度通道等材质属性。反照率颜色决定了物体表面反射光线的能力,粗糙度和金属度等属性则进一步描述了物体表面的材质特性,通过将这些属性烘焙到纹理和材质贴图中,可以使最终生成的 3D 模型具有更加真实的外观和材质表现。

三、结果

        1、文本到 3D 生成结果

        展示了输入的文本提示,以及所生成资源的渲染图和表面法线。生成的 3D 网格包含精细的几何形状和清晰的纹理,反照率颜色分解良好,使其适用于各种下游编辑和渲染应用。

2、图像到 3D 生成结果

        将输入的参考图像以及所生成资源的渲染图和表面法线进行可视化展示。Edify 3D 能够准确地还原参考对象的潜在 3D 结构,同时还能够在未被观察到的表面区域(例如杯子的背面)生成精细的纹理。

3、四边形网格拓扑结构

        Edify 3D 以具有清晰拓扑结构的四边形网格形式生成资源,使其适用于下游编辑工作流程。我们将所生成资源的四边形网格拓扑结构与其基于物理的渲染(PBR)图并排展示出来以便进行可视化观察。

四、相关工作

1、3D资产生成

        概念:3D 资产生成是指通过一系列技术手段创建三维资产的过程。3D 资产是指存在于三维空间中的数字化对象,包括 3D 模型、纹理、材质、动画等元素。这些资产可用于多种领域,如影视制作、游戏开发、虚拟现实(VR)、增强现实(AR)、建筑设计、工业设计等。生成方法包括手工建模(如多边形建模、NURBS 建模)、扫描技术(如激光扫描、结构光扫描)、基于图像的建模(如摄影测量法、图像深度学习建模)等。此外,还包括材质与纹理生成以及动画生成等方面。

        3D资产生成的挑战通常通过在3D数据集上训练模型来解决,但这些数据集的稀缺性限制了泛化能力。为了克服这一问题,最近的方法转向使用在大规模图像和视频数据集上训练的模型。得分蒸馏采样(SDS)已被早期方法采用,并扩展到图像条件3D生成模型。然而,它们通常处理速度较慢,并且容易出现诸如两面神脸问题等问题。为了提高性能,新技术整合了多视图图像生成模型,专注于生成可重建为3D模型的多个一致视图。然而,在这些视图之间保持一致性仍然是一个挑战,这导致了从有限视图增强重建鲁棒性的方法的发展。

2、从多视图图像进行3D重建

        从有限视图生成3D资产通常涉及3D重建技术,通常使用可微渲染,可利用各种3D表示,如神经辐射场(NeRF)。网格是工业3D引擎中最常用的格式,但从多视图图像重建高质量网格具有挑战性。传统的摄影测量流程,包括运动结构(SfM)、多视图立体(MVS)和表面提取,成本高且耗时,通常产生低质量的结果。虽然基于NeRF的神经渲染方法可以实现高质量的3D重建,但它们需要密集的图像和大量的优化,并且将辐射场转换为网格可能会导致次优结果。为了解决这些限制,基于Transformer的模型通过学习前馈先验进一步改进了从稀疏视图进行的3D NeRF重建。

3、纹理和材质生成

        早期针对给定3D形状的3D纹理生成方法包括用于文本对齐的CLIP和SDS损失优化。为了提高3D感知能力,一些文本到3D方法将纹理修复与深度条件扩散相结合,尽管速度较慢且更容易产生伪影。为了增强一致性,其他技术将扩散与重投影交替进行或同时生成多个带纹理的视图,但计算成本较高。为了进一步增强真实感,一些方法启用了多视图PBR建模,以扩展对生成材质属性的支持。 

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

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

相关文章

Python爬虫能处理动态加载的内容吗?

Python爬虫确实可以处理动态加载的内容。动态加载的内容通常是通过JavaScript在客户端执行,这意味着当网页首次加载时,服务器返回的HTML可能并不包含最终用户看到的内容。相反,JavaScript代码会在页面加载后从服务器请求额外的数据&#xff0…

JavaScript练习2——动态“钟”的绘制

实现效果: 分析需求: 1、需要每隔一定时间间隔执行一次绘图,实现旋转效果 2、需要绘制矩形框、圆形缺口框、文字 3、需要设置style 代码实现: 下面给出关键代码的实现,部分函数在之前的文章已经给出 https://blog.…

Jira使用笔记二 ScriptRunner 验证问题创建角色

背景 最近在对公司Jira工作流改造,收到这么一个要求:某些问题类型只有某些角色可以创建。本来是想通过Jira内建的权限控制来处理的。结果点到权限页面,心都凉透了。 好吧,那只能上脚本了。最终使用ScriptRunner的Simple scripte…

Java中的线程池使用详解

文章目录 Java中的线程池使用详解一、引言二、线程池的创建与使用1、线程池的创建1.1、FixedThreadPool(固定大小线程池)1.2、CachedThreadPool(可缓存线程池)1.3、SingleThreadExecutor(单线程化线程池)1.…

3D扫描对文博行业有哪些影响?

三维扫描技术对文博行业产生了深远的影响,主要体现在以下几个方面: 一、高精度建模与数字化保护 三维扫描技术通过高精度扫描设备,能够捕捉到文物的每一个细节,包括形状、纹理、颜色等,从而生成逼真的3D模型。这些模…

C# 泛型(Generic)

文章目录 前言一、泛型的基本概念与实例展示二、泛型的特性与优势三、泛型方法四、泛型委托 前言 泛型(Generic)允许将类或方法中编程元素的数据类型规范进行延迟编写,直到在程序实际使用这些类或方法的时候再去确定具体的数据类型。 一、泛…

前端小练习——星辰宇宙(JS没有上限!!!)

前言:在刚开始学习前端的时候,我们会学习到前端三件套中的JavaScript,可能那时候读者没有觉得JavaScript这个语言有多么的牛逼,本篇文章将会使用一个炫酷的案例来刷新你对JavaScript这个语言的认知与理解。 ✨✨✨这里是秋刀鱼不做…

【Python爬虫五十个小案例】爬取豆瓣电影Top250

博客主页:小馒头学python 本文专栏: Python爬虫五十个小案例 专栏简介:分享五十个Python爬虫小案例 🪲前言 在这篇博客中,我们将学习如何使用Python爬取豆瓣电影Top250的数据。我们将使用requests库来发送HTTP请求,…

多目标优化算法——多目标粒子群优化算法(MOPSO)

Handling Multiple Objectives With Particle Swarm Optimization(多目标粒子群优化算法) 一、摘要: 本文提出了一种将帕累托优势引入粒子群优化算法的方法,使该算法能够处理具有多个目标函数的问题。与目前其他将粒子群算法扩展…

C++设计模式——Singleton单例模式

一、单例模式的定义 单例模式,英文全称Singleton Pattern,是一种创建型设计模式,它保证一个类在程序中仅有一个实例,并对外提供一个访问的该类实例的全局接口。 单例模式通常用于需要控制对象资源的开发场景,一个类…

Python学习35天

# 定义父类 class Computer: CPUNone MemoryNone diskNone def __init__(self,CPU,Memory,disk): self.disk disk self.Memory Memory self.CPU CPU def get_details(self): return f"CPU:{self.CPU}\tdisk:{self.disk}\t…

<项目代码>YOLOv8 停车场空位识别<目标检测>

YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv8具有更高的…

mac下Gpt Chrome升级成GptBrowser书签和保存的密码恢复

cd /Users/自己的用户名/Library/Application\ Support/ 目录下有 GPT\ Chrome/ Google/ GptBrowser/ GPT\ Chrome 为原来的chrome浏览器的文件存储目录. GptBrowser 为升级后chrome浏览器存储目录 书签所在的文件 Bookmarks 登录账号Login 相关的文件 拷贝到GptBrow…

GB28181系列二:SIP信令

我的音视频/流媒体开源项目(github) GB28181系列目录 目录 一、SIP报文介绍 二、SIP交互流程: 1、Session Model 2、Pager Model 3、SIP信令交互过程中的3个定义 三、媒体传输(SDP和RTP) 一、SIP报文介绍 这里将会介绍SIP…

ViSTa:一个包含4000多个视频和逐步描述的层次化数据集,用于评估VLMs在不同复杂性任务中的表现。

2024-11-22,由Google DeepMind和MATS机构创建的ViSTa数据集,为评估视觉语言模型(VLMs)在理解基于顺序的任务方面的能力提供了新的视角,这对于强化学习中的成本降低和安全性提升具有重要意义。 数据集地址:…

区块链:波场-TRON链

注意: 1、调试时请将所有的API地址都换成 https://api.trongrid.io 以免报错等问题 https://api.trongrid.io 主网 (Mainnet) 适用于生产环境 https://api.shasta.trongrid.io 测试网 (Shasta) 适用于开发者测试 https://nile.trongrid.io 测试网 (Nile) …

【适配】屏幕拖拽-滑动手感在不同分辨率下的机型适配

接到一个需求是类似下图的3D多房间视角,需要拖拽屏幕 问题 在做这种屏幕拖拽的时候发现,需要拖拽起来有跟手的感觉,会存在不同分辨率机型的适配问题。 即:美术调整好了机型1的手感,能做到手指按下顶层地板上下挪动&…

比特币libsecp256k1中safegcd算法形式化验证完成

1. 引言 比特币和其他链(如 Liquid)的安全性取决于 ECDSA 和 Schnorr 签名等数字签名算法的使用。Bitcoin Core 和 Liquid 都使用名为 libsecp256k1 的 C 库来提供这些数字签名算法,该库以其所运行的椭圆曲线命名。这些算法利用一种称为modu…

『VUE』elementUI dialog的子组件created生命周期不刷新(详细图文注释)

目录 1. 测试代码分析令人迷惑的效果 分析原因解决方法 如何在dialog中反复触发created呢?总结 欢迎关注 『VUE』 专栏,持续更新中 欢迎关注 『VUE』 专栏,持续更新中 主要是在做表单的时候想要有一个编辑表单在dialog弹窗中出现,同时dialog调用的封装的…

深入探讨 Redis 持久化机制:原理、配置与优化策略

文章目录 一、引言二、Redis持久化概述三、RDB(Redis DataBase)持久化1、RDB概念与工作原理2、RDB的配置选项3、RDB优化配置项4、RDB的优势与劣势 三、AOF(Append-Only File)持久化1、AOF概念与工作原理2、AOF的三种写回策略3、Re…