《NeRF: Neural Radiance Field in 3D Vision, Introduction and Review》翻译

摘要

神经辐照场(NeRF)是计算机视觉领域最近的一项重大发展,它允许基于神经网络的隐式场景表示和新颖的视图合成。NeRF 模型已在机器人、城市制图、自主导航、虚拟现实/增强现实等领域得到广泛应用。鉴于 NeRF 的日益普及及其研究领域的不断扩大,我们对过去两年中的 NeRF 论文进行了全面调查。我们的调查报告按架构和应用分类,介绍了 NeRF 理论及其通过可微体渲染进行的训练。我们还对主要 NeRF 模型的性能和速度进行了基准比较。我们希望通过创建本调查报告,向新研究人员介绍 NeRF,为该领域有影响力的著作提供有用的参考,并通过讨论部分激发未来的研究方向。

1 引言

神经辐射场 (NeRF) 模型是一种新颖的视图合成方法,它通过多层感知器 (MLP) 使用体积渲染和(典型的)隐式神经场景表示来学习三维场景的几何和光照。Mildenhall等人在ECCV 2020上首次介绍了NeRF,从那时起,它已经达到了最先进的视觉质量,产生了令人印象深刻的演示,并启发了许多后续作品。最近,NeRF 模型被应用于照片编辑、三维表面提取、人类头像建模以及大型/城市规模的三维表示和视图合成。

NeRF模型与其他新的视图合成和场景表示方法相比具有重要的优势。

  • NeRF模型是自监督的。它们只能使用一个场景的多视图图像进行训练。与许多其他的3D场景的神经表示不同,NeRF模型只需要图像和姿态来学习一个场景,而不需要3D/深度监督。姿态也可以使用运动(SfM)结构包估计,如COLMAP,就像在原始NeRF论文的某些场景中所做的那样。

  • NeRF模型非常逼真。与经典技术以及早期的新型视图合成方法、神经三维呈现方法相比,最初的 NeRF 模型在视觉质量方面取得了更好的结果,而最新的模型则表现得更好。

近年来,NeRF模型在计算机视觉社区引起了广泛的关注,在流行的代码聚合网站上出现了数百篇论文和预印本,其中许多最终出现在顶级计算机视觉会议上。2022年,NeRF的影响很大,而且还在不断增加,米尔登霍尔等人的原始NeRF论文被引用了2000多篇(截至2023年5月),人们的兴趣逐年增长。鉴于目前的兴趣,我们认为有必要组织一份调查论文,以帮助计算机视觉从业者了解这个新主题。我们还介绍了一些被以前的调查所遗漏的更近期的文献。

本手稿的其余部分组织如下。

  • 第2节介绍了现有的NeRF调查预印本(2.1),解释了NeRF体渲染(2.2)背后的理论,介绍了常用的数据集(2.3)和质量评估指标(2.4)

  • 第3节构成了论文的主体,并介绍了有影响力的NeRF出版物,并包含了我们为组织这些作品而创建的分类法。它的子部分详细介绍了在过去两年中提出的NeRF创新的不同家族,以及最近NeRF模型在各种计算机视觉任务中的应用。

  • 第5节和第6节讨论了未来潜在的研究方向和应用,并总结了调查结果。

2 背景

2.1 现有的NeRF调查

2020年12月,Dellart and Yen-Chen发表了一份预印本NeRF综述,其中包括大约50份NeRF出版物/预印本,其中许多最终在顶级计算机视觉会议上发表。我们从这份预印本综述中汲取了灵感,并将其作为我们自己调查的起点。然而,文章只有五页,并没有包括详细的描述。此外,该研究仅包括了2020年和2021年初的NeRF预印本论文,而没有包括2021年下半年及以后发表的几篇有影响力的NeRF论文。

2021年11月,Xie等人发表了一份名为《视觉计算和其他领域的神经场》的预印本综述,后来被修改并作为欧洲图形2022中最先进的报告发表,并在CVPR 2022中作为教程呈现。这篇综述范围广泛,包括对计算机视觉中神经场的使用的详细技术介绍,以及在视觉计算中的应用,主要关注神经辐射场。与这项工作相比,我们将我们的回顾仅限于NeRF论文,并能够包括更多最近的工作。我们还在文章到文章的基础上提出了更多的细节。

2021年12月,Zhang 发表了一篇预印本多模态图像合成与编辑的综述报告,其中有一段专门针对 NeRF。他们主要关注多模式 NeRF,在调查中只引用了这两篇论文和最初的 NeRF 论文,并在补充材料中引用了另外四篇论文。

2022年5月,Tewari等人发表了一份关于神经渲染进展的最先进的报告,重点是NeRF模型。它是迄今为止最全面的神经渲染调查风格的报告,包括许多有影响力的NeRF论文,以及许多其他的神经渲染论文。我们的综述与本报告的不同之处在于,我们的研究范围完全集中在NeRF的论文上,给出了选定作品的详细的论文摘要。我们还提出了一个NeRF创新技术分类法树,和一个NeRF应用程序分类树。我们能够包括2022年底和2023年初的最新工作,并详细介绍NeRF从业者使用的常见数据集和评估指标。

2.2 神经辐射场(NeRF)理论

神经辐射场最早由 Mildenhall 等人于2020年首次提出,用于新颖的视图合成。Nerf实现了复杂场景的高度逼真性视角合成,引起了该领域的广泛关注。在其基本形式中,一个NeRF模型将三维场景表示为一个由神经网络近似的辐射场。辐射场描述了场景中每个点和每个观测方向的颜色和体积密度。可表述为:

F(x,θ,ϕ)⟶(c,σ) (1)

其中, x=(x,y,z) 为场景内坐标, (\theta,\phi) 表示方位角和极坐标视角, c=(r,g,b)表示颜色, \sigma表示体积密度。五维函数由一个或多个多层感知机(MLP)近似,有时也表示为 F_{\varTheta}。两个视角(\theta,\phi) 通常用三维笛卡尔单位向量 \boldsymbol{d}=\left( d_x,d_y,d_z \right) 表示。通过约束与观测方向无关的体密度(即场景内容)\sigma  的预测,这种神经网络的表示被约束为多视图一致,而颜色c被允许同时依赖于观测方向和场景内坐标。在基线NeRF模型中,这是通过设计MLP分为两个阶段来实现的。第一阶段以输入x,输出\sigma 和一个高维特征向量(原论文中为256)。在第二阶段,特征向量与观测方向 \boldsymbol{d} 连接,并传递给另一个额外的MLP,它输出c。我们注意到,Mildenhall 等人认为 \sigma MLP 和 c MLP 是同一个神经网络的两个分支,但随后的许多作者认为它们是两个独立的 MLP 网络,我们从这一点出发遵循这一惯例。

还应该注意的是,在现有的文献中,出现了三种类型的场景表示;内隐、混合和外显。在基线NeRF中,密度和颜色场完全由mlp表示;这被认为是一种隐式的场景表示。在第3.2节和第3.7.1节中分别介绍了具有混合场景表示和显式场景表示的方法。

广义地说,使用训练过的NeRF模型的新视图合成如下:

  • 对于合成图像中的每个像素,通过场景发送摄像机光线,并生成一组采样点(见图1中的(a))

  • 对于每个采样点,使用观测方向和采样位置,使用NeRF MLP (s)计算局部颜色和密度(如图1中的(b)所示)

  • 使用体积渲染来根据这些颜色和密度生成图像(见图1中的(c))

给定被渲染场景的体积密度和颜色函数,体积渲染被用来获取相机射线 \boldsymbol{r}\left( t \right) =\boldsymbol{o}+t\boldsymbol{d}的颜色 C\left( \boldsymbol{r} \right)\boldsymbol{o} 是相机位置和 \boldsymbol{d} 为观测方向

​其中 \sigma \left( \boldsymbol{r}\left( t \right) \right) 和 \boldsymbol{c}\left( \boldsymbol{r}\left( t \right) ,\boldsymbol{d} \right) 表示沿观察方向的相机光线 \boldsymbol{r}\left( t \right) 点处的体积密度和颜色。dt表示光线在每个积分步骤中所走过的微分距离。

T\left( t \right)为累积透射率,表示射线从t1传播到t而不被拦截的概率,由

新的视图是通过追踪相机光线穿过待合成图像的每个像素来呈现的。这个积分可以用数值方法计算出来。最初的实现和大多数后续的方法使用了不确定性的分层抽样方法,射线被分成N个等距的箱子,并从每个箱子中均匀地抽取一个样本。则,方程(2)可以近似为:

\delta _i是从样本 i到样本 i+1 的距离。\left( \sigma _i,\boldsymbol{c}_i \right)是沿着给定射线的样本点 i 计算的密度和颜色,由NeRF MLP (s)计算出来。\alpha _i 在样本点 i 处的alpha合成的透明度/不透明度,由

利用累积透射率可以计算出射线的预期深度:

这可以近似为类似于方程(4)近似方程(2)和(3)

​某些深度正则化方法使用预期深度将密度限制为场景表面的三角行函数或强制深度平滑。

对于每个像素,使用一个平方误差光度损失来优化MLP参数。对于整个图像,公式如下:

​其中,C_{gt}\left( \boldsymbol{r} \right) 是与 r 相关的训练图像像素的真实颜色, R 是与待合成图像相关联的一批射线。

NeRF 模型通常采用位置编码,Mildenhall 等人的研究表明,位置编码可大大改善渲染视图中的细节重建。文献[26]还利用神经切线核更详细地展示了这一点,并提出了相关理论。(我们注意到最近的一项工作[27]测试新的激活函数来解决这个问题)在最初的实现中,对场景坐标 \gamma (归一化为[-1,1]])和观测方向单位向量 d 的每个分量应用以下位置编码

​其中,N为用户确定的编码维数参数,在原始论文中,x设置为N = 10,d设置为N = 4。然而,目前研究已经尝试了其他形式的位置编码,包括可训练参数编码、积分编码和分层变体编码,并取得了丰硕成果(见第 3 节)。

2.3 数据集

NeRF模型通常是根据每个场景进行训练的,并且需要带有不同位姿的相对密集的图像。虽然有些 NeRF 模型是为稀疏输入视图或无位姿的图像训练设计的,但通常可以使用 COLMAP 等现有的“从运动中提取结构”库来提取摄像机位姿。

最初的NeRF论文提供了一个由搅拌机创建的合成数据集。这些虚拟摄像机具有相同的焦距,并且被放置在与物体相同的距离上。数据集由八个带有不同物体的场景组成。对于其中六个,视点从上半球采样,对于另外两个,视点从整个球体采样。这些对象是热狗、材料、榕树、乐高、麦克风、鼓、椅子、飞船。这些图像以800×800像素渲染,有100个视图用于训练,200个视图用于测试。这通常是NeRF研究人员考虑的第一个数据集,即场景的边界很好,聚焦于单个对象,并且数据集与已知模型进行了很好的基准测试。

LLFF数据集由从手持手机摄像机拍摄的24个真实场景组成。视图朝向中心物体。每个场景由20-30张图像组成。COLMAP软件包被用于来计算图像的位姿。该数据集的使用情况可与来自文献 [1] 的现实合成数据集相媲美。这些场景对于任何特定的NeRF模型来说都不是太具有挑战性的,而且数据集具有良好的基准性,可随时与已知方法进行比较。

DTU 数据集是一个多视角立体数据集,使用安装有照相机和结构光扫描仪的六轴工业机器人进行采集。该机器人提供了精确的相机定位。使用MATLAB校准工具箱仔细地校准了相机的内部特征和姿态。光扫描仪可提供参考密集点云,从而提供参考 3D 几何图形。尽管如此,由于自我遮挡,在某些场景中对某些区域的扫描并没有完成。原论文的数据集由80个场景组成,每个场景包含49个视图,在中心物体周围半径为50厘米的球面上取样。在其中 21 个场景中,还以65厘米为半径对另外15个摄像机位置进行了采样,共计64个视图。整个数据集由44个额外的场景组成,这些场景以90度的间隔被旋转和扫描了4次。使用 16 个 LED 来改变场景的照明,可提供七种不同的照明条件。图像分辨率为1600×1200。这个数据集与以前的不同,因为它有更高的分辨率和仔细校准的相机运动和姿势。

ScanNet 数据集[30]是一个大型真实 RGB-D 多模态数据集,包含250多万个室内场景视图,并注有摄像机姿态、参考 3D 表面、语义标签和 CAD 模型。这些扫描是使用连接在iPhone/iPad等手持设备上的RGB-D传感器进行的。姿态是通过 BundleFusion 和生成网格的几何排列估算出来的。该数据集丰富的语义标签对利用语义信息的模型非常有用,如场景编辑、场景分割和语义视图合成。

ShapeNet 数据集是一个简单的大规模合成三维数据集,由被分为 3135 个类别的三维 CAD 模型组成。最常用的是12个常见的对象类别子数据集。当基于对象的语义标签是特定 NeRF 模型的重要组成部分时,有时会使用该数据集。从ShapeNet CAD模型中,搅拌机等软件经常被用于渲染具有已知姿态的训练视图。

2.3.1 建筑规模数据集

Tanks and Temples数据集是一个来自视频的三维重建数据集。它由14个场景组成,包括“坦克”和“火车”等个别物品,以及大型的室内场景,如“礼堂”和“博物馆”。真实的三维数据采用高质量的工业激光扫描仪采集。真实点云被用于利用对应点的最小二乘法优化来估计摄像机的姿势。该数据集包含了大规模的场景,其中一些是在户外数据,对某些NeRF模型提出了挑战。适合户外场景的模型希望挑战任意背景。它的真实点云还可用于某些数据融合方法,或测试深度重建。

Matterport-3D 数据集是一个现实生活数据集,由 10800 幅全景图组成,这些全景图来自 194400 幅 RGB-D 全局配准的图像,包含 90 个建筑规模的场景。可提供深度、语义和实例注释。每张全景图片提供 18 个视点的彩色和深度图像,分辨率为 1280x1024。这 90 幢建筑的平均面积为 2437 平方米。共提供了 50811 个对象实例标签,并将其映射为 40 个对象类别。

Replica dataset 数据集是一个真实的室内场景,由18个场景和35个室内房间组成,使用定制的RGB-D设备与红外投影仪捕获。某些3D特征是手动固定的(精细尺度的网格细节,如小孔),反射表面是手动分配的。语义注释(88个类)分两个步骤执行,一次在2D,一次在3D。基于类和基于实例的语义标签都是可用的。

2.3.2 大尺度城市数据集

流行的自动驾驶基准数据集具有多种数据模式,如图像、深度图、激光雷达点云、姿态和语义地图,这些数据模式可能适合某些希望针对城市场景的 NeRF 模型。最近,在[49]和[50]中提出的NeRF模型已经有效地利用了这些数据集。

KITTI 是著名的城市级 2D-3D 计算机视觉数据集组合,用于自动驾驶视觉算法的训练和基准测试。该组合包含立体三维语义 + 二维语义分割、流动、里程测量、二维三维物体检测、跟踪、车道检测和深度预测/完成的标签数据集。这些数据是根据在德国卡尔斯鲁厄采集的原始激光雷达和视频数据创建的,使用的是基于车载设置的 GPS 和惯性测量单元数据,以及 Velodyn 激光雷达扫描仪和多个摄像头。深度预测/完成数据集是迄今为止最大的数据集,包含超过 9.3 万张深度图以及相应的 RGB 图像和原始激光雷达扫描数据。然而,该数据集对 NeRF 训练提出了挑战,因为与 NeRF 特定数据集相比,该数据集的相机覆盖范围相对稀疏,因此在设计模型时需要考虑稀疏视图。最近对数据集套件进行的 Kitti-360 扩展甚至包括一个新颖的视图合成基准,该基准将许多 NeRF 模型列表化。

Waymo Open 开放数据集是最近发布的一种替代KITTI的替代方案。该数据集覆盖 72 平方公里,由五个激光雷达传感器和五个高分辨率针孔摄像机在美国旧金山湾、山景城和凤凰城采集的点云和视频数据创建而成。除了匹配的点云和视频数据,数据集还包含用于二维和三维物体检测和跟踪的注释标签。该数据集包含 1150 个独立场景(而 KITTI 只有 22 个场景),具有更高的激光雷达和相机分辨率。其对象注释的范围也更大,达到两个数量级(80K vs 12M)。

2.3.3 人类头像/面部数据集

NerfiesHyperNerf 数据集是以人脸为重点的单摄像头数据集,通过移动连接在一根杆子上的两个摄像头来产生相对于被摄体的运动。前者包含五个静止不动的人类主体,以及四个移动的人类主体、一只狗和两个移动物体的场景。后者侧重于拓扑变化,包括人类睁眼闭眼、剥香蕉皮、3D 打印小鸡玩具、扫帚变形等场景。

ZJU-MOCap LightStage 数据集是一个多视角(20 多台摄像机)动作捕捉数据集,由 9 个类似运动的动态人体序列组成。这些视频由 21 台同步摄像机拍摄,序列长度在 60 到 300 帧之间。

NeuMan数据集由6个视频组成,每10到20秒长,由手机摄像头捕捉到,跟随一个行走的人类受试者执行额外的简单动作,如旋转或挥手。

CMU Panoptic 数据集是一个大型多视角多主体数据集,由参与社交互动的人群组成。该数据集由 65 个序列组成,包含 150 万个标记骨骼。传感器系统包括 480 个 VGA 视图(640x480)、30+HD(1920x1080)视图和 10 个 RGB-D 传感器。场景标注了单个主体和社会群体语义、三维身体姿势、三维面部标记以及文字和说话者 ID 的标签。

2.4 质量评估指标

在标准设置中,通过 NeRF 进行的新颖视图合成使用视觉质量评估指标作为基准。这些指标试图评估有(完全参考)或无(无参考)真实图像的单个图像的质量。迄今为止,峰值信噪比(PSNR)、结构相似性指数测量(SSIM)、学习感知图像块相似性(LPIPS)是 NeRF 文献中最常用的指标。

PSNR是一个无参考的质量评估指标,由

其中,MAX (I)是图像中可能的最大像素值(8位整数为255),MSE (I)是在所有颜色通道上计算的像素级均方误差。PSNR也通常用于信号处理的其他领域,并且已经被很好地理解了。

SSIM 是一个全参考的质量评估指标。对于单个patch,这是由

 其中,C_i=\left( K_iL \right) ^2,L为像素的动态范围(8位整数为255),K_1=0.01K_2=0.03为原始作者选择的常量。我们注意到在原始论文中有由(12)给出的一个更一般的SSIM形式。局部统计量 \mu 's,\sigma 's 在一个11×11圆对称高斯加权窗口内计算,权重 w_i 的标准差为1.5,归一化为1。这些是由给出的,而不损失概括。

 其中,xi、yi分别是从参考图像和评估图像中采样的像素。在实践中,块级 SSIM 分数是整个图像的平均值。

LPIPS是一个完整的参考质量评估指标,它使用学习到的卷积特征。得分由多层特征图的像素加权 MSE 得出。

 其中,x_{hw}^{l},y_{hw}^{l} 为像素宽度w、像素高度h和层 l 处的参考和评估图像特征。H_l 和W_l是对应层的特征图的高度和宽度。最初的 LPIPS 论文使用 SqueezeNet、VGG 和 AlexNet 作为特征提取骨干。原始论文中使用了五个层。原作者提供了微调和从零开始的配置,但在实践中,预训练的网络被用于提取特征。但在实践中,预训练的网络被原封不动地使用。

3 神经辐射场(NeRF)

在本节中,我们将按照基于方法的分类法介绍部分 NeRF 论文,并为基于应用的分类法保留一个单独的部分。(arXiv)预印本的初稿日期用于对出版物进行排序,而会议/期刊的出版日期可以在参考书目中找到。我们将选择的模型分为创新(图3)和应用(图8)分类树,并包括一个NeRF合成数据集基准表(表1)。

3.1 提高合成视图和学习几何图形的质量

图像质量评估是 NeRF 视图合成的关键指标,因此,许多后续模型都专注于提高视图合成质量。在本节中,我们将重点介绍一些重要的模型,这些模型旨在增强 NeRF 视图合成和三维场景表示的光度和几何方面,从而提高合成视图的图像质量。

3.1.1 更好的视图合成

Mip-NeRF[45](2021年3月)使用了锥体追踪,而不是标准的NeRF[1](2020年3月)体积渲染的光线追踪。他们通过引入集成的位置编码(IPE)来实现这一目标(图2)。要生成单个像素,需要从相机中心沿观察方向投射一个圆锥体,穿过像素中心。这个锥体由多元高斯近似,其均值向量和方差矩阵被推导出具有适当的几何形状(见[45]附录 A),从而产生了综合位置编码。这是由:

 其中,\mu _{\gamma},\varSigma _{\gamma} 为以N级提升到位置编码基上的多元高斯分布的均值和方差。这个过程是由

方差矩阵的对角线元素可以在实践中直接计算出来(见[45]中的(16))。由此产生的 mipNeRF 模型具有多尺度性质,并能自动进行抗锯齿处理。该模型的性能优于基线 NeRF [1],在较低分辨率下更是如此。MipNeRF 360 [99] 是一项非常有影响力的工作,直接将 Mip-NeRF 扩展到了无边界场景。主要的技术改进首先是提出的 MLP,使用 NeRF MLP 而不是图像进行监督。这种 MLP 只预测体积密度(而不是颜色),用于寻找合适的采样间隔。其次,在 Mip-NeRF 中专门为高斯构建了一个新的场景参数。第三,引入了一种新的正则化方法,可防止错误的几何伪影和背景坍塌。

Ref-NeRF [46](2021 年 12 月)以 mip-NeRF 为基础,旨在更好地模拟反射表面。RefNeRF 基于观察方向对局部法向量的反射,对 NeRF 辐射度进行参数化。他们将密度 MLP 修改为无方向 MLP,不仅输出密度和方向 MLP 的输入特征向量,还输出漫反射颜色、镜面反射颜色、粗糙度和表面法线。将漫反射颜色和镜面反射颜色相乘,再加上镜面反射颜色(定向 MLP 的输出),就得到了最终的颜色。此外,他们还利用从以粗糙度为参数的球形高斯分布中采样的向量的球形谐波对方向向量进行了参数化。Ref-NeRF 在 Shiny Blender 数据集(由作者创建)、原始 NeRF 数据集[1]和真实捕捉场景中的表现优于基准方法,包括 mip-NeRF [45]、NSVF [37]、基线 NeRF [1] 和non-NeRF 模型。Ref-NeRF 在反射表面上的表现尤为出色,能够准确模拟镜面反射和高光(图 4)。

RegNeRF [22](2021 年 12 月)旨在解决稀疏输入视图的 NeRF 训练问题。其他大多数方法都是利用预训练网络的图像特征作为 NeRF 体积渲染的先验条件,而 RegNeRF 则采用了额外的深度和颜色正则化。该模型在 DTU [28] 和 LLFF [5] 数据集上进行了测试,结果优于 PixelNeRF [74]、SRF [101]、MVSNeRF [47] 等模型。无需预训练的 RegNeRF 与这些在 DTU 上经过预训练并根据场景进行微调的模型性能相当。它的性能优于 Mip-NeRF 和 DietNeRF。

Ray Prior NeRF(RapNeRF)(2022 年 5 月)[102] 探索了一种更适合视图推断的 NeRF 模型,而标准 NeRF 模型更适合插值。RapNeRF 进行了随机光线投射(RRC)。即给定一条击中表面点的训练射线 \boldsymbol{v}=\boldsymbol{o}+t_z\boldsymbol{d},利用均匀采样的角度扰动,从 v 开始向新的原点 \boldsymbol{o'} 投射一条后向射线。RapNeRF还利用了射线图集(RA),首先从预先训练过的NeRF中提取一个粗糙的三维网格,并将训练后的射线方向映射到三维顶点上。在训练过程中,首先训练一个基线NeRF来恢复粗糙的3D网格,然后使用RRC和RA以预先确定的概率来增强训练射线。作者在合成 NeRF 数据集[1]和自己的 MobileObject 数据集上对他们的方法进行了评估,结果表明他们的 RRC 和 RA 增强方法可适用于其他 NeRF 框架,并能带来更好的视图合成质量。

3.1.2 深度监督和点云

通过使用从激光雷达或SfM获得的点云来监督预期深度(6),这些模型的收敛速度更快,收敛到更高的最终质量,并且比基线NeRF模型需要更少的训练视图。许多这些模型也是为或作为少镜头/稀疏视图NeRF建立的。在本节的最后,介绍了其他几何改进的方法。

Deng等人 [23](2021年7月)使用一种名为深度监督NeRF(DS-NeRF)的方法对点云进行深度监督。除了通过体积渲染和光度损失进行色彩监督外,DS-NeRF 还使用 COLMAP 从训练图像中提取的稀疏点云进行深度监督。深度建模为稀疏点云记录的深度周围的法线分布。添加 KL 散度项是为了最小化射线分布与噪声深度分布的发散(详见 [23] )。DS-NeRF在DTU数据集、NeRF数据集和RedWood-3dscan数据集上进行了广泛的测试,其性能优于基线NeRF、PixelNeRF [74]和MVSNeRF等基准测试方法。

并发DS-NeRF是Roessle等人的[68](2021年4月)的工作。在这项工作中,作者使用 COLMAP 提取稀疏点云,经深度完成网络处理后生成深度图和不确定性图。除了标准的体积损失外,作者还引入了基于预测深度和不确定性的深度损失。该模型在 ScanNet [30] 和 Matterport3D [34] 的 RGB-D 数据上进行了训练,在深度上引入了高斯噪声。该模型的性能略优于 DS-NeRF,明显优于基线 NeRF和 NerfingMVS。

NerfingMVS[69](2021年9月)在其关注深度重建的NeRF模型中使用了多视图图像。在NerfingMVS中,使用COLMAP以点云的形式提取稀疏深度先验。然后将其输入一个预先训练过的(在场景中进行微调)的单眼深度网络[105],以预先提取一个深度图。该深度图先验被用来监督体积采样,只允许在适当的深度采样点。在体积渲染过程中,射线被分成 N 个相等的箱子,射线边界通过深度先验进行夹紧。像素的深度值 D 被一个修改过的(4)版本近似表示。在深度估计方面,NerfingMVS 在 ScanNet [30] 数据集上表现优于先前的方法。

PointNeRF[71](2022年1月)使用特征点云作为卷渲染的中间步骤。使用预训练 3D CNN,从训练视图创建的成本体积中生成深度和表面概率 γ,并生成密集的点云。使用预训练的2D CNN 从训练视图中提取图像特征。这些用图像特征填充点云特征,以及点表面的概率γi。给定输入的位置和视图方向,使用一个类似[107]的点网网络进行局部密度和颜色的回归,然后用于体积渲染。使用点云特征还能让模型跳过空白空间,因此速度比基准 NeRF 快 3 倍。在DTU数据集上进行点生长和点剪枝形式的超级优化后,点NeRF优于PixelNeRF [74]、MVSNeRF [47]、IBRNet [108]等方法。也可以使用 COLMAP 等其他方法获取的点云来替代基于三维深度网络的点云,从而通过场景优化来提高点云质量。

3.1.3 其他几何改进

SNeS [109](2022年6月)通过对几何和材料属性施加软对称约束,改进了部分对称和部分隐藏场景内物体的几何形状,以学习可能的对称性。

S3-NeRF [110](2022年10月)利用阴影和明暗来推断场景几何,并实现了单图像NeRF训练,重点关注几何恢复。S3-NeRF使用基于UNISURF的占据场3D表示(与密度相反),修改过的基于物理的渲染方程,以及基于占据的阴影计算作为关键的实现差异。该方法在来自合成和真实数据集的单张图像中实现了出色的深度图和表面法线重建。该方法从合成数据和真实数据集的单幅图像中获得了良好的深度图和表面法线重建。

3.2 提高训练和推理速度

在 Mildenhall 等人[1]的最初实现中,为了提高计算效率,使用了分层渲染。简单的渲染需要在数值积分过程中密集评估每条摄像机光线上所有查询点的 MLP (2)。在他们提出的方法中,使用了两个网络来表示场景,一个粗网络和一个细网络。粗略网络的输出用于为精细网络挑选采样点,这就避免了在精细尺度上进行密集采样。在随后的工作中,大多数提高 NeRF 训练和推理速度的尝试大致可分为以下两类。

  • 第一类模型对 NeRF MLP 进行训练、预计算,并将评估结果存储到更易于访问的数据结构中。这只能提高推理速度,尽管提高的幅度很大。我们将这些模型称为 baked 模型。
  • 第二类是 non-baked 模型,包括多种类型的创新。这些模型通常(但不总是)试图从学习到的MLP参数中学习单独的场景特征。这样就可以实现更小的 MLP(例如,通过在体素网格中学习和存储特征,然后将这些特征输入到生成颜色和密度的 MLP 中),从而以内存为代价提高训练和推理速度。这些模型具有混合场景表示法。其他技术,如射线终止(当累积透射率趋近于零时,阻止进一步采样点)、空位跳过和/或分层采样(原始 NeRF 论文中使用的粗+细 MLP)。这些技术也经常用于进一步提高训练和推理速度,并与每篇论文的创新技术结合使用。

早期流行的用 JAX 对原始 NeRF 的重新实现,称为 JaxNeRF(2020 年 12 月),经常被用作基准比较。与最初的 TensorFlow 实现相比,该模型速度稍快,更适合分布式计算。

此外,最近的一个趋势(2022 年)引入了多种邻近 NeRF 的方法,这些方法基于类别 2),使用学习到的体素/树特征。不过,这些方法完全跳过了 MLP,直接根据学习到的特征进行体绘制。这些方法将在后面的章节(3.7.1)中介绍,因为不使用神经网络,它们在某种意义上不是神经辐射场。

3.2.1 Baked

赫德曼等人(2021 年 7 月)的模型将预先计算的 NeRF 存储在稀疏体素网格上。这种方法被称为稀疏神经体素网格(SNeRG),它将预先计算的漫反射颜色、密度和特征向量存储在稀疏体素网格上,这一过程有时被称为 "baking"。在评估时间内,使用 MLP 生成镜面色,再与沿光线合成的镜面色 alpha 相结合,生成最终的像素颜色。该方法比最初的实现方法快 3000 倍,速度可与PlenOctree 相媲美。

与此同时,Yu等人(2021年3月)的PlenOctree方法实现的推理时间比原始快3000倍。作者训练了一种球形谐波 NeRF(NeRF-SH),它可以预测色彩函数的球形谐波系数,而不是直接预测色彩函数。他们建立了一棵由预先计算的球谐波系数组成的八叉树。在构建八叉树的过程中,首先对场景进行体素化处理,去除透射率低的体素。通过对 NeRF 的球谐波分量进行蒙特卡洛估计,这一程序也可应用于标准 NeRF(非 NeRF SH 模型)。PlenOctrees 可以利用初始训练图像进一步优化。相对于 NeRF 训练而言,这种微调过程非常快速。

FastNeRF[40](2021年3月)中,Garbin等人将颜色函数c分解为方向位置相关的MLP的输出(也产生密度σ)与方向依赖的MLP的输出的内积。这使得Fast-NeRF可以轻松地在场景的密集网格中缓存颜色和密度评估,大大提高了3000+倍的推理时间。它们还包括硬件加速射线追踪[112],它跳过空白,当射线的透射率饱和时停止。

Reiser等人。[41](2021年5月)通过引入KiloNeRF改进了基线NeRF,它将场景分成数千个细胞,并训练独立的mlp,用于对每个细胞进行颜色和密度预测。这成千上万的小型MLP是通过使用大型预先训练的教师MLP的知识蒸馏进行训练的,这与“baking”密切相关。他们还采用了早期的射线终止和空白空间跳跃。这两种方法单独将基线NeRF的渲染时间提高了71倍。将基线NeRF的MLP分离成数千个较小的MLP,进一步使渲染时间提高了36倍,从而使渲染时间总共加速了2000倍。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值