真正实时地图更新!GS-LIVO:首个可部署在资源受限嵌入式系统上的实时高斯SLAM框架

人工智能 新闻
GS-LIVO是一种结合传统激光雷达-惯性-视觉里程计与3D高斯点新型地图表示的实时SLAM系统。

本文经3D视觉之心公众号授权转载,转载请联系出处。

实时地图更新

近年来,随着同步定位与建图(SLAM)技术的发展,出现了多种显式地图表示方法,包括稠密彩色点云、稀疏基于块的结构,以及基于网格或基于曲面元素(surfel)的重建。这些形式通常与基于特征的方法或直接方法相结合,在无人机和移动机器人等平台上支持高效、实时操作。许多最先进的SLAM系统利用这些传统地图结构,得益于其成熟的技术流程和在位姿估计任务中的稳健性能。

然而,这些人工设计的显式表示方法尽管已高度成熟,但仍存在一些局限性

  • 它们通常依赖于丰富的几何特征和高帧率的输入以确保跟踪的稳定性。
  • 此外,这些方法在提供逼真的重建和解释场景中未观测部分时往往力不从心。在需要预测或合成新视点的应用中(例如沉浸式增强现实、高质量的3D建模
  • 需要推断未见区域以实现稳健决策的场景)

最近,在新视点合成领域的突破引入了神经表示,可以从任意视点进行真实感渲染。隐式模型(如Neural Radiance Fields, NeRF)和显式结构(如3D Gaussian Splatting, 3DGS)不仅丰富了重建环境的细节,还为更先进的SLAM范式打开了大门。一些基于NeRF的SLAM方法和基于3DGS的方法试图将这些高保真表示集成到SLAM流程中,旨在利用更丰富的光度和几何信息以实现更精确的定位和建图。

直观地说,随着地图质量的提升,提供更好的空间和外观线索可以提高位姿估计的精度和稳健性,从而强化SLAM中建图与定位之间的相互关系。然而,当前基于神经网络的SLAM系统面临一个关键瓶颈:无法实现真正的实时地图更新。尽管某些方法可以接近实时的里程计计算,其地图优化和细化过程往往滞后,依赖于单独的、较慢的线程。这种位姿估计的速度与较慢的地图更新之间的不匹配降低了系统的适应性,尤其是在需要持续更新高保真地图的动态或大规模环境中。因此,这些高质量表示在机器人领域的实际部署仍然有限,而快速的环境解释至关重要。

图片

GS-LIVO[1]是一种激光雷达-惯性-视觉里程计系统,该系统通过高斯地图的新颖表示形式,紧密结合了激光雷达与摄像头的测量。本文的目标包括:通过高斯地图内的多传感器融合实现高精度定位,以及在大规模和复杂环境中显著提高高斯地图更新的效率。本方法解决了当前高斯SLAM系统实际部署中的关键瓶颈。

项目主页:https://github.com/HKUST-Aerial-Robotics/GS-LIVO

主要贡献包括:

  1. 引入了一种基于空间哈希索引八叉树的全局高斯地图表示结构。该层次结构支持高效的全局索引、共视性检查,并本质上支持可变的细节层次以适应大规模场景。
  2. 提出了基于激光雷达与视觉数据的快速初始化策略,以快速生成结构良好的全局高斯地图,并实现高保真渲染。
  3. 提出了一种增量式滑动窗口高斯维护方法,优化高斯地图时能够有效降低计算成本和GPU内存负担。
  4. 提出了一种利用高斯地图的光度渲染能力的视觉测量模型,通过IESKF实现激光雷达-惯性测量的紧密集成。

具体方法

图片

GS-LIVO系统的架构如图2所示。硬件配置整合了激光雷达(LiDAR)、惯性测量单元(IMU)和摄像头数据,并通过模拟的每秒脉冲信号(PPS)实现了精确的时间同步。软件框架由以下四个关键模块组成:

  1. 全局高斯地图:采用空间哈希索引的八叉树组织形式,能够有效覆盖稀疏空间体积,同时适应各种环境细节和规模。
  2. 基于光度梯度的高斯初始化与在线优化:利用激光雷达与视觉信息实现高效的高斯初始化和优化。
  3. 滑动窗口高斯增量维护:通过局部高斯滑动窗口进行实时优化,显著减少图形内存使用。
  4. 基于IESKF的位姿优化:采用序列更新的迭代误差状态卡尔曼滤波器(IESKF)实现位姿优化。

本系统是一个无缝集成激光雷达、惯性测量单元和视觉传感器的实时SLAM框架,在竞争性的定位精度下实现了高效运行。为方便描述,本节首先定义了相关符号及其解释(如表I),包括坐标变换、高斯属性、空间结构及优化参数。

图片

全局高斯地图:哈希索引八叉树

图3展示了本文系统中全局地图和高斯滑动窗口的结构。映射系统主要由两个部分组成:全局高斯地图和局部高斯滑动窗口。全局高斯地图采用哈希索引的八叉树结构,通过空间哈希技术高效地覆盖场景中的稀疏空间体积。该结构能够根据环境复杂度递归划分区域,从而实现更加细致的地图表示。根体素(root voxel)的索引由以下公式计算:

其中,(v_s) 是根体素的长度。此方法允许对稀疏分布的数据点进行高效管理和索引,尤其适用于大规模环境。

在激光雷达-惯性-视觉系统中,我们利用当前帧的激光雷达数据计算空间键,从而高效地识别全局高斯地图中与当前视场(FoV)对应的根体素。这种方法能够在空间环境中识别共视区域,确定哪些区域在当前视点下可见,从而为后续处理提供准确的地图信息。然而,由于哈希索引存储的不连续性,直接在GPU上对高斯参数进行并行优化存在局限性。不连续的内存布局会导致GPU访问和处理效率的降低,引入不必要的延迟。

为了解决这一问题,我们设计了一种专门的高斯滑动窗口,用于维护视场范围内的高斯数据,并采用连续的内存布局以确保GPU对高斯参数的高效处理。具体而言,大规模环境中的所有高斯数据以非连续的哈希八叉树结构存储在主存(RAM)中,而仅视场范围内的高斯数据被存储在连续的主存区域中,并在视频随机存储器(VRAM)中保留副本。当需要优化高斯参数时,这些参数会从主存传输到视频存储器,允许GPU高效地执行并行优化。优化完成后,更新后的高斯参数会从视频存储器传回主存,以保持全局地图的一致性。

与传统的有限且不可扩展的图形内存不同,主存具有更大的容量,并可以通过交换空间进一步扩展,从而能够处理更大、更复杂的场景。这种设计不仅提高了GPU处理的效率,还确保系统在处理大规模数据集时的稳定性和可靠性,如图3所示。

图片

高斯的初始化与优化

当接收到新的激光雷达和摄像头帧时,系统会对稠密的激光雷达点云进行基于体素的地图下采样,以减少GPU内存消耗。与使用边界选择的方法不同,本文采用八叉树的叶节点体素对物体表面的3D空间进行采样。通过选择每个体素内的激光雷达点,场景得以更高效地表示。

如果叶体素未被填充,则会基于激光雷达和摄像头粗略地初始化新的高斯参数,并将其插入叶体素中。

激光雷达-摄像头联合初始化高斯参数

在该步骤中,高斯的结构参数通过激光雷达数据初始化。具体而言,高斯的缩放矩阵S根据哈希体素的层级进行初始化,其表达式如下:

滑动窗口中高斯的实时优化

高斯滑动窗口的维护

为了提高内存效率并优化计算速度,本系统将优化范围限制在滑动窗口内的高斯。这种方法能够显著提高优化速度并减少内存消耗,同时避免传统3D高斯方法中基于图块深度排序的混叠效应(aliasing effects),确保前景和背景元素之间的清晰分离,从而提升深度表示的质量。

滑动窗口增量更新

从全局高斯地图中重新构建每一帧的高斯滑动窗口需要大量的内存拷贝,导致显著的计算开销。然而,连续帧之间通常存在较大的场景重叠,使得大部分工作是重复的。为了利用帧间的重叠,本系统提出了一种增量更新策略,用于高斯滑动窗口的维护。该方法显著减少了冗余内存传输,提升了实时性能,并使系统能够更有效地扩展至大规模和复杂环境。

滑动窗口维护步骤

高斯滑动窗口的维护包括以下关键步骤:

  1. 全局地图更新
    确定上一帧滑动窗口中的高斯体素是否仍在当前视场(FoV)内。如果体素超出视场,其优化参数将被复制回全局高斯地图并标记为“删除”。
  2. 删除和压缩
    将标记为“删除”的体素参数与滑动窗口序列末尾的参数交换。重新定位后,从序列末尾移除这些体素,从而保持内存的连续性。
  3. 重叠和添加
    利用当前激光雷达帧的空间哈希键,识别与上一帧滑动窗口重叠的体素,并确定需要添加到当前视场滑动窗口的新区域。
  4. 附加新叶体素
    将新增体素附加到CPU高斯缓冲区(CGB)的末尾,并更新空间哈希表(SHT)。随后,将高斯数据从CGB(主存储器)直接传输至GPU高斯缓冲区(GGB),确保滑动窗口中的高斯能够被GPU立即优化和渲染。
  5. 优化与渲染
    在滑动窗口内的高斯体素会通过GPU高效优化,并在优化完成后将更新的参数从GGB传回CGB,以保持全局地图的一致性。

系统架构和内存布局

高斯滑动窗口的架构包括以下主要组件:

  • 空间哈希表(SHT)
    基于哈希的索引结构,用于将空间坐标映射到CPU内存中的高斯参数指针。
  • CPU高斯缓冲区(CGB)
    CPU内存中的一个连续存储区域,用于存储当前活动体素的高斯参数。这种紧凑的布局使数据能够快速传输至GPU。
  • GPU高斯缓冲区(GGB)
    GPU上分配的内存块,用于并行处理和快速渲染,可直接访问高斯数据。

优化性能与内存使用

增量维护高斯滑动窗口的策略通过以下方式提升了系统性能:

  • 减少内存操作
    仅更新视场变化的体素,而非重新加载整个滑动窗口,减少了冗余操作。
  • 降低计算消耗
    将优化范围限制在当前视场内的高斯体素,从而降低计算成本并提升实时性能。
  • 扩展性
    利用CPU内存的可扩展性和容量支持,更高效地处理大规模和复杂场景。

性能优势

通过滑动窗口维护策略,系统显著减少了GPU内存消耗,同时保持高映射质量和优化效率。结果显示,总处理时间(包括滑动窗口维护和高斯优化)在室内和室外场景中始终低于100毫秒,支持每秒10帧的实时更新。这种高效设计使得本系统能够适应各种计算资源和场景复杂性。

状态估计

基于高斯渲染的特点,本文重新设计了FAST-LIVO2的视觉更新流程。与将当前帧的图像块映射到参考帧以计算光度误差的方法不同,本文通过比较由高斯地图渲染的图像与实际图像,统一地在当前帧上计算光度误差。这种优化的收敛性由高斯渲染的平滑性和可微分性保证,类似于MonoGS中的实现。

如图2所示,本文的里程计系统通过序列更新的迭代误差状态卡尔曼滤波器(IESKF),紧密地集成了激光雷达和图像测量。与传统的稀疏视觉地图不同,本文使用稠密高斯地图作为视觉模块的基础。

系统工作流程

首先,本文利用当前视场内优化后的高斯地图,通过激光雷达-惯性更新后的位姿进行新视点的渲染。与FAST-LIVO2方法不同,本文的高斯地图不仅能够无缝渲染,还能以真实感质量渲染非朗伯表面,体现了基于高斯方法的优势。

雅可比矩阵推导

高斯渲染的光度损失对IESKF估计器中IMU位姿更新的雅可比矩阵推导如下:

从上述推导可知,优化更新不仅包含相机位姿的变化,还系统性地扩展至IMU位姿,并集成到IESKF框架中:

紧耦合系统的优势

大多数基于高斯点的SLAM方法主要依赖优化器计算相机位姿更新,通常不会评估更新位姿的协方差。然而,本文的方法通过将位姿和协方差进一步传播到下一个传感器更新(例如IMU和激光雷达),形成了一个紧耦合的IESKF系统。这种方法增强了系统在动态和复杂环境中的一致性和稳健性。

实验效果

图片图片图片图片图片图片图片

总结一下

GS-LIVO是一种结合传统激光雷达-惯性-视觉里程计与3D高斯点新型地图表示的实时SLAM系统。通过用基于高斯的场景表示替代传统的彩色点云和稀疏块地图,本系统实现了高精度定位与高保真地图建模。

主要贡献包括:

  1. 用于高效全局高斯地图管理的空间哈希索引八叉树结构
  2. 通过激光雷达-视觉联合初始化实现高保真建图
  3. 用于实时地图优化的增量滑动窗口策略
  4. 基于IESKF的紧耦合多传感器融合框架。

尽管现有的基于高斯的SLAM系统通常能够实现实时定位,但在实时地图更新方面存在不足,我们的系统利用传统多传感器融合的优势,维持了高频率的地图更新,同时实现了紧耦合的里程计。

值得注意的是,GS-LIVO是首个成功部署在NVIDIA Jetson Orin NX嵌入式平台上的基于高斯的SLAM系统,展现了其在实际机器人应用中的潜力。大量实验表明,GS-LIVO在室内和室外环境中均表现出优异性能,相较现有方法减少了内存消耗和优化时间,同时保持了高渲染质量。

未来研究:

  • 可进一步探索自适应细节层次技术,这些技术可考虑视距、结构复杂性及纹理丰富度。
  • 此外,对于均质区域,合并颜色相近的高斯点可以进一步优化内存使用和计算效率。然而,这些高级体素管理机制会增加额外复杂性,需要仔细研究。

责任编辑:张燕妮 来源: 3D视觉之心
相关推荐

2024-06-21 10:40:00

计算机视觉

2013-05-16 14:31:49

GoogleGoogle Maps

2022-04-01 08:09:03

操作系统嵌入式重构

2016-12-27 09:24:13

Python系统开发

2014-11-17 21:19:58

VxWorks 7风河

2009-04-11 15:12:24

2022-03-30 08:24:25

操作系统内核开源软件

2018-05-02 16:34:56

EAF嵌入式框架

2009-12-28 17:54:49

WPF嵌入式资源

2022-01-03 23:33:40

Linux组件系统

2017-08-14 16:36:03

2020-09-22 10:30:28

嵌入式系统攻击网络安全

2020-07-03 07:00:00

Linux组件

2009-06-26 16:18:40

Windows Emb

2014-06-19 13:59:55

2020-09-24 14:11:31

谷歌Google MapsCOVID-9

2021-12-19 22:34:45

Linux容器系统

2023-01-04 09:37:16

2011-09-08 09:24:34

Mac Widget监测系统iStatpro

2011-04-14 15:14:36

嵌入式操作系统嵌入式
点赞
收藏

51CTO技术栈公众号