论文阅读《NICE-SLAM:Neural Implicit Scalable Encoding for SLAM》


论文阅读《NICE-SLAM: Neural Implicit Scalable Encoding for SLAM》

摘要

神经隐式表征最近在各个领域都显示出了令人鼓舞的结果,包括在同步定位和建图(SLAM)方面的良好进展。然而,现有的方法会产生过度平滑的场景重建,并难以扩展到大型场景。这些限制主要是由于它们简单的全连接网络架构,没有在观测中包含局部信息。在本文中,提出了NICE-SLAM,一种通过引入层次式场景表示(hierarchical scene representation)来整合多层局部信息的稠密SLAM系统。用预先训练好的几何先验来优化这种表示,可以在大型室内场景上进行稠密重建。与最近的神经隐式SLAM系统相比,我们的方法更具可扩展性、高效和鲁棒性。在5个具有挑战性的数据集上的实验表明,NICE-SLAM在建图和跟踪质量方面都具有竞争性的结果。

1. 引言

稠密视觉SLAM是3D计算机视觉的一个基础问题,在自动驾驶、室内机器人、混合现实等领域有着广泛的应用。为了使SLAM系统在实际应用程序中真正有用,以下属性是必不可少的。首先,我们希望SLAM系统能够是实时的。接下来,该系统应该有能力对没有观测的区域做出合理的预测。此外,该系统应该能够扩展到大型场景。最后,对有噪声或观测缺失的情况具有鲁棒性是至关重要的。

在实时稠密视觉SLAM系统的范围内,近几年RGB-D相机已经引入了许多方法。传统的稠密视觉SLAM系统满足实时需求,可以用于大规模场景,但他们无法对未观测到的区域做出合理的几何估计。另一方面,基于学习的SLAM方法获得一定水平的预测能力,因为它们通常在特定任务的数据集上进行训练。此外,基于学习的方法往往能更好地处理噪声和异常值。然而,这些方法通常只在具有多个对象的小场景中工作。最近,Sucar等人在实时稠密SLAM系统(称为iMAP)中应用了神经隐式表示(neural implicit representation),他们对房间大小的数据集显示了良好的跟踪和建图结果。然而,当扩展到更大的场景时,例如,一个由多个房间组成的公寓,在稠密重建和相机跟踪精度方面都可以观察到显著的性能下降。

iMAP的关键限制因素源于它使用了一个单一的多层感知器(MLP)来表示整个场景,它只能随着每一个新的、潜在的部分场景而进行全局更新RGB-D观测。相比之下,最近的工作证明,建立基于多级网格特征可以帮助保存几何细节和重建复杂的场景,但这些都是没有实时功能的离线方法。

在这项工作中,我们试图结合分层场景表征(hierarchical scene representation)神经隐式表征(neural implicit representation)的优势,以完成稠密RGB-D SLAM的任务。为此,我们引入了NICE-SLAM,这是一种稠密的RGB-D SLAM系统,可以应用于大规模场景,同时保持预测能力。我们的关键思想是用层次特征网格来表示场景的几何形状和外观,并结合在不同空间分辨率下预训练的神经隐式解码器的归纳偏差(inductive biases)。通过从占用率和彩色解码器输出中得到的渲染后的深度和彩色图像,我们可以通过最小化重渲染损失(re-rendering losses),只在可视范围内优化特征网格。我们对各种室内RGB-D序列进行了广泛的评估,并证明了我们的方法的可扩展性和预测能力。总的来说,我们做出了以下贡献:

  • 我们提出了NICE-SLAM,一个稠密的RGB-D SLAM系统,对于各种具有挑战性的场景具有实时能力、可扩展性、可预测性以及鲁棒性。
  • NICE-SLAM的核心是一个层次化的、基于网格的神经隐式编码。与全局神经场景编码相比,这种表示允许局部更新,这是针对大规模方法的先决条件。
  • 我们对各种数据集进行了广泛的评估,从而证明了在建图和跟踪方面的竞争性能。

2. 相关工作

稠密视觉SLAM。大多数现代的视觉SLAM方法都遵循了Klein等人的开创性工作中引入的整体架构,将任务分解为建图和跟踪。地图表示通常可以分为两类:以视图为中心(view-centric)以世界为中心(world-centric)。第一个是将三维几何图形锚定到特定的关键帧上,通常在密集的设置中表示为深度图。这类产品早期的例子之一是DTAM。由于其简单性,DTAM已被广泛应用于最近许多基于学习的SLAM系统。例如,DeepV2D在回归深度和姿态估计之间交替,但使用了测试时间优化。BA-Net和DeepFactor通过使用一组基础深度图简化了优化问题。还有一些方法,如CodeSLAM、Scene和NodeSLAM,它们可以优化一个可解码成关键帧或对象深度图的潜在表示。Droid-SLAM使用回归光流来定义几何残差进行细化。TANDEM结合了多视图立体几何和DSO的实时稠密SLAM系统。另一方面,以世界为中心的地图表示将三维几何图形固定在统一的世界坐标中,可以进一步划分为表面(surfels)和体素网格(voxel grids),通常存储占用概率或TSDF值。体素网格已广泛应用于RGB-D SLAM,例如Kinect-Fusion。在我们提出的管道中,我们也采用了体素网格表示。与以前的SLAM方法相比,我们存储几何的隐式潜在编码,并在建图过程中直接优化它们。这种更丰富的表示方式允许我们在较低的网格分辨率下实现更精确的几何图形。

神经隐式表示。最近,神经隐式表示在对象几何表示、场景补全、新视图合成还有生成模型方面显示出了很好的结果。最近的几篇论文试图用RGB-(D)输入来预测场景级的几何形状,但它们都假设了给定的相机姿态。另一组工作解决了相机姿态优化的问题,但它们需要一个相当长的优化过程,这并不适合实时应用。与我们的方法最相关的工作是iMAP。给定一个RGB-D序列,他们引入了一个实时稠密SLAM系统,该系统使用一个单一的多层感知器(MLP)来紧凑地表示完整的场景。然而,由于单个MLP多层感知机模型容量有限,iMAP不能产生详细的场景几何形状和精确的摄像机跟踪,特别是对于较大的场景。相比之下,我们提供了一个类似于iMAP的可扩展的解决方案,它结合了可学习的潜在嵌入和一个预先训练的连续隐式解码器。通过这种方式,我们的方法可以重建复杂的几何形状和为更大的室内场景预测详细的纹理,同时保持更少的计算和更快的收敛。值得注意的是,有的工作还将传统的网格结构与学习到的特征表示结合起来,以实现可扩展性,但它们都不是实时的。此外,DI-Fusion也优化了给定RGB-D序列的特征网格,但它们的重建通常包含孔洞,它们的相机跟踪对纯表面渲染损失没有鲁棒性。

3. 方法

我们在图2中概述了我们的方法。我们使用四个特征网格及其相应的解码器来表示场景几何结构和外观(第3.1节)。我们使用估计的cam-era校准来跟踪每个像素的观察光线。通过沿观察光线采样点并查询网络,我们可以渲染该光线的深度和颜色值(第3.2节)。通过最小化深度和颜色的重新渲染损失,我们能够以交替方式(第3.3节)优化选定关键帧(第3-4节)的相机姿态和场景几何体。

图2. 系统概述。方法以RGB-D图像流作为输入,并输出相机姿态和学习到的分层特征网格形式的场景表示。从右到左的pipeline可解释为一个生成模型,它从给定的场景表示和相机姿态中呈现深度和彩色图像。在测试时,我们通过通过可微分渲染器(从左到右)反向传播图像和深度重建损失,通过求解逆问题来估计场景表示和相机姿态。这两个实体都在交替优化中进行估计:映射:反向传播仅更新分层场景表示;跟踪:反向传播仅更新相机姿势。为了更好的可读性,我们将几何编码的精细比例网格与大小相同的颜色网格连接起来,并将其显示为具有两个属性(红色和橙色)的一个网格。

3.1 分层场景表示 Hierarchical Scene Representation

我们现在介绍了我们的分层场景表示,它结合了多层次网格特征和预先训练的解码器的占用预测。该几何图形被编码到三个特征网格$\phi_\theta^l$中,对应的MLP多层感知机解码 $f^l $,其中$ l \in \{ 0 , 1 , 2 \} $指的是粗糙层(coarse)、中间层(mid-level)以及精细层(fine-level)场景细节。此外,我们也有一个单独的特征网格$ \psi_\omega $以及解码器$ g_\omega $去建模场景外观。这里$ \theta $和$ \omega $分别指的是几何和颜色的优化参数,比如,网格中的特征以及颜色解码器中的权重。

中间层(Mid-level)和精细层( Fine-level )几何表示。观测的场景几何是表示在中间层和精细层特征网格中的。在重建过程中,我们以一种从粗到细的方式使用这两个网格,首先通过优化中层特征网格来重建几何结构,然后使用精细级进行细化。在实现中,我们使用边长分别为32cm和16cm的体素网格,除了TUM RGBD(16cm和8cm)外。对于中间层几何表示,这些特征被使用相关的MLP多层感知机直接解码为占用概率值$ f^1 $。对于任何点$ \mathrm p \in \mathbb{R}^3 $,我们可以得到占用概率值为

其中$ \phi_\theta^1(\mathrm p) $表示特征网格在点$ \mathrm p $处进行三线性插值(tri-linearly interpolated)。相对低的分辨率允许我们高效的优化网格特征去拟合观测值。为了在场景几何图形中捕捉更小的高频细节,我们以残差(residual)的方式添加到精细层fine-level的特征中。特别地,精细层特征解码器将相应的中间层特征和精细层特征作为输入,并输出一个来自中间层占用的偏移量,比如:

其中,一个点的最终占用值表示如下:

注意,我们固定预训练的解码器$ f^1 $和$ f^2 $,并通过完整的优化过程仅优化特征网格$ \phi_\theta^1 $和。我们$ \phi_\theta^2 $证明,这有助于稳定优化和学习一致的几何图形。

粗糙层(Coarse-level)几何表示。粗糙层特征网格的目的是捕捉场景的高级几何图形(例如,墙壁、地板等),并独立于中间层和精细层进行优化。粗糙网格的目标是能够预测观测到的几何图形(在中间层/精细层中进行编码)之外的近似占用值,即使每个粗糙体素只有被部分观测。因此,我们使用了一个非常低的分辨率,在实现中它的边长为2米。与中间层网格类似,我们通过插值特征并通过多层感知机直接解码为占用值,比如:

在跟踪过程中,粗糙层占用值仅用于预测以前未观测到的场景部分。这种预测的几何形状允许我们跟踪,即使是当当前大部分图像以前是没看到过的。

预训练特征编码器(Pre-training Feature Decoders)。在我们的框架中,我们使用三种不同的固定的多层感知机来将网格特征解码为占用值。粗糙和中间层解码器作为ConvONet的一部分进行预训练,它由一个CNN编码器和一个MLP解码器组成。我们使用预测值和真值GT之间的二进制交叉熵损失(binary cross-entropy)来训练编码器/解码器。经过训练后,我们只使用多层感知机MLP解码器,因为我们将直接优化特征,以适应我们的重建管道中的观测值。通过这种方式,预先训练好的解码器可以在解码我们优化后的特征时,利用从训练集学习到的特定于分辨率(resolution-specific)的先验。

同样的策略也用于预训练精细层解码器,除了我们只是在输入到解码器之前将中间层特征$ \phi_\theta^1(\mathrm p) $与精细层特征$ \phi_\theta^2(\mathrm p) $连接在一起。

颜色表示(Color representation)。虽然我们主要对场景几何形状感兴趣,但我们也对颜色信息进行编码,允许我们渲染RGB图像,从而为跟踪提供了额外的信号。为了在场景中编码颜色信息,我们应用了其它特征网格$ \psi_\omega $和解码器$ g_\omega $:

其中,$ \omega $表示在优化过程中的可学习参数,不同于具有较强先验信息的几何结构,我们发现,联合优化颜色特征$ \psi_\omega $和解码器$ g_\omega $可以提高跟踪性能,如表5所示。请注意,与iMAP类似,这可能会导致遗忘问题,而且颜色只在局部保持一致。如果我们想可视化整个场景的颜色,它可以进行全局优化作为后处理步骤。

网络设计(Network Design)。对于所有的MLP多层感知机解码器,我们使用了32个和5个全连接块的隐藏特征维度。除了粗糙层的几何表示外,作为MLP解码器的输入之前,我们在点$ \mathrm{p} $处应用了一个可学习的高斯位置编码。我们观察到,这允许发现几何形状和外观的高频细节。

3.2 深度和颜色渲染 Depth and Color Rendering

最近受神经辐射场NeRF中体积渲染成功的启发,我们还建议使用一个可微渲染过程,该过程集成了来自3.1小节我们的场景表示中预测占用率和颜色。

给定相机内参和当前相机的位姿,我们可以计算一个像素坐标的视线朝向。我们首先沿着射线上的$ N_{strat} $个点进行分层采样,并且在深度值附近均匀采样$ N_{imp} $个点,每条射线共采样$ N=N_{strat}+N_{imp} $个点。更正式一点,令$ \mathrm{p}_i = \mathrm{o} + d_i\mathrm{r} , i \in \{ 1 , … , N \} $表示给定相机原点$ \mathrm{o} $的射线$ \mathrm{r} $上的采样点,$ d_i $对应于沿该射线上点$ \mathrm p_i $的深度值。

对于每个点$ \mathrm p_i $,采用公式(4)、公式(3)、公式(5),我们能分别计算出粗糙层的占用概率值$ o_{\mathrm p_i}^0 $,精细层占用概率值$ o_{\mathrm p_i} $,以及颜色值$ c_{\mathrm p_i} $。我们在点$\mathrm p_i$上建模射线的终止概率(termination probability),在粗糙层上:$\omega_i^c = o_{\mathrm p_i}^0 \prod_{ j = 1 }^{ i - 1 } (1 - o_{\mathrm p_j}^0 ) $,在精细层上:$\omega_i^f = o_{\mathrm p_i} \prod_{j = 1}^{i - 1} (1 - o_{\mathrm p_j}) $ 。

最后,对于每条射线,粗糙层和精细层的深度和颜色都可以渲染为:

此外,沿着射线我们也计算深度方差(depth variances)

3.3 建图和跟踪Mapping and Tracking

在本节中,我们将详细提供我们分层场景表示中的场景几何$ \theta $和外观$ \omega $参数,以及相机姿态的优化。

建图(Mapping)。为了优化3.1小节中提到的场景表示,我们从当前帧和所选的关键帧中统一采样总M个像素。接下来,我们将以一种分阶段的方式来执行优化以最小化几何损失(geometric loss)和光度损失(photometric loss)

几何损失只是在粗糙层和精细层上观测深度和预测深度之间的$ L_1 $损失:

光度损失是$M$个采样像素点上渲染颜色和观测颜色值之间的一个$L_1$损失:

在第一阶段,我们只使用公式(8)中的几何损失$ \mathcal L_g^f $来优化中间层的特征网格 $\phi_\theta^1$。接下来,我们共同优化了中间层和精细层的 $\phi_\theta^1$,$\phi_\theta^2$特征,具有相同的精细层的深度损失$ \mathcal L_g^f $。最后,我们进行局部BA优化,共同优化所有层次的特征网格、颜色解码器以及$K$个选定关键帧的相机外参$ {\mathrm R_i,\mathrm t_i} $。

其中,$ \lambda_p$是损失权重因子。

这种多阶段优化方案可以更好地收敛,因为更高分辨率的外观和精细层特征可以依赖于来自中间层特征网格的已经细化的几何形状。

请注意,我们在三个线程中并行化系统以加快优化过程:一个线程用于粗糙层建图,第二个线程用于中间层和精细层几何和颜色优化,第三个线程用于相机跟踪。

相机跟踪(Camera Tracking)。除了优化场景表示之外,我们还并行运行相机跟踪来优化当前帧的相机姿态,比如,旋转矩阵和平移向量。最后,我们在当前帧中采样$ M_t $个像素并在公式(9)中应用相同的光度损失,但使用了修改后的几何损失:

修正后的损失减小了重建几何中的某些区域,如物体边缘。相机跟踪最终被表述为以下最小化问题:

粗糙层的特征网格能够对场景几何图形进行短程预测。当相机移动到以前未观察到的区域时,这种推算出的几何形状为跟踪提供了一个有意义的信号。使其对突然帧丢失或相机快速相机移动更加鲁棒。我们在补充材料中提供了实验内容。

对动态物体的鲁棒性(Robustness to Dynamic Objects)。为了使优化在跟踪过程中对动态对象更加鲁棒,我们使用大的深度/颜色重渲染损失来过滤像素。我们从优化中删除那些,公式(12)中损失大于当前帧中所有像素的10倍损失中值的像素。图6显示了一个动态对象被忽略,因为它不在渲染的RGB和深度图像中。请注意,对于这个任务,我们只在建图过程中优化场景表示。在动态环境下联合优化相机参数和场景表示是不重要的,我们把它看作是一个未来有意思的发展方向。

3.4 关键帧选取 Keyframe Selection

与其他SLAM系统类似,我们使用一组选定的关键帧不断优化我们的分层场景表示。我们按照与iMAP相同的策略,维护一个全局关键帧列表,其中我们根据信息增益逐步添加新的关键帧。然而,与iMAP相比,我们只包含在优化场景几何图形时,与当前帧有视觉重叠的关键帧。这是可能的,因为我们能够对基于网格的表示进行局部更新,而且我们不会遭受同样的遗忘问题。这种关键帧选择策略不仅确保了当前视图之外的几何图形保持静态,而且还导致了一个非常有效的优化问题,因为每次我们只优化必要的参数。在实际应用中,我们首先随机采样像素,并使用优化的相机姿态反向投影对应的深度。然后,我们将点云投影到全局关键帧列表中的每个关键帧上。从那些有投影点的关键帧中,我们随机选择了$ K−2 $帧。此外,我们还在场景表示优化中包括了最近的关键帧和当前帧,形成总共$ K $个活动帧。关于关键帧选择策略的消融研究(Ablation Study),请参阅第4.4节。

4. 实验

我们在多种数据集上评估我们的SLAM框架,包括真实的和合成的,不同的大小和复杂性。我们还进行了一项全面的消融研究来支持我们的设计选择。

4.1 实验设置

数据集Datasets。我们考虑了5个通用数据集:Replica、ScanNet、TUM RGB-D数据集、Co-Fusion数据集,以及一个有多个房间的自己获取的大公寓。我们遵循TUM RGB-D数据集相同的预处理步骤。

基准Baselines。我们将TSDF-Fusion与我们的相机位姿进行了比较,体素网格分辨率为 2563 ,DI-Fusion使用其官方实现,以及我们针对iMAP的重新实现:iMAP∗。我们的重新实现在两个场景重建和相机跟踪中具有与原始iMAP相似的性能。

度量指标Metrics。我们同时使用二维和三维的度量值来评估场景的几何图形。对于二维度量,我们评估了来自重建网格和GT真值网格的1000个随机采样的深度图上的L1损失。为了进行公平的比较,我们在计算平均L1损失之前,将双边求解器应用于DI-Fusion和TSDF-Fusion来填充深度孔洞。对于3D指标,我们遵循iMAP论文的做法,并考虑精度Accuracy[cm]、完成Completion[cm]和完成率[<5cm%],除了我们删除了不在任何相机的观察障碍内的不可见区域。对于相机跟踪的评估,我们使用了ATE RMSE。如果没有另外指定,在默认情况下,我们将报告5次运行的平均结果。

实现细节Implementation Details。我们在一台拥有3.80GHz Intel i7-10700K CPU与NVIDIA RTX 3090 GPU的台式电脑上运行我们的SLAM系统。在我们所有的实验中,我们使用了射线 $N_{strat}=32$ 和 $N_{imp}=16$ 上的采样点数,光度损失加权$ \lambda_p=0.2 $和$ \lambda_{pt}=0.5 $。对于小规模的合成数据集(Replica和Co-Fusion),我们选择了$ K=5 $个关键帧和分别采样$ M=1000 $和$ M_t=200 $个像素。对于大规模的真实数据集(ScanNet和自捕获场景),我们使用$ K=10 , M=5000 , M_t=1000 $。对于具有挑战性的TUM RGB-D数据集,我们使用了$K=10 , M=5000 , M_t=5000$。对于我们重新实现的iMAP∗,我们遵循文献中提到的所有超参数,除了我们将采样像素的数量设置为5000,因为它在重建和跟踪中都有更好的性能。

4.2 建图和跟踪的评估 Evaluation of Mapping and Tracking

Replica数据集上的评估。为了评估Replica,我们使用了由iMAP的作者提供的相同的渲染RGB-D序列。通过分层的场景表示,我们的方法能够在有限的迭代中精确地重建几何图形。如表1所示,NICE-SLAM在几乎所有指标上都显著优于baseline基准方法,同时保持了合理的内存消耗。定性地说,我们可以从图3中看到,我们的方法产生了更清晰的几何形状和更少的伪影。

表1. Replica数据集上的重建结果。iMAP∗表示我们重新实现的iMAP。TSDF-Fusion使用来自NICE-SLAM的相机位姿。每个场景的详细度量标准可以在补充文件中找到。

图3. Replica数据集上的重建结果。iMAP∗是指我们重新实现的iMAP。

TUM RGB-D数据集上的评估。我们还评估了在小型TUM RGB-D数据集上的相机跟踪性能。如表2所示,我们的方法优于iMAP和DI-Fusion,尽管我们的设计更适合大场景。可以注意到,跟踪最好的方法(BAD-SLAM,ORB-SLAM2)仍然优于基于隐式场景表示的方法(iMAP和我们的方法)。然而,我们的方法显著地减少了这两类方法之间的差距,同时保留了隐式表示的表征优势

表2. TUM RGB-D数据集上的相机跟踪结果。 采用ATE RMSE[cm](↓)作为评价指标。NICE-SLAM减少了使用神经隐式表示的SLAM方法与传统方法之间的差距。我们报告了这个表中所有方法的5次运行中最好的一次。取iMAP、badslam、Kintinuous和ORB-SLAM2的数据。

ScanNet数据集上的评估。我们从ScanNet中选择多个大型场景来基准测试不同方法的可扩展性。对于图4中所示的几何形状,我们可以清楚地注意到,比起TSDF-Fusion、DI-Fusion和iMAP∗,NICE-SLAM产生了更清晰、更详细的几何形状。在跟踪方面,我们可以观察到,iMAP∗和DI-Fusion要么完全失败,要么引入了较大的漂移,而我们的方法成功地重建了整个场景。在跟踪方面,我们可以观察到,iMAP∗和DI-Fusion要么完全失败,要么引入了较大的漂移,而我们的方法成功地重建了整个场景。从定量上来说,我们的跟踪结果也明显比DI-Fusion和iMAP∗更准确,如表3所示。

表3. ScanNet数据集上的相机跟踪结果。我们方法在这个数据集上始终产生更好的结果。采用ATE RMSE(↓)作为评价度量。

图4. ScanNet数据集上的3D重建和跟踪。 黑色轨迹是来自ScanNet,红色轨迹是本文方法的跟踪结果。我们尝试了iMAP∗的各种超参数,结果最好,但大多较差

在更大场景数据集上的评估。为了评估我们的方法的可扩展性,我们在一个有多个房间的大公寓中捕获了一个序列。图1图5显示了使用NICE-SLAM、DI-Fusion和iMAP*获得的重建结果。作为参考,我们还展示了在Open3D中使用离线工具Redwoud的三维重建。我们可以看到,NICE-SLAM与离线方法具有相似的结果,而iMAP∗和DI-FusioN无法重建整个序列。

图1. 采用NICE-SLAM进行多个房间公寓的三维重建。一个层次化的特征网格联合编码几何图形和颜色信息,并同时用于建图和跟踪。我们描述了最终的面片和相机跟踪轨迹。

图5. 在多房间公寓数据集上的三维重建和跟踪。相机跟踪轨迹用红色显示。iMAP*和DI-Fusion未能重建出整个序列。我们还显示了离线方法的结果作为参考

4.3 性能分析 Performance Analysis

除了对不同数据集上的场景重建和相机跟踪的评估外,下面我们还评估了所提出方案的其他特性。

计算复杂度Computation Complexity。首先,我们比较了查询一个3D点的颜色和占用率/体积密度所需的浮点操作(FLOPs)的数量,见表4。我们的方法只需要iMAP 1/4 的FLOP。值得一提的是,即使在非常大的场景中,我们方法中的流程也保持不变。相比之下,由于iMAP中使用单一MLP,MLP的容量限制可能需要更多的参数,这就导致更多的FLOPS。

运行时Runtime。我们还在表4中比较了使用相同数量的像素样本($ M_t=200 $用于跟踪和$ M=1000 $用于建图)。我们可以注意到,我们的方法在跟踪和建图方面比iMAP分别快2倍和3倍。这表明使用浅的多层感知机MLP解码器的特征网格比单一深层MLP的优势。

表4. 计算复杂度与运算时间。我们的场景表示不仅提高了重建和跟踪的质量,而且速度更快。iMAP的运行时取自其论文[47]中的数据。

对于动态物体的鲁棒性Robustness to Dynamic Objects。这里我们考虑包含动态移动对象的Co-Fusion数据集。如图6所示,我们的方法在优化过程中正确地识别并忽略了属于动态对象的像素样本,这将导致更好的场景表示建模(参见渲染的RGB和深度)。此外,我们还与iMAP∗在相同序列上进行了相机跟踪比较。我们方法和iMAP∗的ATE RMSE评分分别为1.6cm和7.8cm,这清楚地证明了我们对动态对象的鲁棒性。

几何预测和孔洞填充Geometry Forecast and Hole Filling。如图7所示,由于使用粗糙层场景,我们能够补全未观察到的场景区域。相比之下,由iMAP∗重建的看不见的区域噪声很大,因为在iMAP∗中没有编码场景先验知识。

图6. 对于动态物体的鲁棒性。我们展示了覆盖在图像上的采样像素的中间(左)、渲染的RGB(中间)和渲染的深度(右),以说明处理动态环境的能力。跟踪过程中的掩码像素样本用黑色表示,而使用的像素样本用红色表示。

图7. 几何预测和空洞填充。白色区域是观测过的区域,青色表示未观测但被预测的区域。由于使用了粗糙层的场景先验,我们的方法比iMAP∗具有更好的预测能力。这反过来也提高了我们的跟踪性能。

4.4 消融实验Ablation Study

在本节中,我们将研究我们的分层结构的选择和颜色表示的重要性。

分层结构Hierarchical Architecture图8将我们的分层架构与其他两种情况进行比较:a)一个特征网格与我们的精细层表示具有相同的分辨率(只有高分辨率);b)一个具有中间层分辨率的特征网格(只有低分辨率)。当精细层的表示参与优化时,我们的层次结构可以快速地添加几何细节,这也导致了更好的收敛性。

局部光束平差 Local BA。我们在ScanNet上验证了局部捆机调整的有效性。如果我们不联合优化K个关键帧的相机姿态和场景表示(在表5中没有局部BA),则相机跟踪不仅精度明显降低,而且可靠性也较差。

颜色表示Color Representation。在表5中,我们比较了公式(9)中没有光度损失$ \mathcal{L}_p $的方法。这表明,虽然由于有限的优化预算和缺乏样本,我们估计的颜色并不完美点,学习这种颜色表示仍然对精确的相机跟踪起着重要的作用。

关键帧选取KeyFrame Selection。我们使用iMAP的关键帧选择策略(表5中的w/iMAP关键帧)来测试我们的方法,其中他们从整个场景中选择关键帧。这对于iMAP是必要的,以防止其简单的多层感知机忘记了之前的几何形状。然而,它也会导致收敛缓慢和不准确的跟踪。

表5. 消融实验。我们研究了局部BA、颜色表示以及我们的关键帧选择策略的有效性。每个场景运行5次,并计算其ATE RMSE的平均值和标准差。我们在ScanNet中报告了6个场景的平均值

图8. 分层结构消融实验。具有在不同结构的Replica数据集上对单个深度图像的几何优化。为了更平滑,曲线可以更好地可视化。

5. 总结

我们提出了NICE-SLAM,一种稠密视觉SLAM方法,它结合了神经隐式表示的优势和基于层次网格的场景表示的可扩展性。与单个大的多层感知机MLP的场景表示相比,我们的实验证明,我们的表示(浅层的MLPs+多分辨率特征网格)不仅保证了精细的建图和高的跟踪精度,但由于局部场景更新的好处,速度更快和计算更少。此外,我们的网络能够填补小洞,并将场景几何推断到未观察到的区域,从而稳定相机的跟踪。

局限性Limitations。该方法的预测能力仅限于粗糙表示的尺度。此外,我们的方法不执行闭环检测,这是一个有趣的未来方向。最终,虽然传统方法缺乏一些特征,但与基于学习的方法相比,仍然存在着性能差距需要去缩小。


文章作者: Immortalqx
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Immortalqx !
评论
  目录