100:ReconFusion: 3D Reconstruction with Diffusion Priors

简介

官网
在这里插入图片描述
少样本重建必然导致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.mfbz.cn/a/244967.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

12.HTML5新特性

HTML5新特性 1.介绍 它是万维网的核心语言、标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改。用于取代 HTML4 与 XHTML 的新一代标准版本,所以叫HTML5 HTML5 在狭义上是指新一代的 HTML 标准,在广义上是指…

浮动的魅力与挑战:如何在前端设计中巧妙运用浮动(下)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

FFmpeg的AVcodecParser

文章目录 结构体操作函数支持的AVCodecParser 这个模块是AVCodec中的子模块,专门用来提前解析码流的元数据,为后面的解码做准备,这一点对cuda-NVdec非常明显,英伟达解码器的元数据解析是放在CPU上的,所以就非常依赖这个…

对于初学者来说,从哪些方面开始学习 Java 编程比较好?

对于初学者来说,从哪些方面开始学习 Java 编程比较好? 在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「Java的资料从专业入门到高级教程工具包」,点个关注,全…

react Hooks(useRef、useMemo、useCallback)实现原理

Fiber 上篇文章fiber简单理解记录了react fiber架构,Hooks是基于fiber链表来实现的。阅读以下内容时建议先了解react fiber。 jsx -> render function -> vdom -> fiber树 -> dom vdom 转 fiber 的过程称为 recocile。diff算法就是在recocile这个过程…

70套大数据可视化大屏模板,总有一款适合你(含演示示例)

分享70款还不错的前端数据可视化大屏源码 其中包含行业:智慧社区、智慧物业、政务系统、智慧交通、智慧工程、智慧医疗、智慧金融银行等,全网最新、最多,最全、最酷、最炫大数据可视化模板。 你可以点击预览获取查看该源码资源的最终展示效果…

思福迪运维安全管理系统 test_qrcode_b RCE漏洞复现

0x01 产品简介 思福迪运维安全管理系统是思福迪开发的一款运维安全管理堡垒机。 0x02 漏洞概述 由于思福迪运维安全管理系统 test_qrcode_b路由存在命令执行漏洞,攻击者可通过该漏洞在服务器端任意执行代码,写入后门,获取服务器权限&#…

05进程间通信-学习笔记

进程间通信(IPC) 概念 进程信技术简称IPC,可以利用此技木让多个进程相传建消数据,有大量的进程间通信方案 pipe 匿名管道fifo 命名管简单理解,管道文件是一个指向内核管道缓冲区的指针,所有向管道文件读写的操作&am…

人机交互——自然语言理解

人机交互中的自然语言理解是人机交互的核心,它是指用自然语言(例如中文、英文等)进行交流,使计算机能理解和运用人类社会的自然语言,实现人机之间的自然语言通信。 自然语言理解在人工智能领域中有着非常重要的地位&a…

计算机网络(三)

(十一)路由算法 A、路由算法分类 动态路由和静态路由 静态路由:人工配制,路由信息更新慢,优先级高。这种在实际网络中要投入成本大,准确但是可行性弱。 动态路由:路由更新快,自动…

【操作系统导论】内存篇——分页

引入 采用 「分段」 的方式,将空间切成 不同长度的分片,会出现 碎片化 问题,随着时间推移,分配内存会越来越困难。 因此,值得考虑「分页」的方法: 将空间分割成 固定长度的分片 ; 将物理内存…

中医电子处方管理系统软件,中医配方模板一键生成软件操作教程

一、前言: 在中医开电子处方时,如果能够使用配方模板功能,则可以节省很多时间。使用配方模板一键导入,几秒即可完成开单。 下面就以佳易王电子处方管理系统软件V17.1版本为例说明,其他版本可以参考,软件下…

场景的组织及渲染(一)

在OSG 中存在两棵树,即场景树和渲染树。场景树是一棵由 Node组成的树,这些Node可能是矩阵变换、状态切换或真正的可绘制对象,它反映了场景的空间结构,也反映了对象的状态。本章重点介绍场景树,在第 5章将会对渲染树作详细的介绍。…

GoWin FPGA, GPIO--- startup2

一个Bank只能用一个电压,假如同一个Bank,在引脚里设置不同的电压,编译不过。 解释说明 2. 错误引脚限制 以上编译设置会导致编译错误。

Docker | 发布镜像到镜像仓库

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:Docker系列 ✨特色专栏: MySQL学习 🥭本文内容:Docker | 发布镜像到镜像仓库 📚个人知识库: [Leo知识库]https://gaoziman.gitee.io/bl…

std::vector

这里主要介绍下reserce/resize、push_back/emplace_back、shrink_to_fit/clear等接口; 1. reserve and resize C的vector对象可以通过reserve方法来设置vector对象的容量,通过resize方法来改变vector对象的大小。reserve所设置的容量指的是vector容器中可…

0基础学习VR全景平台篇第127篇:什么是VR全景/720全景漫游?

“全景”作为一种表现宽阔视野的手法,在很久之前就得到了普遍的认同。北宋年间,由张择端绘制的《清明上河图》就是一幅著名的全景画。摄影术出现后,全景摄影也随之而生。 到今天,全景拍摄不再被专业摄影师所独享,广大…

云计算与AI融合:Amazon Connect开创客户服务智能时代

授权说明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道 在亚马逊云科技 re:Invent 2023 大会上,Amazon Connect…

[AutoSar]状态管理(四)单核BswM(二)流程、配置、 代码

目录 关键词平台说明一、BswM的模式处理流程图二、stand state handling三、配置、代码、状态转移3.1 initial -> wakeup   3.2 WakeUp -> Run3.3 Run -> PostRun (first step)3.4 Run -> PostRun (second step)3.5…

Python安装报错: This environment is externally managed

error: externally-managed-environment This environment is externally managed ╰─> To install Python packages system-wide, try apt installpython3-xyz, where xyz is the package you are trying toinstall.这个错误信息表示当前Python环境是由系统外部管理的&…