zoukankan      html  css  js  c++  java
  • VINS_MONO闭环检测中使用的特征点

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

    1. goodFeatureToTrack检测到的点及光流track到的点,这些点在FeatureTracker类中得到
    2. 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的时候效果应该不会特别好吧。如果想优化这部分的,可以在这方面动动脑筋。

  • 相关阅读:
    Git安装(操作篇)
    Git安装
    ES6基础练习
    SVN的安装与搭建及使用
    解决SVN文件不显示绿色小钩图标问题
    混入(mixin)
    ref属性与props配置项
    docker-compose部署 Mysql 8.0 主从模式基于GTID
    项目统一处理
    Docker Compose实战
  • 原文地址:https://www.cnblogs.com/glxin/p/9956748.html
Copyright © 2011-2022 走看看