100:ReconFusion: 3D Reconstruction with Diffusion Priors

news2024/9/24 5:24:12

简介

官网
在这里插入图片描述
少样本重建必然导致nerf失败,论文提出使用diffusion模型来解决这一问题。从上图不难看出,论文一步步提升视角数量,逐步与Zip-NeRF对比。

实现流程

在这里插入图片描述

Diffusion Model for Novel View Synthesis

给定一组输入图像 x o b s = { x i } i = 1 N x^{obs}=\{x_i\}^N_{i=1} xobs={xi}i=1N以及对应的相机位姿 π o b s = { π i } i = 1 N \pi^{obs}=\{\pi_i\}^N_{i=1} πobs={πi}i=1N,希望在目标相机位姿 π \pi π下,图片 x 在 新试图的分布 p ( x ∣ x o b s , π o b s , π ) p(x|x^{obs},\pi^{obs},\pi) p(xxobs,πobs,π)

这里采用的扩散模型是 LDM(High-Resolution Image Synthesis with Latent Diffusion Models)

LDM能够有效地模拟高分辨率图像。LDM使用预训练的变分自编码器(VAE) ϵ \epsilon ϵ 将输入图像编码为潜在表示。在这些潜在上进行扩散,其中去噪的U-Net ϵ θ \epsilon_\theta ϵθ将有噪声的潜在映射回干净的潜在。在推理过程中,使用该U-Net对纯高斯噪声进行迭代降噪,得到一个干净的潜在噪声。潜在表示通过VAE解码器D恢复为图像。

实现过程类似于Zero-1-to-3,将输入图像和相机位姿作为一个预训练文本到图像生成的LDM的附加条件。

文本到图像模型转换为位姿图像到图像模型需要使用附加的条件反射路径来增强U-Net体系结构。

为了修改预训练的架构,以便从多个姿态图像中合成新的视图,向U-Net注入了两个新的条件反射信号。

  • 对于输入的高级语义信息,使用CLIP嵌入每个输入图像(表示为 e o b s e^{obs} eobs),并通过交叉注意将该特征向量序列馈送到U-Net中。
  • 对于相对相机姿态和几何信息,使用PixelNeRF模型的 R ϕ R_\phi Rϕ来渲染具有与目标视点 π \pi π相同空间分辨率的特征图 f

f = R ϕ ( x o b s , π o b s , π ) f = R_\phi(x^{obs},\pi^{obs},\pi) f=Rϕ(xobs,πobs,π)

特征图 f 是一个空间对齐的条件信号,它隐式地编码了相对相机变换。

沿信道维度将 f噪声潜值 连接起来,并将其送入去噪UNet ϵ θ \epsilon_\theta ϵθ

这种特征映射调节策略类似于GeNVSSparseFusion中使用的策略,与直接嵌入相机外部和内部特征本身相比,可以更好地提供新的相机姿势的准确表示。

training

冻结预训练的编码器和解码器的权值,根据预训练的权值初始化U-Net参数θ,并利用简化的扩散损失对改进的视图合成结构进行了优化
在这里插入图片描述
t∈{1,…, T}为扩散时间步长,ε ~ N (0, I), z t = α t ε ( x ) + σ t ϵ z_t = α_t \varepsilon(x) + σ_t \epsilon zt=αtε(x)+σtϵ为该时间步长的噪声潜函数, e o b s e^{obs} eobs 为输入图像 x o b s x^{obs} xobs 的CLIP图像嵌入,f 为PixelNeRF R φ R_φ Rφ 渲染的特征映射。

优化具有光度损耗的PixelNeRF参数φ:
在这里插入图片描述

其中 c 是PixelNeRF模型的输出(与特征映射 f 具有相同的分辨率),x↓ 是下采样到 z t z_t zt 和 f 的空间分辨率的目标图像。这种损失鼓励 PixelNeRF重建RGB目标图像,这有助于避免扩散模型无法利用 PixelNeRF 输入的糟糕的局部最小值。

3D Reconstruction with Diffusion Priors

第一步的NeRF重建的光度损失
在这里插入图片描述

在每次迭代中,对随机视图进行采样,并从扩散模型中生成图像以生成目标图像。(通过从中间噪声水平开始采样过程来控制目标图像与当前渲染图像的接地程度。)
在这里插入图片描述

具体来说,从采样的新视点 π \pi π呈现图像 x ( ψ , π ) x(ψ, π) x(ψπ),并将其编码和扰动为噪声潜码为 t   U [ t m i n , t m a x ] t ~ U [t_{min}, t_{max}] t U[tmin,tmax]的噪声潜码 z t z_t zt。然后,通过运行DDIM采样,在最小噪声潜码和 t 之间均匀间隔 k 个中间步骤,从潜在扩散模型生成一个样本,从而得到一个潜在样本 z 0 z_0 z0。这个潜信号被解码以产生一个目标图像 x ^ π = D ( z 0 ) \hat{x}_\pi=D(z_0) x^π=D(z0):
在这里插入图片描述
其中,$L_p¥为感知距离LPIPS, w(t)为依赖于噪声水平的加权函数。这种扩散损失最类似于SparseFusion,也类似于InstructNeRF2NeRF的迭代数据集更新策略,只不过在每次迭代时都采样一个新的图像。从经验上发现,这种方法比分数蒸馏取样更有效

当使用扩散先验时,我们不想在物体内部或墙后放置新的视图,视图的放置通常取决于场景内容和捕获类型。与RegNeRF等先前的工作一样,希望根据已知的输入姿势和捕获模式定义一个分布,该分布将包含一组合理的新相机姿势,大致与期望观察重建场景的位置相匹配。

通过确定场景中的基本姿势集或路径来实现这一点,可以随机采样和扰动以定义新视图的完整姿势分布。在LLFFDTU等前向捕获或mip-NeRF 360等360度捕获中,定义了一条适合训练视图的椭圆路径,面向焦点(与训练相机的焦轴平均距离最小的点)。在更多的非结构化捕获中,如CO3DRealEstate10K,拟合b样条来大致遵循训练视图的轨迹。在任何一种情况下,对于每个随机的新视图,统一地选择路径中的一个姿态,然后扰动它的位置,向上向量,并在一定范围内查看点。

Implementation Details

基本扩散模型是对潜在扩散模型的重新实现,该模型在输入分辨率为512×512×3的图像-文本对的内部数据集和维度为64×64×8的潜在空间上进行了训练。

PixelNeRF的编码器是一个小的U-Net,它将分辨率为512×512的图像作为输入,并输出分辨率为64 × 64的128通道的特征图

联合训练PixelNeRF和微调去噪U-Net,批处理大小为256,学习率为 1 0 − 4 10^{−4} 104,共进行250k次迭代。为了实现无分类器制导(CFG),以10%的概率将输入图像随机设置为全零。

使用Zip-NeRF作为主干,并对NeRF进行了总共1000次迭代的训练。重构损失 L r e c o n L_{recon} Lrecon 与 Zip-NeRF一样使用Charbonnier损失。 L s a m p l e L_{sample} Lsample的权重在训练过程中从1线性衰减到0.1,采样使用的无分类器指导尺度设置为 3.0。将所有训练步骤的 t m a x = 1.0 t_{max} = 1.0 tmax=1.0 固定,并将 t m i n t_{min} tmin 从1.0线性退火到0.0。无论 t 如何,总是以k = 10步对去噪图像进行采样。在实践中,用于视图合成的扩散模型可以以少量观察到的输入图像和姿势为条件。给定一个新的目标视图,从观察到的输入中选择3个最近的相机位置来调节模型。这使模型能够在选择对采样的新视图最有用的输入时缩放到大量的输入图像。

在这里插入图片描述

Limitation

重量级扩散模型成本高,并且显著减慢了重建速度;研究结果表明,与图像模型在2D中产生的幻觉相比,3D绘制能力有限;调整重构和样本损失的平衡是繁琐的等。

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

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

相关文章

Tomcat部署(图片和HTML等)静态资源时遇到的问题

文章目录 Tomcat部署静态资源问题图中HTML代码启动Tomcat后先确认Tomcat是否启动成功 Tomcat部署静态资源问题 今天,有人突然跟我提到,使用nginx部署静态资源,如图片。可以直接通过url地址访问,为什么他的Tomcat不能通过这样的方…

卧槽!jmeter 竟然这么牛逼,压测爽歪歪~

# Http请求模拟 1、新建线程组 操作:鼠标右键测试计划 -> 添加 -> Threads(Users) -> 线程组 -> 修改测试计划名称 新建线程组 2、添加取样器HTTP请求 操作:鼠标右键线程组 -> 添加 -> Sampler -> HTTP请求 -> 填写请求参数 添…

Mybatis的foreach标签的使用以及参数的含义

Mybatis的foreach标签的使用以及参数的含义 语法格式: 属性说明: collection属性的注意点:

LabVIEW在高铁温度与振动监测中的应用

​LabVIEW在高铁温度与振动监测中的应用 高速铁路的可靠性和安全性是现代铁路运输系统设计和运营的重中之重。LabVIEW软件作为一个多功能、可扩展的图形编程环境,提供了一个理想的平台,用于开发高铁监测系统,不仅监测实时数据,也…

LangChain(0.0.340)官方文档九:Retrieval——Text embedding models、Vector stores、Indexing

LangChain官网、LangChain官方文档 、langchain Github、langchain API文档、llm-universe 文章目录 一、Text embedding models1.1 Embeddings类1.2 OpenAI1.3 Sentence Transformers on Hugging Face1.4 CacheBackedEmbeddings1.4.1 简介1.4.2 与Vector Store一起使用1.4.3 内…

小程序 -网络请求post/get

1.1网络请求的概念(post和get) 1.2步骤 1.3 应用函数 js里面写,用bindtap绑在控件上,就不讲了 实例代码: //发起get数据请求get_info(){wx.request({url:https://www.escook.cn/api/get,//请求的接口地址,必须基于https协议//请求的方式met…

Flutter 打包 iOS 苹果 IPA 应用有哪些优势?如何实现?

经常和移动应用开发相关的话题打交道的伙伴们都知道。在开发移动应用时,选择合适的打包方式对于应用的发布和分发至关重要。在今天这篇文章中,我将和大家聊聊 Flutter 打包 iOS 苹果 IPA 应用的优势,并分享一些使用 Flutter 打包 ios 苹果 ip…

克隆图[中等]

一、题目 给你无向 连通 图中一个节点的引用&#xff0c;请你返回该图的 深拷贝&#xff08;克隆&#xff09;。图中的每个节点都包含它的值val&#xff08;int&#xff09;和其邻居的列表list[Node]。 class Node {public int val;public List<Node> neighbors; }测试…

【WinForm.NET开发】使用 Padding、Margin 和 AutoSize 属性布置控件

本文内容 创建项目设置控件的边距设置控件的填充自动调整控件大小AutoSize 和 AutoSizeMode 属性后续步骤 在窗体上精确地放置控件对于许多应用程序而言是高优先级。 Visual Studio 中的 Windows 窗体设计器提供了许多布局工具来实现此目的。 其中三个最重要的是 Margin、Pad…

孩子都能学会的FPGA:第三十一课——用FPGA实现SPI主机发送数据

&#xff08;原创声明&#xff1a;该文是作者的原创&#xff0c;面向对象是FPGA入门者&#xff0c;后续会有进阶的高级教程。宗旨是让每个想做FPGA的人轻松入门&#xff0c;作者不光让大家知其然&#xff0c;还要让大家知其所以然&#xff01;每个工程作者都搭建了全自动化的仿…

保障网络安全:了解威胁检测和风险评分的重要性

在当今数字时代&#xff0c;网络安全问题变得愈发突出&#xff0c;而及时发现和迅速应对潜在威胁成为保障组织信息安全的首要任务。令人震惊的是&#xff0c;根据2023年的数据&#xff0c;平均而言&#xff0c;检测到一次网络入侵的时间竟然长达207天。这引起了对安全策略和技术…

java设计模式学习之【代理模式】

文章目录 引言代理模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用图片加载示例代码地址 引言 在现实生活中&#xff0c;我们经常使用代理来处理我们不想直接参与或无法直接参与的事务&#xff0c;例如&#xff0c;使用律师来代表法庭上的案件。在软件开发…

2023微博AIGC算法工程师一面 面试题

来源&#xff1a;投稿 作者&#xff1a;LSC 编辑&#xff1a;学姐 一面 35min左右&#xff0c;主要是根据简历发问的 1.自我介绍 介绍实习项目, 聊的比较详细&#xff0c;但是我实习项目限制比较多&#xff0c;做的不够深入。 2.多标签分类的损失函数 多标签分类任务&#x…

SOLIDWORKS Motion运动平台减速运动分析

SOLIDWROKS motion是SOLIDWORKS中一个高性能的插件&#xff0c;能够帮助设计中完成虚拟样机的仿真分析工具&#xff0c;motion既可以对众多的机械结构进行运动学和动力学仿真&#xff0c;同时也可以反馈机械设备的速度、加速度、作用力等&#xff0c;在SOLIDWROKS motion完成样…

ArrayList与顺序表(带完整实例)

【本节目标】 1. 线性表 2. 顺序表 3. ArrayList的简介 4. ArrayList使用 5. ArrayList的扩容机制 6. 扑克牌 1.线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构&#xff0c;常见的线性表…

骨灰级程序员那些年曾经告诉我们的高效学习的态度

一、背景 以前阅读陈皓老师的左耳听风专栏中关于如何高效学习的总结让我收货颇丰&#xff0c;今天总结了一下&#xff0c;分享给大家 老师说&#xff1a; 学习是一件“逆人性”的事&#xff0c;就像锻炼身体一样&#xff0c;需要人持续付出&#xff0c;会让人感到痛苦&#…

PFA气体吸收瓶耐强酸PFA洗气瓶PFA鼓泡瓶特点分析

洗气瓶的别称有多种&#xff0c;取决于不同的地区和行业。以下是一些常见的别称&#xff1a; 1. 清洗瓶&#xff1a;因其主要用途是清洗气体样品而得名。 2. 干燥瓶&#xff1a;用于干燥气体样品的容器。 3. 气体净化瓶&#xff1a;用于净化气体样品的设备。 4. 气体清洗器…

再回首感知损失在low-level上的应用

《Perceptual Losses for Real-Time Style Transfer and Super-Resolution》是李飞飞团队在2016年发表于ECCV的文章。我近几年的工作中&#xff0c;所训练的模型都离不开感知损失。不得不感慨&#xff0c;大佬之所以是大佬&#xff0c;就是因为他们开创性的工作很多年后依然为人…

淘宝api接口测试方式(item_get-获得淘宝商品详情)

注册淘宝开放平台账号&#xff1a;首先&#xff0c;你需要在淘宝开放平台上注册一个账号&#xff0c;并创建一个应用。获取App Key和Secret Key&#xff1a;在创建应用后&#xff0c;你会获得App Key和Secret Key&#xff0c;这些凭证将用于调用API。了解淘宝商品详情接口&…

探索性能测试的奥秘:流程与工具大揭秘!

一、性能测试 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。 1.1 类别 性能测试包括负载测试、压力测试、基准测试等。 1.1.1 负载测试 通过测试系统在资源超负荷情况下的表现&#xff0c;以发现设计上的错误或验证…