GS-SLAM论文阅读笔记-MGSO

news2024/11/28 16:49:14

前言

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

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


文章目录

  • 前言
  • 1.背景介绍
  • 2.关键内容
    • 2.1SLAM module
    • 2.2 Dense Reconstruction
  • 3.文章贡献
  • 4.个人思考


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获得一个更好的初始化点云,保证了建图的质量,最终得到了一个较好的结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2189435.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【有啥问啥】SE(Squeeze-and-Excitation)架构详解

SE&#xff08;Squeeze-and-Excitation&#xff09;架构详解 在深度学习&#xff0c;特别是计算机视觉领域&#xff0c;卷积神经网络&#xff08;CNN&#xff09;的发展日新月异。为了进一步提升CNN的特征提取能力和模型性能&#xff0c;研究者们不断探索新的网络架构和组件。…

向量数据库|第1期|从零开始学习

向量数据库|第1期|从零开始学习 1、向量数据库中的基本概念 1.1 什么是余弦 余弦函数是一种三角函数&#xff0c;在直角三角形中&#xff0c;某个锐角的余弦为&#xff1a;临边与斜边的比值&#xff0c;如下图cosAb/c。引申到任意三角形中&#xff0c;即余弦定理&#xff1a;…

2024年7月大众点评全国酒吧前百名城市分析

在做一些城市分析、学术研究分析、商业选址、商业布局分析等数据分析挖掘时&#xff0c;大众点评的数据参考价值非常大&#xff0c;截至2024年7月&#xff0c;大众点评美食店铺剔除了暂停营业、停止营业后的最新数据情况分析如下。 分析研究的字段维度包括大众点评数字id、字母…

LSM6DSV16X基于MLC智能笔动作识别(3)----MEMS Studio训练数据

LSM6DSV16X基于MLC智能笔动作识别.3--MEMS Studio训练数据 概述视频教学样品申请源码下载硬件准备选择MEMS导入数据配置窗口长度和量程配置滤波器选择特征数据设备树生成决策树生成参考程序转换UCF文件 概述 MEMS-Studio是一套完整的桌面软件解决方案&#xff0c;专为开发嵌入…

认知杂谈98《抵御噪声干扰》

内容摘要&#xff1a; “能量掠夺”是指他人负面言行对我们情绪和心理状态的不良影响&#xff0c;使我们感到沮丧或愤怒。这种影响可能源于我们内心对自身价值认同的不坚定&#xff0c;以及过分在意他人的看法。 要避免能量掠夺&#xff0c;我们需要建立心理防线&#xff0c;学…

Xilinx Vitis IDE启动时失去响应的解决办法

在启动Xilinx Vitis IDE时&#xff0c;有时候会遇到卡死的情况&#xff0c;无论是直接启动还是从Vivado的菜单中启动都一样。参考Xilinx官网的解决办法&#xff1a;&#xff08;一直到2023.1版本都是可以解决的&#xff0c;之后的版本没测过。&#xff09; Widget (amd.com) …

Leetcode—279. 完全平方数【中等】

2024每日刷题&#xff08;169&#xff09; Leetcode—279. 完全平方数 实现代码 class Solution { public:int numSquares(int n) {vector<int> dp(n 1, n);dp[0] 0;dp[1] 1;for(int i 2; i < n; i) {for(int j 1; j * j < i; j) {dp[i] min(dp[i], dp[i -…

Oracle中ADD_MONTHS()函数详解

文章目录 前言一、ADD_MONTHS()的语法二、主要用途三、测试用例总结 前言 在Oracle数据库中&#xff0c;ADD_MONTHS()函数用于在日期中添加指定的月数。 一、ADD_MONTHS()的语法 ADD_MONTHS(date, n) 其中&#xff0c;date是一个日期值&#xff0c;n是一个整数值&#xff0c…

C语言高阶【2】--动态内存管理【2】--柔性数组(这是个全新的知识点,不想了解一下吗?)

本章概述 柔性数组总结C/C中程序内存划分彩蛋时刻&#xff01;&#xff01;&#xff01;&#xff01; 柔性数组 数组这个东西&#xff0c;我想大家应该都不陌生了吧。但是&#xff0c;柔性数组这个东西可能你是第一次听说。 柔性数组概念&#xff1a;在C99之前是没这个东西的…

基于Flux的文生高清图片

Flux模型生成的图片画质极佳&#xff0c;改进修复了手的问题&#xff0c;支持字体生成和排版&#xff0c;训练参数大&#xff0c;风格多样&#xff0c;分辨率弹性好&#xff0c;embedding通用性好&#xff0c;不需要输入负面提示词。 安装ComfyUI ComfyUI下载安装 下载和配置…

计算机网络:计算机网络概述 —— 网络拓扑结构

文章目录 网络拓扑总线型拓扑特点缺陷 星型拓扑特点缺陷 环型拓扑特点缺陷 网状型拓扑优点缺陷 树型拓扑特点缺陷 网络拓扑 网络拓扑指的是计算机网络中节点&#xff08;计算机、交换机、路由器等&#xff09;之间物理或逻辑连接的结构。网络拓扑定义了节点之间的布局、连接方…

方法重载(Overload)

前言 在前面的学习中&#xff0c;我们学到了重写(Override),这里我们主要进行重载(Overload)的介绍&#xff0c;同时对重写和重载的区别进行分析。 1. 重载(Overload) #方法重载 在同一个类中定义多个同名但参数不同的方法。我们称方法与方法之间构成方法重载 在Java中&…

【宽搜】1. 层序遍历模板讲解

题目描述 题目链接&#xff1a;N叉树的层序遍历 层序遍历流程 请仔细阅读下图&#xff1a; 根据上图的流程&#xff0c;下面再明确几个问题&#xff1a; 1. 为什么要使用队列&#xff1f; 队列是先进先出的数据结构&#xff0c;在数的层序遍历中&#xff0c;需要先将节点p…

Pikachu-Sql Inject-宽字节注入

基本概念 宽字节是相对于ascII这样单字节而言的&#xff1b;像 GB2312、GBK、GB18030、BIG5、Shift_JIS 等这些都是常说的宽字节&#xff0c;实际上只有两字节 GBK 是一种多字符的编码&#xff0c;通常来说&#xff0c;一个 gbk 编码汉字&#xff0c;占用2个字节。一个…

【C++打怪之路Lv6】-- 内存管理

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;C打怪之路&#xff0c;python从入门到精通&#xff0c;数据结构&#xff0c;C语言&#xff0c;C语言题集&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持创作博文(平均质量分82)&#…

软考鸭微信小程序:助力软考备考的便捷工具

一、软考鸭微信小程序的功能 “软考鸭”微信小程序是一款针对软考考生的备考辅助工具&#xff0c;提供了丰富的备考资源和功能&#xff0c;帮助考生提高备考效率&#xff0c;顺利通过考试。其主要功能包括&#xff1a; 历年试题库&#xff1a;小程序内集成了历年软考试题&…

PyTorch实现卷积神经网络CNN

一、卷积神经网络CNN 二、代码实现&#xff08;PyTorch&#xff09; 1. 导入依赖库 import torch from torch import nn, optim from torchvision import datasets, transforms from torch.utils.data import DataLoader nn&#xff1a;包含了torch已经准备好的层&#xff0c…

Pikachu-Unsafe Fileupload-服务端check

MIME MIME是Multipurpose Internet Mail Extensions &#xff08;多用途互联网邮件扩展类型&#xff09;的缩写&#xff0c;用来表示文件、文档、或字节流的性质和格式。是设定某种扩展名的文件用一种应用程序来打开的方式类型&#xff0c;当该扩展名文件被访问的时候&#xff…

论文阅读笔记-A Comparative Study on Transformer vs RNN in Speech Applications

前言 介绍 序列到序列模型已广泛用于端到端语音处理中,例如自动语音识别(ASR),语音翻译(ST)和文本到语音(TTS)。本文着重介绍把Transformer应用在语音领域上并与RNN进行对比。与传统的基于RNN的模型相比,将Transformer应用于语音的主要困难之一是,它需要更复杂的配…

【hot100-java】【分割回文串】

回溯篇 class Solution {//ret是需要返回的结果//path是回溯过程中的记录private final List<List<String>> retnew ArrayList<>();private final List<String> path new ArrayList<>();private String s;public List<List<String>>…