经典文献阅读之--RGBD GS-ICP SLAM(结合ICP和3D GS构建最快的稠密SLAM)

news2024/11/30 20:50:31

0. 简介

同时定位与地图构建(SLAM)的密集表示在机器人技术、虚拟现实(VR)和增强现实(AR)应用中扮演了关键角色。在密集表示SLAM的最新进展中,利用神经场景表示和3D高斯表示以实现高保真的空间表示显示出巨大潜力。在本文中,我们提出了一种结合广义迭代最近点(G-ICP)和3D高斯涂抹(3DGS)的新型密集表示SLAM方法。与现有方法不同的是,我们使用单个高斯地图同时进行跟踪和绘图,从而带来相互利益。通过在跟踪和映射过程中交换协方差,并结合规模对齐技术,我们最小化了冗余计算并实现了一个高效的系统。此外,我们通过关键帧选择方法提高了跟踪精度和映射质量。实验结果证明了我们方法的有效性,显示出整个系统高达107 FPS的惊人速度和重建地图的卓越质量。相关代码可以在GIthub中找到。

1. 主要贡献

G-ICP和3DGS可以共享同一个高斯世界。因此,我们的系统通过在跟踪和映射过程中相互利用关键元素——高斯分布,最小化不必要的计算并促进高效的系统配置。为了确保在跟踪和映射中共享G-ICP和3DGS之间的信息时获得最佳性能,我们还引入了若干技术,如规模对齐。总结来说,我们的贡献如下:

  1. 我们提出了一个实时的密集表示SLAM,结合了G-ICP和3DGS,实现了整个系统的极高速度(高达107 FPS)和地图的优越质量。
  2. 通过将G-ICP用于跟踪,我们的系统积极利用3D信息,显著减少了跟踪过程所需的时间。
  3. 通过共享G-ICP和3DGS的协方差以及采用规模对齐技术,实现了计算成本的降低和3DGS原语的快速收敛。

2. 主要工作

为了相互增益跟踪和映射,我们引入了G-ICP和GS的融合,分别代表跟踪和映射过程。我们方法的关键洞察是,协方差可以被视为这种融合的一个基本共同因素。假设我们有一个点集(点云) X = { x m } m = 1 , . . . , M X = \{x_m\}_{m=1,...,M} X={xm}m=1,...,M其对应的协方差集 C = { C m } m = 1 , . . . , M C = \{C_m\}_{m=1,...,M} C={Cm}m=1,...,M,其中 x = [ x , y , z ] T x = [x, y, z]^T x=[x,y,z]T。一个3D点x的协方差 C C C是通过计算 x x x k k k 最近邻点的协方差矩阵得到的。【点云认为是均值,和协方差 C C C组成连续的3D表示】让我们定义 G = { X , C } G = \{X, C\} G={X,C}作为一组高斯分布。G-ICP旨在找到一个变换 T T T最大限度地对齐源高斯分布(当前帧) G s = { X s , C s } G^s = \{X^s, C^s\} Gs={Xs,Cs}目标高斯分布(地图) G t = { X t , C t } G^t = \{X^t, C^t\} Gt={Xt,Ct}。假设我们知道由最近邻搜索确定 X s X_s Xs X t X_t Xt之间的对应关系。例如,我们有 { x i s } i = 1 , . . . , N ⊂ X s \{x^s_i\}_{i=1,...,N} ⊂ X^s {xis}i=1,...,NXs, { C i s } i = 1 , . . . , N ⊂ C s \{C^s_i\}_{i=1,...,N} ⊂ C^s {Cis}i=1,...,NCs { x i t } i = 1 , . . . , N ⊂ X t \{x^t_i\}_{i=1,...,N} ⊂ X^t {xit}i=1,...,NXt, { C i t } i = 1 , . . . , N ⊂ C t \{C^t_i\}_{i=1,...,N} ⊂ C^t {Cit}i=1,...,NCt,其中 x i s x^s_i xis x i t x^t_i xit相关联。为了找到最优变换 T ∗ T^* T,我们不是利用单个点,而是利用该点定义为高斯分布的分布: x i ∼ N ( x ^ i , C i ) x_i ∼ N(\hat{x}_i, C_i) xiN(x^i,Ci)。让 d i = x i t − T x i s d_i = x^t_i − T x^s_i di=xitTxis 是误差项,如果我们假设存在一个最优变换 T ∗ T^* T,很明显 x i t = T ∗ x i s x^t_i = T^*x^s_i xit=Txis,因此 d ^ i = 0 \hat{d}_i = 0 d^i=0。由于我们假设 x x x是一个高斯随机变量, d i d_i di也是一个高斯随机变量,如下所示:

在这里插入图片描述

为了找到 X s X^s Xs X t X^t Xt 的最优变换 T ∗ T^* T,我们按照如下方法使用最大似然估计(MLE):

在这里插入图片描述

因此, T ∗ T^* T 可以用作当前帧 G s = { X s , C s } G^s = \{X^s, C^s\} Gs={Xs,Cs} 和地图 G t = { X t , C t } G^t = \{X^t, C^t\} Gt={Xt,Ct} 之间的相对位置。同时,为了映射目的,GS 也依赖于3D场景表示的高斯 G = { X , C } G = \{X, C\} G={X,C}。与 G-ICP 不同,GS 的目标是找到高斯 X ∗ = { x m ∗ } m = 1 , . . . , M X^* = \{x^*_m\}_{m=1,...,M} X={xm}m=1,...,M 的最优坐标和最优协方差 C ∗ = { C m ∗ } m = 1 , . . . , M C^* = \{C^*_m\}_{m=1,...,M} C={Cm}m=1,...,M,具体如下【优化迭代部分】:

在这里插入图片描述

其中, H = { h m } m = 1 , . . . , M H = \{h_m\}_{m=1,...,M} H={hm}m=1,...,M O = { o m } m = 1 , . . . , M O = \{o_m\}_{m=1,...,M} O={om}m=1,...,M 是用于** RGBD 图像渲染的 3D 点的颜色集合和不透明度集合**。 I I I D D D 是通过使用 G G G H H H O O O 进行光栅化得到的渲染的 RGB 和深度图像。请注意,在 G-ICP 和 GS 中,关键的共同因素是高斯函数 G = { X , C } G = \{X , C\} G={X,C},允许这些高斯函数相互共享。在 G-ICP 跟踪过程中,计算了每帧的协方差。因此,当添加关键帧以扩展 3D GS 地图时,无需为每次扩展重新计算 C C C。此外,G-ICP 不需要计算地图的协方差,因为我们的 GS 地图已经包含了高斯函数。此外,通过根据 3D 几何结构对帧进行对齐,G-ICP 在初始化一定数量的点及其坐标时 inherently 初始化了一定数量的点及其坐标,这些点和姿势适合描述 3D 结构。因此,它带来了一个效果,其中适当数量的点及其姿势被初始化,非常适合描述 3D 结构,大大减少了寻找最佳姿势 X ∗ X^* X 和高斯函数 G G G 在 GS 中的最佳协方差 C ∗ C^* C 的学习时间。另外,在同样的思路下,像稠密化或不透明度重置之类的计算来调整 GS 中的 3D 点数变得不必要。因此,通过共享一个共同的来源,每个过程变得相互有益,并且由于减少了冗余计算,执行速度加快。我们的方法可以简化如下:

  1. 使用 G-ICP 将当前帧与包含协方差的 3D GS 地图对齐(仅需要计算当前帧的协方差)。
  2. 当向 3D GS 地图添加关键帧时,在跟踪期间利用 GICP 计算的协方差(无需稠密化或不透明度重置)。
  3. 重复步骤 1-2。

…详情请参照古月居

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

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

相关文章

Redis拒绝连接问题分析与解决方案

目录 前言1. 问题描述2. Redis拒绝连接的常见原因分析2.1 Redis服务未启动2.2 Redis配置中的绑定地址问题2.3 防火墙或安全组问题2.4 Redis连接池耗尽2.5 Redis服务器负载过高2.6 权限配置问题 3. 深度解决方案和优化建议4. 总结 前言 在分布式系统中,Redis作为高性…

【WRF工具】QGis插件GIS4WRF:根据嵌套网格生成namelist.wps文件

【WRF工具】QGis插件GIS4WRF:根据嵌套网格生成namelist.wps文件 准备:WRF嵌套网格QGis根据嵌套网格生成namelist.wps文件检查:根据namelist.wps绘制模拟区域参考GIS4WRF 是一个免费且开源的 QGIS 插件,旨在帮助研究人员和从业者进行高级研究天气研究与预报(WRF)模型的建模…

Java面试题———SpringBoot篇

目录 1、项目中为什么选择SpringBoot 2、SpringBoot的自动装配原理 3、SpringBoot的核心注解是哪个 4、SpringBoot中的starter是干什么的 5、SpringBoot可以有哪些方式加载配置 6、bootstrap.yml和application.yml有何区别 7、SpringBoot读取配置的方式有几种 8、Spring…

基于Springboot+Vue的出租车服务管理系统(含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 包括管…

mysql查看和修改默认配置

1.查看最大连接数 SELECT max_connections; 或者 SHOW VARIABLES LIKE max_connections;2.查看当前连接的客户端 SHOW PROCESSLIST;2.临时设置最大连接数 SET GLOBAL max_connections 500;3.临时设置连接客户端交互超时时间 SET GLOBAL interactive_timeout 1800;4.永久生…

英国放弃了一个领地 却连累.io域名也要消失了

或许,哥几个听说过. io 这个域名吗?常年鼓捣技术的差友应该更清楚,.io 这个域名在圈子里的受欢迎程度。因为 io ,或者说 I/O ,在计算机领域是 Input/Output ( 输入 / 输出 )的缩写,而…

面试题:Redis(五)

1. 面试题 面试问 记录对集合中的数据进行统计 在移动应用中,需要统计每天的新增用户数和第2天的留存用户数; 在电商网站的商品评论中,需要统计评论列表中的最新评论; 在签到打卡中,需要统计一个月内连续打卡的用户数&…

Java实现八种排序

目录 分类 直接插入排序 希尔排序 选择排序 堆排序 冒泡排序 快速排序 挖坑法 hoare法 双指针法 优化 非递归实现 归并排序 非递归实现 计数排序 分类 这里的排序可以分为两大类, 基于比较的排序非基于比较的排序 其中有七种基于比较的排序&…

.NET 一款读取Excel文件敏感数据的工具

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

【机器学习】智能聊天机器人——基于自然语言处理的智能对话系统

1. 什么是自动化客户服务与智能聊天机器人? 自动化客户服务是一种通过技术手段自动处理客户问题的服务方式,能够在无需人工干预的情况下为客户提供即时、准确的帮助。这种服务通常依托智能系统,通过预设的响应机制或学习历史数据&#xff0c…

数电(编码器、数据分配器、数据选择器)

目录 一、编码器: 1.二进制编码器: 三、优先编码器(Priority Encoder) 1.二-十进制优先编码器 二、数据分配器和数据选择器(功能正好相反) 1.数据分配器 2.数据选择器 一、编码器: 1.二进制编码器: …

【Linux系统编程】第三十二弹---动态库实战指南:从零构建与高效集成的奥秘

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、动态库 1.1、怎么做动态库 1.2、怎么使用动态库 2、外部库使用 1、动态库 1.1、怎么做动态库 方式一 1、将.c文件编…

创客项目秀|基于XIAO ESP32C3的Night Lamp With Chinese Traditional Pane项目

Fab Academy,源自麻省理工学院的先进教育项目,致力于培养具有全球视野的创新者和制造者。通过密集学习和实践,学生们掌握了从基础到高级的制造技术,学习了如何将创意转化为现实。今天小编给大家带来的是Fab academy学员Dion Tsang…

前端全栈混合之路Deno篇:Deno2.0与Bun对比,谁更胜一筹?或者说谁更适合怎样的项目

在前端全栈开发中,工具的不断演变让开发者们始终在寻找更高效、更现代化的解决方案。继Node.js之后,Deno和Bun 成为了两个比较火热的运行时。Deno2.0的近期的发布让它在性能和兼容性方面大幅提升-尤其是兼容了npm包(但我感觉应该不是全部兼容…

如何给低代码平台取名?命名策略与技巧全解析

低代码平台正日益成为企业数字化转型的重要工具。为了确保您的平台能够脱颖而出,吸引到更多的用户和开发者,选择一个恰到好处的名字至关重要。本文将探讨如何为您的低代码平台选择一个既独特又易于记忆的好名字,并详细介绍一系列行之有效的命…

第二百七十九节 JPA教程 - JPA查询IN一对多示例

JPA教程 - JPA查询IN一对多示例 以下JPQL显示如何在一对多映射中使用IN运算符。 executeAndPrintQuery("SELECT DISTINCT p FROM Employee e, IN(e.directs) p");例子 下面的代码来自Department.java。 package cn.w3cschool.common;import java.util.ArrayList; …

中药药材推荐系统

毕业设计还在发愁选题?又想实用又怕复杂?那这篇介绍你一定感兴趣! 今天为大家推荐一个基于Django框架开发的中药药材推荐系统,简洁易用,功能丰富,非常适合毕业设计。无论你是技术经验丰富的开发人员&#…

praat语音标注

一、软件下载 praat软件下载链接 下载后双击 二、软件界面

【机器学习】朴素贝叶斯算法|商品评论情感分析案例介绍及代码实现

文章目录 朴素贝叶斯算法朴素贝叶斯算法介绍概率数学基础复习朴素贝叶斯算法-利用概率值进行分类的一种机器学习算法贝叶斯公式朴素贝叶斯算法拉普拉斯平滑系数 朴素贝叶斯API案例分析流程数据集代码实现运行结果 朴素贝叶斯算法 朴素贝叶斯算法介绍 概率数学基础复习 条件概…

扇形旋转切换效果(等级切换转盘)

实现动态扇形旋转切换效果&#xff0c;切换进度支持渐变效果 效果展示 在线示例 https://code.juejin.cn/pen/7425559403589271588 源码实现 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"v…