NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 翻译

本文主要是介绍NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 翻译,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

NeRF:将场景表示为用于视图合成的神经辐射场

引言。我们提出了一种方法,该方法通过使用稀疏的输入视图集优化底层连续体场景函数来实现用于合成复杂场景的新视图的最新结果。我们的算法使用全连通(非卷积)深度网络来表示场景,其输入是单个连续的5D坐标(空间位置(x,y,z)和观察方向(θ,φ)),其输出是该空间位置处的体积密度和与观察相关的发射辐射。我们通过查询沿着相机光线的5D坐标来合成视图,并使用经典的体绘制技术将输出的颜色和密度投影到图像中。由于体绘制是自然可微的,优化我们的表示所需的唯一输入是一组具有已知相机姿态的图像。我们描述了如何有效地优化神经辐射场,以绘制具有复杂几何形状和外观的场景的照片级真实感新视图,并展示了优于神经绘制和视图合成的现有工作的结果。视图合成结果最好以视频的形式查看,因此我们强烈建议读者查看我们的补充视频,以进行令人信服的比较。

关键词:场景表示;视图合成;基于图像的绘制;体绘制;3D深度学习

1 介绍

        在这项工作中,我们解决了长期存在的问题,视图合成的一种新的方式,直接优化参数的连续5D场景表示,以尽量减少渲染一组捕获的图像的错误。

        我们将静态场景表示为连续的5D函数,其输出在空间中的每个点(x,y,z)处在每个方向(θ,φ)上发射的辐射,以及每个点处的密度,其作用类似于控制通过(x,y,z)的射线累积多少辐射的微分不透明度。我们的方法优化了一个没有任何卷积层的深度全连接神经网络(通常称为多层感知器或MLP),通过从单个5D坐标(x,y,z,θ,φ)回归到单个体积密度和视图相关的RGB颜色来表示该函数。为了渲染这个神经辐射场(NeRF),从特定的视点,我们:1)使照相机射线行进通过场景以生成3D点的采样集,2)使用这些点及其对应的2D观看方向作为神经网络的输入以产生颜色和密度的输出集,以及3)使用经典的体绘制技术来将这些颜色和密度累积到2D图像中。因为这个过程是自然可微的,我们可以使用梯度下降来优化这个模型,通过最小化每个观察到的图像和从我们的表示渲染的相应视图之间的误差。最大限度地减少多个视图中的这种错误,鼓励网络通过为包含真实底层场景内容的位置分配高体积密度和准确的颜色来预测场景的连贯模型。图2显示了整个管道。

图一:我们提出了一种优化来自一组输入图像的场景的连续5D神经辐射场表示(在任何连续位置处的体积密度和视点相关颜色)的方法。我们使用体绘制的技术来积累这个场景表示沿着射线的样本,以从任何视点渲染场景。在这里,我们可视化了在周围半球上随机捕获的合成Drums场景的100个输入视图的集合,并且我们显示了从优化的NeRF表示渲染的两个新视图。 

图2:我们的神经辐射场场景表示和可微分渲染过程的概述。我们通过沿沿着相机射线采样5D坐标(位置和观察方向)(a),将这些位置馈送到MLP中以产生颜色和体积密度(b),并使用体积渲染技术将这些值合成为图像(c)来合成图像。该渲染函数是可微的,因此我们可以通过最小化合成图像和地面实况观察图像(d)之间的残差来优化场景表示。 

        我们发现,优化一个复杂场景的神经辐射场表示的基本实现并不收敛到一个足够高的分辨率表示,是低效的,在所需的样本数每相机射线。我们解决这些问题,通过转换输入的5D坐标与位置编码,使MLP表示更高的频率函数,我们提出了一个分层采样过程,以减少所需的查询数量,充分采样这种高频场景表示。

        我们的方法继承了体积表示的优点:两者都可以表示复杂的现实世界的几何形状和外观,并且非常适合使用投影图像进行基于梯度的优化。至关重要的是,我们的方法克服了令人望而却步的存储成本的离散体素网格建模时,在高分辨率的复杂场景。总之,我们的技术贡献是:

  • 一种将具有复杂几何形状和材料的连续场景表示为5D神经辐射场的方法,参数化为基本MLP网络。
  • 一个微分渲染过程的基础上,经典的体绘制技术,我们用它来优化这些表示从标准的RGB图像。这包括分层采样策略,用于将MLP的容量分配给具有可见场景内容的空间。
  • 将每个输入5D坐标映射到更高维空间的位置编码,这使我们能够成功地优化神经辐射场以表示高频场景内容。

我们证明,我们得到的神经辐射场方法在定量和定性上优于最先进的视图合成方法,包括将神经3D表示与场景相匹配的工作,以及训练深度卷积网络以预测采样体积表示的工作。据我们所知,本文提出了第一个连续的神经场景表示,能够从自然环境中捕获的RGB图像中渲染真实的对象和场景的高分辨率照片级逼真的新视图。

2 相关工作

        计算机视觉中一个有前途的最近方向是在MLP的权重中编码对象和场景,该MLP直接从3D空间位置映射到形状的隐式表示,例如该位置的符号距离。然而,这些方法到目前为止还不能再现具有复杂几何形状的逼真场景,其保真度与使用诸如三角形网格或体素网格的离散表示来表示场景的技术相同。在本节中,我们将回顾这两条工作线,并将其与我们的方法进行对比,该方法增强了神经场景表示的能力,以产生渲染复杂现实场景的最先进结果。

        使用MLP从低维坐标映射到颜色的类似方法也用于表示其他图形功能,例如图像,纹理材料和间接照明值。

        神经3D形状表示最近的工作通过优化将xyz坐标映射到有符号距离函数或占用字段的深度网络来研究连续3D形状作为水平集的隐式表示。然而,这些模型受到其访问地面真实3D几何形状的要求的限制,通常从合成3D形状数据集(如ShapeNet)获得。随后的工作通过制定可微分的渲染函数来放松对地面真实3D形状的这一要求,这些函数允许仅使用2D图像来优化神经隐式形状表示。Niemeyer等人。将表面表示为3D占有场,并使用数值方法找到每条射线的表面交点,然后使用隐式微分计算精确导数。每个光线相交位置被提供作为神经3D纹理场的输入,该神经3D纹理场预测该点的漫射颜色。Sitzmann等人。使用一种不太直接的神经3D表示,该表示仅在每个连续3D坐标处输出特征向量和RGB颜色,并提出了一种由递归神经网络组成的可微分渲染函数,该递归神经网络沿沿着每条光线行进以决定表面的位置。

        虽然这些技术可以潜在地表示复杂和高分辨率的几何形状,但到目前为止,它们仅限于具有低几何复杂性的简单形状,从而导致过度平滑的渲染。我们表明,优化网络编码5D辐射场(3D体积)的替代策略具有2D视图相关外观)可以表示更高分辨率的几何形状和外观,以呈现复杂场景的照片级逼真的新颖视图。

        视图合成和基于图像的渲染给定视图的密集采样,可以通过简单的光场样本插值技术重建真实感新颖的视图。对于具有稀疏视图采样的新颖视图合成,计算机视觉和图形学社区通过从观察到的图像预测传统的几何和外观表示来取得重大进展。一种流行的方法使用基于网格的场景表示,具有漫射或视图相关外观。可微分光栅化器或路径跟踪器可以直接优化网格表示,以使用梯度下降再现一组输入图像。然而,基于图像重投影的基于梯度的网格优化通常是困难的,可能是因为局部极小值或损失景观的不良条件。此外,该策略需要在优化之前提供具有固定拓扑的模板网格作为初始化,这通常不适用于无约束的真实世界场景。

        另一类方法使用体积表示来解决从一组输入RGB图像合成高质量照片级真实感视图的任务。体积方法能够真实地表示复杂的形状和材料,非常适合基于梯度的优化,并且往往比基于网格的方法产生更少的视觉干扰。早期的体积方法使用观察到的图像直接对体素网格进行着色。最近,几种方法使用多个场景的大型数据集来训练深度网络,该深度网络从一组输入图像预测采样的体积表示,然后使用alpha合成或沿沿着光线学习合成以在测试时渲染新视图。其他工作已经优化了卷积网络(CNN)和每个特定场景的采样体素网格的组合,使得CNN可以补偿来自低分辨率体素网格的离散化伪影或允许预测的体素网格基于输入时间或动画控件而变化。虽然这些体积技术在新颖的视图合成方面取得了令人印象深刻的结果,但由于它们的离散采样,它们扩展到更高分辨率图像的能力从根本上受到时间和空间复杂性的限制-渲染更高分辨率的图像需要更精细的3D空间采样。我们通过在深度全连接神经网络的参数内对连续体积进行编码来规避这个问题,这不仅比以前的体积方法产生更高质量的渲染,而且只需要这些采样体积表示的一小部分存储成本。

3 神经辐射场场景表示

        我们将连续场景表示为5D向量值函数,其输入是3D位置x =(x,y,z)和2D观看方向(θ,φ),并且其输出是发射颜色c =(r,g,B)和体积密度σ。在实践中,我们表示方向作为3D笛卡尔单位向量d。我们用MLP网络F_{\Theta }:(x,d)→(c,σ)来近似这种连续的5D场景表示,并优化其权重Θ,以从每个输入5D坐标映射到其对应的体积密度和定向发射颜色。

        我们通过限制网络预测体积密度σ仅作为位置x的函数,同时允许RGB颜色c作为位置和观看方向的函数进行预测,从而鼓励表示具有多视图一致性。为了实现这一点,MLP F_{\Theta }首先用8个完全连接的层(使用ReLU激活和每层256个通道)处理输入的3D坐标 x,并输出σ和256维特征向量。然后,该特征向量与相机光线的观看方向连接在一起,并传递到一个额外的全连接层(使用ReLU激活和128个通道),该层输出与视图相关的RGB颜色。

        参见图3,以了解我们的方法如何使用输入观看方向来表示非朗伯效应的示例。如图4所示,在没有视图依赖性的情况下训练的模型(仅x作为输入)难以表示镜面反射。

图3:视向相关的发射辐射的可视化。我们的神经辐射场表示输出RGB颜色作为空间位置x和观看方向d的5D函数。在这里,我们在船舶场景的神经表示中可视化了两个空间位置的示例方向颜色分布。在(a)和(b)中,我们显示了来自两个不同相机位置的两个固定3D点的外观:一个在船的侧面(橙子插图),一个在水面上(蓝色插图)。我们的方法预测了这两个3D点的变化的镜面外观,并且在(c)中,我们展示了这种行为如何在整个观察方向的半球上连续推广。 

图四:在这里,我们可视化我们的完整模型如何受益于代表view-dependent发射的辐射,并通过一个高频位置编码通过我们的输入坐标。删除视图相关性可防止模型在推土机踏板上重新创建镜面反射。去除位置编码会大大降低模型表示高频几何和纹理的能力,从而导致过度平滑的外观。 

4 使用辐射场进行体绘制 

        我们的5D神经辐射场将场景表示为空间中任何点的体积密度和定向发射辐射。我们使用经典体绘制的原理来绘制穿过场景的任何光线的颜色。体积密度σ(x)可以解释为射线终止于位置x处的无穷小粒子的微分概率。具有近边界t_{n}和远边界t_{f}的相机光线r(t)= o + td的预期颜色C(r)为:

函数T(t)表示沿着从t_{n}t_{f}的射线的累积透射率,即,射线从t_{n}t_{f}不击中任何其他粒子的概率。从我们的连续神经辐射场渲染视图需要估计通过所需虚拟相机的每个像素跟踪的相机射线的积分C(r)。 

        我们用求积法数值估计这个连续积分。确定性求积通常用于渲染离散体素网格,它将有效地限制我们的表示的分辨率,因为MLP将仅在一组固定的离散位置处被查询。相反,我们使用分层采样方法,将[tn,tf]划分为N个均匀间隔的bin,然后从每个bin中随机抽取一个样本:

        虽然我们使用一组离散样本来估计积分,但分层采样使我们能够表示连续的场景表示,因为它导致在优化过程中在连续位置处评估MLP。我们使用这些样本来估计C(r),其中使用Max的体绘制评论中讨论的求积规则: 

其中\delta _{i}=t_{i+1}-t_{i} 是相邻样本之间的距离。这个从 (c_{i},\sigma _{i}) 值的集合计算C(r)的函数是平凡可微的,并简化为传统的alpha合成,alpha值为\alpha _{i}=1-exp(-\sigma _{i}\delta _{i})。 

5 优化神经辐射场

在上一节中,我们描述了将场景建模为神经辐射场并从此表示中渲染新视图所需的核心组件。然而,我们观察到这些组件不足以达到最新技术水平的质量,如第6.4节所示。我们引入了两个改进,使代表高分辨率的复杂场景。第一个是输入坐标的位置编码,帮助MLP表示高频函数,第二个是分层采样过程,允许我们有效地对这种高频表示进行采样。

5.1 位置编码

        尽管神经网络是通用函数逼近器,但我们发现,让网络F_{\Theta }直接对xyzθφ输入坐标进行操作会导致渲染在表示颜色和几何形状的高频变化方面表现不佳。这与Rahaman等人最近的工作一致,该工作表明深度网络偏向于学习低频函数。此外,它们还表明,在将输入传递到网络之前,使用高频函数将输入映射到更高维的空间,能够更好地拟合包含高频变化的数据。

        我们在神经场景表征的上下文中利用这些发现,并表明将F_{\Theta }重新表达为两个函数F_{\Theta }=F_{\Theta}^{'}\circ \gamma的组合,一个是学习的,另一个是没有学习的,显着提高了性能(见图4和表2)。这里\gamma是从R到高维空间R^{2L}的映射,而F_{\theta }^{'}仍然只是一个正则MLP。形式上,我们使用的编码函数是:

表2:我们模型的消融研究。度量是对来自我们的真实合成数据集的8个场景进行平均的。请参阅第6.4以获取详细说明。 

该函数\gamma (\cdot )被分别应用于x中的三个坐标值(其被归一化为位于[-1,1]中)中的每一个以及x的三个分量。笛卡尔观察方向单位向量d(通过构造位于[-1,1]中)。在我们的实验中,我们对\gamma (x) 设L = 10,对\gamma (d) 设L = 4。

        流行的Transformer架构中使用了类似的映射,其中它被称为位置编码。然而,Transformer使用它来实现不同的目标,即提供序列中标记的离散位置,作为不包含任何顺序概念的架构的输入。相比之下,我们使用这些函数将连续输入坐标映射到更高维的空间,以使我们的MLP能够更容易地逼近更高频率的函数。关于从投影建模3D蛋白质结构的相关问题的并行工作也利用了类似的输入坐标映射。

5.2 分层体积抽样

        我们的渲染策略是在沿着每个相机射线的N个查询点处密集地评估神经辐射场网络,这是低效的:对渲染图像没有贡献的自由空间和遮挡区域仍然被重复采样。我们从体绘制的早期工作中汲取灵感,并提出了一种分层表示,通过按最终渲染的预期效果成比例分配样本来提高渲染效率。

        我们不是只使用单个网络来表示场景,而是同时优化两个网络:一个“粗”,一个“细”。我们首先使用分层采样对Nc个位置的集合进行采样,并且如等式1中所描述的那样在这些位置处评估“粗略”网络。2和3给定这个“粗糙”网络的输出,我们然后沿着每条射线产生一个更有信息的点采样,其中样本偏向于体积的相关部分。为了做到这一点,我们首先重写等式n中粗糙网络\hat{C}(r)的alpha合成颜色。等式3作为沿射线沿着的所有采样颜色 c_{i} 的加权和:

将这些权重标准化为 \hat{w}_{i}={w}_{i}/\sum_{j=1}^{N_{c}}w_{j} 会沿射线产生分段常数PDF沿着。我们使用逆变换采样从该分布中采样第二组N_{f}个位置,在第一组和第二组样本的并集处评估我们的“精细”网络,并使用等式(3)计算光线\hat{C}_{f}(r)的最终渲染颜色。但使用所有N_{c}+N_{f}个样本。此过程将更多样本分配给我们期望包含可见内容的区域。这解决了与重要性采样类似的目标,但我们使用采样值作为整个积分域的非均匀离散化,而不是将每个样本视为整个积分的独立概率估计。 

5.3 实现细节

        我们为每个场景优化了单独的神经连续体表示网络。这仅需要场景的捕获RGB图像的数据集,相应的摄像机姿态和内部参数以及场景边界(我们使用合成数据的地面真实摄像机姿态、内部参数和边界,并使用COLMAP运动结构包来估计真实的数据的这些参数)。在每次优化迭代中,我们从数据集中所有像素的集合中随机采样一批相机光线,然后按照第5.2以查询来自粗略网络的N_{c}个样本和来自精细网络的N_{c}+N_{f}样本。然后,我们使用在第4.2节中描述的体绘制程序来渲染来自两组样本的每条射线的颜色。我们的损失只是粗略和精细渲染的渲染和真实像素颜色之间的总平方误差:

其中,R是每个批次中的光线集合,C(r)\hat{C}_{c}(r)\hat{C}_{f}(r)分别是光线 r 的基础真值、粗略体积预测和精细体积预测RGB颜色。注意,即使最终的渲染来自\hat{C}_{f}(r),我们也最小化了\hat{C}_{c}(r)的损失,这样粗网络的权重分布就可以用来在细网络中分配样本。

        在我们的实验中,我们使用4096条射线的批量大小,每条射线在粗略体积中的N_{c} = 64个坐标处采样,并且在精细体积中的N_{f} = 128个附加坐标处采样。我们使用亚当优化器,学习率从5 × 10^{-4}开始,在优化过程中以指数衰减到5 × 10^{-5}(其他亚当超参数的默认值为\beta _{1} = 0.9,\beta _{2} = 0.999,和\epsilon =10^{-7})。单个场景的优化通常需要大约10-30万次迭代才能在单个NVIDIA V100 GPU上收敛(大约1-2天)。

6 结果

这篇关于NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 翻译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1102497

相关文章

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)

1、MVC MVC(Model-View-Controller) 是一种常用的架构模式,用于分离应用程序的逻辑、数据和展示。它通过三个核心组件(模型、视图和控制器)将应用程序的业务逻辑与用户界面隔离,促进代码的可维护性、可扩展性和模块化。在 MVC 模式中,各组件可以与多种设计模式结合使用,以增强灵活性和可维护性。以下是 MVC 各组件与常见设计模式的关系和作用: 1. Model(模型)

excel翻译软件有哪些?如何高效提翻译?

你是否曾在面对满屏的英文Excel表格时感到头疼?项目报告、数据分析、财务报表... 当这些重要的信息被语言壁垒阻挡时,效率和理解度都会大打折扣。别担心,只需3分钟,我将带你轻松解锁excel翻译成中文的秘籍。 无论是职场新人还是老手,这一技巧都将是你的得力助手,让你在信息的海洋中畅游无阻。 方法一:使用同声传译王软件 同声传译王是一款专业的翻译软件,它支持多种语言翻译,可以excel

MFC中App,Doc,MainFrame,View各指针的互相获取

纸上得来终觉浅,为了熟悉获取方法,我建了个SDI。 首先说明这四个类的执行顺序是App->Doc->Main->View 另外添加CDialog类获得各个指针的方法。 多文档的获取有点小区别,有时间也总结一下。 //  App void CSDIApp::OnApp() {      //  App      //  Doc     CDocument *pD

MonoHuman: Animatable Human Neural Field from Monocular Video 翻译

MonoHuman:来自单目视频的可动画人类神经场 摘要。利用自由视图控制来动画化虚拟化身对于诸如虚拟现实和数字娱乐之类的各种应用来说是至关重要的。已有的研究试图利用神经辐射场(NeRF)的表征能力从单目视频中重建人体。最近的工作提出将变形网络移植到NeRF中,以进一步模拟人类神经场的动力学,从而动画化逼真的人类运动。然而,这种流水线要么依赖于姿态相关的表示,要么由于帧无关的优化而缺乏运动一致性

linux dlopen手册翻译

名称 dlclose, dlopen, dlmopen 打开和关闭一个共享对象 简介 #include <dlfcn.h>void *dlopen(const char*filename, int flags);int dlclose(void *handle);#define _GNU_SOURCE#include <dlfcn.h>void *dlmoopen(Lmid_t lm

Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.B

一个bug日志 FATAL EXCEPTION: main03-25 14:24:07.724: E/AndroidRuntime(4135): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.syyx.jingubang.ky/com.anguotech.android.activity.Init

自定义view中常用到哪些方法作用分别是什么

目录 构造函数onMeasure(int widthMeasureSpec, int heightMeasureSpec)onDraw(Canvas canvas)onLayout(boolean changed, int left, int top, int right, int bottom)onTouchEvent(MotionEvent event)onSizeChanged(int

从计组中从重温C中浮点数表示及C程序翻译过程

目录 移码​编辑  传统浮点表示格式 浮点数的存储(ieee 754)->修炼内功 例子:   ​编辑 浮点数取的过程   C程序翻译过程 移码  传统浮点表示格式 浮点数的存储(ieee 754)->修炼内功 根据国际标准IEEE(电⽓和电⼦⼯程协会)  32位 例子:    64位    IEEE754对有效数字M和