港大ArcLab最新LVI-GS:结合3DGS、实时、LiDAR-视觉-惯性紧耦合建图框架!

科技   2024-11-13 22:43   上海  


点击上方“计算机视觉life”,选择“星标”

快速获得最新干货

扫码 立减30长按二维码

领券加入即可开始学习~3天内无条件退款

购买后务必加客服领取其他权益和加交流群


3D高斯泼溅 为什么能一直火?有哪些应用场景?

香港大学开源的这个激光雷达惯性SLAM,太强了!

一招掌握3DGS基础视觉三维重建!深度计算+点云处理+网格重建优化+纹理贴图!

谷歌这个SLAM开源方案,造福了整个机器人行业!


以下内容来源:3D视觉之心

3DGS SLAM的难点

传统的 SLAM 系统使用地标、点云、占据栅格、符号距离函数(SDF)体素网格或网格来表示环境。其中,点云是由摄像头和 LiDAR 等传感器直接获取的简单场景表示。基于点云的 SLAM 系统能够实现精确定位,并可以构建稀疏或稠密的地图,但这些地图通常缺乏丰富的视觉细节。

NeRF 使用辐射场隐式地表示场景,通过优化连续的体积场景函数来实现,这种方式所需的存储量极少。然而,由于这些系统涉及大量的优化过程,难以实现实时性能。此外,将地图存储在多层感知器(MLP)中带来了灾难性遗忘和边界限制等问题,这些问题会阻碍场景重建。

3D 高斯分布(3DGS)提供了一种令人兴奋的替代方案,通过可微的 3D 高斯形状的原语来连续且适应性地表示 3D 场景。作为一种半隐式的建图方法,它在牺牲部分新视图合成功能的情况下,显著加快了优化和渲染速度。尽管基于优化,3DGS 的特性与点云和表面元素云类似,因而继承了其高效性、本地化和适应性等优点——这些特性对 SLAM 建图非常有利。在 1080p 分辨率下,3DGS 渲染速度可达 200 帧每秒,并且可以使用点云进行初始化,从而能够利用传统 SLAM 系统生成的稀疏或稠密点云来生成高保真图像。

一些集成了 3D 高斯的 SLAM 方法显示出了良好的效果。例如,SplaTAM、MonoGS、GS-SLAM和 Photo-SLAM使用序列的 RGB-D 或 RGB 数据来构建完整的 SLAM 系统。然而,这些技术在具有挑战性的光照条件、复杂背景和快速运动的非受控户外大规模环境中遇到了困难。尽管 LiDAR 为 3D 高斯提供了高质量的几何初始化,在户外环境中通常比摄像头更为稳健,但将其集成到 SLAM 系统中带来了独特的挑战。LIV-Gaussianmap和 LetsGo使用 LiDAR 初始化 3D 高斯,而 Gaussian-LIC结合了 LiDAR-惯性-摄像头的设置来实现综合的 3D 高斯构建。然而,LIV-Gaussianmap和 LetsGo等系统仅限于离线处理,而 Gaussian-LIC则需要复杂的前端里程计和大量的关键帧维护。

LVI-GS[1]的项目链接: https://kwanwaipang.github.io/LVI-GS/

主要贡献

  1. 开发并实现了一个复杂的实时 LVI-GS 系统,能够维护一个动态的超原语模块。该系统利用 3D 高斯分布在三维空间中执行高质量、实时的渲染,从而确保了复杂环境的高效准确表示。

  2. 为了进一步提升系统的性能和可扩展性,采用了粗到细的地图构建方法。此方法利用 RGB 图像和深度图像的金字塔结构,在不同细节层次上逐步优化地图。此外,实施了一种先进的线程管理技术,以优化计算效率,从而确保在处理大型数据集时的实时操作顺畅。

  3. 为了改善地图表示和渲染质量,设计了一个稳健的关键帧管理策略,能够有效地选择和处理关键帧。此外,通过将深度损失纳入系统,增强了 3D 高斯地图的准确性,实现了更精确的重建和视觉上更优的渲染效果。

具体方法

框架通过两个并行线程来实现完整的系统功能:

  • 一个线程处理里程计
  • 另一个线程进行 3D 高斯的实时优化。

这两个线程协同维护一个共享的超原语模块。在这两个线程之间,交换的数据包括 3D 点云、相机姿态、相机图像和深度信息。

超原语

我们维护一个超原语模块,其中包括 3D 点云、体素和 3D 高斯分布。为了高效访问用于 3D 高斯初始化的 3D 点云,地图点被组织为固定大小的体素(例如,0.1 米 x 0.1 米 x 0.1 米)。体素的激活状态取决于最近添加的点的存在(例如,过去一秒内)。激活的体素表示最近有活动,而非激活的体素则表示没有近期更新。

此外,在视觉-惯性里程计 (VIO) 模块中,如果点的投影或光度误差超过指定阈值,则该点会被移除。对于点云中的每个点,我们识别其在网格中的位置;如果该位置已有点存在,则该点会被丢弃。我们还会控制每个体素中的点数以维持密度的稳定性。通过这种初始过滤过程,在里程计进行过程中,所获得的点云避免了 3D 高斯的冗余添加。

3D 高斯分布投影

我们的场景表示采用 3D 高斯分布,通过一组各向异性的高斯体 来进行建图。每个高斯体包含不透明度 、中心位置 、RGB 颜色 、半径 和 3D 协方差矩阵 。给定中心位置 和 3D 协方差矩阵 ,高斯分布定义为:

由于每个高斯体的形状为椭球体,我们将 3D 高斯的协方差参数化为:

其中, 为描述 3D 尺度的向量, 表示旋转矩阵。不同于沿相机光线进行的遍历,3D 高斯分布投影通过迭代 3D 高斯体进行光栅化,从而在渲染过程中忽略空白区域。由于 3DGS 采用体积渲染,因此无需直接导出表面,而是通过投影和混合多个 3D 高斯体的叠加,得到像素的颜色

同样地,我们可以使用相同的方法获得深度

我们还渲染出一个可见性图像,用于确定当前像素的可见性:

其中,最终的不透明度 是学习到的不透明度 与高斯体的乘积:

其中坐标 都在投影空间中。

我们的最终目标是将 3D 高斯体投影到二维平面上进行渲染,以获得高保真图像,这一过程通常被称为“投影”。当我们获得传感器的位姿变换 ([Q_{iw}, T_{iw}])(从图像到世界的转换)后,3D 高斯体()可以被投影为二维高斯体():

其中, 为投影变换的雅可比矩阵的线性近似, 分别为传感器姿态的旋转和平移部分。

关键帧管理

我们通过超原语模块获取点云,将每 个点与相应的相机姿态和图像打包成一个单帧,以便后续选择。所有带颜色的 LiDAR 点用于初始化 3D 高斯体。我们在图像上进行关键帧选择,评估那些没有运动模糊的图像。如果图像的旋转或平移超过指定的阈值,则该图像被添加为关键帧,加入关键帧序列:

此外,对于每一个新添加的关键帧,我们评估其与先前关键帧的视觉重叠。如果重叠超过指定阈值,表明相似度较高,则该帧被视为冗余,不会加入序列。此外,我们还为高斯体的添加设定了过滤标准。我们从当前关键帧的视点计算累计不透明度,选择满足透明度要求的 3D 高斯体。如果 ,则过滤掉该点。

在使用所有关键帧的带颜色 LiDAR 点进行 3D 高斯体初始化之前,我们引入一个缓冲容器来延迟关键帧序列的整合到地图中。此延迟可防止由前一帧初始化的高斯体的不透明度快速降至可剔除的阈值,从而确保 3D 高斯体可以从后续帧的视点被观察到,从多个角度进行训练。

基于金字塔的训练

在我们的大规模 3D 高斯场景表示中,我们采用渐进训练方法来优化 3D 高斯场的训练效率,同时保持渲染质量。通过在不同分辨率下使用颜色和深度图像,我们构建了颜色和深度图像的金字塔,从而通过逐步细化的细节层次来改进训练过程。具体来说,我们将高斯地图划分为多尺度表示,以捕获不同层次的细节。输入的颜色和深度图像经过多次下采样,使我们能够从粗到细逐步训练 3D 高斯体。

在训练过程中,我们优先使用低分辨率数据来优化粗略细节。在一定数量的迭代后,我们逐渐减少下采样级别,最终使用原始输入分辨率来完成训练。该方法确保了训练的高效性,同时在各个细节层次上保持了 3D 高斯场景的高质量表示。

在此公式中, 表示金字塔的层级, 表示渲染的颜色图像, 表示渲染的深度图像, 表示颜色图像的金字塔, 表示深度图像的金字塔。

高斯建图

在接收每一个关键帧后,我们初始化 3D 高斯体。对于第一个帧,我们处理整个点云,将点的 3D 坐标作为 3D 高斯体的中心。我们计算每个点到原点的平方欧氏距离,以确保最小值,防止距离为零。使用反 Sigmoid 函数初始化不透明度参数。对于颜色信息,我们初始化一个张量来存储从点云颜色数据中提取的特征,其中 RGB 通道对应于球谐系数。尽管我们采用了球谐函数 (SH),但初始的 SH 阶数设置为 0。随着优化迭代次数和关键帧数量的增加,SH 阶数逐步提升,以更好地适应多个视角,最大不超过 3。

我们将每个接收到的关键帧作为子地图进行一次优化。随后,在管理关键帧序列时,每接收一个新帧,我们会随机打乱所有关键帧,并随机选择一个帧进行优化。为了确保每个关键帧在优化时的一致性并保持地图的完整性,我们为每个关键帧设置了优化迭代次数的上限。达到该上限的关键帧会从关键帧序列中移除。

我们通过最小化图像损失 和几何损失 来优化 3D 高斯体的参数,包括旋转、缩放、密度和球谐系数 (SH)。

图像损失包含亮度误差和图像结构相似性(SSIM)误差:

几何损失定义为渲染深度 与 LiDAR 测量的深度 之间的 损失:

实验效果

总结一下

LVI-GS是一种利用 3D 高斯分布 (3DGS) 的 LiDAR-视觉-惯性紧耦合 SLAM 系统,用于实时的高保真场景重建和渲染。我们的方法结合了 LiDAR 和图像数据,使其能够捕捉精确的几何结构和细致的视觉信息,即使在具有挑战性的户外环境中也表现出色。通过有效集成高斯地图扩展、关键帧管理、线程管理和基于 CUDA 的加速策略,我们的系统在保持高质量建图的同时实现了显著的计算效率。

大量实验表明,LVI-GS 在各种复杂场景中,在渲染质量和效率方面都优于现有的 RGB 或 RGB-D 基于 3DGS 的 SLAM 系统。我们的消融实验进一步验证了基于金字塔的训练和深度损失对提升地图表示准确性的优势。

未来工作:将探索集成更多传感器类型,并进一步优化该框架,以更广泛地应用于实时机器人和 AR/VR 环境中。

参考

[1] LVI-GS: Tightly-coupled LiDAR-Visual-Inertial SLAM using 3D Gaussian Splatting


推荐教程

2025秋招,上来就问3D Gaussian Splatting。。。

香港大学开源的这个激光雷达惯性SLAM,太强了!

一招掌握3DGS基础视觉三维重建!深度计算+点云处理+网格重建优化+纹理贴图!

谷歌这个SLAM开源方案,造福了整个机器人行业!

重大变革!NeRF和3D高斯喷溅如何重塑SLAM?

发顶会顶刊不再难!多传感器融合SLAM、生成式AI、3DGS、NeRF、标定等方向

这个开源框架,造福了无数卫星定位研究者和初创公司!

BOSS:用了机器人仿真,立省几十万

自动驾驶中的GNSS、RTK到底多重要?

太强了!世界第一款开源的自动驾驶一体化框架Autoware!(附交流群)

如何从零开始搭一套自己的SLAM系统?

17讲全部上线!全网首个详解深度学习特征开源算法SuperPoint和SuperGlue(附交流群)

最炸裂的机器人AI技术教程都在这了!


计算机视觉life
聚焦计算机视觉、机器人SLAM、自动驾驶、AR领域核心技术。系统学习教程官网cvlife.net
 最新文章