3D 生成重建004-DreamFusion and SJC :TEXT-TO-3D USING 2D DIFFUSION

3D 生成重建004-DreamFusion and SJC :TEXT-TO-3D USING 2D DIFFUSION


文章目录

      • 0 论文工作
      • 1 论文方法
        • 1.1论文方法
        • 1.2 CFG
        • 1.3影响
        • 1.4 SJC
      • 2 效果

0 论文工作

对于生成任务,我们是需要有一个数据样本,让模型去学习数据分布 p ( x ) p(x) p(x),但是对于3d的生成来说,有两个挑战:1)一个完善的很大的3d数据数据集,对比2d的扩散模型是一个几亿的图像文本对上训练的,对于3d需要更大体量的数据;2)计算量,纯3d生成的策略相比2d计算度复杂度指数增加。所以前面的3d任务都是向办法,将3d监督转换成2d监督进行,减少数据和计算的问题。当然也有基于合成数据集做3d生成的,但是其中也存在一些其他问题。随着对比学习和transformer的进步,CLIP模型第一个比较理想的双模态大模型,打通了文本和图像之间的关系。研究者将模型引入到生成任务中去辅助3d的生成,主要路线是让不同视角的视图的相似度和文本保持一个较高的相似度Janus problem 多面的问题开始出现。
在3D mesh重建002-text2meshCVPR2022将CLIP跨圈到mesh风格的生成中已经介绍过从CLIP中提取信息的方法。
在这里插入图片描述
问题的根源是2d数据中虽然隐含了丰富的3d知识,但是是有偏见的,互联网用户显然更加钟爱‘face’,在物体的生成中这个问题的确不明显,因为对于一般的物体不涉及正面还是反面问题。为了解决多面问题,研究者进行过很多探索,主要的解决思路还是两条,一个形状先验,借助形状的引导去环节这个问题,另外一个就是3D经验。前面的zero123,sparseFusion和HOLOdiffusion整体都是基于这个思路,后续单独整理,当然形状本身就是3d,只不过在使用形式上不同。
基于CLIP模型,stable diffusion、DALLE2 和IMAGEN这些文生图模型快速发展。相比于CLIP,扩散模型的文生图在图像和文本之间引入了更加紧密的关联,约束性更强。
论文dreamFusion最早通过蒸馏2d扩散模型中的信息进行文生3d的任务,随后SJC在前者的基础上进行了更详细的公式推导。
参考
3D mesh重建002-text2meshCVPR2022将CLIP跨圈到mesh风格的生成
dreaamFusion
SJC

1 论文方法

1.1论文方法

对于文生3d这样一个问题,作者采用一个随机初始化的nerf来表示一个三维物体,然后将物体渲染到图像空间,对图像加噪,放入到扩散模型,预测噪声。用预测噪声减去添加噪声作为更新方向。在代码实现过程中会用到一些前后左右上下view等关键词进行约束。
在这里插入图片描述

  上面的图是dreamfusion的整体过程。重点分析后面的实现部分。
  因为一般训练好的扩散模型在使用的过程中是直接输入文本从纯噪声中逐步回复过去,在测试阶段是没有加噪这个步骤的这里为什么是预测噪声减去添加的噪声作为梯度呢。目前的理解是这样预测图像减去输入加噪的图像是梯度二者一减就变成预测噪声-加入噪声了。但是这个地方实际存在一个小小的问题就是,默认要保证nerf的图像和加噪后的图像要保持一个相同的分布,他的梯度才有效引导,但是这里的采样实际加噪是随机的,不太能保证他们的分布吧,可能还需要细看看其中的细节。(ps理解有限)
  这里添加噪声,一个SJC的解释是out of distribution,OOD问题,因为nerf渲染的结果可能不满足预定分布还是什么,这个意思约等于为什么不是图像直接监督,另外一点就是在整体的不断迭代中增加nerf的整体性,因为我们在网络中也**设置了很高的CFG去引导扩散模型生成高确定性的内容。**实际上这个部分也可考虑从得分函数的角度理解,添加噪声就是基于score matching的考量。
参考
NeRF

1.2 CFG

  参考扩散模型基础,因为在条件生成中需要平衡条件和源得分之间的平衡,当这个系数比较小的时候,条件的影响力会降低,生成多样性较好,但是质量受影响。但是增加CFG生成的确定性增加,但是多样性受损。
在文生图的时候一般这个系数是0-10,但是在文生3d的时候设置成了100左右,就是让模型生成高度一致的内容,来保持一致性。但是只用这种方法很受限,所有论文也是用了基于nerf表示的很多次优化,来促进整体的一致性。
论文中使用的是这个形式的损失
在这里插入图片描述
但是在附录中推理他其实也是一种得分函数的形式
在这里插入图片描述
在这里插入图片描述
classifier guided diffusion在这里插入图片描述
当用一个条件去限制的时候能保证我们在一个更小的区间内进行采样。里面包含一个得分项,和一个分类项,分类项需要一直跟着扩散模型进行训练,识别不同噪声状态下的图像。相关的于要训练两个扩散模型。
基于以上一些问题,有一种CFG方法讲他们合并成一个复杂的得分函数。通过系数去控制条件得分和无条件得分之间的状态。这个系数就是dreamfusion中设置为100的系数。在stable diffusion的文生图中一般设置是3-10之间。这个系数过高就是过饱和的主要原因,之所以这么设置,是作者希望在生成的一致性和过饱和之间做个平衡。
在这里插入图片描述上面的两部分基本上是后面的条件生成的基础,比如GLIDE,stable diffusion和controlnet等。

1.3影响

这是一个影响力很强的论文,在讨论部分作者提出了一些未来的看法。这就是发生在差不多半年左右的事情。
1)过饱和跟CFG有关,后面的ProlificDreamer在这个基础上做了推广,一定程度缓解这个问题
2)这项将2D观测结果“提升”到3D世界的任务本质上是模糊的,并可能受益于更健壮的3D先验。实际上就是一致性的问题,后面的3dfuse ,zero123,sparseFusion,holodiffuion等等工作都围绕这一点。
3)论文在附录里面证明了这也是一种得分函数形式,SJC进一步推理验证优化部分细节。
4)提到分辨率问题,后面有magic3d跟进
5)后续从2d扩散模型去蒸馏信息进行3d任务的算法层出不穷,整体上都是受到这篇论文的启发。

1.4 SJC

虽然dreamFusion效果很好但是当时并不开源,SJC在他的基础上直接基于得分函数论证了OOD问题,为什么不直接输入渲染图像进入扩散模型去降噪,然后提出一个扰动平均得分,通过几个点的优化方向的均值作为整体方向。

2 效果

dreamfusion

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

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

相关文章

C++ 获取文件创建时间、修改时间、大小等属性

简介 获取文件创建时间、修改时间、大小等属性 代码 #include <iostream> #include <string.h> #include <time.h>void main() {std::string filename "E:\\LiHai123.txt";struct _stat stat_buffer;int result _stat(filename.c_str(), &s…

Spring Data Redis使用方式

1.导入Spring Data Redis的maven坐标 pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 2. 配置Redis数据源 2.1application.yml文件…

TLB、页表不命中后发生了什么

问题 下图中真题&#xff08;第三小问的“需要读TLB多少次”&#xff09;的答案是查TLB不命中后会再查一次TLB&#xff08;红色字体是王道的解析&#xff09;&#xff0c;而王道书里给出的地址变换流程图没有这个再查一次TLB的步骤。这要以哪个为准呢。 其实我一开始的理解是&…

手撕各种排序

> 作者简介&#xff1a;დ旧言~&#xff0c;目前大一&#xff0c;现在学习Java&#xff0c;c&#xff0c;c&#xff0c;Python等 > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;掌握每种排序的方法&#xff0c;理解每种排序利弊…

Tomcat隔离web原理和热加载热部署

Tomcat 如何打破双亲委派机制 Tomcat 的自定义类加载器 WebAppClassLoader 打破了双亲委派机制&#xff0c;它首先自己尝试去加载某个类&#xff0c;如果找不到再代理给父类加载器&#xff0c;其目的是优先加载 Web 应用自己定义的类。具体实现就是重写 ClassLoader 的两个方法…

bootstrapjs开发环境搭建

Bootstrapjs是一个web前端页面应用开发框架&#xff0c;其提供功能丰富的JavaScript工具集以及用户界面元素或组件的样式集&#xff0c;本文主要描述bootstrapjs的开发环境搭建。 如上所示&#xff0c;使用nodejs运行时环境、使用npm包管理工具、使用npm初始化一个项目工程test…

红队专题-Cobalt strike4.5二次开发

红队专题 招募六边形战士队员IDEA 自动换行原版CS反编译破解jar包反编译拔掉暗桩初始环境效果 stageless beacon http通信协议 过程分析上线&心跳get请求teamserver 处理请求 参考链接 招募六边形战士队员 一起学习 代码审计、安全开发、web攻防、逆向等。。。 私信联系 …

MES系统安灯管理:实时可视化生产线状态

一、MES系统安灯管理的意义&#xff1a; 安灯管理是指通过使用不同颜色的灯光信号来表示生产线的状态&#xff0c;以便生产人员能够直观地了解生产线的运行情况。MES系统安灯管理的意义在于提供一个实时可视化的工具&#xff0c;使制造企业能够及时发现生产线异常和潜在问题&a…

UE5中实现沿样条线创建网格体2-SplineMesh版本

我在之前的一篇文章中写过沿样条线创建网格体的方法&#xff1a; https://blog.csdn.net/grayrail/article/details/130453733 但该方法没有网格变形操作&#xff0c;就会导致每一段网格对象是无法连接的&#xff1a; 后来发现了SplineMesh方法可以比较好的解决这个问题&…

【K8S系列】深入解析k8s 网络插件—kube-router

序言 做一件事并不难&#xff0c;难的是在于坚持。坚持一下也不难&#xff0c;难的是坚持到底。 文章标记颜色说明&#xff1a; 黄色&#xff1a;重要标题红色&#xff1a;用来标记结论绿色&#xff1a;用来标记论点蓝色&#xff1a;用来标记论点 在现代容器化应用程序的世界中…

横向AlGaN/GaN基SBD结构及物理模型数据库的开发

GaN基功率器件凭借其临界电场高、电子饱和漂移速度大、热导率高等优良性能在大功率快充、充电桩、新能源汽车等领域具备广泛应用空间。为进一步助推半导体高频、高功率微电子器件的发展进程&#xff0c;天津赛米卡尔科技有限公司技术团队依托先进的半导体TCAD仿真平台成功开发出…

【WebService】C#搭建的标准WebService接口,在使ESB模版作为参数无法获取参数数据

一、问题说明 1.1 问题描述 使用C# 搭建WebService接口&#xff0c;并按照ESB平台人员的要求&#xff0c;将命名空间改为"http://esb.webservice",使用PostmanESB平台人员提供的入参示例进行测试时&#xff0c;callBussiness接口参数message始终为null。 以下是ES…

如何采集淘宝数据?淘宝采集是什么意思?

对于淘宝商家和数据分析者来说&#xff0c;获取淘宝数据是关键之一。本文将深入探讨如何采集淘宝数据&#xff0c;包括采集的含义、方法和相关注意事项。 一、淘宝采集是什么意思 淘宝采集是指通过各种技术手段和工具&#xff0c;从淘宝平台上抓取、提取或获取数据的过程。这…

LLMs 生成式人工智能项目生命周期备忘单Generative AI Project Lifecycle Cheat Sheet

到目前为止&#xff0c;在本课程中&#xff0c;从选择模型到微调模型&#xff0c;再到将其与人类偏好对齐&#xff0c;这一切都将在您部署应用程序之前发生。为了帮助您规划生成式AI项目生命周期的各个阶段&#xff0c;这个速查表提供了每个工作阶段所需的时间和精力的一些指示…

SonarQube学习笔记三:直接使用sonar-scanner扫描器

目录 1.安装Sanner扫描器2.环境变量配置3.创建项目3.1 登录并创建项目3.2 输入项目名称信息3.3 选择分析仓库类型3.4 创建令牌3.5 保存令牌&#xff08;非必须&#xff09;3.6 选择构建技术方案3.6.1 .Net类项目3.6.2 Java类项目 3.7 获取Sonar检查结果3.8 在页面查看检查结果或…

计算机网络——计算机网络的性能指标(下)-时延带宽积、往返时间、利用率、丢包率

目录 时延带宽积 往返时间 利用率 丢包率 时延带宽积 时延带宽积等于传播时延乘带宽。假设时延带宽积是一个圆柱体&#xff0c;那么传播时延就是圆柱体的长&#xff0c;带宽就是圆柱体的圆面面积。 若发送端连续发送数据&#xff0c;则在所发送的第一个比特即将到达终点时&…

回归算法全解析!一文读懂机器学习中的回归模型

目录 一、引言回归问题的重要性文章目的和结构概览 二、回归基础什么是回归问题例子&#xff1a; 回归与分类的区别例子&#xff1a; 回归问题的应用场景例子&#xff1a; 三、常见回归算法3.1 线性回归数学原理代码实现输出例子&#xff1a; 3.2 多项式回归数学原理代码实现输…

【JavaEE】文件操作

文章目录 前言什么是文件树型结构组织和目录文件路径文件类型文件权限Java中的文件操作File 类的常见属性File 类常见构造方法File 类常用方法 前言 文件是我们日常生活中使用非常广泛的&#xff0c;我们使用任何一个程序都离不开文件操作&#xff0c;这个文件不仅仅指平时可以…

Pyside6 安装和简单界面开发

Pyside6 安装和简单界面开发 Pyside6介绍Pysied6开发环境搭建Python安装Pysied6安装 Pyside6界面开发简单界面设计界面设计界面编译 编写界面初始化代码软件打包 Pyside6介绍 对于Python的GUI开发来说&#xff0c;Python自带的可视化编程模块的功能较弱&#xff0c;PySide是跨…

关于Go语言的底层,Channel

1.Channel 介绍一下Channel&#xff08;有缓冲和无缓冲&#xff09; Go 语言中&#xff0c;不要通过共享内存来通信&#xff0c;而要通过通信来实现内存共享。Go 的CSP(Communicating Sequential Process)并发模型&#xff0c;中文可以叫做通信顺序进程&#xff0c;是通过 gor…