阅读《A Survey of Monocular Simultaneous Localization and Mapping》

一、大体总结

首先从AR(Augmented reality 增强现实)切入,讲了SLAM的重要性以及视觉SLAM可以带来的好处,然后以此展开总体的概括了SLAM的发展情况,也分析和介绍了各不同SLAM的性能区别,对各个特性进行了对比和分析,最后总体讲了现有SLAM技术的不足以及对SLAM日后发展的憧憬。

二、知识获取

1.同时定位与地图构建(simultaneous localization and mapping,SLAM)最早源于机器人领域[1-4], 其目标是在一个未知的环境中实时重建环境的三维结构并同时对机器人自身进行定位. 在计算机视觉
领域, 与之类似的技术是运动推断结构(structurefrom-motion, SFM)[5]. 早期的SFM 技术一般是离线处理的, 后来随着技术的发展出现了实时的
SFM 技术。
2.视觉SLAM的基本原理(重点啊,自己 这里基本看不懂,慢慢来吧)
其基本原理为多视图几何原理
这里写图片描述
V-SLAM 的目标为同时恢复出每帧图像对应的相机运动参数 C1…Cm , 及场景三维结构X1…Xn . 每个相机运动参数 Ci 包含了相机的位置和朝向信息, 通常表达为一个3×3 的旋转矩阵Ri 和一个三维位置变量 pi . Ri , pi将一个世界坐标系下的三维点 X j 变换至Ci的局部坐标系.
然后再投影到图像中。
3. 代表性单目V-SLAM 系统
目前, 国际上主流的V-SLAM 方法大致可以分为3 类: 基于滤波器、基于关键帧BA 和基于直接跟踪的V-SLAM.
(1) 基于滤波器的V-SLAM
·MonoSLAM
MonoSLAM 是由Davison 等发明的第一个成功基于单目摄像头的纯视觉SLAM 系统. MonoSLAM的状态 xt 由t 时刻的相机运动参数Ct 和所有三维点位置 X1Xn 构成, 每一时刻的相机方位均带有一个概率偏差(如图2a 所示); 同样, 每个三维点位置也带有一个概率偏差, 可以用一个三维椭球表示, 椭球中心为估计值, 椭球体积表明不确定程度(如下图 所示); 不同场景点之间, 以及场景点和Ct 之间均有概率关联. 在此概率模型下, 场景点投影至图像的形状为一个投影概率椭圆
这里写图片描述
MonoSLAM采用的是扩展卡尔曼滤波器,因为传统的卡尔曼滤波器主要有以下局限性:
1) 如果预测函数和更新函数为非线性(通常V-SLAM 问题都是非线性的), 那么EKF 并不能保证全局最优,与Levenberg-Marquardt[20]等迭代的非线性优化技术相比, 更容易造成误差累积. 如果上一帧处理完成时刻的估计值尚未精确, 传递至下一帧的先验信息便带有误差; 由于上一帧状态不再变化, 所以
先验信息中的误差便无法消除, 误差不断向后传递造成误差累积.
2) 若将三维点引入状态变量,则每一时刻的计算复杂度为O(n3 ) , 因此只能处理几百个点的小场景.

·MSCKF
为了缓解EKF方法的计算复杂度问题, Mourikis等[17]于2007 年提出了MSCKF. MSCKF 是一个VI-SLAM 方法, 在预测阶段, 使用IMU 数据进行传递系统状态,该方法可以大大降低计算复杂度, 将原来的跟三维点数成立方关系降到了线性关系
(2)基于关键帧BA 的V-SLAM
·PTAM
PTAM 是实时SFM 系统, 也是首个基于关键帧BA 的单目V-SLAM 系统,
PTAM的基本思想如下: 将相机跟踪(Tracking)和地图构建(Mapping)作为2 个独立的任务在2 个线程并行执行. 地图构建线程仅维护原视频流中稀疏抽取的关键帧(如图a 所示)及关键帧中可见的三维点(如图b 所示), 这样就可以非常高效地求解目标函数(4)(即BA); 有了BA 恢复的精确三维结构, 相机跟踪线程作为前台线程, 仅需优化当前帧运动参数Ct , 足以达到实时的计算效率.
这里写图片描述
这里写图片描述
PTAM 的开源对于V-SLAM 的发展来说意义深远, 目前市面上很多V-SLAM 系统都是基于PTAM的算法框架改进而来. Mur-Artal 等[26]于2015 年提出并开源的ORB-SLAM 是目前性能最好的单目V-SLAM系统之一.
·ORB-SLAM
ORB-SLAM 基本延续了PTAM 的算法框架,但对框架中的大部分组件都做了改进, 归纳起来
主要有4 点:
1)ORB-SLAM 选用了ORB 特征[27], 基于ORB 描述量的特征匹配和重定位[28], 都比PTAM
具有更好的视角不变性. 此外, 新增三维点的特征匹配效率更高, 因此能更及时地扩展场景. 扩展场景及时与否决定了后续帧是否能稳定跟踪.
2)ORBSLAM
加入了循环回路的检测和闭合机制, 以消除误差累积.
图优化和循环话回路闭合
3)PTAM 需要用户指定2 帧来初始化系统, 2 帧间既要有足够的公共点, 又要有足够的平移量. 平移运动为这些公共点提供视差(Parallax), 只有足够的视差才能三角化出精确的三维位置. ORB-SLAM 通过检测视差来自动选择初始化的2 帧.
4)PTAM 扩展场景时也要求新加入的关键帧提供足够的视差, 导致场景往往难以扩展. ORB-SLAM 采用一种更鲁棒的关键帧和三维点的选择机制——先用宽松的判断条件尽可能及时地加入新的关键帧和三维点, 以保证后续帧的鲁棒跟踪; 再用严格的判断条件删除冗余的关键帧和不稳定的三维点, 以保证BA 的效率和精度.
·RDSLAM
暂时不去了解了
(3)基于直接跟踪的V-SLAM(具体暂时不去了解)
基于滤波器和基于关键帧BA 的V-SLAM 通常都需要在图像中提取并匹配特征点, 因此对环境特征的丰富程度和图像质量(如模糊程度、图像噪声等)十分敏感. 相比之下,直接跟踪法(DirectTracking)不依赖于特征点的提取和匹配, 而是直接通过比较像素颜色来求解相机运动, 因此通常在特征缺失、图像模糊等情况下有更好的鲁棒性.
·DTAM

·LSD-SLAM
(4)这些SLAM方法的总的比较
这里写图片描述

恩恩,基本就这么多了 。
注意注意注意
自己这样的看文章真是太浪费时间了

猜你喜欢

转载自blog.csdn.net/amazingren/article/details/78097120