ORBSLAM源码理论分析3—tracking线程的追踪

本文深入分析ORBSLAM的追踪线程,包括跟踪前一帧的特征匹配、再匹配及位姿优化,跟踪运动速度模型,以及跟踪局部地图的过程,详细探讨了特征匹配策略和位姿优化方法。
摘要由CSDN通过智能技术生成

1.创建帧3

  与构造初始化帧2步骤完全相同,只不过提取的特征点数量减少为帧2的一半。帧3的关键点记为mvKeys3帧3就是当前的mCurrentFrame。下文帧3记为F3

2.追踪

1.跟踪前一帧

1.特征匹配

  F2—F3的特征匹配与F1—F2的特征匹配过程大致相同。不一样的地方在于以下3点,
  (1).F1与F2进行特征匹配时,F1与F2选取的特征点都是图像金字塔第0层的特征点。而F2与F3进行特征匹配时,F2选取的是F2中所有地图点mvpMapPoints对应的特征点。F3选取的是所有特征点
  (2).F1与F2进行特征匹配时,F2上的搜索半径为100,即虚线框边长为200,而F2与F3进行特征匹配时,F3上的搜索半径为200
  (3).F1与F2匹配完成后,会返回匹配成功数量nmatches和匹配点对在F1与F2各自关键点中的索引mvIniMatches。而F2与F3匹配完成后,会返回匹配成功数量nmatches和F3的匹配特征点对应的地图点vpMapPointMatches
                vpMapPointMatches[i3]= pMP;
vpMapPointMatches.sizemvKeys3.size相同。i3为F3的关键点在mvKeys3的索引,pMP为F2中特征点i2对应的地图点。i2与i3是匹配点对。为了表述方便将这里的vpMapPointMatches记为vpMapPointMatches1

2.特征再匹配

  特征再匹配以匹配点对的数量nmatches是否小于10,分为以下两种情况,

1.第一种情况

  如果匹配点对的数量nmatches<10,则缩小搜索半径为100,重新匹配。令nmatches=0,并且将vpMapPointMatches1置空。将F2的位姿mTcw传递给F3,将vpMapPointMatches1传递给F3的地图点mvpMapPoints
  然后,再换一种方式重新匹配,这次的匹配对象依然是F2中所有地图点mvpMapPoints对应的特征点和F3中所有特征点。以F2中地图点pMP对应的特征点kp1为例,下面介绍新的匹配过程。
  在特征匹配中,根据kp1的像素坐标,比如kp1像素坐标为(20,30),找到F3中对应搜索中心的像素点kp(20,30)特征再匹配过程与特征匹配的不同之处在于F3中对应搜索中心kp的像素点坐标不一定与kp1像素坐标相同,选取对应坐标的方法发生了变化。下面介绍变化后的选取方法。
  根据F3的位姿mTcw将地图点pMP投影到F3,得到投影后的像素点kp,也就是 kp1在F3中对应搜索中心的像素点。此时,F3上的搜索半径设为50,其它匹配过程与特征匹配完全相同。投影过程可参考《视觉SLAM十四讲》86P的公式。
  匹配完成后,同样会得到匹配点对的数量nmatches,和F3的匹配特征点对应的地图点vpMapPointMatches2。如果此时nmatches ⩾ \geqslant 10,则特征再匹配顺利结束,否则跟踪前一帧的整个过程失败

2.第二种情况

  如果匹配点对的数量nmatches ⩾ \geqslant

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值