当前位置: 首页 > news >正文

Edify 3D: Scalable High-Quality 3D Asset Generation 论文解读

目录

一、概述

二、相关工作

1、三维资产生成

2、多视图下的三维重建

3、纹理和材质生成

三、Edify 3D

1、文本生成多视角图像的扩散模型 

2、文本和多视角图像生成法线图像的ControlNet

3、重建与渲染模型

4、多视角高分辨率RGB图像生成

四、训练

1、训练过程

2、网格后处理

3、损失函数

五、数据预处理

六、实验


一、概述

        Edify 3D是一种NVIDIA提出的一种高质量的3D资产生成而设计的高级解决方案,该模型利用扩散模型合成所描述对象的RGB和表面法线图像。然后,多视图的观测结果被用于重新构造物体的形状、4k分辨率的纹理和基于物理的渲染(PBR)材质。Edify 3D可以在2分钟之内生成具有详细几何形状、干净拓扑结构、高分辨率纹理的高质量3D资产。

(1)利用扩散模型和Transformer等先进技术,实现了高质量3D资产的快速生成。

(2)可以在2分钟内生成具有详细几何形状、干净拓扑结构、高分辨率纹理和材质的高质量3D资产。

(3)展现出了出色的可扩展性和生成质量提升能力,随着训练数据的增加,其性能会不断提升。

(4)可以从单个2D图像生成对应的3D模型,并保持多视角一致性,这在文本到3D内容创作中具有重要意义。

二、相关工作

1、三维资产生成

        三维资产生成一般通过三维数据集进行训练,由于三维数据集种类稀缺,近期的方法已经转向大型通用模型或视频数据集来提高泛化性。另外SDS方法广泛应用于三维生成模型领域,但仍然存在Janus face的问题,另外后续考虑先生成具有一致性的多视角图像,再通过多视图图像生成模型来获得三维资产重建,但一致性仍然是一个挑战。

        Janus face是指在三维资产生成过程中,同一资产在不同的应用或环境中存在截然不同的特性或效果,类似于古罗马神话中双面神Janus,一个面朝向过去,一个面朝向未来。

        而在三维资产中,容易存在不同渲染引擎下光照、材质等视觉风格不一致,不同性能设备下的细节效果略有差异等等。

2、多视图下的三维重建

        传统的方法包括SfM,MVS存在耗时,且低质量的效果,基于NeRF的渲染方法需要密集的图像和一定的泛化性才能从辐射场转换为网格。基于Transformer的技术通过学习一定的前馈先验,改进了基于稀疏视图的三维重建。

3、纹理和材质生成

        早期的三维纹理生成包括使用文本对齐的CLIP,SDS损失,另外就是使用将文本嵌入到扩散模型,进行深度条件扩散。另外为了增强真实性,一些方法引入了多视图的PBR建模技术,来扩展材质的特性。

三、Edify 3D

        Edify 3D主要由四个部分组成:文本生成多视角图像的扩散模型,文本和多视角图像生成法线图像的ControlNet,重建与渲染模型,多视角高分辨率RGB图像生成。

1、文本生成多视角图像的扩散模型 

        Edify Image模型(也是NVIDIA提出的),拥有27亿参数的U-Net层,并通过引入Controlnet来合成了文本提示和摄像机姿态信息来生成高质量的RGB图像。

        Edify 3D使用了Edify Image模型作为基础扩散模型,输入文本提示和摄像机姿态来生成多视角的RGB图像。

        下图为Edify Image模型:

        Edify Image论文中的效果:

        另外在Edify 3D中引入了中间层跨视角注意力机制,来保证多视角下的一致性。 在后续法线图像和高分辨率图像的生成中是否也同样引入了跨视角注意力机制不太清楚,未提及。

2、文本和多视角图像生成法线图像的ControlNet

        首先冻结上面的扩散模型,以生成的多视图RGB图像作为条件,训练另一个ControlNet编码器,并基于上述扩散模型来扩散多视角表面法线图。

        ControlNet的一个相对简单的理解:冻结原有模型,通过新的输入来控制原有的模型。

        另外Edify 3D也可以摒弃第一步操作,直接进行多视角图像的重建工作(但是这是不是要CLIP对齐一下文本信息?) 

3、重建与渲染模型

        该论文使用一种Transformer为基础的重建模型,其实就是用的LRM模型(害得我自己找对应文献),通过输入多视角图像生成Mesh网格。

        另外他也考虑使用Decoder-only的方法(也是NVIDIA的generate NVS方法,但是他又对不上当前论文中提到的通过生成隐式3D表示,利用SDF体渲染和等值面提取生成3D网格)

        另外PBR(物理基础渲染)属性是通过预测神经SDF和PBR属性来生成的,包括反照率颜色和材质属性(如粗糙度和金属度),PBR属性通过UV映射的方式被backe到纹理和材质贴图中,以实现高质量的3D资产生产。

4、多视角高分辨率RGB图像生成

         首先利用重建好的模型光栅化提取材质和表面法线信息。之后使用上一次的ControlNet的参数冻结,并引入上述得到材质和表面法线信息作为新的条件,输入原始RGB图像,通过基本扩散模型再次生成多视角的RGB高分辨率图像。

        利用多视角的RGB高分辨率图像重新进行重建模型操作,得到高质量的三维资产。

四、训练

1、训练过程

(1)在训练过程中,Edify 3D 模型同时训练于自然 2D 图像和 3D 物体渲染图像上,随机选择 1、4 或 8 个视角进行训练。

(2)对于多视角 ControlNet 模型,首先训练基础模型使用多视角表面法线图像,然后添加一个以 RGB 图像为输入的 ControlNet 编码器进行训练,同时冻结基础模型。

(3)在训练过程中,模型会学习从不同数量的视角(4 视角或 8 视角)生成更自然、视角一致性更好的图像。

(4)重建模型的训练使用大规模的图像和 3D 资产数据,通过 SDF 体渲染的方式进行监督,输出包括深度、法线、遮罩、反照率和材质属性等。

(5)为了提高训练质量,模型会对 SDF 的不确定性与渲染分辨率进行对齐,并在损失计算时屏蔽物体边缘区域以避免噪声采样。

(6)最后,模型使用指数移动平均(EMA)的方式聚合最终的重建模型权重,以平滑噪声梯度。

2、网格后处理

        在 Edify 3D 的生成流程中,在多视角 RGB 和法线图像生成之后,会使用一个重建模型来预测神经 3D 表示,即一组潜在的 3D 标记。这一步之后,会进行等值面提取和后续的网格后处理,以获得最终的网格几何形状。

具体的网格后处理步骤包括:

(1)等值面提取:从神经 3D 表示中提取出等值面,得到初步的网格几何。

(2)网格后处理:对初步的网格几何进行进一步的优化和处理,以改善网格质量和细节。这可能包括网格简化、平滑、修复等操作。

3、损失函数

        我们只考虑多出的重建部分的损失:

(1)SDF (Signed Distance Function) 损失:通过SDF体渲染的方式来监督重建模型的输出,包括深度、法线等信息。

(2)材质属性损失:监督重建模型输出的材质属性,如粗糙度、金属度等。

(3)边缘遮罩损失:在损失计算时会对物体边缘进行遮罩,以避免由于锯齿效应造成的噪声样本。

五、数据预处理

1、格式转换

        将所有3D形状转换为统一的格式,包括三角化网格、打包纹理文件以及将材质转换为金属粗糙度格式。同时会丢弃那些纹理或材质存在问题的形状。

2、质量过滤

        从大规模3D数据集中过滤出非物体中心的数据。通过多视角渲染并使用AI分类器来移除部分3D扫描、大场景、形状拼贴以及包含背景和地面等辅助结构的形状。同时还会应用基于规则的过滤来移除明显存在问题的形状,如过于细长或缺乏纹理的形状。

3、标准姿态对齐

        将训练形状对齐到标准姿态,以减少模型训练时的潜在歧义。这一过程也是通过主动学习来实现的,先手动标注少量示例,然后训练姿态预测器,并在整个数据集中寻找难例进行迭代优化。

4、PBR渲染

        使用内部路径跟踪器进行光线追踪渲染,采用多种采样技术来生成具有不同相机参数的图像。一半图像使用固定仰角和内参渲染,另一半使用随机相机姿态和内参渲染,以适应文本到3D和图像到3D两种应用场景。

5、AI 标题

        渲染每个3D形状的一张图像,使用VLM来生成图像的长短描述,并且将3D形状的元数据提供给VLM来增强描述的全面性。

六、实验

        Text to 3D。

        Image to 3D。

        四元网格拓扑结构。 

        利用LLM来生成场景编辑,并将Edify 3D生成的资产摆放到一个场景中。 

参考项目:Deep Imagination Research | NVIDIA 

相关文章:

Edify 3D: Scalable High-Quality 3D Asset Generation 论文解读

目录 一、概述 二、相关工作 1、三维资产生成 2、多视图下的三维重建 3、纹理和材质生成 三、Edify 3D 1、文本生成多视角图像的扩散模型 2、文本和多视角图像生成法线图像的ControlNet 3、重建与渲染模型 4、多视角高分辨率RGB图像生成 四、训练 1、训练过程 2、…...

银河麒麟v10 x86架构二进制方式kubeadm+docker+cri-docker搭建k8s集群(证书有效期100年) —— 筑梦之路

环境说明 master:192.168.100.100 node: 192.168.100.101 kubeadm 1.31.2 (自编译二进制文件,证书有效期100年) 银河麒麟v10 sp2 x86架构 内核版本:5.4.x 编译安装 cgroup v2启用 docker版本:27.x …...

Python浪漫之画明亮的月亮

目录 1、效果展示 2、完整版代码 1、效果展示 2、完整版代码 import turtledef draw_moon():# 设置画布turtle.bgcolor("black") # 背景颜色为黑色turtle.speed(10) # 设置绘制速度# 绘制月亮的外圈turtle.penup()turtle.goto(0, -100) # 移动到起始…...

【前端】JavaScript 中的函数嵌套:从基础到深度应用的全面指南

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 💯前言💯什么是函数嵌套示例代码 💯函数嵌套的意义与优势1. 封装性与模块化2. 闭包的实现与应用3. 回调与高阶函数4. 工厂模式 💯函数嵌套的不同应用场景…...

微信小程序条件渲染与列表渲染的全面教程

微信小程序条件渲染与列表渲染的全面教程 引言 在微信小程序的开发中,条件渲染和列表渲染是构建动态用户界面的重要技术。通过条件渲染,我们可以根据不同的状态展示不同的内容,而列表渲染则使得我们能够高效地展示一组数据。本文将详细讲解这两种渲染方式的用法,结合实例…...

全面击破工程级复杂缓存难题

目录 一、走进业务中的缓存 (一)本地缓存 (二)分布式缓存 二、缓存更新模式分析 (一)Cache Aside Pattern(旁路缓存模式) 读操作流程 写操作流程 流程问题思考 问题1&#…...

python安装包中的一些问题(三):加载 matplotlib 的过程中,调用了 Pillow(PIL 库)时发生了错误

报错: runfile(/Volumes/Expansion/Stuttgart/code_run/glacier_map_hugonnet/test_image_cut.py, wdir/Volumes/Expansion/Stuttgart/code_run/glacier_map_hugonnet) Traceback (most recent call last): File /opt/anaconda3/lib/python3.11/site-packages/spyd…...

AWTK-WEB 快速入门(1) - C 语言应用程序

先安装 AWTK Designer 用 AWTK Designer 新建一个应用程序 2.1. 新建应用程序 这里假设应用程序的名称为 AwtkApplicationC,后面会用到,如果使用其它名称,后面要做相应修改。 在窗口上放置一个按钮将按钮的名称改为 “close”将按钮的文本改…...

【Spiffo】环境配置:VScode+Windows开发环境

摘要: 在Linux下直接开发有时候不习惯快捷键和操作逻辑,用Windows的话其插件和工具都更齐全、方便,所以配置一个Windows的开发环境能一定程度提升效率。 思路: 自己本地网络内远程连接自己的虚拟机(假定用的是虚拟机…...

贴代码框架PasteForm特性介绍之file

简介 PasteForm是贴代码推出的 “新一代CRUD” ,基于ABPvNext,目的是通过对Dto的特性的标注,从而实现管理端的统一UI,借助于配套的PasteBuilder代码生成器,你可以快速的为自己的项目构建后台管理端!目前管…...

2024年 数模美赛 B题 潜水艇

摘要 随着深海探险活动的增加,确保潜水器及其乘客的安全成为一项重要任务。本文旨在为Maritime Cruises Mini-Submarines (MCMS)公司开发一套模型,用于预测潜水艇在发生故障时的位置,并制定有效的搜救策略。本文将详细讨论模型的开发、不确定…...

ChatGPT 与其他 AI 技术在短视频营销中的技术应用与协同策略

摘要: 本文深入探讨了 ChatGPT 及其他 AI 技术在短视频营销中的应用。从技术层面剖析了这些技术如何助力短视频内容创作、个性化推荐、用户互动以及营销效果评估等多方面,通过具体方法分析、数据引用与大模型工具介绍,旨在为短视频营销领域提…...

H.265流媒体播放器EasyPlayer.js播放器提示MSE不支持H.265解码可能的原因

随着人工智能和机器学习技术的应用,流媒体播放器将变得更加智能,能够根据用户行为和偏好提供个性化的内容推荐。总体而言,流媒体播放器的未来发展将更加注重技术创新和用户互动,以适应不断变化的市场需求和技术进步。 提示MSE不支…...

电脑自动关机时间如何定?Wise Auto Shutdown 设置关机教程

在日常使用电脑的过程中,有时我们需要让电脑在特定的时间自动关机,比如在下载大文件完成后、执行长时间的任务结束时,或者只是单纯想在某个预定时间让电脑自动关闭以节省能源。这时候,Wise Auto Shutdown 这款软件就能派上大用场了…...

笔记mfc11

Subclass(子类化)是MFC中最常用的窗体技术之一。子类化完成两个工作:一是把窗体类对象attach到一个windows窗体实体中(即把一个窗体的hwnd赋给该类)。另外就是把该类对象的消息加入到消息路由中,使得该类可以捕获消息。 让edit能…...

【探寻密码的奥秘】-001:解开密码的神秘面纱

目录 1、密码学概述1.1、概念1.2、目的1.3、应用场景 2、密码学的历史2.1、第一时期:古代密码时代2.2、第二时期:机械密码时代2.3、第三时期:信息密码时代2.4、第四时期:现代密码时代 3、密码学的基本概念3.1、一般通信系统3.2、保…...

ElasticSearch7.x入门教程之集群安装(一)

文章目录 前言一、es7.x版本集群安装二、elasticsearch-head安装三、Kibana安装总结 前言 在工作中遇到了,便在此记录一下,以防后面会再次遇到。第一次使用是在2020年末,过了很久了,忘了些许部分了。 在工作当中,如果…...

c++ 笔记

基础知识 1. 指针、引用2. 数组3. 缺省参数4. 函数重载5. 内联函数6. 宏7. auto8. const9. 类和对象10. 类的6个默认成员函数11. 初始化列表12. this指针13. C/C的区别14. C 三大特性15. 结构体内存对齐规则16. explicit17. static18. 友元类、友元函数19. 内部类20. 内存管理&…...

【腾讯云】AI驱动TDSQL-C Serveress 数据库技术实战营-如何是从0到1体验电商可视化分析小助手得统计功能,一句话就能输出目标统计图

欢迎来到《小5讲堂》 这是《腾讯云》系列文章,每篇文章将以博主理解的角度展开讲解。 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 背景效果图流程图创建数据库基本信息数据库配置设置密码控制台开启…...

10 —— Webpack打包模式

开发模式:development ;场景:本地开发 生产模式:production ; 场景:打包上线 设置: 方式1.webpack.config.js 配置文件设置mode选项 module.exports { mode:production }; 方式2.在packa…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...