任何类型的相机对运动物体,视线遮挡,光照剧烈变化等恶劣情况下都不够鲁棒,而惯性测量单元(IMU)对环境基本没有要求,并且IMU可以提供高频的位姿估计,视觉一般只能提供低频的位姿。依据视觉与IMU的特点,视觉与IMU融合的SLAM系统逐渐受到广泛关注,已成为SLAM系统的研究热点。视觉与IMU融合的SLAM系统,称之为VI-SLAM系统,本博客针对目前主流的VI-SLAM进行对比。
文章目录
- 一、单目VI-SLAM系统
- 1、ORB-SLAM2
- (1)系统流程
- (2)主要模块
- (3)优点
- (4)缺点
- 2、LSD-SLAM
- (1)系统流程
- (2)主要模块:
- (3)优点:
- (4)缺点:
- 3、SVO
- (1)系统流程
- (2)主要模块:
- (3)优点:
- (4)缺点:
- 二、双目/RGB-D VSLAM
- 1、RTAB-MAP(RGB-D/双目)
- (1)系统流程
- (2)主要模块:
- (3)优点:
- (4)缺点:
- 2、RGBD-SLAM-V2
- (1)系统流程
- (2)主要模块:
- (3)优点:
- (4)缺点:
- 3、Elastic Fusion
- (1)系统流程
- (2)主要模块:
- (3)优点:
- (4)缺点:
- 三、VSLAM+IMU(VIO)方案
- 1、VIORB-SLAM2(单目+IMU)
- 2、VINS-MONO(单目)
- (1)系统流程
- (2)主要模块:
- (3)优点
- (4)缺点
- 3、VINS-FUSION(双目)
- 4、ORB-SLAM3(单目/双目+IMU)
- (1)系统流程
- (2)主要模块
- (3)优点
- (4)缺点
一、单目VI-SLAM系统
1、ORB-SLAM2
(1)系统流程
(2)主要模块
- 前端:系统特征提取、相机的位姿预测或重定位、判断新的关键帧等跟踪部分
- 后端:局部建图、回环检测以及全局BA模块,此处的局部地图是主要负责关键帧的插入,以及对临近地图点进行处理以生成新的地图点,随后使用局部捆集调整(LocalBA)对新生成的地图点进行优化,最后再选择和删除部分关键帧,并将其输入到下一个模块
- 回环检测:处理和优化从局部建图模块中输入的关键帧,该模块分别采用词袋模型和Sim3算法进行回环检测和相似变换,最后用全局优化对地图进行更新
(3)优点
- 采用三线程结构,有非常好的跟踪和建图效果,能够保证轨迹与地图的全局一致性。
- 对特征点提取及匹配方案进行优化,如提取均匀分布特征点、循环优化减少Outlier,这使得ORB-SLAM的鲁棒性很高;
- 受车辆、行人等动态物体的影响大。
(4)缺点
- 基于特征点,每次跟踪位姿都要提取匹配特征点,较为耗时
- 系统较为精细庞大,三线程结构对搭载平台要求较高,目前多在PC运行
- 只能建稀疏特征点地图,无法提供导航避障功能,只能提供定位
2、LSD-SLAM
(1)系统流程
(2)主要模块:
- 前端跟踪:用之前一帧的位姿作为初始值,直接法求解跟踪获得每一新帧相对于当前关键帧的se(3);
- 深度图估计:如果新帧跟关键帧变化较小,就通过small-baseline stereo comparison方法更新- 关键帧深度图;若变化较大就创建新关键帧,此新关键帧通过与最近的关键帧匹配来初始化。
- 地图优化:跟踪两两邻近关键帧间的sim(3),作为下一步全局优化的edge;位姿图优化+闭环检测(用特征点的词袋方法)+尺度漂移检测
(3)优点:
- 可在 CPU 上实现半稠密场景的重建;
- 考虑了像素梯度与直接法的关系,以及像素梯度与极线方向在深度估计中的角度关系;使深度估计精度有了较大提高;
- 用sim3作全局优化,可以减小尺度漂移,并可实现尺度可视化。
(4)缺点:
- 对相机内参和曝光非常敏感,并且在相机快速运动时容易丢失。
- 回环检测时还是得用特征点,不是单纯的直接法SLAM。
3、SVO
(1)系统流程
(2)主要模块:
- 前端跟踪:和上一帧通过光流法跟踪,求位姿初始值,然后通过局部地图在图像上的投影用直接法优化位姿;通过平移量判断是否创建新关键帧,创建关键帧后均匀提取新特征点;
- 深度滤波(地图优化):每次跟踪完后,获得帧间位姿,然后三角化获得点云深度,然后基于均值——高斯滤波器对逆深度进行融合,以优化地图。
(3)优点:
- 特征点与直接法的混合使用,使得它速度极快,在低端计算平台上也能达到实时性,而在 PC 平台上则可以达到 100 多帧每秒的速度;
框架简单,迁移容易。
(4)缺点:
- 在单目初始化时,使用了分解 H 矩阵而不是传统的 F 或 E 矩阵的方式,这需要假设特征点位于平面上;
- 目标应用平台为无人机的俯视相机,细节是围绕这个应用设计的,使得它在平视相机中表现不佳:如在关键帧选择时,使用了平移量作为确定新的关键帧的策略,而没有考虑旋转量;
- 为了速度和轻量化,舍弃了后端优化和回环检测部分,也基本没有建图功能。
二、双目/RGB-D VSLAM
1、RTAB-MAP(RGB-D/双目)
(1)系统流程
(2)主要模块:
VO模块:提取GFTT/BRIEF特征,并进行帧间光流追踪,通过RANSC PnP方法获得位姿初始值;再通过帧与局部地图点特征匹配,用BA方法更新位姿。
循环回环检测:ROS中的STM节点从图像中提取视觉特征(SIFT, SURF, ORB 等), 然后将其量化成"视觉词袋",创建定位点;每次检测相似帧时都是由WM从LTM中选择可能性大的定位点(每个定位点都有权重,权重随着被访问次数增加而增加)来进行比对,以优化运行速度;
后端优化:g2o/GTSAM(位姿图或因子图)优化。
建图:可以建2D/3D占据栅格图/八叉树图/点云图。
(3)优点:
适用于长期和大规模环境在线建图的要求;
里程计鲁棒性较好,且低漂移;
提供相应软件包,地图生成开发实用且简便。
(4)缺点:
方案偏向于商品化,二次开发难
2、RGBD-SLAM-V2
(1)系统流程
(2)主要模块:
前端:从每一帧的RGB提取特征,计算描述子,RANSAC ICP计算两帧之间的运动估计,并提出了一个EMM(环境测量模型)判断运动估计是否可以接受;
后端优化:也是词袋检测,然后G2O位姿图优化;
建图:可建立八叉树地图。
(3)优点:
二次开发较容易
(4)缺点:
实时性相对较差,相机要慢速运动
3、Elastic Fusion
(1)系统流程
(2)主要模块:
前端:从每一帧的RGB提取特征,计算描述子,RANSAC ICP计算两帧之间的运动估计,并提出了一个EMM(环境测量模型)判断运动估计是否可以接受;
后端优化:也是词袋检测,然后G2O位姿图优化;
建图:可建立八叉树地图。
(3)优点:
二次开发较容易
(4)缺点:
实时性相对较差,相机要慢速运动
三、VSLAM+IMU(VIO)方案
1、VIORB-SLAM2(单目+IMU)
工作原理:在ORB-SLAM2上改进而来
前端:继承ORB-SLAM2,都采用orb特征点,通过特征匹配结合局部地图估计运动;
后端:
优点:精度高,较为成熟
缺点:由于单目+特征匹配,鲁棒性较低
2、VINS-MONO(单目)
(1)系统流程
(2)主要模块:
预处理:图像特征光流跟踪;IMU数据预积分;
初始化:纯视觉Sfm初始化;Sfm与IMU积分的松耦合;
局部BA联合优化和重定位:基于滑动窗口的非线性优化实现紧耦合;
回环检测与全局位姿图优化:四自由度位姿图优化。
(3)优点
用紧耦合方法实现的,通过单目+IMU恢复出尺度;
采用光流跟踪,跟踪鲁棒性较好,可实用与快速场景;
估计精度较高。
(4)缺点
系统较为复杂,闭环检测对精度影响大;
3、VINS-FUSION(双目)
工作原理: VINS-FUSION是VINS-MONO的进化版,共有四个版本:单目+imu;纯双目;双目+imu;双目+imu+GPS;最主要的版本就是-双目+imu+GPS,对比于VINS Mono,主要增加了global_fusion包,用来融合GPS以及视觉IMU定位的结果。
优点:
可以静止进行初始化;
尺度信息不一定完全依靠IMU(有双目),不会造成尺度不可关的情况;
鲁棒性上,双目明显优于单目。
缺点:由于视觉误匹配等各种原因,双目的精度会比单目差一点。
4、ORB-SLAM3(单目/双目+IMU)
(1)系统流程
(2)主要模块
相比于ORB-SLAM2加入了ATLAS成为了多地图系统;加入IMU可以进化为VIO-slam;
前端TRACKING:根据当前的active地图,实时地跟踪最新一帧的位置,利用最小化重投影误差的方式实现位姿的最大后验估计MAP。决定新一帧是否作为关键帧加入地图也是在这个线程中完成的。跟踪线程接受IMU、Frame输入,IMU 被预积分处理,而Frame被提取ORB特征,跟踪方法与2代类似。
局部建图优化:active地图加入新关键帧,在添加关键帧的时候,重复的关键点被移除。VI-Bundle Adjustment优化当前被插入帧前后窗口地图。
闭环检测:还是基于词袋法,将关键帧和整个Atlas地图集关键帧进行比较;找到相似后利用时间+几何一致性检验;
地图融合:关键帧和整个Atlas地图集关键帧进行比较,如果检测到两关键帧是同一地点,分为两种情况:若被召回帧是当前的active地图中的一部分,则需要进行loop correction回环矫正,在回环矫正之后,在另一个线程中进行,全局位姿图进行BA优化,整体的地图一致性得到了提升;若被召回帧是属于一个non-active的map,两个地图则会被合并成一个地图并将大地图设置为当前的active地图。
(3)优点
由于加入多地图概念,相比于ORB-SLAM2鲁棒性更强,在跟踪定位失败后,可以继续建立新图,并在回环检测召回时可以进行地图缝合;
加入IMU鲁棒性有了很大提高;
提供多种相机模型。
(4)缺点
初始化时,使用视觉与IMU独立初始化再进行联合初始化,初始化速度较慢。