论文阅读:Long-Term Visual Simultaneous Localization and Mapping

论文摘要指出,为了在长期变化的环境中准确进行定位,提出了一种新型的长期视觉SLAM(同步定位与地图构建)系统,该系统具备地图预测和动态物体移除功能。系统首先设计了一个高效的视觉点云匹配算法,将2D像素信息和3D体素信息有效融合。其次,使用贝叶斯持久性过滤器对地图点进行静态、半静态和动态分类,并移除动态点以消除其影响。通过对半静态地图点的时间序列建模,可以获得全局预测地图。最后,将预测的全局地图整合到先进的SLAM方法中,从而实现了一种适用于长期动态环境的高效视觉SLAM系统。通过在室内环境中对轮椅机器人进行数月的广泛实验,结果表明该方法在地图预测精度和定位性能方面优于现有方法。

论文中实现的算法过程主要包括以下几个步骤:

  1. 视觉点云匹配算法:设计一个算法来高效地融合2D像素信息和3D体素信息。

  2. 地图点分类:使用贝叶斯持久性过滤器(BPF)将每个地图点分类为静态、半静态和动态。

  3. 动态地图点移除:移除动态地图点以消除它们对地图的影响。

  4. 全局预测地图:通过对半静态地图点的时间序列建模来获得一个全局预测地图。

  5. 系统集成:将预测的全局地图整合到现有的SLAM方法中,以提高长期动态环境下视觉SLAM系统的效率。

  6. 实验验证:通过在室内环境中对轮椅机器人进行数月的实验,验证了方法的有效性,并展示了该方法在地图预测精度和定位性能方面相较现有方法的优越性。

此外,论文还提出了一种基于长短期指数模型的预测方法,以更准确地预测半静态地图点的未来状态,并定义了一个新的3D地图点描述符,用于在不同时间序列的地图中匹配地图点。通过贝叶斯持久性过滤和生存分析,可以计算每个地图点在时间序列中的生存函数,并据此预测其未来状态。

根据文中描述,动态地图点的移除过程如下:

  1. 使用贝叶斯持久性过滤器(Bayesian Persistence Filter,BPF)对每个地图点进行分类,将它们分为静态、半静态和动态。

  2. 识别出的动态地图点通常是在单次机器人遍历的短时间内出现并快速移动的,例如周围移动的人类。

  3. 动态地图点的移除是为了消除这些点对地图的影响,这样做可以通过多次访问同一地点来检测到并移除这些点。

  4. 文章中提出的系统使用BPF来移除环境中的动态地图点。首先,通过追踪每个地图点的观察情况来准确使用持久性过滤器。

  5. 在追踪观察模块中,可以追踪相应地图点的所有观察情况来更新持久性过滤器。当新的帧到达时,将当前帧中的关键点与候选地图点匹配。

  6. 如果地图点匹配,则在此时间戳中被定义为存活,并将“命中观察”分配给持久性过滤器。否则,地图点被定义为在此时间戳中死亡,并将“未命中观察”分配给持久性过滤器。

  7. 对于持久性概率低于某一阈值的地图点,将其视为动态地图点并从地图中移除。

  8. 如果一个地图点在多个帧中都没有被观察到,就不能立即定义为动态地图点。每个地图点与观察它的关键帧中的一些关键点相对应。当移除一个地图点时,将相应的关键点设置为“不可用”。

通过以上步骤,系统能够有效地移除影响地图准确性的动态地图点,从而提高了SLAM系统在长期动态环境下的表现。

论文中将预测的全局地图整合到现有SLAM方法中的过程主要包括以下几个步骤:

  1. 局部地图构建:使用局部地图构建线程获取环境的精确地图。

  2. 地图整合:依照ORB-SLAM3方法,将局部地图合并入全局地图中。这一步骤确保了在动态环境中对地图进行持续更新。

  3. 重定位算法:使用重定位算法来获取对应的光度信息,并利用迭代最近点(Iterative Closest Point,ICP)算法得到匹配的地图点云,这是为了在不同的会话之间获取准确的机器人初始位置。

  4. 定位性能评估:通过在不同速度下收集的测试数据集来评估定位性能。这些数据集在Github上开源,以便社区使用和验证。

  5. 真实世界数据集的地面真实值获取:使用3D激光雷达和激光雷达惯性里程计平滑和映射(LIO-SAM)方法获取。

通过上述步骤,研究者们成功地将时间序列建模和全局地图预测整合到了现有的SLAM框架中,提高了在长期动态环境下的定位和地图构建性能。实验结果表明,该系统在定位准确性、鲁棒性和内存消耗方面都达到了较好的效果。

在论文中,评定算法性能的方法包括以下几个主要方面:

  1. 绝对轨迹误差(ATE): ATE用于评估算法预测的轨迹和实际轨迹之间的差异。这是一个常用的衡量SLAM系统定位准确性的指标。

  2. 动态环境下的性能: 评估算法在处理动态环境,尤其是在移动物体和长期环境变化方面的能力。

  3. 内存消耗: 衡量算法运行时对内存的需求。对于长期运行的系统,内存效率是一个重要指标。

  4. 实验验证: 通过在不同环境和条件下进行的实验来评估算法的性能。这些实验通常包括在真实世界数据集和模拟数据集上的测试。

  5. 与现有方法的比较: 将所提算法的性能与其他现有SLAM方法进行比较,以展示其相对优势和缺点。

  6. 正确率(CR): 评估系统在整个数据期间的稳健性。这是基于每个估计位姿的绝对轨迹误差和绝对方向误差来计算的。

通过这些评估方法,作者展示了他们提出的系统在长期动态环境下的有效性和优势,特别是在地图预测精度、定位性能和对动态物体处理方面。

论文的主要创新点包括:

  1. 长期视觉SLAM系统:提出了一种结合贝叶斯持久性过滤器和全局地图预测的长期视觉SLAM系统,适用于长时间、动态变化的环境中。

  2. 贝叶斯持久性过滤器(BPF):利用BPF对地图点进行静态、半静态和动态分类,以及有效地移除动态地图点,减少它们对地图准确性的影响。

  3. 全局地图预测:通过对半静态地图点的时间序列建模,实现了对环境的长期、动态变化的有效预测。

  4. 融合视觉点云匹配算法:开发了一种新型的视觉点云匹配算法,结合2D像素信息和3D体素信息,以提高匹配的精确度。

  5. 实验验证:通过在实际室内环境中对轮椅机器人进行长期实验,证明了方法的有效性,并与现有方法进行了比较,展示了其在地图预测精度和定位性能方面的优势。

这些创新点表明了该研究在长期动态环境中视觉SLAM系统的发展方面取得了重要进步。

在论文中,作者将提出的算法与以下现有的SLAM方法进行了比较:

  1. ORB-SLAM2:一种广泛使用的基于特征的SLAM方法,适用于单目、双目和RGB-D相机。

  2. ORB-SLAM3:ORB-SLAM的最新版本,支持视觉、视觉-惯性和多地图SLAM。

  3. DVO SLAM:基于稠密视觉里程计(Dense Visual Odometry)的SLAM方法。

  4. Depth-Edge SLAM:一种利用深度和边缘信息进行SLAM的方法。

  5. DynaSLAM:针对动态环境设计的一种SLAM系统,能够在存在动态物体的环境中进行地图构建和定位。

  6. 其他变体:包括没有运动物体移除(MPR)、没有全局地图预测(GMP)、没有动态物体检测(OD)、没有3D匹配等方法的LTVS-BPF变体。

这些对比方法覆盖了不同类型的SLAM系统,包括基于特征、基于深度、以及针对动态环境的方法。通过与这些方法的比较,论文能够展示所提出系统在不同情境下的性能优势和适用性。

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

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

相关文章

基础数论1

文章目录 质数质因数分解 约数 g c d gcd gcd求最大公约数 质数 质因数分解 算术基本定理: 任何一个大于 1 的正整数都能唯一分解为有限个质数的乘积,可以写作: 任何一个大于1的正整数都能唯一分解为有限个质数的乘积,可以写作…

基于javaWeb的長安智慧医疗管理系统设计与实现论文

長安智慧医疗管理系统 摘 要:如今社会上各行各业,都在用属于自己专用的软件来进行工作,互联网发展到这个时候,人们已经发现离不开了互联网。互联网的发展,离不开一些新的技术,而新技术的产生往往是为了解决…

Centos7在安装Graylog时新安装MongoDB报错端口不监听服务不启动无法运行启动失败

由于虚拟机服务器上需要安装Graylog需要安装MongoDB,尝试官网下载安装包,和yum安装均无法正常启动,折腾了好几天,重装了十几次,网上搜索了很多很多资料,均无法正常运行,百度上搜索各种文档&…

Java代码审计Mybatis注入文件上传下载读取(非常详细!!)

目录 0x00 前言 0x01 Mybatis注入审计 - 若依(Ruoyi)后台管理系统 4.6.0 1、项目介绍与部署 - Ruoyi 2、若依 Ruoyi - Mybatis注入 - 代码审计 3、代审常搜词 - Java SQL 注入 0x02 文件上传漏洞审计 - Inxedu && Tmall 1、项目介绍与部署…

Java智慧工地源码 SAAS智慧工地源码 智慧工地管理可视化平台源码 带移动APP

一、系统主要功能介绍 系统功能介绍: 【项目人员管理】 1. 项目管理:项目名称、施工单位名称、项目地址、项目地址、总造价、总面积、施工准可证、开工日期、计划竣工日期、项目状态等。 2. 人员信息管理:支持身份证及人脸信息采集&#…

MyBatis:动态 SQL 标签

MyBatis 动态 SQL 标签if 标签where 标签trim 标签choose 、when 、otherwise 标签foreach 标签附 动态 SQL 标签 MyBatis 动态 SQL 标签,是一组预定义的标签,用于构建动态的 SQL 语句,允许在 SQL 语句中使用条件、循环和迭代等逻辑。通过使…

JSP 和 servlet 有什么区别?

JSP 和 servlet 有什么区别? JavaServer Pages(JSP)和Servlet都是Java Web开发中的技术,它们有不同的角色和用途。 JSP(JavaServer Pages): 角色: JSP 是一种视图技术&#xff0c…

速盾网络:sdk游戏盾有什么作用?

速盾cdn是一款非常优秀的CDN加速服务,它能够帮助游戏开发者们提升游戏的性能和稳定性。其中,速盾cdn的sdk游戏盾是其一项非常实用的功能,它能够为游戏提供更加稳定和快速的网络连接。 首先,让我们来了解一下什么是sdk游戏…

利用Matplotlib画简单的线形图

实验题目:简单的线形图 实验目的:利用Matplotlib画简单的线形图 实验环境:海豚大数据和人工智能实验室,使用的Python库 名称 版本 简介 numpy 1.16.0 线性代数 Pandas 0.25.0 数据分析 Matplotlib 3.1.0 数据可视化 …

第21课 SQL入门之使用游标

文章目录 21.1 游标21.2 使用游标21.2.1 创建游标21.2.2 使用游标21.2.3 关闭游标 这一课将讲授什么是游标,如何使用游标。 21.1 游标 SQL检索操作返回一组称为结果集的行,这组返回的行都是与SQL语句相匹配的行(零行或多行)。简单…

备份至关重要!如何解决iCloud的上次备份无法完成的问题

将iPhone和iPad备份到iCloud对于在设备发生故障或丢失时确保数据安全至关重要。但iOS用户有时会收到一条令人不安的消息,“上次备份无法完成。”下面我们来看看可能导致此问题的原因,如何解决此问题,并使你的iCloud备份再次顺利运行。 这些故…

技术分享-Jenkins

持续集成及Jenkins介绍 软件开发生命周期叫SDLC(Software Development Life Cycle),集合了计划、开发、测试、部署过程。 在平常的开发过程中, 需要频繁地(一天多次)将代码集成到主干,这个叫持…

闭包 闭包理解 闭包的应用实例

闭包 形成闭包的条件&#xff1a;一个函数访问外部的变量就形成了闭包 用闭包的好处&#xff1a; (1)可以通过闭包函数形成独立实例的变量 (2)不会造成全局污染 代码调试&#xff0c;演示闭包形成过程 <script> //函数内部访问外部的变量&#xff0c;就形成了闭包functi…

Leetcode 406 根据身高重建队列

题意理解&#xff1a; people [[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]] 给定一个二维数组&#xff0c;&#xff08;h,k&#xff09;h表示此人身高&#xff0c;k表示前面有几个人比他高。 我们按照每个人的h,k两个维度的需求给每个人排在合适的位置。 如&#xff1a; [5,0][7,0]…

深入浅出堆排序: 高效算法背后的原理与性能

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《linux深造日志》 《高效算法》 ⛺️生活的理想&#xff0c;就是为了理想的生活! &#x1f4cb; 前言 &#x1f308;堆排序一个基于二叉堆数据结构的排序算法&#xff0c;其稳定性和排序效率在八大排序中也…

ctfshow sql 195-200

195 堆叠注入 十六进制 if(preg_match(/ |\*|\x09|\x0a|\x0b|\x0c|\x0d|\xa0|\x00|\#|\x23|\|\"|select|union|or|and|\x26|\x7c|file|into/i, $username)){$ret[msg]用户名非法;die(json_encode($ret));}可以看到没被过滤&#xff0c;select 空格 被过滤了&#xff0c;可…

深入解析 C 语言中的神秘代码:(*(void (*)())0)();

在本文中&#xff0c;我们将深入研究一行神秘的 C 代码 (*(void (*)())0)();&#xff0c;探讨它的结构、潜在风险以及可能的应用场景&#xff0c;并通过拓展和实例让读者更容易理解。 (*(void (*)())0)(); //(void (*)() -- 函数指针类型 //把0强制转换成void(*)()函数指针类型…

制造行业定制软件解决方案——工业信息采集平台

摘要&#xff1a;针对目前企业在线检测数据信号种类繁多&#xff0c;缺乏统一监控人员和及时处置措施等问题。蓝鹏测控开发针对企业工业生产的在线数据的集中采集分析平台&#xff0c;通过该工业信息采集平台可将企业日常各种仪表设备能够得到数据进行集中分析处理存储&#xf…

VM——计算流程执行耗时

1、计算同一个流程内的耗时&#xff0c;可以直接用“耗时统计”模块&#xff1b; 2、计算多个流程的运行耗时&#xff0c;需要使用“脚本”&#xff0c;利用C#函数计算耗时 首先&#xff0c;记录起始时间&#xff0c;保存到string类型的全局变量中&#xff0c; curTmStr Dat…

C++之深拷贝和浅拷贝

目录 浅拷贝 深拷贝 赋值运算符重载的深拷贝 在学习C类和对象时我们学习了浅拷贝&#xff0c;本期我们将再次回顾浅拷贝并为大家讲述深拷贝的概念。 浅拷贝 在学习类和对象时我们学习了拷贝构造函数的概念&#xff0c;而且我们也知道&#xff0c;因为拷贝构造函数属于类的默…