论文名称: ORBSLAM-Atlas: a robust and accurate multi-map system
ORB-SLAM3系列-多地图管理

摘要

利用鲁棒的地图融合方法解决不限数量的子地图融合问题,Altas使SLAM系统变的更加的精准和鲁棒。在tracking线程跟踪失败的时候,系统会构建一个新的子地图。当该地图和先前的子地图有共同部分的时候就会进行地图融合。针对原来的方法中只舍弃特征点数量少的帧,我们也舍去位姿估计不准的帧来构建更加精准的子地图。

本文的贡献

  • 利用atlas来解决不限数量的子地图融合问题。altas有不限数量的子地图关键帧的词袋数据库,保证了地图场景重识别的效率。
  • 多地图的操作算法:新地图生成、在混合地图中重定位和地图融合
  • 在有差的相机位姿的时候评价跟踪失败的方法。这可以避免在闭环的过程中由于高度不确定的位姿导致的位姿图优化误差过大。

ORBLAM-Atlas多地图表示

altas由无数的子地图组成,每个子地图有自己的关键帧、地图点、共视图和最小生成树。每个地图的参考帧是第一帧上。新来帧只更新altas中的一个地图(active map)。altas中也保存了特别的地图的词袋数据库来识别关键帧。
本系统有一个单独的场景重识别的模块,如果两个关键帧都来自active map就会执行闭环检测,如果在不同的地图中就会执行地图融合。

新地图产生的标准

当相机跟踪失败就开始进行重定位,如果重定位过了一段时间也不成功,active map变成了unactive map存储在了altas中。然后一个新地图被初始化,具体的过程参考ORB-SLAM2和ORB-SLAM中的地图初始化过程。
评判tracking是否失败的标准:

  • 匹配的特征点的数量:当前帧和局部地图的匹配数量。
  • 相机位姿的observability:如果检测到的点几何条件不好,那么估计的相机位姿也不准(计算出来匹配点的距离大,特征属于不可用的特征)。

相机位姿的observability(可观察性)

利用位姿的协方差矩阵来估计相机的observability,假设每个地图点都估计的很准确,因为不能实时的计算每一帧地图点的协方差矩阵。信息矩阵Ωij\Omega_{ij}Ωij​表示第j个地图点在第i帧中的不确定性。相机i的不确定性是由其和局部地图匹配的特征点决定的。
估计相机六自由度位姿为T̂ _i,w,属于李群。除此之外,利用6个参数εi的无偏高斯向量对位姿的不确定性进行编码,该向量定义了在T̂ _i,w周围逼近位姿真值的李代数:

其中Exp(ε_i)把一个六维的向量直接转换为了李代数,其协方差矩阵C编码为相机位姿估计的准确性,而J矩阵为相机位姿对观测的地图点的雅各比矩阵。由于平移的幅度很小,所以在评判中仅用C的对角线上表示误差的值。

多地图中的重定位

如果相机跟丢了,利用当前帧查询Atlas DBoW的数据库。 这个查询能在所有地图中找相似的关键帧。 一旦有了候选关键帧,地图和匹配的地图点,就可以按照ORB-SLAM中进行重新定位。 主要包括利用PnP进行鲁棒的位姿估计和RANSAC阶段,然后进行匹配搜索、进行只优化位姿的非线性优化。

相似地图融合

执行ORBSLAM中的场景重识别来检测相似的地图进行融合,场景重识别的过程中需要检测和共视图中关键帧相连的三个关键帧来避免假阳性的检测。另外在地图融合的过程中,active map和具有共同区域的其他地图合并,然后用合并完的地图作为active map。

  • 1)在两个地图中检测共同的部分。场景重识别模块提供了两个匹配的关键帧,K_a和K_s和两个地图M_a和M_s中匹配的地图点。
  • 2)估计地图融合的变换矩阵。这里需要双目的SE(3)或者单目的Sim(3)变换(单目没有尺度信息,所以需要估计Sim3变换),这样就可以在世界参考帧中对齐两个地图。基于M_a和M_s两个地图的匹配关系,利用混合Horn method(Closed-form solution of absolute orientation using unit quaternions)的RANSAC来进行初始的估计,利用估计出来的位姿K_s来指导匹配,利用非线性优化两个地图的重投影误差得到两个地图间的匹配得到最终两个地图之间的位姿T_Wa, Ws。
  • 3)融合地图。利用位姿T_Wa, Ws把M_s中的所有关键帧和地图点都投影到M_a中;检测重复的地图点融合;把M_s和M_a中的所有关键帧和地图点放在M_m中;最后把M_s和M_a的生成树和共视图合并成M_m的生成树和共视图。
  • 4)在连接区域的局部BA。根据包含了与k_a共视的所有关键帧的M_m共视图。为了固定测量的自由度,在M_a中固定的关键帧在局部BA中保持固定,而在非线性优化过程中,其余关键帧被设置为可优化量。利用第二个重复点检测和融合来更新M_m共视性图。
  • 5)位姿图优化。最后利用位姿图优化来优化M_m的位姿。

​ 地图融合线程和tracking线程并行运行,在融合之间有时候会触发全局BA,这时候局部建图会停止来避免在atlas中加入新的关键帧。如果全局的BA线程在运行,局部建图也会停止,因为生成树在BA后会发生改变。tracking线程会在旧的active地图中保持实时的运行。一旦地图融合完成,就重启局部建图线程。全局BA结束了以后也会重启局部建图线程来接收新的数据。

ORBSLAM-Atlas相关推荐

  1. ORB-SLAM笔记———ORB-SLAM3概述

    代码地址 https://github.com/UZ-SLAMLab/ORB_SLAM3 论文名称 ORB-SLAM3:An Accurate Open-Source Library for Visu ...

  2. ORB-SLAM3 双目 Stereo + 论文

    文章目录 Stereo 双目流程 总结 System TrackStereo Tracking ParseCamParamFile GrabImageStereo StereoInitializati ...

  3. ORBSLAM3论文翻译

    ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM 摘要 本文介绍了OR ...

  4. ORB_SLAM3代码学习(1)

    本人是SLAM初学者,这是本人学习ORBSLAM3的笔记,论文与代码理解难免会有错误,欢迎交流指正. 一.系统整体 系统整体方面,直接采用ORB3论文中的系统组成图. ORB_SLAM3与ORB_SL ...

  5. ORB SLAM3论文大致翻译,手动整理

    ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM I. INTRODU ...

  6. ORB-SLAM3:一个高精度视觉、视觉惯性和多地图SLAM开源库

    ORB-SLAM3:一个高精度视觉.视觉惯性和多地图SLAM开源库(论文翻译) Carlos Campos, Richard Elvira∗, Juan J. G´omez Rodr´ıguez, J ...

  7. 比较全面的ORB-SLAM3论文翻译(基本全文不带相关研究与精度验证部分)

    看了网上一些解读论文的都是不是很全面啊,呃呃呃...不会整一些段子跟斗图可能有些枯燥,废话不多说直接开整吧!整个论文重点放在了地图融合跟优化上面可以一边看原论文一边看这个,里面参杂了一些个人理解,哪里 ...

  8. MatLab的双目相机标定和orbslam双目参数匹配

    本文承接ROS调用USB双目摄像头模组 目录 相机标定 导出为YAML文件(也可以手动粘贴) 生成可用于ORB-SLAM2的yaml文件 生成可用于ORB-SLAM3的yaml文件 2022.5.6补 ...

  9. ROS+Opencv的双目相机标定和orbslam双目参数匹配

    本文承接ROS调用USB双目摄像头模组 目录 先完成单目标定 双目标定 生成可用于ORB-SLAM2的yaml文件 生成可用于ORB-SLAM3的yaml文件 参考 按照上面链接配置好后,执行 ros ...

  10. 视觉惯性SLAM: VI ORB-SLAM

    视觉惯性SLAM: VI ORB-SLAM 这篇博客 视觉惯性SLAM 预备知识 符号说明: 相机投影变换矩阵 IMU数据更新方程 IMU数据的预积分 VI ORB-SLAM各环节工作方式 Initi ...

最新文章

  1. bzoj 1026 windy数
  2. DDos游戏行业受攻击最多
  3. 在script所在位置插入内容
  4. 兔子的区间密码-最大异或对
  5. C# 调用SQL的存储过程的接口及实现
  6. 直播预告丨行业大咖带你找到游戏企业经营新升级的正确打开方式
  7. Windows10 安装 Twisted
  8. undertow服务器分析_使用undertow构建和测试Websocket服务器
  9. Div+CSS布局入门教程(三) 页面顶部制作之一
  10. [转]小品:宋江同志在梁山泊招安动员大会上的讲话
  11. c语言编程阿拉伯数字转中文,阿拉伯数字转中文大(小)写的函数
  12. C语言基础四(敲打键盘、寻找资料,循环语句)请一个个字读,助于您的学会机率...
  13. Linux挂载Linux网络共享文件夹
  14. 首都师范 博弈论 5 5 1大联盟合作博弈中如何量化决策影响力 班扎夫权力指数
  15. java 根据手机号获取归属地
  16. 计算机分子模拟聚乙烯,高分子物理实验思考题@中科大.pdf
  17. android 美团拆包,如何进行拆包合包操作?
  18. CAD图形设置:层高与填充设置教程
  19. MATLAB中CVX工具箱解决凸优化问题的基本知识——语法、变量声明、目标函数、约束条件、cvx编程错误及解决方法
  20. spm,afni的安装和使用心得

热门文章

  1. Swagger生成接口文档
  2. 批量查询UPS快递物流的最简单方法
  3. 【数字化】国产自主智能制造数字化车间
  4. 2021-01-12 PMP 群内练习题 - 光环
  5. json字符串转化为map
  6. KM算法解决二分图最大权分配问题
  7. 更新PIP更换国内镜像源
  8. 目标检测-YOLO算法实现
  9. 数据结构与算法-Part6——数组与广义表
  10. Linux之VMware中快照功能如何使用