闭环检测python_VINS_MONO闭环检测中使用的特征点

闭环检测中每一个关键帧有两类特征点:

goodFeatureToTrack检测到的点及光流track到的点,这些点在FeatureTracker类中得到

KeyFrame类中提取的FAST特征点

两类特征点都计算了BRIEF描述子,但她们特点不同各有用处:

对于FAST点来说,其数量较多,主要用于DBOW2中的query,具体代码在PoseGraph::detectLoop()函数中。

detecLoop获得了可能存在闭环的之前的关键帧的index之后,就要用KeyFrame::findConnection()来确定是否是一个真正的闭环,这个时候就用到了第一类特征点。

具体来说,在old key的FAST特征点中找跟当前keyframe的第一类特征点匹配的点,使用的方法是计算BRIEF描述子的汉明距离,代码见KeyFrame::searchByBRIEFDes()函数。

第一类特征点有比较精确的深度信息,它在世界坐标系下的3维坐标是已知的,在old keyframe中找到它们的匹配点就可以用solvePnP的方法获得当前keyframe和old keyframe的相对位姿。如果两个关键帧之间的yaw和T小于某个阈值才认为是一个真正的闭环。

需要注意的是FAST点和第一类点是通过不同方式检测出来的点,它们往往是不重合的。所以searchByBRIEFDes的时候效果应该不会特别好吧。如果想优化这部分的,可以在这方面动动脑筋。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值