【论文解读】CP-SLAM: Collaborative Neural Point-based SLAM System_神经点云协同SLAM系统(下)

目录

4 CP-SLAM实验

4.1 两个智能体协作( Two-agent Collaboration)

 4.2 单智能体回环(Single Agent with Loop)

4.3  地图构建(Map Reconstruction)

4.4 消融实验

姿态图优化(Pose Graph Optimization)

地图细化(Map Refinement)

采样浓度(Sampling Concentration)

神经点密度(Neural Point Density)

内存和运行时分析(Memory and Runtime Analysis)

5 CP-SLAM 结论


接上篇

【论文解读 】CP-SLAM: Collaborative Neural Point-based SLAM System_神经点云协同SLAM系统(上)-CSDN博客文章浏览阅读2次。基于隐式神经网络的协同SLAM系统,包括完整的前端和后端模块,包括里程计、循环检测、子地图融合和全局优化。为了在一个统一的框架中实现所有这些模块,文章提出了一种新颖的基于神经网络的三维场景表示方法,其中每个点维护一个可学习的神经特征用于场景编码,并与特定的关键帧相关联。此外,我们提出了一种分布式到集中式的学习策略,用于协同隐式SLAM,以提高一致性和合作。还提出了一种新颖的全局优化框架,类似于传统的捆绑调整,以提高系统的准确性。https://blog.csdn.net/qq_35831906/article/details/134423466?spm=1001.2014.3001.5501a261d76cd2124ac8880a3687ada7b6c0.png

4 CP-SLAM 实验

        CP-SLAM系统支持单一智能体和多智能体模式。因此,我们在两个方面评估了我们提出的协作SLAM系统,即带有闭环的单一智能体实验和包含不同大小和复杂性的两个智能体实验。

        对于单一智能体方面,我们基于Replica [35]场景生成数据集,然后将我们的方法与最近的神经和传统RGB-D SLAM方法进行比较。对于两个智能体方面,由于迄今为止还没有出现协作神经SLAM工作,我们的方法与传统方法进行比较。我们还进行了消融研究,以展示所提出系统中各模块的重要性。

实施细节(Implementation Details)

        CP-SLAM系统在NVIDIA RTX3090 GPU上运行RGB-D序列。在两个智能体实验中,我们需要额外的RTX3090作为中央服务器。为了在推断期间对原始邻居特征fi和相对距离∥pi−x∥施加位置编码,我们使用1和7的顺序。我们利用FRNN库在GPU上查询K = 8个最近邻居。在我们的所有实验中,我们设置Nnear = 16,Nuni = 4,λ1 = 0.2,Dl = 0.001m,r = 0.15m,ρ = 0.14m,M1 = 3000,M3 = 3136,M2 = 1500。我们每50帧提取一个关键帧,并每10帧执行一次地图优化和点云补充。对于单一智能体实验,我们对神经场进行200次迭代的优化。对于两个智能体实验,考虑到锚定在神经点上的特征在子图融合后无需从头开始训练,我们将迭代步骤的数量减少到150。更多的实现细节可以在我们的补充材料中找到。

基线(Baselines)

        在单一智能体实验中,由于我们使用了渲染的闭环数据,我们主要选择最先进的神经SLAM系统,如NICE-SLAM [50],Vox-Fusion [44]和ORB-SLAM3 [4],以在闭环数据集上进行比较。对于两个智能体实验,我们将我们的方法与传统方法进行比较,例如CCM-SLAM [33],Swarm-SLAM [17]和ORB-SLAM3 [4]。

数据集(Datasets)

        为了进行重建评估,我们使用了合成数据集Replica [35],配备了高质量的RGB-D渲染SDK。我们生成了8个RGB-D序列的集合,其中4个代表单一智能体轨迹,每个包含1500个RGB-D帧。其余的4个集合设计用于协作SLAM实验。每个集合分为2部分,每个部分包含2500帧,其中Office-0-C每部分包含1950帧。

指标(Metrics)

        作为一种密集的神经隐式SLAM系统,我们定量和定性地测量其制图和跟踪能力。对于制图,我们评估了从我们的神经点场渲染的196个均匀采样的深度图与地面实况深度图之间的L1损失。此外,在3D三角网格方面,我们计算了网格重建精度。对于跟踪,我们使用ATE RMSE,均值和中值综合测量轨迹准确性,以防止极端异常值造成的负面影响。

        ATE RMSE代表平均轨迹误差的均方根误差(Root Mean Square Error)。ATE是Absolute Trajectory Error(绝对轨迹误差)的缩写,表示实际轨迹和估计轨迹之间的平均距离误差。

        RMSE是均方根误差,是一种用于度量估计值与真实值之间差异的指标。它通过计算误差的平方、取平均值,再开平方根来得到。对于轨迹误差,RMSE提供了平均误差的度量,即平均轨迹误差的平方根。

        在SLAM系统的评估中,ATE RMSE通常用于衡量SLAM算法对相机轨迹的准确性。它表示在整个轨迹上,实际相机轨迹和SLAM系统估计的相机轨迹之间的平均距离误差的均方根值。ATE RMSE的值越小,表示SLAM系统的相机轨迹估计越准确。

4.1 两个智能体协作( Two-agent Collaboration)

        我们提供了在四个场景(包括Replica [35]的Apartment-0、Apartment-1、Apartment-2(多房间)和Office-0-C(单房间))上进行的两个智能体实验的定量结果。我们选择RGB-CAM-SLAM [33]、RGBD-CAM-SLAM [17]和传统的ORB-SLAM3 [4]进行比较。表1报告了不同方法的定位准确性。

e188aa9425bf496180cec33a00d05216.png

        在复杂的多房间序列中,尽管受到环境的影响,提出的系统通常比其他方法表现更好。

        值得注意的是,ORB-SLAM3并不是一个协作SLAM系统。它缺乏同时处理多个序列的能力,因此无法克服在场景探索中的效率瓶颈。

        具体而言,我们将多个图像序列连接起来,输入到ORB-SLAM3中,利用其用于多序列处理的“atlas”策略。

        此外,可以看到CCM-SLAM在一些场景中失败,因为传统的基于RGB的方法在无纹理环境中特别容易出现特征匹配问题。

8fbb0b0164ef47b8a2ec0987ec316886.png

        图5展示了每个智能体的轨迹。一旦两个子图被融合,只需要进行低成本的微调,就可以将两个神经场和相应的MLP调整到一个共享的域中。然后,这两个智能体可以重复使用彼此的先前观测并继续进行准确的跟踪。共享的MLP、神经场以及接下来的全局位姿图优化使CP-SLAM系统成为一个紧密协作的系统。

 4.2 单智能体回环(Single Agent with Loop)

        在表2中,我们展示了我们的系统在单智能体模式下在4个回环闭环数据集上的定位性能。我们的方法在定位性能上明显优于最近的方法,包括基于NeRF的方法和传统方法,这主要归功于前端和后端处理的并发集成,以及神经点表示的引入。

efe214c0332b4123a2c01815a4001247.png

        在定性方面,我们在图6中展示了NeRF-based方法在Room-0-loop和Office-3-loop上的轨迹。实验结果表明,围绕采样点的密度能量的集中程度对神经SLAM至关重要。

ba6177ec622043bbab9fcfc280cf9f65.png         NICE-SLAM [50]使用密集的体素网格,其中包含大量的空白空间,并且在这些空白空间中的采样点几乎没有贡献梯度传播。

        Vox-Fusion [44]引入了一个重要的修改,实现了一个根据特定场景定制的稀疏网格,而不是一个密集的网格。然而,网格节点只能大致放置在物体附近,这对于跟踪是不利的。

        在我们的基于神经点的方法中,我们确保神经场很好地适应了真实场景。特征嵌入可以准确地包含场景信息。集中分布的采样点和基于神经点的表示为姿势反向传播提供了更精确的梯度,使我们能够在更低的分辨率和内存使用率下超越NICE-SLAM和Vox-Fusion。

        此外,我们在TUM-RGBD真实世界数据集上进行了实验,与Co-SLAM [39]和ESLAM [12]进行了比较。表3中的结果表明,我们的方法在真实世界环境中也取得了最先进的性能,并且回环检测和位姿图优化对于真实世界场景同样有效。

5e1cc2ecc5c64d51a8cb1d583ee8b86e.png

4.3  地图构建(Map Reconstruction)

        表4中的结果对比了我们提出的系统与NICE-SLAM [50]和Vox-Fusion [44]在几何重建方面的定量分析。

a8d8ec5c13a646c9a80bd3358dff9ecf.png

        在我们的方法中,我们在整个预测轨迹中的每10帧渲染深度图和彩色图,并利用TSDF-Fusion(Open3D [49]库中的内置函数)构建网格地图。

        在NICE-SLAM中,用于地图评估的有深度L1损失、网格准确性、完成度和完成度比等多个指标。

        在我们的回环数据集中,场景并没有完全被扫描到,导致了网格重建中的空洞。因此,我们的比较实验主要关注深度L1损失和网格准确性。

8400868390eb4330a11415670e6c7468.png

        图7在定性上比较了三种方法的单智能体重建结果,并展示了我们的协作映射结果。显然,我们的方法在所有数据集上都实现了更详细的几何重建。

4.4 消融实验

        我们对我们系统中的一些模块和设计进行了检查,以证明它们的重要性和我们流程的合理性。

姿态图优化(Pose Graph Optimization)

        在这一部分,我们对PGO模块进行了消融实验。

表1和表2分别报告了我们单一智能体和双智能体情况下的带PGO和不带PGO的结果。在PGO模块的帮助下,单一智能体实验中的平均定位精度下降了10%,而双智能体实验中的下降了13%。

3e82cdb2ac414c508c5ecd900f1792c9.png

25f0b356bac14b76b9affbc2c4fe1f83.png

地图细化(Map Refinement

        如图8(a)所示,我们在MeshLab中定性地展示了地图细化前后的神经点云布局。我们可以观察到,经过细化的神经点云更好地适应了地面真实的网格。

1e26709e12684cf68008d6430d91aff2.png

采样浓度(Sampling Concentration)

        采样点附近的密度浓度是决定神经SLAM性能的关键点。我们在Replica Room-0-Loop序列上设计了一组不同采样间隔长度的实验。

        如图8(b)所示,随着采样点逐渐分散,跟踪精度和深度L1损失持续下降至1.0厘米和0.6厘米。这个实验证明了第4.2节中的理论。

神经点密度(Neural Point Density

        在CP-SLAM中,我们采用了一个固定大小的立方体单元格,在过滤策略中调整神经点,即只保留距离一个立方体单元格中心最近的神经点。为了进一步探讨点云密度对跟踪精度的影响,我们在原始的Replica Room0场景中比较了不同尺寸的立方体网格的性能。

表5中的消融研究结果表明,当神经点数量较小时,由于场景表示不足,它们不足以编码详细的场景几何和颜色。相反,过多的神经点显然会延长学习时间以收敛。

aa7a952b350541a0b02a47bfa47d82a7.png

        我们经验性地发现,在我们的实验中,对于不同复杂性的所有测试场景,设置ρ = 14cm一直表现良好。

内存和运行时分析(Memory and Runtime Analysis

        我们在Replica Office-0-loop场景上评估了我们系统的运行时和内存消耗,与NICE-SLAM和Vox-Fusion进行了比较。我们报告了单帧跟踪和映射时间、MLP的大小以及整个神经场的内存占用量。表6中NICE-SLAM中巨大的特征大小是由于其密集的分层特征网格。

aec58a4243cc40ac8cfcbfd291a5784b.png

5 CP-SLAM 结论

        本文提出的CP-SLAM,这是第一个基于新颖的神经点表示的稠密协作神经SLAM框架,它保留了完整的前端和后端模块,就像传统的SLAM系统一样。

        系统的流程使我们的框架在定位和重建方面胜过了现有方法。

        我们方法的一个局限性是它需要大量的GPU资源来处理多个图像序列

        此外,我们的系统在未观察到的区域中的孔洞填充能力略弱于基于特征网格的方法,这是因为神经点分布在观察到的对象表面周围,在固定半径球内编码周围场景信息。

        此外,环路闭合中的相对姿态计算依赖于现有的基于渲染的优化,对于大视角变化可能不准确,从而导致地图融合漂移。因此,未来可以设计一个轻量级系统,进行从粗到细的姿态估计,这是一个有趣的方向。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

nginx学习(2)

Nginx 反向代理案例2 1. 实现效果 实现效果:使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中 nginx 监听端口为 8001, 访问 http://127.0.0.1:8001/edu/ 直接跳转到 127.0.0.1:8081 访问 http://127.0.0.1:8001/vod/ 直接跳转到 …

从傅里叶变换,到短时傅里叶变换,再到小波分析(CWT),看这一篇就够了(附MATLAB傻瓜式实现代码)

本专栏中讲了很多时频域分析的知识,不过似乎还没有讲过时频域分析是怎样引出的。 所以本篇将回归本源,讲一讲从傅里叶变换→短时傅里叶变换→小波分析的过程。 为了让大家更直观得理解算法原理和推导过程,这篇文章将主要使用图片案例。 一…

【深度学习】pytorch快速得到mobilenet_v2 pth 和onnx

在linux执行这个程序: import torch import torch.onnx from torchvision import transforms, models from PIL import Image import os# Load MobileNetV2 model model models.mobilenet_v2(pretrainedTrue) model.eval()# Download an example image from the P…

人生阶段总结

--回顾一下我迷茫、努力、不开心又失败的阶段人生自我介绍一下,我是一个智力平平,记忆力差,适合自学的长睡眠者。 大专之前 国内的应试教育基本上不适合我,厌恶补课厌恶机械式听课刷题,所有的优势学科都是自学&#xf…

Python hashlib 模块详细教程:安全哈希与数据完整性保护

更多Python学习内容:ipengtao.com 大家好,我是涛哥,今天为大家分享 Python hashlib 模块详细教程,文章6500字,阅读大约17分钟,大家enjoy~~ hashlib模块为Python提供了一种简便的方式来使用各种哈希算法&…

vue2 tinymce富文本插件

一、介绍 TinyMCE是一款易用、且功能强大的所见即所得的富文本编辑器。同类程序有:UEditor、Kindeditor、Simditor、CKEditor、wangEditor、Suneditor、froala等等。 TinyMCE的优势: 开源可商用,基于LGPL2.1插件丰富,自带插件基…

航天联志Aisino-AISINO26081R服务器通过调BIOS用U盘重新做系统(windows系统通用)

产品名称:航天联志Aisino系列服务器 产品型号:AISINO26081R CPU架构:Intel 的CPU,所以支持Windows Server all 和Linux系统(重装完系统可以用某60驱动管家更新所有硬件驱动) 操作系统:本次我安装的服务器系统为Serv…

瑞吉外卖Day06

1.用户地址 1.1实体类 /*** 地址簿*/ Data public class AddressBook implements Serializable {private static final long serialVersionUID 1L;private Long id;//用户idprivate Long userId;//收货人private String consignee;//手机号private String phone;//性别 0 女…

安装应用与免安装应用差异对比

差异 安装的程序和免安装的应用程序之间有以下几个方面的差别: 安装过程:安装的程序需要通过一个安装程序或安装脚本进行安装。这个过程通常会将应用程序的文件和依赖项复制到指定的目录,并进行一些配置和注册操作。免安装的应用程序则不需要…

HP惠普暗影精灵9笔记本电脑OMEN by HP Transcend 16英寸游戏本16-u0000原厂Windows11系统

惠普暗影9恢复出厂开箱状态,原装出厂Win11-22H2系统ISO镜像 下载链接:https://pan.baidu.com/s/17ftbBHEMFSEOw22tnYvPog?pwd91p1 提取码:91p1 适用型号:16-u0006TX、16-u0007TX、16-u0008TX、16-u0009TX、16-u0017TX 原厂系…

element ui修改select选择框背景色和边框色

一、修改时间输入框的背景和边框字体颜色 <div class"hright"><el-date-picker :popper-append-to-body"false" class"custom-timeselect" v-model"form.timevalue" type"daterange" range-separator"至"…

SpringBoot-过滤器Filter+JWT令牌实现登录验证

登录校验-Filter 分析 过滤器Filter的快速入门以及使用细节我们已经介绍完了&#xff0c;接下来最后一步&#xff0c;我们需要使用过滤器Filter来完成案例当中的登录校验功能。 我们先来回顾下前面分析过的登录校验的基本流程&#xff1a; 要进入到后台管理系统&#xff0c;我…

Web前后端漏洞分析与防御

第1章 课程介绍 试看2 节 | 15分钟 介绍安全问题在web开发中的重要性&#xff0c;并对课程整体进行介绍 收起列表 视频&#xff1a; 1-1 Web安全课程介绍 (09:24) 试看 视频&#xff1a; 1-2 项目总览 (04:47) 第2章 环境搭建2 节 | 26分钟 本章节我们会搭建项目所需要的环境 …

Linux上使用Python源码编译安装Python

安装python apt install python3-dev python3 python3-venv yum install python38-devel源码安装Python 1.下载需要的Python版本 Python源码地址&#xff1a;https://www.python.org/downloads/source/ 2.安装gcc&#xff08;yum install gcc&#xff09; 3.解压&#xff0c…

vim模式用法总结

0.前言 我们用gcc编译文件的时候&#xff0c;如果发生了下面的错误&#xff0c;那么如何用vim打开的时候就定位到&#xff1f; 我们可以知道&#xff0c;这是第6行出现了错误&#xff1b; 所以我们使用vim打开的时候多输入个这个&#xff0c;我们就可以快速定位了 vim test.c 6…

一阶低通滤波器(一阶巴特沃斯滤波器)

连续传递函数G(s) 离散传递函数G(z) 转换为差分方程形式 一阶巴特沃斯滤波器Filter Designer参数设计&#xff1a;参考之前的博客Matlab的Filter Designer工具设计二阶低通滤波器 设计采样频率100Hz&#xff0c;截止频率20Hz。 注意&#xff1a;设计参数使用在离散系统中&…

03.webpack中hash,chunkhash和contenthash 的区别

hash、contenthash 和 chunkhash 是通过散列函数处理之后&#xff0c;生成的一串字符&#xff0c;可用于区分文件。 作用&#xff1a;善用文件的哈希值&#xff0c;解决浏览器缓存导致的资源未及时更新的问题 1.文件名不带哈希值 const path require(path) const HtmlWebpac…

键盘方向键移动当前选中的table单元格,并可以输入内容

有类似于这样的表格&#xff0c;用的<table>标签。原本要在单元格的文本框里面输入内容&#xff0c;需要用鼠标一个一个去点以获取焦点&#xff0c;现在需要不用鼠标选中&#xff0c;直接用键盘的上下左右来移动当前正在输入的单元格文本框。 const currentCell React.u…

简单漂亮的首页

效果图 说明 这个首页我也是构思了很久&#xff0c;才想出这个界面&#xff0c;大家喜欢的话&#xff0c;可以拿走去使用 技术的话&#xff0c;采用的就是vue的语法&#xff0c;但是不影响&#xff0c;很多样式我都是直接手敲出来的 代码实现 标语 <!-- 标语 start-->&…

《QT从基础到进阶·三十》QVariant的基础用法

很多时候&#xff0c;需要几种不同的数据类型需要传递&#xff0c;如果用结构体&#xff0c;又不大方便&#xff0c;容器保存的也只是一种数据类型&#xff0c;而QVariant则可以统统搞定。 QVariant可以保存QT和C常用类型&#xff0c;如果是自定义类型&#xff0c;比如struct,c…