当前位置: 首页 > 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…...

【ArcGIS微课1000例】0132:从多个GIS视角认识与攀登珠穆朗玛峰

文章目录 1. Map Viewer中打开2. 场景查看器中打开3. ArcGIS中打开4. QGIS中打开5. Globalmapper中打开6. ArcGIS Earth中打开官网地址:https://www.arcgis.com/home/item.html?id=504a23373ab84536b7760c0add1e0c1c 1. Map Viewer中打开 以下展示不同底图样式的珠穆朗玛峰壮…...

vue2 - 20.json-server

json-server 目标:基于 json-server 工具,准备后端接口服务环境 1. 安装全局工具 json-server (全局工具仅需要安装一次)【官网】 yarn global add json-server 或 npm i json-server -g yarn global add json-server npm i …...

echarts4r 教程1:Get Started

❝ 写在前面 本文为 R 语言 echarts4r 包的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。软件可能随时更新,建议配合官方文档一起阅读。 目录 1 Video & Article 2 Your first plot 3 Options 4 Navigate…...

蚁群算法(Ant Colony Optimization, ACO)

简介 蚁群算法(Ant Colony Optimization, ACO)是一种基于自然启发的优化算法,由意大利学者马可多里戈(Marco Dorigo)在1992年首次提出。它受自然界中蚂蚁觅食行为的启发,用于解决离散优化问题。 在自然界…...

使用IDEA构建springboot项目+整合Mybatis

目录 目录 1.Springboot简介 2.SpringBoot的工作流程 3.SpringBoot框架的搭建和配置 4.用Springboot实现一个基本的select操作 5.SpringBoot项目部署非常简单,springBoot内嵌了 Tomcat、Jetty、Undertow 三种容器,其默认嵌入的容器是 Tomcat,…...

苹果系统中利用活动监视器来终止进程

前言 苹果系统使用的时候总是感觉不太顺手。特别是转圈的彩虹球出现的时候,就非常令人恼火。如何找到一个像Windows那样任务管理器来终止掉进程呢? 解决办法 Commandspace 弹出搜索框吗,如下图: 输入“活动”进行搜索&#xff…...

宝塔安装雷池网站防护

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、 加载镜像二、使用步骤三、如果启动不成三、 启动成功以后三、 进入雷池不知道密码 前言 提示:这里可以添加本文要记录的大概内容:…...

JavaScript完整原型链

在 JavaScript 中,每个函数都有一个prototype属性,这个属性是一个对象。当通过一个构造函数创建一个新的对象时,这个新对象会自动拥有一个内部属性[[Prototype]](在一些浏览器中可以通过__proto__访问,不过这是一个非标…...

Vue 内置组件 keep-alive 中 LRU 缓存淘汰策略和实现

LRU(Least Recently Used,最近最少使用)是通过记录缓存项的访问顺序来决定淘汰的策略:当缓存满时,移除最久未被使用的项。 核心概念: 缓存存储:使用 Map 存储键值对,用于快速访问缓…...

李宏毅机器学习课程知识点摘要(14-18集)

线性回归,逻辑回归(线性回归sigmoid),神经网络 linear regression , logistic regression , neutral network 里面的偏导的相量有几百万维,这就是neutral network的不同,他是…...