ORB-SLAM3系列-多地图管理

作者:Liam
来源:公众号@计算机视觉工坊|系投稿
论文名称: ORBSLAM-Atlas: a robust and accurate multi-map system
ORB-SLAM3系列-多地图管理文章插图
摘要利用鲁棒的地图融合方法解决不限数量的子地图融合问题 , Altas使SLAM系统变的更加的精准和鲁棒 。 在tracking线程跟踪失败的时候 , 系统会构建一个新的子地图 。 当该地图和先前的子地图有共同部分的时候就会进行地图融合 。 针对原来的方法中只舍弃特征点数量少的帧 , 我们也舍去位姿估计不准的帧来构建更加精准的子地图 。
本文的贡献

  • 利用atlas来解决不限数量的子地图融合问题 。 altas有不限数量的子地图关键帧的词袋数据库 , 保证了地图场景重识别的效率 。
  • 多地图的操作算法:新地图生成、在混合地图中重定位和地图融合
  • 在有差的相机位姿的时候评价跟踪失败的方法 。 这可以避免在闭环的过程中由于高度不确定的位姿导致的位姿图优化误差过大 。
ORBLAM-Atlas多地图表示
ORB-SLAM3系列-多地图管理文章插图
Screenshot from 2020-09-26 08-31-13.png
altas由无数的子地图组成 , 每个子地图有自己的关键帧、地图点、共视图和最小生成树 。 每个地图的参考帧是第一帧上 。 新来帧只更新altas中的一个地图(active map) 。 altas中也保存了特别的地图的词袋数据库来识别关键帧 。 本系统有一个单独的场景重识别的模块 , 如果两个关键帧都来自active map就会执行闭环检测 , 如果在不同的地图中就会执行地图融合 。
新地图产生的标准当相机跟踪失败就开始进行重定位 , 如果重定位过了一段时间也不成功 , active map变成了unactive map存储在了altas中 。 然后一个新地图被初始化 , 具体的过程参考ORB-SLAM2和ORB-SLAM中的地图初始化过程 。 评判tracking是否失败的标准:
  • 匹配的特征点的数量:当前帧和局部地图的匹配数量 。
  • 相机位姿的observability:如果检测到的点几何条件不好 , 那么估计的相机位姿也不准(计算出来匹配点的距离大 , 特征属于不可用的特征) 。
相机位姿的observability(可观察性)利用位姿的协方差矩阵来估计相机的observability , 假设每个地图点都估计的很准确 , 因为不能实时的计算每一帧地图点的协方差矩阵 。 信息矩阵Ωij表示第j个地图点在第i帧中的不确定性 。 相机i的不确定性是由其和局部地图匹配的特征点决定的 。 估计相机六自由度位姿为T? _i,w , 属于李群 。 除此之外 , 利用6个参数εi的无偏高斯向量对位姿的不确定性进行编码 , 该向量定义了在T? _i,w周围逼近位姿真值的李代数:
ORB-SLAM3系列-多地图管理文章插图
其中Exp(ε_i)把一个六维的向量直接转换为了李代数 , 其协方差矩阵C编码为相机位姿估计的准确性 , 而J矩阵为相机位姿对观测的地图点的雅各比矩阵 。 由于平移的幅度很小 , 所以在评判中仅用C的对角线上表示误差的值 。
ORB-SLAM3系列-多地图管理文章插图
多地图中的重定位如果相机跟丢了 , 利用当前帧查询Atlas DBoW的数据库 。 这个查询能在所有地图中找相似的关键帧 。 一旦有了候选关键帧 , 地图和匹配的地图点 , 就可以按照ORB-SLAM中进行重新定位 。 主要包括利用PnP进行鲁棒的位姿估计和RANSAC阶段 , 然后进行匹配搜索、进行只优化位姿的非线性优化 。
相似地图融合执行ORBSLAM中的场景重识别来检测相似的地图进行融合 , 场景重识别的过程中需要检测和共视图中关键帧相连的三个关键帧来避免假阳性的检测 。 另外在地图融合的过程中 , active map和具有共同区域的其他地图合并 , 然后用合并完的地图作为active map 。