GS-SLAM论文阅读笔记-MGSO

前言

MGSO首字母缩略词是直接稀疏里程计(DSO),我们建立的光度SLAM系统和高斯飞溅(GS)的混合。这应该是第一个前端用DSO的高斯SLAM,不知道这个系统的组合能不能打得过ORB-SLAM3,以及对DSO会做出怎么样的改进以适应高斯地图,接下来就看一下吧!

G i s h e l l o G^s_ihello Gishello
我是红色


文章目录


1.背景介绍

  1. 然而,现有的基于3dgs的SLAM系统难以平衡硬件简洁性、速度和地图质量。大多数系统在上述的一个或两个方面表现出色,但很少能做到全部。一个关键问题是在同时进行SLAM时初始化高斯的困难。
  2. 传统上,SLAM系统提供语义差的地图表示,对定位和基本导航有效,但缺乏复杂任务所需的细节。解耦的稠密地图SLAM一个关键挑战是SLAM和密集重建组件之间缺乏协同作用。SLAM算法往往不能为高质量的密集重建提供最优数据,从而影响系统的整体性能。
  3. 3DGS通常需要一个初始点云来开始重建,更密集、结构良好的初始点云可以改善和更快地得到结果。然而,传统的基于特征的SLAM方法产生的稀疏点云对于3DGS初始化不是最优的。虽然RGB-D数据可以提供密集和精确的点云,但使用单目相机适用范围更广。
  4. 紧耦合方法在继续跟踪之前引入了对建图细化的依赖,从而导致性能降低。此外,目前大多数3DGS系统严重依赖深度数据来执行3D重建,这使得它们依赖于RGB-D传感器。虽然MGSO与Photo-slam最相似,,但我们解决了photoslam倾向于创建大型,内存效率低下的地图的问题。

2.关键内容

MGSO集成了两个并发操作的核心组件:负责精确姿态估计的SLAM模块和用于绘图的3D稠密重建模块。

2.1SLAM module

我们系统的跟踪主干是建立在直接稀疏里程计(Direct Sparse Odometry, DSO)的一系列视觉SLAM方法之上的。<>DSO的关键创新在于,与使用图像中的所有像素相比,用于光度跟踪的选择性像素采样提高了定位精度。我们之所以选择基于DSO,是因为我们发现它的像素选择策略也与初始化3DGS非常一致。DSO在连续帧 i 和 j 上跟踪一组像素,通过最小化跟踪的每个像素的光度损失方程来优化相机姿势p。

其中I查询像素强度,a和b是考虑光照变化的变量,s是相机曝光。该损失方程的基本原理是识别最匹配连续帧i和j之间像素强度变化的姿态变化。该方程适用于跟踪和建图级别。

在每一帧,我们的系统的跟踪过程计算相对于最新关键帧的姿态变化,假设一个固定的地图。只有在插入关键帧时才调整跟踪像素的建图。一个新的关键帧是一个参考帧,它捕获了相对于现有关键帧的场景的独特视图。当建图完成后,所有当前关键帧姿态和由跟踪像素点组成的地图都会被调整。然后,我们的系统将跟踪像素的地图转换为点云地图,并将其与关键帧姿势一起添加到稠密重建模块中。

我们采用DSO的窗口关键帧管理策略,当检测到视场、旋转或光照发生重大变化时,生成关键帧。如果关键帧的数量超过窗口大小(默认为8个),旧的关键帧将被删除,使用基于距离的评分来确保关键帧在3D空间中分布良好。

我们方法的灵感来自于对原始3DGS的最终3DGS高斯位置的分析(图3)。我们意识到最终地图的最终位置、颜色和高斯分布与DSO输出的点云相似。根据这一观察,我们推测用光度SLAM初始化3DGS会增强3DGS优化,因为它会减少所需的优化。

DSO结构良好的密集点云的一个主要方面是它的像素选择策略。DSO通过将图像分成块并在每个块中选择梯度阈值以上的最高梯度像素来进行像素选择。然后用更低的阈值和更大的块重复这个过程。该方法不仅可以在复杂区域跟踪更多的像素,而且可以保证在简单区域的像素选择。它与传统方法不同,传统方法通常只跟踪容易识别的特征,如角落和边缘。在图4中可以观察到这两种方法之间的差异。这很重要,因为我们观察到,虽然完成的3DGS地图在复杂区域有更多的高斯分布,但它们在非复杂区域仍然保持一些高斯分布。

此外,DSO跟踪具有高梯度的像素,这比可跟踪的特征点更常见。因此,DSO的输出点云更接近于完成3DGS地图的密度。我们的实验表明,虽然edso的像素选择密度是跟踪的最佳选择,但增加像素选择密度可以增强3DGS的性能,特别是在低梯度区域,这对跟踪具有挑战性。为了解决这个问题,我们修改了DSO,增加了不用于姿态估计的额外跟踪像素,以增加输出点云密度(图5)。这种修改允许系统具有跟踪和3DGS的最佳像素密度。尽管有这些增强功能,但具有最小或没有梯度的平坦区域仍然稀疏地填充有跟踪像素。这是因为DSO的像素跟踪系统至少需要一些梯度进行跟踪,因此,没有梯度的区域中的像素永远不会被跟踪。

我们观察到,在平面区域中初始化点稍微错位的情况下,3DGS的性能要优于没有初始化点的情况。因此,我们实现了一种插值方法,该方法基于附近的跟踪像素估计低梯度区域中的点位置。我们的方法采用Delaunay三角剖分算法,以跟踪像素为顶点将图像划分为一系列三角形。每个插值点的深度计算为三角形顶点的平均深度,这通常为平面上的像素提供准确的结果。虽然像Photo-SLAM这样的基于特征的系统也可以插值非活动的2D特征点,但我们的方法优于他们的方法,因为初始点计数更高,并且通过将插值集中在最准确的平坦区域。

2.2 Dense Reconstruction

MGSO采用3DGS作为密集重建方法。

在原始3DGS之后,我们使用一组各向异性高斯g来创建场景,每个高斯g都使用不透明度、旋转、位置、比例和颜色进行建模。我们遵循Mono-GS的技术,使用RGB而不是球面谐波来表示颜色,因为Mono-GS显示这种速度的提高对重建质量的影响最小。我们使用3DGS中引入的原始可微分瓷砖光栅化来渲染地图的RGB图像。利用梯度下降法优化每个高斯函数的参数,使光度损失L最小:

为了提高系统的速度,我们采用Photo-SLAM中引入的基于高斯金字塔的学习来逐步训练高斯映射。金字塔有助于加速现场视频场景的训练。通过对相机捕获的真地图像进行多次平滑和下采样,建立了一个多尺度高斯金字塔。光度损失计算从初始迭代中使用最高金字塔水平到随着训练的进展使用更低的金字塔水平。此外,我们使用了一个优化版本的3DGS CUDA后端,比原来的更快。

我们的自适应控制策略每1000次训练迭代就会周期性地对高斯分布进行密度化和剪枝处理,以提高地图质量。我们围绕SLAM模块返回的点云设计策略,类似于Photo-SLAM为ORBSLAM3量身定制策略。我们的SLAM系统生成的点云具有密度大、覆盖均匀的特点。

它们适应场景的复杂性,集中在复杂的区域,同时保持简单区域的代表性。当一个新的关键帧被处理时,我们用SLAM系统创建的点云中获取的位置和颜色初始化新的高斯函数。

然而,我们注意到在使用3DGS的致密化和修剪策略时出现了漂浮物。为了减轻飞蚊的存在,我们在AbsGS中采用了自适应控制策略。因此,作为自适应控制策略的一部分,我们通过分裂或克隆具有高同向视图空间位置梯度的高斯函数来周期性地致密化它们。大的、高方差的高斯分布被分割,而小的高斯分布在重建不足的区域被克隆。此外,我们定期修剪低不透明度的高斯分布,以去除透明的漂浮物。我们使用与原始3DGS相同的分裂和克隆参数。

3.文章贡献

  1. 一个实时密集SLAM系统,利用了光度SLAM和3DGS之间的协同作用。
  2. 我们的系统只需要一个单目摄像机。
  3. 实验表明,我们的系统具有其他稠密SLAM系统无法比拟的速度、地图质量和内存效率。

4.个人思考

  1. 对于文章说的,DSO生成的初始化点云比ORB-SLAM更好,我比较赞同。因为DSO是通过光度跟踪像素,会生成更结构化的点云。ORB-SLAM在弱纹理的情况下提取特征很少。
  2. 总的来说,作者使用了解耦的方法保证了SLAM的速度,又使用DSO获得一个更好的初始化点云,保证了建图的质量,最终得到了一个较好的结果。
相关推荐
黎宇幻生6 小时前
Java全栈学习笔记39
java·笔记·学习
遇印记10 小时前
大二java学习笔记:二维数组
java·笔记·学习
bnsarocket11 小时前
Verilog和FPGA的自学笔记6——计数器(D触发器同步+异步方案)
笔记·fpga开发·verilog·自学·硬件编程
LK_0712 小时前
【Open3D】Ch.3:顶点法向量估计 | Python
开发语言·笔记·python
li星野13 小时前
打工人日报#20251011
笔记·程序人生·fpga开发·学习方法
摇滚侠13 小时前
Spring Boot 3零基础教程,yml配置文件,笔记13
spring boot·redis·笔记
QT 小鲜肉13 小时前
【个人成长笔记】在Ubuntu中的Linux系统安装 anaconda 及其相关终端命令行
linux·笔记·深度学习·学习·ubuntu·学习方法
QT 小鲜肉13 小时前
【个人成长笔记】在Ubuntu中的Linux系统安装实验室WIFI驱动安装(Driver for Linux RTL8188GU)
linux·笔记·学习·ubuntu·学习方法
急急黄豆13 小时前
MADDPG学习笔记
笔记·学习
Chloeis Syntax14 小时前
栈和队列笔记2025-10-12
java·数据结构·笔记·