2025-01-16 VINGS-Mono:首个支持室外运行、公里级大场景的单目高斯SLAM方法

单目GS-SLAM的重大挑战

现有的 3DGS SLAM 系统主要集中于有限数量的显示物体或小型室内空间,使用深度摄像头作为输入,并依赖传统的 SLAM 前端或深度点云的 ICP(迭代最近点)算法进行定位和高斯更新。而室外 GS-SLAM 方法相对稀缺,且仅限于重建几百米范围内的场景,严重依赖高功率的激光雷达传感器。然而,深度摄像头在室外环境中的表现较差,而激光雷达传感器的高成本限制了其在消费级应用中的普及。鉴于尺寸、重量和功耗的限制,低成本摄像头与 IMU 的组合成为实现 SLAM 的最低配置。因此,开发一个能够处理大规模环境的鲁棒单目(惯性)GS-SLAM 系统既重要又紧迫。

目前,支持单目输入的 3DGS SLAM 系统通过随机或稀疏特征点初始化高斯,但由于易受位姿漂移和几何噪声影响,无法应对大规模、快速移动的场景。此外,在大规模环境中,普遍存在显著的累积误差,这些误差通常需要通过闭环(Loop Closure)加以缓解。传统的闭环方法依赖于描述符或网络特征向量,需要额外的编码和词袋模型存储,效率较低,且随着场景规模的增加性能会下降。GO-SLAM通过维护帧之间的共视矩阵来识别闭环,但这导致了二次存储需求和计算开销的增加。

开发一个高效且高保真的单目 GS-SLAM 系统以应对大规模场景面临着几个重大挑战

  1. 首先,表示大规模街景需要管理数千万个高斯,这既对存储又对计算资源提出了极高的要求。
  2. 其次,单目系统存在严重的尺度漂移问题,这会削弱重建场景的准确性和可靠性。
  3. 此外,在大规模环境中,累积误差显著。虽然传统的闭环技术在优化基于地标的地图方面效果显著,但检测闭环后修正稠密高斯地图极具挑战性,通常需要对所有历史帧重新训练。
  4. 最后,大城市环境中动态物体的存在带来了显著的伪影和噪声,进一步增加了优化的复杂性。

VINGS-Mono[1]是一个支持大规模城市场景的单目(惯性)高斯散点 SLAM 框架。该框架包含四个主要模块:VIO 前端、2D 高斯地图、新视角合成(NVS)闭环模块和动态物体擦除模块。为了解决高斯地图存储与优化效率的问题,开发了一个评分管理器,用于通过整合局部和全局地图表示来管理 2D 高斯地图。此外,设计了一个基于采样的光栅化器,以加速高斯散点的反向传播算法,从而显著提高计算效率。为了增强跟踪精度并减轻大规模场景中不可避免的漂移,提出了一个从单帧到多帧的位姿优化模块,该模块通过将单帧的渲染误差反向传播到视锥范围内的所有帧位姿,从而提高整体位姿一致性。对于累积误差,利用高斯散点的新视角合成能力进行闭环检测,并进一步提出了一种高效的闭环修正方法,该方法能够在检测到闭环后同时调整数百万个高斯属性,确保地图的全局一致性。最后,为了应对动态物体对建图的影响,设计了一种基于重渲染损失的启发式语义分割蒙版生成方法,确保动态物体被有效处理,从而提高了建图过程的鲁棒性。

项目链接:https://vings-mono.vercel.app/

主要贡献

  • 首次提出了一个能够在室外运行并支持公里级城市场景的单目(惯性)GS-SLAM 系统。
  • 提出了一个包含采样光栅化器、评分管理器和从单帧到多帧位姿优化的 2D 高斯地图模块,确保我们的方法可以实时实现高精度定位和高质量高斯地图构建。
  • 引入了一种基于 GS 的闭环检测方法,以及一种高效的闭环修正方法,该方法能够在检测到闭环后,通过单次操作修正数千万个高斯属性,从而有效消除累积误差并确保地图的全局一致性。
  • 在不同场景(包括室内环境、无人机视角和驾驶场景)上进行了全面的实验,结果表明 VINGS-Mono 在渲染和定位性能方面均优于现有方法。此外开发了一款移动应用程序,并进行了真实场景实验,证明了方法的实际可靠性。

系统概述

提出的框架管道如图 2 所示。给定一系列 RGB 图像和 IMU 数据,我们首先利用视觉惯性前端(Visual-Inertial Front End,详见第 IV 节)选择关键帧,并通过密集束调整(Dense Bundle Adjustment,DBA)计算关键帧的初始深度和位姿信息。此外,我们基于深度估计过程中得出的协方差计算深度图的不确定性,过滤掉几何上不准确的区域和天空区域。接着,2D 高斯地图模块(详见第 V 节)利用视觉前端的输出,逐步添加并维护高斯椭球。我们设计了一种基于贡献分数和误差分数的管理机制,用于高效修剪高斯。同时,为了确保系统在大规模城市场景中的可扩展性,我们实现了 CPU-GPU 内存转移机制。

在新视角合成(Novel View Synthesis, NVS)闭环模块(详见第 VI 节)中,我们利用高斯散点的视图合成能力,设计了一种创新的闭环检测方法,并通过高斯-位姿对(Gaussian-Pose Pair)匹配修正高斯地图。此外,我们集成了动态物体擦除模块(Dynamic Object Eraser,详见第 VII 节),该模块通过蒙版屏蔽车辆和行人等动态物体,确保在静态场景假设下实现一致和准确的建图。

视觉惯性前端

密集束调整与视觉因子

视觉惯性因子图

深度不确定性估计

2D 高斯地图

在线建图过程

评分管理器

采样光栅化器

在原始高斯散点方法中,反向传播过程与前向传播对称。我们针对每个 GPU 块对一个瓦片(16×16 像素)进行操作,并对瓦片中的每个像素反向传播损失。然而,这种像素并行化策略在每个线程中需要多次迭代,导致效率较低。

我们引入了一种优化方案,在前向传播阶段对中间变量进行分块存储,并在反向传播阶段按块分配 GPU 计算资源,从而显著减少每个线程的迭代次数。此外,我们仅对每个瓦片中损失最高的像素进行反向传播计算(如设置为 50% 的像素),实现了 273% 的加速效果。

单帧到多帧位姿优化

现有基于 GS 的 SLAM 方法通常通过高斯点传递梯度来优化位姿。然而,这种方法效率较低。我们提出了一种改进方案,通过将单帧渲染误差反向传播到多个关键帧的位姿,从而实现全局优化。优化后的位姿替换视觉前端的位姿缓存,以便进一步优化。

新视角合成(NVS)闭环

在缺乏尺度信息的单目配置中,闭环对于消除累积误差至关重要,尤其是在大规模环境中。我们提出了一种基于高斯散点的新视角合成(NVS)闭环检测和修正方法。与传统的词袋(Bag-of-Words, BoW)方法不同,我们利用高斯散点的视角合成能力,从新视角判断是否存在闭环(详见 VI.A)。随后,我们通过图优化修正位姿,并利用高斯点的帧索引(frame index)修正 2D 高斯地图。

如图 4 所示,我们的闭环检测过程分为三个主要步骤:匹配特征点与历史帧、通过匹配的特征点和渲染深度计算相对位姿,以及利用新位姿生成新视角以确认闭环的存在。

闭环修正

动态物体擦除器

高斯散点的基本假设是场景是静态的。然而,在实际应用中,尤其是在大规模环境中,动态干扰物(如车辆或行人)是普遍存在的。以往的动态高斯散点方法通常用于离线训练环境,这些方法通过建模 4D 空间并训练高斯属性与时间之间的关系,以离线方式处理整个数据集。然而,这些方法并不适用于需要增量加载数据的 SLAM 系统。

考虑到 SLAM 的建图是一个在线过程,并且高斯散点具备新视角合成的能力,我们设计了一种基于启发式的分割方法,以识别动态物体的蒙版。

方法

实验效果

如图 5 所示,我们的动态物体擦除器能够有效过滤室内移动的人体和室外快速移动的车辆,防止动态伪影影响高斯地图。此外,与其他方法相比,动态物体擦除器提高了 SLAM 系统在动态场景下的稳定性和鲁棒性。

实验效果

总结一下

VINGS-Mono是一种单目(惯性)高斯散点SLAM框架,该框架通过四个主要模块(VIO前端、2D高斯地图、NVS闭环检测和动态擦除器)解决了大规模场景中SLAM系统面临的挑战。实验表明,该方法不仅在定位精度上达到或超越现有方法,还在建图和渲染质量方面显著优于其他方法。此外,该方法还支持通过智能手机进行实时高质量高斯地图生成。

未来工作

  • 进一步优化动态擦除器以适应更复杂的动态场景
  • 扩展框架以支持更多传感器配置。

参考

[1] VINGS-Mono: Visual-Inertial Gaussian Splatting Monocular SLAM in Large Scenes

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注


往期评论