[CVPR-23-Highlight] Magic3D: High-Resolution Text-to-3D Content Creation

news2024/10/6 14:28:31

目录

Abstract

Background: DreamFusion

High-Resolution 3D Generation

Coarse-to-fine Diffusion Priors

Scene Models

Coarse-to-fine Optimization

NeRF optimization

Mesh optimization

Experiments

Controllable 3D Generation

Personalized text-to-3D

Prompt-based editing through fine-tuning


Abstract

  • DreamFusion是目前基于文本的3D生成任务的主流方法,但它有两个重要缺陷:1)NeRF收敛速度慢;2)用于监督NeRF训练的图片质量较差,导致生成的3D目标质量较差。
  • 对于上述两个问题,本文提出:1)用Instant-NGP替换DreamFusion中的NeRF;2)提出一中两阶段Coarse-to-fine的优化方法,第一步:基于Instant NGP表示低分辨率的3D物体,通过eDiff-I计算L_SDS,更新NeRF;第二步:用DMTet提取初始3D mesh,其次采样和渲染高分辨率图片,并和第一步类似,更新3D mesh。
  • 相较于DreamFusion,Magic3D速度从1.5h较低到40m;同时在User Studies中,61.7%的用户认为Magic3D的生成效果更好。

Background: DreamFusion

DreamFusion是一种text-to-3D的生成方法,由两个关键部分组成:1)目标的神经场表示;2)预训练text-to-image扩散生成模型。通常,神经场是一个参数化函数:x = g($\theta$),给定相机位姿,渲染对应的图片x,其中,g是体渲染,theta是coordinate-based MLP。

扩散模型\phi,包含去噪函数\epsilon(x_t; y, t),其中有预测噪声\epsilon,噪声图像x_t,噪声等级t和文本编码y。扩散模型提供了更新\theta的梯度方向:所有的渲染图像均被推到文本相关的高概率密度区域(all rendered images are pushed to the high probability density regions conditioned on the text embedding under the diffusion prior)。具体来说,DramFusion提出了Score Distillation Sampling (SDS):

其中,w(t)是权重函数。在实际应用时,常用classifier-free guidance,可以控制text conditioning的强度。

DreamFusion使用Mip-NeRF 360和Imagen。这有两个关键限制:1)无法获得高分辨率几何和纹理;2)现有的Mip-NeRF计算开销很大。

High-Resolution 3D Generation

  • Magic3D是一个两阶段coarse-to-fine框架。

Coarse-to-fine Diffusion Priors

  • Magic3D在coarse-to-fine中,有两个不同的扩散先验。在第一阶段,本文使用eDiff-I,可以在64 x 64低分辨率情况下,计算场景模型梯度;在第二阶段,本文使用Stable Diffusion,可以在高分辨率情况下反传梯度。尽管生成了高分辨率图像,SD的计算开销是可控的,因为扩散先验是作用在z_t上,而z_t的分辨率只有64 x 64。

Scene Models

  • 在粗场景中,使用Instant NGP,NeRF可以平滑连续地处理拓扑学上的改变。
  • 在细场景中,为减少计算开销,本文使用textured 3D meshes。使用NeRF作为mesh几何的初始化,可以有效避免mesh中大拓扑变化较难学习的问题。

Coarse-to-fine Optimization

NeRF optimization

  • 与Instant NGP类似,本文用20初始化分辨率为256^3的occupancy grid,鼓励形状变化。每10 iter更新一次grid,并为可跳过的空白区域建立八叉树。在每次更新中,occupy grid降低0.6。
  • 与Instant NGP不同,本文用MLP预测normals。
  • 与DreamFusion类似,本文用MLP建模背景,输入为射线方向,预测RGB颜色。

Mesh optimization

  • 将coarse density field减去一个非零整数,产生初始SDF s_i。同时,本文海基于粗阶段的color field直接初始化了volume texture field。
  • 在优化阶段,本文用可导的光栅器将提取的surface mesh渲染为高分辨图片。对每个vertex,本文基于SDS梯度,同时优化s_i和delta_v_i。当渲染mesh为图片时,本文同时跟踪每个投影像素的3D坐标,用于在texture field中查询对应颜色,使梯度回传时同时优化texture field。
  • 当渲染mesh时,本文增加focal length,聚焦于目标细节。使用粗阶段中学习的environment map产生背景,使用可导的抗锯齿方法(antialiasing)合成前景与背景。
  • 为了鼓励表面平滑,本文对mesh上的不同相邻面的角度进行约束。

Experiments

本文在397个文本提示词上和DreamFusion进行比较。

Speed evaluation. 在8块A100上,coarse stage训练5000 iter,大概训练15分钟;fine stage训练3000 iter,大概训练25分钟。

Qualiatative comparisons

User studies. 在Amazon MTurk平台上,每个prompt由3个不同的users比较,共1191对比较。

 

Can single-stage optimization work with LDM prior?  

Coarse models vs. fine models.

Controllable 3D Generation

Personalized text-to-3D

基于Dreambooth fine-tune eDiff-I和LDM,将目标与[V]绑定。随后在计算SDS时,将[V]加入到文本提示词中。

Prompt-based editing through fine-tuning

(a)基于base prompt训练粗模型;

(b)修改base prompt,使用LDM fine-tune粗模型;

(3)基于修改的文本提示词,优化mesh。

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

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

相关文章

自动化实践-全量Json对比在技改需求提效实践

1 背景 随着自动化测试左移实践深入,越来越多不同类型的需求开始用自动化测试左移来实践,在实践的过程中也有了新的提效诉求,比如技改类的服务拆分项目或者BC流量拆分的项目,在实践过程中,这类需求会期望不同染色环境…

当前服务器版本不支持该功能,请联系经销商升级服务器 - - 达梦数据库报错

当前服务器版本不支持该功能,请联系经销商升级服务器 - - 达梦数据库报错 环境介绍1 搭建测试环境2 报错内容3 标准版介绍 环境介绍 某项目使用标准版数据库中,使用insert into 正常操作表,插入数据时报错,表为普通表。 1 搭建测…

【云原生•监控】基于Prometheus实现自定义指标弹性伸缩(HPA)

【云原生•监控】基于Prometheus实现自定义指标弹性伸缩(HPA) 什么是弹性伸缩 「Autoscaling即弹性伸缩,是Kubernetes中的一种非常核心的功能,它可以根据给定的指标(例如 CPU 或内存)自动缩放Pod副本,从而可以更好地管…

new function是什么?(小写function)

参考链接:https://juejin.cn/post/7006232342398238733

【SpringBoot笔记】定时任务(cron)

定时任务就是在固定的时间执行某个程序,闹钟的作用。 1.在启动类上添加注解 EnableScheduling 2.创建定时任务类 在这个类里面使用表达式设置什么时候执行 cron 表达式(也叫七子表达式),设置执行规则 package com.Lijibai.s…

地震预警系统全平台开通攻略

大家好,我是熊哥。 最近地震频发,做为一个有社为责任感的人,我认为我有必要为大家总结这一份安全手册;做为一个小V有必要让更多的人看见,积德攒人品。希望大家平安健康。 效果 在地震来临前,手机、电视会…

每天一道leetcode:剑指 Offer 59 - II. 队列的最大值(中等)

今日份题目: 请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。 若队列为空,pop_front 和 max_value 需要返回 -1 示例1 输入: ["MaxQueue",&qu…

centos7实现负载均衡

目录 一、基于 CentOS 7 构建 LVS-DR 集群。 1.1 配置lvs负载均衡服务 1.1.1 下载ipvsadm 1.1.2 增加vip 1.1.3 配置ipvsadm 1.2 配置rs1 1.2.1 编写测试页面 1.2.2 手工在RS端绑定VIP、添加路由 1.2.3 抑制arp响应 1.3 配置rs2 1.4 测试 二、配置nginx负载…

Springboot后端通过路径映射获取本机图片资源

项目场景: 项目中对图片的处理与查看是必不可少的,本文将讲解如何通过项目路径来获取到本机电脑的图片资源 如图所示,在我的本机D盘的图片测试文件夹(文件夹名字不要有中文)下有一些图片, 我们要在浏览器上访问到这些图片&#…

Flutter系列文章-实战项目

在本篇文章中,我们将通过一个实际的 Flutter 应用来综合运用最近学到的知识,包括保存到数据库、进行 HTTP 请求等。我们将开发一个简单的天气应用,可以根据用户输入的城市名获取该城市的天气信息,并将用户查询的城市列表保存到本地…

灵活利用ChatAI,减轻工作任务—语言/翻译篇

前言 ChatAI在语言和翻译方面具有重要作用。它能够帮助用户进行多语言交流、纠正错误、学习新语言、了解不同文化背景,并提供文本翻译与校对等功能。通过与ChatAI互动,我们能够更好地利用技术来拓展自己在语言领域的能力和知识,实现更加无障…

P11-Transformer学习1.1-《Attention Is All You Need》

Transformer目录:《Transformer Paper》1.0 CV Transformer必读论文5篇_汉卿HanQ的博客-CSDN博客 前文参考:Transformer1.0-预热_汉卿HanQ的博客-CSDN博客 全文1w3字左右,按照论文翻译个人理解精读,如果对你有所帮助,欢迎点个赞哦&#xff…

【C语言】初识C语言+进阶篇导读

✨个人主页: Anmia.🎉所属专栏: C Language 🎃操作环境: Visual Studio 2019 版本 本篇目的是面向编程新手,没接触过编程的人。以及C进阶的导读。 内容是C语言重要知识点的简单解释,不做详解。给…

征稿 | 第三届粤港澳大湾区人工智能与大数据论坛(AIBDF 2023)

第三届粤港澳大湾区人工智能与大数据论坛(AIBDF 2023) 2023 3rd Guangdong-Hong Kong-Macao Greater Bay Area Artificial Intelligence And Big Data Forum 本次高端论坛围绕建设国家数字经济创新发展试验区进行选题。全面贯彻落实党的二十大精神&…

001-Spring boot 启动内置Web容器分析

目录 代码入口上下文容器 加载web容器 代码入口 上下文容器 SpringApplication.run(App.class); //追踪下去发现 context createApplicationContext();createApplicationContext(): return this.applicationContextFactory.create(this.webApplicationType);这里…

linux手动安装 golangci-lint-1.53.3-linux-386.rpm

首先还是 去下载对应的 rpm 包 https://github.com/golangci/golangci-lint/releases 然后上传到 服务器/usr/local 目录下 执行安装命令 sudo rpm -ivh golangci-lint-1.53.3-linux-386.rpm 查看版本 golangci-lint --version

14.3.5 LVM 的 LV 磁盘快照

什么是 LV 磁盘快照?快照就是将当时的系统信息记录下来,就好像照相记录一般! 未来若有任何数据更动了,则原始数据会被搬移到快照区,没有被更动的区域则由快照区与文件系统共享。 图14.3.3、LVM快照区域的备份示意图 左…

微信小程序的项目解构

视频链接 黑马程序员前端微信小程序开发教程,微信小程序从基础到发布全流程_企业级商城实战(含uni-app项目多端部署)_哔哩哔哩_bilibili 接口文档 https://www.escook.cn/docs-uni-shop/mds/1.start.html 1:微信小程序宿主环境 1:常见的宿…

Openlayers实战:判断共享单车是否在电子围栏内

共享单车方便了我们的日常生活,解决了后一公里的行程问题。为了解决共享单车乱放的问题,运营部门规划出一些围栏,配合到电子地图上即为电子围栏,只有放在围栏内才能停车结算,在我们的Openlayers实战示例中,即模拟这一场景。 效果图 源代码 /* * @Author: 大剑师兰特(x…

电脑怎么查看连接过的WIFI密码(测试环境win11,win10也能用)

电脑怎么查看连接过的WIFI密码 方法一:适用于正在连接的WIFI密码的查看 打开设置 点击“网络和Internet”,在下面找到“高级网络设置”点进去 在下面找到 “更多网络适配器选项” 点进去 找到 WLAN ,然后双击它 5.然后点击“无线属性” 6.…