【那些年我们一起看过的论文】之《ORB-SLAM: A Versatile and Accurate Monocular SLAM System》


/*
ORB-SLAM是基于特征的单目SLAM,他可以适应室内室外大小场景,相机也可以比较自由运动,同样只在发现场景内容变化时才更新内容,减少开销。效果比较好,代码也开放了,建议跑一下感受一下,以期后续开发。
*/
ORB主要借鉴了PTAM的思想,借鉴的工作主要有Rubble的ORB特征点;DBow2的place recognition用于闭环检测;Strasdat的闭环矫正和covisibility graph思想;以及Kuemmerle和Grisetti的g2o用于优化。

他选择了ORB作为特征,在于其良好的旋转不变性,以及快速匹配效果,可以和BA很好的结合。

Contributions(贡献):
1) Use of the same features for all tasks (ORB)
2) Real-time operation in large environments(在大图中独立使用小图)
3) Real-time loop closing based on the optimization of a pose graph
4) Real-time camera relocalization with significant invari-ance to viewpoint and illumination.
5) A new automatic and robust initialization procedure based on model selection that permits to create an initial map of planar and nonplanar scenes.
6) A survival of the fittest approach to map point and keyframe selection that is generous in the spawning but very restrictive in the culling. This policy improves track-ing robustness and enhances lifelong operation because redundant keyframes are discarded.

相较于PTAM的双线程,他增加了一个thread:
Three Threads: Tracking, Local Mapping, and Loop Closing。

The main contribution of our work is to expand the versatility of PTAM to environments that are intractable for that system.

补充, ORB_SLAM中g2o的优化分为多个层次, 从低到高为:[1]

  1. PoseOptimization: 优化单帧位姿. 每个帧可见多个地图点, 可以建立多个边连接, 构成图进行优化.优化单一帧的SE3位姿.
  2. OptimizeSim3: 优化两帧之间的位姿变换, 因为两帧之间可以看到多个相同的地图点, 可以构成一个超定方程组,可以最小化误差优化. 优化帧间变化的SIM3位姿与地图的VertexSBAPointXYZ位姿
  3. LocalBundleAdjustment: 在一个CovisbilityMap内进行优化.在一定范围的keyframe中,可以看到同一块地图, 即是CovisbilityMap.连接CovisbilityMap内的每一个map点与可见它的所有keyframe, 放在一起进行优化. 这个优化是双向的, 既优化地图点的VertexSBAPointXYZ位姿, 又优化Camera的SE3位姿.
  4. OptimizeEssentialGraph: 加入Loop Closure的考虑, Covisbility图中的keyframe相互连起来, Keyframe之间有前后相连,于是不同的Covisbility图也可以联系起来. 这是一个大范围的优化, 主要是加入了Loop Closure约束.优化的是Camera的SIM3位姿.
  5. GlobalBundleAdjustment: 最大范围的优化, 优化所有Camera的SE3位姿与地图点的XYZ位姿.

只言片语 随手摘录
以上。

引用链接:[1]http://blog.csdn.net/qinruiyan/article/details/50918504

你可能感兴趣的:(那些年我们一起看过的)