ref:A Review of VI-SLAM from Filtering-Based and Optimization-Based Perspective
VI-SLAM(视觉惯性同步定位与建图)技术通过融合摄像头与IMU(惯性测量单元)数据实现定位与环境感知,VI-SLAM系统依据后端优化类型可以主要分为滤波式和优化式两大方案,也可根据传感器融合类型进一步划分为松耦合或紧耦合两类,松耦合方法通常仅通过惯性测量单元(IMU)融合来估计姿态和位置变化,但不涉及完整姿态估计,紧耦合方法将相机状态与IMU状态融合为运动-观测方程,进而进行状态估计。
1. 基于过滤器的方法
特征检测:核心目标是识别图像中的关键特征并确定其位置,VI-SLAM常用的特征提取方法包括FAST、ORB、SIFT 和SURF等,这些方法通过构建描述子来刻画关键点周围的特征空间,主要有四类:(1)选取一阶导数局部最大值对应的像素坐标;(2)找到两条或多条边缘线的交点;(3)定位梯度值变化率与方向变化率均显著升高的区域;(4)确定角点处一阶导数达到极大值且二阶导数为零的位置。
特征跟踪:主要基于相似性度量机制,常用四种追踪方法,包括描述子匹配、滤波跟踪、光流追踪和直接像素处理。滤波跟踪包括卡尔曼滤波、粒子滤波和均值漂移法,核心思路是通过建模当前帧的目标区域,并在下一帧中寻找与模型最相似的区域来预测目标位置。光流跟踪根据计算方式可分为差分法、相关法和基于相位的方法,是估算运动状态(如速度、姿态和位移)的有效手段。

2. 基于优化的方法
优化方法通过图像处理将SLAM框架划分为前端和后端,前端负责地图构建,后端则专注于位姿优化,后端优化技术通常实现在g2o、ceres-solver和gtsam等平台。
回环检测:本质上属于场景识别问题,可以检测机器人是否在相同的位置重新进入,并可以确定机器人是否返回到以前访问过的位置,从而在其轨迹中形成一个回路,主要分为基于里程计的几何关系方法和基于外观的方法两大类,当累积误差较大时,基于里程计的几何关系方法将无法正常工作,而基于外观的方法通过分析两幅图像的相似度来确定闭环关系以消除累积误差,目前应该相对广泛。
VI-SLAM算法:OKVIS系统通过将IMU数据与重投影误差项整合到优化函数中来实现系统优化,采用边缘化处理技术控制关键帧数量,维持有限规模的优化窗口;VIORB作为基于ORB-SLAM技术的单目紧耦合VI-SLAM系统,局部地图模块通过局部BA算法优化最新N关键帧及其插入后所有观测点,随后根据关键帧的时间序列获取局部地图。固定窗口将第N +个关键帧与共可见图连接;VINS-Mono前端采用KLT光流算法追踪Harris角点,通过RANSAC方法剔除基础矩阵中的离群值,后端则运用滑动窗口进行非线性优化。整套系统包含测量处理、估计初始化、无需重定位的局部束调整、回环闭合及全局位姿优化等模块。

3. 对比
针对不同应用场景设计的各类VI-SLAM方法,要进行全面评估并非易事。
CPU占用率:滤波类方法的表现优于优化类方法,无论是滤波类还是优化类方法,立体VI-SLAM方法都需要消耗更多计算资源
定位精度和内存占用:基于优化的方法比滤波方法更优,优化方法能实现卓越的定位精度和更低的内存消耗。