2016年之前优秀的单目SLAM系统
2016年之前优秀的单目SLAM系统
1.MonoSLAM
2.Moncular SLAM
3.PTAM
4.ORB-SLAM
5.Robust moncular SLAM in dynamic environment
6.LSD-SLAM
7.SVO
1,2滤波器(计算复杂度一般为(O^3))
3-7基于关键帧的SLAM
3.基于关键帧(PTAM)
=============================================
8.Visual SLAM: why filter?
=============================================
9.Bundle adjustment - a modern synthesis(BA, 集束调整)
算法同时优化所有关键帧的相机运动参数及三维点位置,利用该优化问题的稀疏结构,
可极大地提升优化效率,然而,随着场景不断扩展,优化变量不断增加,BA仍会遇到
内存和效率两方面瓶颈。
10.Multiple View Geometry in Computer Vision(SfM structure from motion)
11-14面向大尺度场景的SfM方法
PTAM
前台线程负责处理视频流,只需求解当前帧方位,所有三维点位置保持不变,由此达到实时的计算效率
后台线程联合优化所有关键帧相机运动参数及所有三维点位置,即运行BA,恢复精确的三维地图
ORB-SLAM
20.ORB, an efficient alternative to SIFT or SURF(ORB特征)
21.Bags of binary words for fast place recognition in image sequences(词袋技术检测循环回路)
22.Scale drift-aware large scale monocular SLAM(将全局BA简化为方位图优化)
23.Closed-form solution of absolute orientation using unit quaternions(对齐点云获得两个关键帧间的相对方位约束)
RDSLAM
显式检测场景的动态变化,并采用一种针对动态场景的自适应RANSAC方法来提升算法的鲁棒性
LSD-SLAM
为关键帧恢复半稠密深度图,并采用直接跟踪法恢复相机方位。在场景纹理较少,或快速运动
导致图像模糊的情况下,基于半稠密直接跟踪法的LSD-SLAM比基于特征点的SLAM方法更为稳定,
然而,半稠密直接跟踪法的计算量很大,很难在移动平台上做到实时。
SVO
仅对稀疏的特征点进行直接跟踪,因此能达到很高的帧率。SVO采用了一种深度滤波方法,
该方法能容忍误匹配对深度滤波的影响,提高SVO的鲁棒性。
面向大尺度的SfM通常有两种方式简化计算:第一种从稠密的图像集合中抽取稀疏的图像子集,称为骨架集合
第二种采用层次策略,Li等提出构造一个场景图,每个结点为一个子场景,子场景分别重建后进行融合
Gherardi等提出将图像集合构造成一颗平衡树,由叶子结点向根节点层次化重建
https://zhuanlan.zhihu.com/p/59070440 (基于Eigen库给出了实现)
EPnP是ORB-SLAM2中使用的方法
复杂度为O(n)。对于点对数量较多的PnP问题,非常高效
核心思想是将三维点表示为4个控制点的组合;优化也只针对4个控制点,所以速度很快
在求解Mx=0时,最多考虑了4个奇异向量,因此精度也很高