1. 纯视觉SLAM对比
纯视觉SLAM类别可分为两种主要方法:基于特征的方法和直接方法。视觉的SLAM系统基于二维图像处理,系统通过多视角获取数据,首先执行初始化流程以定义全局坐标系并重建初始地图。在基于特征的滤波算法中,第一步会将地图点初始化为高不确定性状态,这些点最终可能收敛到实际位置。随后进行目标跟踪,尝试估算相机位姿。与此同时,随着更多未知场景被观测,三维重建过程会持续添加新点位。 仅视觉SLAM系统可采用单目相机或立体相机,基于单目相机的SLAM技术因其传感器体积小巧(所有方案中最小)、成本低廉、校准简便且功耗低等优势,但这类系统在初始化阶段较为复杂:首先需要至少两个不同视角来确定初始深度,其次还需解决位姿估计以及漂移和尺度估算等问题。而立体相机虽能通过单帧获取立体视图实现补偿,但其传感器体积比普通单目相机更大,且每帧处理需求更高——这主要源于立体匹配阶段所需的图像校正流程。
时间 | 算法 | 全称 | 特点 | 地图密度 | 全局优化 | 回环检测 |
|---|---|---|---|---|---|---|
2007 | MonoSLAM | 单目SLAM | 第一个单目SLAM算法 | 稀疏 | 无 | 无 |
2007 | PTAM | 平行跟踪和测绘 | 第一个将跟踪和映射分成两个不同步骤的算法 | 稀疏 | 具备 | 无 |
2011 | DTAM | 密集跟踪和测绘 | 第一个完全直接的深度重建方法 | 稠密 | 无 | 无 |
2014 | SVO | 半直接视觉里程计 | 融合了基于特征方法与直接方法,包含两大核心模块:运动估计与深度映射 | 稀疏 | 无 | 无 |
2014 | LSD-SLAM | 大规模单目直接SLAM | 实现半密集重建的直接算法,包含三个核心步骤:跟踪、深度图估计和地图优化 | 半稠密 | 具备 | 具备 |
2017 | ORB-SLAM2 | 特征点检测与描述子算法 | 基于特征的算法,采用三线程并行处理机制:跟踪线程、局部地图构建线程和回环校正线程 | 稀疏 | 具备 | 具备 |
2017 | CNN_VSLAM | 卷积神经网络 | 第一个基于卷积神经网络SLAM,包含两个独立处理通道:一个在每帧输入中运行,另一个则专用于关键帧分析 | 半稠密 | 具备 | 具备 |
2018 | DSO | 直接稀疏里程计 | 将直接方法与稀疏重建技术相结合 | 稀疏 | 无 | 无 |
MonoSLAM

PTAM

DTAM

SVO

LSD-SLAM

ORB-SLAM2

CNN-SLAM

DSO

VI-SLAM算法根据其后端处理方式存在不同实现方案,可分为基于过滤的和基于优化的两种类型。采用过滤型方法的VI-SLAM前端依赖特征提取技术,而基于优化的方法(亦称关键帧法)则依靠全局优化策略。
VI-SLAM算法通过惯性测量技术来估算结构和传感器的姿态,采用由陀螺仪、加速度计及磁力计组成的惯性测量单元(IMU),能够获取x、y、z轴方向上的角速率(陀螺仪)与加速度(加速度计)数据。
时间 | 算法 | 全称 | 特点 | 地图密度 | 全局优化 | 回环检测 |
|---|---|---|---|---|---|---|
2007 | MSCKF | 多状态约束卡尔曼滤波器 | 包含三大核心步骤:状态传播、图像配准与滤波器更新 | 稀疏 | 无 | 无 |
2014 | LKVIS | 基于关键帧的视觉惯性 | 通过将IMU数据与重投影项整合到目标函数中,是先构建局部地图,再根据关键点匹配区域选取后续关键帧 | 稀疏 | 无 | 无 |
2015 | ROVIO | 鲁棒视觉惯性里程计 | 采用扩展卡尔曼滤波(EKF)技术,通过IMU数据进行状态传播,并利用相机数据完成滤波更新 | 稀疏 | 无 | 无 |
2017 | VIORB | 视觉惯性ORB-SLAM | 包含三大核心模块:跟踪模块、局部地图构建模块和环闭合模块 | 稀疏 | 具备 | 具备 |
2018 | VI-DSO | 视觉惯性直接稀疏里程计 | 构建非线性动态模型,将测光误差与惯性误差相结合 | 稀疏 | 无 | 无 |
2018 | VINS-Mono | 单目视觉-惯性系统 | 单目视觉-惯性状态估计器 | 稀疏 | 具备 | 具备 |
2020 | ORB-SLAM3 | ORB-SLAM3 | 融合了ORB-SLAM和VIORB两大算法 | 稀疏 | 具备 | 具备 |
4. VI-SLAM算法流程
MSCKF

OKVIS

ROVIO

ORB-SLAM(VIORB)

VINS-Mono

VI-DSO
