GS-SLAM论文阅读笔记--TAMBRIDGE

news2024/11/15 7:52:27

前言

本文提出了一个自己的分类方法,传统的视觉SLAM通常使用以帧为中心的跟踪方法,但是3DGS作为一种高效的地图表达方法好像更侧重于地图的创建。这两种方法都有各自的优缺点,但是如果能取长补短,互相结合,那么就会是一个不错的工作。本文就是这样描述的。我比较好奇,ORB-SLAM3与高斯融合最终能达到什么样的效果。
在这里插入图片描述


文章目录

  • 前言
  • 1.背景介绍
  • 2.关键内容
    • 2.1 即插即用的融合连接模块
    • 2.2 在线3DGS重建
    • 2.3总体流程
  • 3.文章贡献
  • 4.个人思考


1.背景介绍

  1. 三维高斯溅射(3DGS)对运动模糊和相机噪声的鲁棒性有限,实时性差,限制了其在机器人SLAM任务中的应用。经过分析,产生这些问题的主要原因是运动模糊视图的密度和基于噪声原始图像和渲染结果计算损失的密集姿态估计累积误差,增加了3DGS渲染收敛的难度。
  2. 以帧为中心、稀疏和有效的信息可以提高定位精度,但缺乏对整个场景的高层次理解。相反,以地图为中心的、密集的和全局的信息有助于构建全局一致的地图。因此,挑战的实质在于这两个方面的矛盾:高效而稀疏,密集而嘈杂。
  3. 真实传感器的随机噪声和不断增加的视角重叠是影响绘制收敛速度的两个主要障碍,尤其是在长时间机器人任务中。因此,利用以跟踪为中心的SLAM的局部最优姿态来提供稳健的初始估计。通过联合优化稀疏重投影和稠密渲染误差,有效降低了图像噪声的影响。

什么是tracking-centered 与 mapping-centered 方法?

优先考虑定位精度的方法被称为“tracking-centered”的方法,而那些专注于高保真映射的方法被称为“ mapping-centered ”的方法。最初,由于计算能力的限制,以跟踪为中心的方法成为研究的焦点,因为它们在定位方面具有高实时性、准确性和鲁棒性。然而,这些方法往往缺乏一致的场景理解能力。

随着计算能力的发展,mapping-centered的方法通过对场景表示的明智选择和处理逐渐解决了收敛问题。同时,这些范式的运行效率也在稳步提高。一个重要的进步是采用神经辐射场(NeRF),它利用隐式神经网络进行全局一致的表示,并结合光线投射三角测量进行高保真渲染和新颖的视图合成。然而,神经网络推理和密集的逐像素优化计算的大量计算需求挑战了基于nerf的SLAM方法在真实机器人场景中对传感器噪声和运动模糊的鲁棒性。
最近,3D高斯喷溅(3DGS)利用高斯原语,既可解释又可编辑,作为场景的全局一致表示。该方法通过高斯溅射实现了更快速、可微分的栅格化渲染,并生成了更高保真度的新视图。

2.关键内容

2.1 即插即用的融合连接模块

如下图所示的融合bridge过程由五个部分组成:

  1. 视点选择
  2. Tracking-centered Encoder
  3. 3DGS-centered Encoder
  4. Filter Gate
  5. 联合优化

这个过程的目的是最小化由视觉测程生成的稀疏点云与用于高斯飞溅的后端之间的差距,特别是具有选定视点的3DGS,以获得合适的稀疏姿态进行重建。

视点选择:包括通过筛选关键帧之间的共视性关系来选择有利的视点进行渲染。两帧之间的共视性应在一个封闭的间隔内,平衡足够的匹配点以计算重投影误差,并保持视点之间足够的多样性。
在这里插入图片描述其中Ri表示是否选择当前关键帧i进行重构(1表示是,0表示否)。 M i − 1 M_{i−1} Mi1,i对匹配的特征点进行计数。 M i − 1 M_{i−1} Mi1,i是前一个关键帧中的匹配总数,它与α一起设置了最大匹配的百分比阈值,而β指定了选择所需的最小匹配。(这是一个简单的判断关键帧公式情况,也相当于优化了一下关键帧选择策略吧)。

Tracking-centered Encoder:对视觉里程计生成的稀疏点云进行编码,增强基于鲁棒特征的跟踪姿态的锚定效果。通过从渲染帧的局部地图中重新投影可见地图点。

3DGS-centered Encoder:对用于高斯飞溅的3DGS进行编码,其中局部仿射变换将这些各向同性(注意,作者也采用了各向同性,就是球不是椭圆)的3D高斯投影到相机平面上,然后使用alpha-blending算法渲染颜色和深度图像,得到渲染损失 L r g b L_{rgb} Lrgb L d e p t h L_{depth} Ldepth。此外,根据高斯的不透明度信息计算反映渲染像素p的不确定性的边界掩码 M b ( p ) M_b(p) Mb(p),如下所示:
在这里插入图片描述

Filter Gate:在优化过程中消除噪声。作者分为两个部分,深度门从点云和高斯分布中滤除深度异常。边界门根据边界蒙版过滤掉具有高不确定性的渲染像素:
在这里插入图片描述
其中G§表示是否选择当前像素p进行优化(1表示是,0表示否)。 D c ( p ) D_c(p) Dc(p) D g ( p ) D_g(p) Dg(p)为云点深度,像素p处的高斯分布。γ为p的最小边界掩模值的阈值。

联合优化:采用基于深度和颜色的渲染误差和基于特征坐标的重投影误差交替优化:
在这里插入图片描述
其中,L表示集合损失,包括点云特征的重投影损失 L r p j L_{rpj} Lrpj、高斯颜色Lc的渲染损失和深度Ld。系数w1、w2和w3分别表示这三种损失的权值超参数。

2.2 在线3DGS重建

在线3DGS重建方法使用稀疏帧和通过Fusion Bridge模块过滤的边界蒙版实现近实时重建。目前,基于3DGS的SLAM通常采用增量致密化,将当前帧中的未重构像素初始化为新的3DGS,这标志着在线和离线3DGS的关键区别。
致密化:边界蒙版之外的像素重构不足,缺乏稳健的高斯表示,需要进行致密化。在第一帧期间,从该帧中选择所有像素进行重建。在重建过程中,在像素平面上以一个像素长度的半径添加新的高斯函数,如式8所示,其中f表示焦距。
在这里插入图片描述
高斯修剪:更新高斯参数后,不透明度低于零或过高的高斯值在渲染过程中被移除,因为它们被认为是冗余或对重建没有贡献:
在这里插入图片描述
其中 P ( p ) P(p) P(p)表示像素P是否被修剪(1表示是,0表示否),τ为不透明度阈值。

2.3总体流程

该工作的前端使用以跟踪为中心的前端模块获得初始姿态估计,并使用ORB视觉里程计模块计算关键帧序列,类似于ORB- slam3。并且通过全局优化模块通过局部建图和闭环后的全局BA来优化最终轨迹。即插即用融合融合连接模块利用共可视性从关键帧序列中进一步选择重建帧,并通过最小化重新投影误差和颜色深度渲染误差,共同优化渲染位姿和边界蒙版。在线3DGS后端模块使用重构帧和边界蒙版的位姿,几乎实时地构建高保真,全局一致的高斯场景表示。
在这里插入图片描述

3.文章贡献

  1. 强调了精确的姿态初始化和好的视点选择对促进在线3DGS的收敛,特别是在大场景任务中的意义。
  2. 引入了即插即用的Fusion Bridge模块,将以跟踪为中心的SLAM前端与以在线3dgs为中心的后端无缝集成。

4.个人思考

  1. 这篇文章并没有提出新的东西,前端讲解了部分ORB-SLAM流程,在建图部分也只是把高斯的流程讲解了一边。
  2. 本文的创新在于设计了一个即插即用的Fusion Bridge模块,但我阅读完整篇文章,我觉得这个创新大部分是对阈值进行一些简单的调整,有些过于简单了。

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

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

相关文章

STM32精确控制步进电机

目的:学习使用STM32电机驱动器步进电机,进行电机运动精确控制。 测试环境: MCU主控芯片STM32F103RCT6 ;A4988步进电机驱动器模块;微型2相4线步进电机10mm丝杆滑台,金属丝杆安装有滑块。 10mm二相四线微型…

我的AI工具箱Tauri版-FasterWhisper音频转文本

本教程基于自研的AI工具箱Tauri版进行FasterWhisper音频转文本服务。 FasterWhisper音频转文本服务 是自研AI工具箱Tauri版中的一款模块,专门用于将音频或视频中的语音内容自动转化为文本或字幕。通过简单的配置,该工具能够批量处理大量音频或视频文件&…

高密原型验证系统解决方案(下篇)

0 引言 我们在上篇中和大家探讨了用户在进行大规模 复杂 SoC 设计原型验证时在全局时钟及复位同步, 大规模设计分割以及高速接口与先进 Memory 控制 器 IP 验证等方面遇到的关键困难,并提出了相应的 解决方案帮助用户来克服这些困难。接下来我们会 和用户…

OpenCV运动分析和目标跟踪(2)累积操作函数accumulateSquare()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 将源图像的平方加到累积器图像中。 该函数将输入图像 src 或其选定区域提升到2的幂次方,然后加到累积器 dst 中: dst ( …

计算机毕业设计之:基于微信小程序的共享充电桩系统的设计与实现

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

通信工程学习:什么是TLS传输层安全协议

TLS:传输层安全协议 TLS(Transport Layer Security)传输层安全协议是一种用于在两个通信应用程序之间提供保密性、数据完整性以及真实性的安全协议。它是SSL(Secure Sockets Layer)协议的后继者,继承并增强…

通信工程学习:什么是TMN电信管理网

TMN:电信管理网 TMN,全称Telecommunications Management Network,即电信管理网,是为保持电信网正常运行和提供服务,对它进行有效的管理所建立的软硬件系统和组织体系的总称,是现代电信网运行的支撑系统之一…

2024/9/22 leetcode 128题 283题

目录 128.最长连续序列 题目描述 题目链接 解题思路与代码 题目2 题目描述 题目链接 解题思路与代码 128.最长连续序列 题目描述 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请…

秩一的等价转化

Lemma 2. For a positive semi-definite Hermitian matrix A ∈ C M M \mathbf{A}\in\mathbb{C}^{M\times M} A∈CMM, the condition Rank ( A ) 1 \left(\mathbf{A}\right)1 (A)1 is equivalent to t h e following conditions the\textit{ following conditions} the fol…

使用GPU 加速 Polars:高效解决大规模数据问题

Polars 最近新开发了一个可以支持 GPU 加速计算的执行引擎。这个引擎可以对超过 100GB 的数据进行交互式操作能。本文将详细讨论 Polars 中DF的概念、GPU 加速如何与 Polars DF协同工作,以及使用新的 CUDA 驱动执行引擎可能带来的性能提升。 Polars 核心概念 Polar…

最新 idea 2024 入门使用详细教程

IntelliJ IDEA:这是一款由JetBrains公司开发的Java集成开发环境(Integrated Development Environment),被广泛认为是目前Java开发者最好的集成开发工具之一。它支持Java、Groovy、Kotlin等多种编程语言,并且提供了丰富…

语言RPA流程组件介绍--获取网页信息

🚩【组件功能】:获取浏览器中显示网页的网页标题、源代码、网址、编码等信息 配置预览 配置说明 获取 网页源代码/标题/网址/编码 iframe 支持T或# 若获取的信息是框架iframe中的信息,需要手动填写框架名称,框架使用方法:框架…

[数据结构与算法·C++] 笔记 1.4 算法复杂性分析

1.4 算法复杂性分析 算法的渐进分析 数据规模 n 逐步增大时, f(n)的增长趋势当 n 增大到一定值以后,计算公式中影响最大的就是 n 的幂次最高的项其他的常数项和低幂次项都可以忽略 大O表示法 函数f,g定义域为自然数,值域非负实数集定义: …

[数据结构与算法·C++] 笔记 1.5类与对象

类与对象 类的概念 一个东西满足这个类的特征 -> 这个东西是这个类的一个实例 -> 实例化共同特点(变量)->构成数据结构归纳行为(函数)->操作数据结构(抽象)可理解为在结构体中加入函数 类的定义 看上去像“带函数的结构体” class Rectangle { public:int w, h;…

会声会影2025视频剪辑教学

会声会影2025是一款超级受欢迎的视频播放软件,用于剪辑和编辑各种类型的视频素材。软件具有直观的用户界面,使得即使对于初学者来说也能轻松上手。该软件提供了各种创意工具,可以帮助用户实现他们的创意想法。用户可以裁剪、合并和重新排列视…

【C++】类和对象(下)相关练习

1. 求123...n 题目要求和,但是像循环,递归,求和公式这样的方法都不让用,这种情况下我们最先想到的就是static成员变量的使用。我们每创建一个类对象就会调用一下构造函数,加上static修饰后出局部作用域不会销毁&#x…

【Java集合】深入了解ArrayList实现原理

概述 1.数据存储是基于动态数组实现的,默认初始容量为10。 2.添加数据时,首先需要检查元素个数是否超过数组容量,如果超过了则需要对数组进行扩容(1.5倍);插入数据时,需要将从插入点 k 开始到数…

【FPGA】编程方式

FPGA编程方式 1 什么是PLD?2 什么是颗粒度?3 可编程逻辑器件的编程方式有哪些?3.1 SRAM 编程技术3.2 Flash/EEPROM 编程技术3.3 反熔丝编程技术3.4 编程技术比较 参考资料 1 什么是PLD? 可编程逻辑器件 英文全称为:pr…

使用 Terminator 的广播功能,其他窗口中输入的字母会加倍重复

现象 比如我在窗口中输入的是 ls -l,那么其他广播中的其他窗口输入的则会变成 llss --ll。 看大神们的分析,造成这个的原因可能是由于 ibus 中的一个 bug。而不是 Terminator 软件的问题。而且总会在新的 ibus 版本中出现问题,所以作者已经放…

构建与优化自定义进程池

1. 什么是进程池? 简单来说,进程池就是预先创建固定数量的工作进程,通过设计任务队列或调度算法来分配任务给空闲的进程 —— 实现“负载均衡”。 2. 进程池框架设计 枚举错误返回值: enum {UsageError 1,ArgError,PipeError };…