ORB-SLAM2源码分析(单目)——重定位跟踪

文章详细介绍了ORB-SLAM2在跟踪丢失后的重定位策略,包括使用BoW找到相似关键帧,通过EPnP计算初始位姿,以及BA优化过程。在匹配和优化过程中,系统会不断尝试以找到足够的内点确保定位准确性。
摘要由CSDN通过智能技术生成

ORB-SLAM2源码分析(单目)——重定位跟踪

在这里插入图片描述

一、 重定位跟踪简介

跟踪丢失的时候使用,很少使用。利用到了相似候选帧的信息。

  1. 用BoW先找到与该帧相似的候选关键帧(函数DetectRelocalizationCandidates)
  2. 遍历候选关键帧,用SearchByBoW快速匹配,
  3. 匹配点足够的情况下用EPnP 计算位姿并取出其中内点做BA优化(仅优化位姿),
  4. 如果优化完内点较少,通过关键帧投影生成新的匹配(函数SearchByProjection),
  5. 对匹配结果再做BA优化(仅优化位姿)。

当TrackWithMotionModel 和 TrackReferenceKeyFrame 都没有跟踪成功,位置丢失后,需要在之前的关键帧中匹配最相近的关键帧,进而求出位姿信息。
使用当前帧的BoW特征映射,在关键帧数据库中寻找相似的候选关键帧,因为这里没有好的初始位姿信息,需要使用传统的3D-2D匹配点的EPnP算法来求解一个初始位姿,之后再使用最小化重投影误差来优化更新位姿

在这里插入图片描述
在这里插入图片描述

二、 用词袋找到与当前帧相似的候选关键帧(DetectRelocalizationCandidates)

在这里插入图片描述

通过词袋倒排索引,遍历所有关键帧,找到与当前帧相似的关键帧
在这里插入图片描述

1、 找出和当前帧具有公共单词(word)的所有关键帧
在这里插入图片描述

2、 统计上述关键帧中与当前帧F具有共同单词最多的单词数maxCommonWords,用来设定阈值1
在这里插入图片描述

3、 遍历上述关键帧,挑选出共有单词数大于阈值1的及其和当前帧单词匹配得分存入lScoreAndMatch
在这里插入图片描述

4、 计算lScoreAndMatch中每个关键帧的共视关键帧组的总得分,得到最高组得分bestAccScore,并以此决定阈值2
在这里插入图片描述

5、 得到所有组中总得分大于阈值2的,组内得分最高的关键帧,作为候选关键帧组
在这里插入图片描述

三、 遍历所有的候选关键帧,通过词袋进行快速匹配,用匹配结果初始化PnP Solver

在这里插入图片描述

四、 通过一系列操作,直到找到能够匹配上的关键帧

在这里插入图片描述

1、 通过EPnP算法估计姿态,迭代5次
在这里插入图片描述

2、 如果EPnP 计算出了位姿,对内点进行BA优化
在这里插入图片描述

3、 如果内点较少,则通过投影的方式对之前未匹配的点进行匹配,再进行优化求解
在这里插入图片描述

4、 如果BA后内点数还是比较少(<50)但是还不至于太少(>30),可以挽救一下, 最后垂死挣扎
在这里插入图片描述

5、 如果对于当前的候选关键帧已经有足够的内点(50个)了,那么就认为重定位成功

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值