当前位置: 代码迷 >> 综合 >> [ORB-SLAM2]关于代码优化设计
  详细解决方案

[ORB-SLAM2]关于代码优化设计

热度:17   发布时间:2023-12-08 06:00:48.0

参考http://www.cnblogs.com/luyb/p/5447497.html

关于ORB-SLAM2中提高数据关联准确度的措施整理:



1. 初始化过程中提出模型选择策略,根据特征点的共面情况,确定使用基础矩阵Fundamental matrix还是单应矩阵Homography进行位姿估计。
2. 姿态优化:建立局部地图,寻找当前帧与地图的对应关系。(真正匹配到的地图点其实很少)
3. 关键帧与关键帧之间建立联系,利用邻接关键帧们更新地图点
4. 优化:原因为相机标定误差和追踪精度不够
    g2o迭代优化,误差目标函数
        加入新关键帧时进行局部优化:范围是当前关键帧、与当前关键帧直接相连的关键帧、二者可以看到的地图点
        全局优化:除了第一帧外所有的关键帧和地图点
        闭环Sim3位姿优化(使尺度一致),地图点在两关键帧上的二维对应点的误差
5. 闭环检测匹配时的策略:输出一系列候选图像,而不是一幅最相似的图像,之后进行反复严格的回环验证,进而提高了匹配时的鲁棒性
6. 地图点描述子的计算:通过多个关键帧对应特征点的描述子的中值得到,准确性较高
7. 关于描述子的计算,引入了金字塔层级的概念,保证其对尺度变化的鲁棒性

 

关于工程上的考虑,主要在提高实时性:


1、描述子转化为词袋向量,使用BoW 加速匹配(BoW一般不太考虑特征之间的几何关系
2、附加正反向搜索指标,反向指标在节点(单词)上储存到达这个节点的图像特征的权重信息和图像编号,因此可用于快速寻找相似图像。正向指标则储存每幅图像上的特征以及其对应的节点在词典树上的某一层父节点的位置,因此可用于快速特征点匹配(只需要匹配该父节点下面的单词)