欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > ReconFusion: 3D Reconstruction with Diffusion Priors 论文解读

ReconFusion: 3D Reconstruction with Diffusion Priors 论文解读

2025/1/5 11:01:12 来源:https://blog.csdn.net/m0_60177079/article/details/144755106  浏览:    关键词:ReconFusion: 3D Reconstruction with Diffusion Priors 论文解读

目录

一、概述

二、相关工作

1、稀疏视角NeRF

2、用于视角合成的回归模型

3、用于视角合成的生成模型

4、2D扩散用于3D生成

三、ReconFusion

四、实验


一、概述

        提出可以利用三张图片生成实景三维重建的方法ReconFusion。并且在合成数据集和多视图数据集上进行训练,来规范基于NeRF的3D生成管道。该方法可以在欠约束区域合成逼真的几何形状和纹理,同时保留观察区域的外观,即使输入视图有限也能如此。

二、相关工作

1、稀疏视角NeRF

        DS-NeRF利用从SfM得到的稀疏深度输出作为监督信号。

        DDP-NeRF利用CNN来从稀疏视角输入中获取密集深度监督。

        SimpleNeRF通过训练小的模块来正则化外观和几何。

        GANeRF训练一个生成网络来改进NeRF渲染。

        但当视图视角较稀疏时,大场景下,性能较差。

2、用于视角合成的回归模型

        与逐场景优化的 NeRF 不同,这些方法训练前馈神经网络用于泛化的新视角合成。它们利用大量已知位姿的多视角数据集进行训练[9, 12, 20, 43, 53, 55, 57, 63, 66]。

        大多数方法将输入图像提升到3D表示,如使用平面扫描体积,并以前馈方式预测新视角。它们在输入视角附近表现良好,但在模糊视角上的外推性能较差,因为可能渲染结果的分布变得多模态。

        这些方法虽然可以在已知视角附近进行有效的新视角合成,但在需要生成未知场景部分的情况下,性能会大幅下降。

3、用于视角合成的生成模型

        早期工作主要利用GAN解决,近期最多的就是扩散模型来作视角生成。

        Zero123从Objaverse数据集中微调了一个大规模的预训练扩散模型实现零样本泛化,但只能支持单输入图像,且只能处理干净背景的物体图像,无法处理复杂真实场景,ZeroNVS微调了Zero123的对一般图像的单图像重建。

4、2D扩散用于3D生成

        鉴于可训练的3D数据有限,近期工作利用2D扩散模型从文本提示或输入图像中生成3D asset,DreamFusion提出SDS来通过2D diffusion监督一个3D模型的优化。SplatFusion提出多步采样其中采样给定噪声编码图像作为三维重建目标。

        在该论文的重建工作中试验了这两种方法。

三、ReconFusion

        训练过程:

        给定一组输入图像x^{obs}=\left \{ x_i \right \}^N_{i=1},相应的相机位姿为\pi^{obs}=\left \{ \pi_i \right \}_{i=1}^N,和一个位于新视角的目标相机\pi(也就是那个红的相机),该模型的目的是学习一个位于新视角下的条件分布。

        首先将这一组输入图像输入到PixelNeRFR_{\phi}中得到一组特征图f

                        f=R_{\phi}(x^{obs},\pi^{obs},\pi)

        由于我们在PixelNeRF中输入了相机的位姿,那么这个特征图也就是一个空间对齐的条件信号,也隐式编码了相机变换,并嵌入后续的U-Net中。

        另外我们通过CLIP获得每个输入图像的文本嵌入e^{obs},并嵌入后续的U-Net中。

        在训练过程中,我们是已知这一目标相机视角的,所以将GT目标图像利用encoder编码后,不断扩散加噪,并与上面两个嵌入concat作为U-Net网络的输入,最后经过多轮去噪,得到去噪特征,并经过decoder输出预测目标图像。

推理过程:

        此时,只需要输入少量图像和这些图像的位姿并且输入一个目标位姿,后续经过PixelNeRF得到的特征,直接与CLIP嵌入和高斯噪声concat后丢入U-Net,进行去噪过程即可。

重建过程:

         由于最先进的NeRF经常由于伪影和不准确的几何形状,形成一些3D不一致的模型,所以这里面为了更少的输入设定,重建过程使用Zip-NeRF。

        其实后面扩散的部分就是一个新视图生成,为了将视图增加,之后再通过NeRF体渲染得到三维模型。

损失函数:

(1)PixelNeRF损失:c是PixelNeRF模型的输出(应该是根据target pose,经过完整的体渲染得到的图像与特征图分辨率相同)x_{\downarrow}是目标图像降采样到特征图f分辨率的图像。

(2)扩散损失:就是正态噪声与Denoising U-Net预测噪声的L2范数。

(3) 重建损失:输入的图像与体渲染出来(与输入图像相同姿态)的图像之间的L2范数或者其他更为鲁棒性的损失。

(4)采样损失: 首先通过NeRF网络渲染一个随机视角的图像x(这个视角即不是参考视角也不是目标视角,而是经过新视图生成后,通过已有的几个位姿插值得到的轨迹中的一个任意视角),之后对这个图像进行编码和噪声扰动,得到一个中间噪声水平t下的潜在表示z_t,这个中间噪声水平因为他受到的噪声在[t_{min},t_{max}]之间,在训练过程中逐渐减小,且输入图像越多初始的噪声越小。并将这个潜在表示z_t经过去噪网络得到\hat{x}_{\pi}。其中采样损失计算的就是x,\hat{x}_{\pi}的L1损失和LPIPS损失。另外w(t)是一个相关噪声的权重系数。

四、实验

        量化比较。

参考论文:https://arxiv.org/abs/2312.02981 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com