经典文献阅读之--LVI-GS(3DGS、实时、LiDAR-视觉-惯性紧耦合建图框架)

LVI-GS:实时3D高斯SLAM框架

0. 简介

一些集成了 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则需要复杂的前端里程计和大量的关键帧维护。为了实现高保真度的地图构建,我们引入了一种基于金字塔的训练方法,以有效学习多层次特征,并结合来自激光雷达测量的深度损失,以提升几何特征的感知能力。通过精心设计的高斯图扩展、关键帧选择、线程管理和自定义CUDA加速策略,我们的框架实现了实时的照片级真实感地图构建。我们进行了数值实验,以评估我们的方法相较于最先进的三维重建系统的卓越性能。评估视频可在网站上找到。

1. 主要贡献

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

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

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

2. 方法

我们的框架通过两个并行线程实现完整的系统功能。一个线程负责里程计,而另一个线程则进行三维高斯的实时优化。这两个线程协同维护一个共享的超原语模块。在这两个线程之间,交换数据包括三维点云、相机位姿、相机图像和深度信息

在这里插入图片描述

图1:我们提出的LVI-GS系统概述。

3. 超原语(这里的表示方式其实是为了避免大量的关键点)

我们维护一个超原语模块,包含三维点云、体素和三维高斯。为了高效访问三维点云以进行三维高斯初始化,地图点被组织成固定大小的体素(例如,0.1 m x 0.1 m x 0.1 m)。体素的激活由最近添加的点的存在决定(例如,在过去的一秒内)。一个激活的体素表示最近有活动,而一个去激活的体素则表示没有最近的更新。此外,在视觉惯性里程计(VIO)模块中,如果点的投影或光度误差超过指定阈值,则会将其移除[32]。对于点云中的每个点,我们识别其在网格中的位置;如果该位置已经存在一个点,则将其丢弃。我们还调节每个体素内的点数,以保持受控的密度。通过这一初步过滤过程,随着里程计的进行,获得的点云避免了冗余的三维高斯的添加。

4. 三维高斯溅射(基础内容)

我们的场景表示为3DGS,使用一组各向异性高斯 G G G 进行映射。每个高斯包括不透明度 o ∈ [ 0 , 1 ] o \in [0,1] o[0,1]、中心位置 μ ∈ R 3 \mu \in \mathbb{R}^3 μR3、RGB颜色 c c c、半径 r r r 和三维协方差矩阵 Σ ∈ R 3 × 3 \Sigma \in \mathbb{R}^{3 \times 3} ΣR3×3。给定中心位置 μ \mu μ 和三维协方差矩阵 Σ \Sigma Σ,高斯分布定义为:

D ( x ) = exp ⁡ ( − 1 2 ( x − μ ) Σ − 1 ( x − μ ) T ) (1) D(x) = \exp\left(-\frac{1}{2} (x - \mu) \Sigma^{-1} (x - \mu)^T\right) \tag{1} D(x)=exp(21(xμ)Σ1(xμ)T)(1)

由于每个高斯形状都是一个椭球体,我们将三维高斯的协方差参数化为:

Σ = R S S T R T (2) \Sigma = R S S^T R^T \tag{2} Σ=RSSTRT(2)

其中 S ∈ R 3 S \in \mathbb{R}^3 SR3 是描述三维尺度的向量 R ∈ R 3 × 3 R \in \mathbb{R}^{3 \times 3} RR3×3 表示旋转矩阵。3DGS 通过迭代三维高斯进行光栅化,而不是沿着相机光线遍历,从而在渲染过程中忽略空白空间。鉴于3DGS利用体积渲染,因此不需要直接推导表面。相反,通过对 N N N三维高斯进行溅射和混合,确定一个像素的颜色 C p C_p Cp

C p = ∑ i ∈ N c i α i ∏ j = 1 i − 1 ( 1 − α j ) (3) C_p = \sum_{i \in N} c_i \alpha_i \prod_{j=1}^{i-1} (1 - \alpha_j) \tag{3} Cp=iNciαij=1i1(1αj)(3)

同样,使用相同的方法,我们也可以通过以下公式获得深度 D p D_p Dp

D p = ∑ i ∈ N d i α i ∏ j = 1 i − 1 ( 1 − α j ) (4) D_p = \sum_{i \in N} d_i \alpha_i \prod_{j=1}^{i-1} (1 - \alpha_j) \tag{4} Dp=iNdiαij=1i1(1αj)(4)

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

V p = ∑ i ∈ N α i ∏ j = 1 i − 1 ( 1 − α j ) (5) V_p = \sum_{i \in N} \alpha_i \prod_{j=1}^{i-1} (1 - \alpha_j) \tag{5} Vp=iNαij=1i1(1αj)(5)

其中最终的不透明度 α i \alpha_i αi学习到的不透明度 o i o_i oi 和高斯的乘积结果

α i = o i exp ⁡ ( − 1 2 ( x ′ − μ ′ ) Σ ′ − 1 ( x ′ − μ ′ ) T ) (6) \alpha_i = o_i \exp\left(-\frac{1}{2} (x' - \mu') \Sigma'^{-1} (x' - \mu')^T\right) \tag{6} αi=oiexp(21(xμ)Σ1(xμ)T)(6)

…详情请参照古月居

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敢敢のwings

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值