NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 神经辐射场将场景表示用于视图合成

系列论文 https://github.com/yenchenlin/awesome-NeRF
视频与演示 https://www.matthewtancik.com/nerf
Core:使用完全连通(非卷积)的深度网络来表示场景,通过使用稀疏的输入视图集来优化底层的连续体积场景函数,从而获得用于合成复杂场景的新视图。查询相机光线上的5D坐标来合成视图,并使用经典的体绘制技术将输出的颜色和密度投影到图像中。建立5D矢量值函数的输入是3D位置x=(x,y,z)和2D观察方向(θ,φ),它的输出是发射的颜色c=(r,g,b)和体积密度σ。通过限制网络只预测作为位置x的函数的体积密度σ,同时允许预测作为位置和观察方向的函数的RGB颜色c,来激励多视点一致性表现。

Abstract.

通过使用稀疏的输入视图集来优化底层的连续体积场景函数,从而获得用于合成复杂场景的新视图的最先进的结果。算法使用完全连通(非卷积)的深度网络来表示场景,其输入是单个连续的5D坐标(空间位置(x,y,z)和观察方向(θ,φ)),其输出是该空间位置的体积密度和依赖于视图的发射辐射。我们通过查询相机光线上的5D坐标来合成视图,并使用经典的体绘制技术将输出的颜色和密度投影到图像中。

由于体积渲染是自然可分化的,因此唯一需要优化的输入表示是一组具有已知相机姿态的图像.我们描述了如何有效地优化神经辐射场,以渲染具有复杂几何形状和外观的场景的光逼真新颖视图,并展示了优于先前神经渲染和视图合成工作的结果。视图合成结果最好以视频的形式观看。

Keywords:scene representation, view synthesis, image-based rendering, volume rendering, 3D deep learning

1.Introduction

在这项工作中,我们以一种新的方式解决了长期存在的视图合成问题,通过直接优化连续5D场景表示的参数来最小化绘制一组捕获图像的误差。

我们将静态场景表示为一个连续的5D函数,该函数输出空间中每个点(x,y,z)在每个方向(θ,φ)上发射的辐射度,以及每个点处的密度,该密度类似于微分不透明度控制通过(x,y,z)的每个点累积了多少辐射。我们的方法通过从单个5D坐标(x,y,z,θ,φ)回归到单个体积密度和视点相关的rgb颜色来优化没有任何卷积层(通常称为多层感知器或mlp)的深度全连接神经网络来表示该函数。渲染此神经辐射场(NERF)从特定的观点来看,我们:1)使相机光线穿过场景以生成一组采样的3D点,2)使用这些点及其对应的2D观察方向作为神经网络的输入以产生一组颜色和密度的输出,以及3)使用经典的体绘制技术将这些颜色和密度累积到2D图像中。因为这个过程是自然可微的,我们可以使用梯度描述来优化这个模型,通过最小化每个观察到的图像和相应的视图之间的距离来表示当前的状态。通过多视角最小化误差可以鼓励网络预测该场景的一致性模型,该模型通过将高容量密度和高精度颜色分配给 包含真是场景潜在内容的位置。
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 神经辐射场将场景表示用于视图合成_第1张图片

我们发现,针对复杂场景优化神经辐射场表示的基本实现并没有收敛到足够高的分辨率表示,并且在每个摄像机光线所需的采样数方面效率低下。我们通过使用位置编码转换输入5D坐标来解决这些问题,该位置编码使MLP能够表示更高频率的函数,并且我们提出了分层采样过程来减少充分采样这种高频场景表示所需的查询数。

我们的方法继承了体积表示的优点:两者都可以表示复杂的现实世界的几何和外观,并且非常适合使用投影图像进行基于梯度的优化。关键的是,我们的方法旨在克服在高分辨率下建模复杂场景时,离散体素网格的存储成本过高的问题。主要贡献
1.提出了一种将具有复杂几何和材料的连续场景表示为5维神经辐射场的方法,并将其参数化为基本的MLPS网络。
2.一个基于经典体积渲染技术的可区分渲染程序,我们使用它来优化这些来自标准RGB图像的表示,这包括一个分层采样策略,将MLP的容量分配给具有可见场景内容的空间。
3.将每个输入的5D坐标映射到更高维空间的位置编码,使我们能够成功地优化神经辐射场以表示高频场景内容。

我们得到的神经辐射场方法在数量和质量上都优于最新的视图合成方法,包括将神经三维表示与场景匹配的作品,以及训练深卷积网络以预测采样的体积表示的作品。据我们所知,本文提出了第一种连续的神经场景表示方法,它能够从自然环境下拍摄的RGB图像中呈现真实物体和场景的高分辨率真实感新视图。

2.Related Work

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

Neural 3D shape representations
最近的工作研究了通过优化深度网络将连续3D形状隐式表示为水平集,深度网络映射到有符号距离函数[15,32]或占位场[11,27]。但是,这这些模型受到访问真实三维几何的要求的限制,通常是从合成三维形状数据集问题形状网[3]中获得的。随后的工作通过构造可微的渲染函数来放宽对地面真实三维形状的要求,该函数允许仅使用二维图像优化神经隐式形状表示。Niemeyeret等人[29]将表面表示为3D占位场,并使用隐式微分的数值方法计算光线的横截面,然后使用隐式微分进行精确推导。每个光线交叉位置都为该点提供了一个输入光线三维纹理定义的预测漫射颜色。Sitzmannet等人[42]使用了一种不太直接的神经3D表示,它只在每个连续的3D坐标上输出一个特征向量和RGB颜色,并提出了一种可微分的渲染函数,该函数由一个递归的神经网络组成,该神经网络可以在任意位置行进。
虽然这些技术可能代表复杂和高分辨率的几何图形,但它们具有有限的复杂形状和低几何复杂性,导致过度平滑的效果。研究表明,一种优化网络编码5D辐射场(具有二维视图依赖外观的三维体积)的替代策略可以表示更高分辨率的几何体和外观,以呈现复杂场景的真实感新视图。

View synthesis and image-based rendering
给定视图的密集采样,可以通过简单的光场采样插值技术[21,5,7]重建照片级的新视图。对于没有稀疏采样的新视图合成,通过预测观察到的图像的传统几何和概率表示,计算机和图形社区取得了显著的进展。一种基于网格的场景表示方法,它不使用[48]或依赖于视图的[2,8,49]外观。微分光栅化器[4,10,23,25]或路径跟踪器[22,30]可以使用梯度下降优化网格表示来产生输入估计。然而,基于梯度的网格优化基于梯度的图像重建通常是困难的,这可能是因为局部最小化或地形条件差。

另一类方法使用体积表示来特别处理从一组输入RGB图像合成高质量真实感视图的任务。体积方法能够真实地表示复杂的形状和材料,非常适合基于梯度的优化,并且与基于网格的方法相比,容易产生较少的视觉干扰伪影。早期的体积方法使用观察到的图像直接给体素网格着色[12,28,32]。最近,一些方法[7,20,24,31,37]使用多个场景的大数据集来训练深层网络,这些深层网络从一组输入图像中预测采样的体积表示,然后使用沿光线的α合成[25]在测试时渲染新视图。其他工作已经优化了卷积网络(CNN)和采样体素网格的组合,以便CNN可以补偿来自低分辨率体素网格的离散化伪影[29],或者允许预测的体素网格基于输入时间或动画控件变化[16]。虽然这些体积技术在新的视图合成方面取得了令人印象深刻的结果,但由于其离散采样,它们缩放到更高分辨率图像的能力从根本上受限于较差的时间和空间复杂性-渲染更高分辨率图像需要更精细的三维空间采样。

我们通过在深度全连接神经网络的参数范围内对连续体积进行编码来规避这个问题,这样不仅可以产生比先前的体积方法更高质量的渲染,而且只需要这些采样体积表示的存储成本的一小部分。

3.Neural Radiance Field Scene Representation

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 神经辐射场将场景表示用于视图合成_第2张图片
我们将一个连续的场景表示为一个5D矢量值函数,它的输入是3D位置x=(x,y,z)和2D观察方向(θ,φ),它的输出是发射的颜色c=(r,g,b)和体积密度σ。在实践中,我们将方向表示为三维笛卡尔单位向量。我们用一个MLP网络FΘ:(X,d)→(c,σ)逼近这个连续的5D场景表示,并优化其权重Θ,以从每个输入的5D坐标映射到其相应的体积密度和方向发射的颜色

我们通过限制网络只预测作为位置x的函数的体积密度σ,同时允许预测作为位置和观察方向的函数的RGB颜色c,来激励多视点一致性表现。为此,MLP FΘ首先处理输入3D坐标与8个完全连接的层(使用RELU激活和每层256个通道),并输出σ和256维特征向量。然后,该特征向量与相机光线的观察方向连接在一起,并传递到另一个完全连接的层(使用RELU激活和128个通道),该层输出依赖于视图的RGB颜色。对于我们的方法如何使用输入观察方向来表示非Lambertian效果的示例,见图3。如图4所示,没有视图依赖性的模型训练(仅作为输入)难以表示投射。
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 神经辐射场将场景表示用于视图合成_第3张图片
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 神经辐射场将场景表示用于视图合成_第4张图片

4.Volume Rendering with Radiance Fields

我们的5D神经辐射场代表了一个场景的体积密度和空间任意点的定向辐射。我们使用经典体绘制的原理渲染穿过场景的任何光线的颜色[10]。体积密度σ(x)可以解释为射线在x位置处终止于无穷小粒子的微分概率。摄像机射线r(t)=o+td的期望颜色C(r),其近、远界tn和tf为:
在这里插入图片描述

函数T(t)表示从tn开始到t的光线的累积透过率,即光线从tn传播到t不击中任何其他粒子的概率。从我们的连续神经辐射场呈现视图需要估计通过所需虚拟相机的每个像素的相机光线的积分C®,我们使用求积对该连续积分进行数值估计。确定性求积(Deterministic quadrature)通常用于渲染离散体素网格,它将有效地限制我们表示的分辨率,因为MLP只会在固定的离散位置集上查询。相反,我们使用分层抽样方法,将[tn,tf]分成N个均匀分布的容器,然后从每个容器内随机均匀地抽取一个样本:
在这里插入图片描述
虽然我们使用一组离散的样本来估计积分,但是分层的样本仍然可以表示为连续的场景表示,因为它会导致在优化的第一轮就评估连续的位置。我们用Max [26]中讨论过的求积规则来使用这些样本进行估算:
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 神经辐射场将场景表示用于视图合成_第5张图片

5 .Optimizing a Neural Radiance Field

在前一节中,我们已经描述了将场景建模为神经辐射场和从该表示中渲染新视图所需的核心组件。然而,我们观察到组件对于实现最新质量来说效率不高.我们引入了两个改进来提高分辨率。第一种是帮助MLP表示高频函数的输入坐标的位置编码,第二种是分层采样过程,它允许我们有效地采样这种高频表示。

Positional encoding
尽管神经网络是通用函数逼近器[14],但我们发现,让网络FΘ直接在xyzθφ输入坐标上操作会导致渲染效果很差,无法表示颜色和几何的高频变化。这与Rahaman等人最近的工作是一致的。[35]这表明深层网络偏向于学习低频函数。它们还表明,在将输入传递到网络之前,使用高频函数将其映射到高维空间可以实现更好地拟合包含高频变化的数据.
我们将这些发现应用到神经场景表示中,并证明将FΘ重新定义为两个函数FΘ=F′Θ∘γ的组合(一个已学习,一个未学习)可显著提高性能(见图4和表2)。这里γ是从R到高维空间R2L的映射,而F′Θ仍然只是一个正则MLP。形式上,我们使用的编码功能是:
在这里插入图片描述
该函数γ(⋅)分别应用于x中的三个坐标值中的每一个(标准化为位于[-1,1])和笛卡尔观察方向单位向量d的三个分量(通过构造,位于[-1,1])。在我们的实验中,我们将γ(x)设为L=10,γ(d)设为L=4。
流行的Transformer架构[33]中使用了类似的映射,在这里它被称为位置编码。然而,Transformers使用它的另一个目的是提供序列中令牌的离散位置,作为不包含任何顺序概念的体系结构的输入。相比之下,我们使用这些函数将连续输入坐标映射到更高维空间,使我们的MLP更容易逼近更高频率的函数。

Hierarchical volume sampling
我们的渲染策略是在每个摄像机光线的N个查询点上对神经辐射场网络进行密集评估,但是效率很低:仍然重复地对不影响渲染图像的自由空间和遮挡区域进行采样。我们从体绘制的早期工作中获得了灵感[13],并提出了一种分层表示法,通过将样本按比例分配给最终渲染的预期效果,提高了渲染效率。

我们不只是使用单一的网络来表示场景,而是同时优化两个网络:一个“粗略”和一个“精细”。我们首先使用分层抽样对一组N_c位置进行抽样,并按照方程2和3所述评估这些位置处的“粗糙”网络。给定这个“粗略”网络的输出,然后我们生成沿每条光线的采样点的更为知情的采样,其中采样点偏向体积的相关部分。为此,我们首先将Eqn.3中来自粗糙网络^Cc(r)的alpha合成颜色重写为沿光线的所有采样颜色ci的加权和:
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 神经辐射场将场景表示用于视图合成_第6张图片
Implementation details
我们为每个场景优化一个单独的神经连续体积表示网络。这只需要场景的已捕捉RGB图像、相应的相机姿势和内在参数以及场景边界的数据集(我们对合成数据使用地面真值相机姿势、内在和边界,并使用运动包[27]中的COLMAP结构对真实数据估计这些参数)。在每次优化迭代中,我们从数据集中所有像素的集合中随机抽取一批相机光线,然后按照第5.2节中描述的分层采样从粗网络中查询Nc样本,从细网络中查询Nc+Nf样本。然后,我们使用第4节中描述的体绘制过程来渲染来自两组样本的每条光线的颜色。我们的损失只是粗略和精细渲染的渲染颜色和真实像素颜色之间的总平方误差MSE loss:
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 神经辐射场将场景表示用于视图合成_第7张图片
在我们的实验中,我们使用4096条射线的批量,每个射线在粗体积中以Nc=64坐标采样,在细体积中以Nf=128附加坐标采样。我们使用Adam优化器[11],其学习速率从5×10-4开始,并在优化过程中指数衰减到5×10-5(其他Adam超参数保留默认值β1=0.9、β2=0.999和ϵ=10-7)。单个场景的优化通常需要大约100-300k次迭代才能收敛到单个NVIDIA V100 GPU(大约1-2天)。

6.Results

我们定量(表1)和定性(图8和6)表明,我们的方法优于以前的工作,并提供了广泛的消融研究来验证我们的设计选择(表2)。
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 神经辐射场将场景表示用于视图合成_第8张图片
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 神经辐射场将场景表示用于视图合成_第9张图片
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 神经辐射场将场景表示用于视图合成_第10张图片

7.Conclusion

我们的工作直接解决了之前使用MLPs将物体和场景表示为连续函数的工作的不足之处。我们证明,将场景表示为5D神经辐射度elds(一个MLP,输出体积密度和辐射度)。视野依赖性发射光辉作为3D位置和2D观看的函数。方向)产生的渲染效果要比之前主流的方法
训练深度卷积网络来输出离散的体素表示。
虽然我们已经提出了一种分层采样策略,使渲染更符合样本要求(用于训练和测试),但在研究技术方面仍有更多的进展,以ciently优化和渲染神经辐射场。未来工作的另一个方向是可解释性。采样表征,如体素网格和网格,承认关于
呈现的视图和失败模式的预期质量,但不清楚的是,它如何 来分析这些问题,当我们在深度神经的权重中对场景进行编码时。网络。我们相信,这项工作在图形管道方面取得了进展。基于真实世界的图像,复杂的场景可以由神经系统组成。根据实际物体和场景的图像优化的光辉度。

你可能感兴趣的:(深度学习,神经网络,机器学习)