(一)单目VSLAM特点介绍:
1、ORB-SLAM2
- 工作流程:
- 主要模块:
- 前端:ORB特征提取匹配,估计相机位姿;根据跟踪地图点数的减少选择关键帧;
- 后端:BA优化局部地图(关键帧和地图点),此处的局部地图是当前关键帧的Covisibility Graph(与当前关键帧有共视点的关键帧);
- 回环检测:通过DBOW在关键帧序列中选出相似帧,计算Sim3(由于单目的尺度不确定导致尺度漂移,故采用相似变换将尺度优化也考虑进来);检测出回环的地方进行点云地图融合,并优化Essential Graph(Covisibility Graph的Spanning Tree应该是MST);
- 优点:
- 采用三线程结构,有非常好的跟踪和建图效果,能够保证轨迹与地图的全局一致性。
- 对特征点提取及匹配方案进行优化,如提取均匀分布特征点、循环优化减少Outlier,这使得ORB-SLAM的鲁棒性很高;
- 受车辆、行人等动态物体的影响大。
- 缺点:
- 基于特征点,每次跟踪位姿都要提取匹配特征点,较为耗时;
- 系统较为精细庞大,三线程结构对搭载平台要求较高,目前多在PC运行;
- 只能建稀疏特征点地图,无法提供导航避障功能,只能提供定位;
2、LSD-SLAM
- 工作流程:
- 主要模块:
- 前端跟踪:用之前一帧的位姿作为初始值,直接法求解跟踪获得每一新帧相对于当前关键帧的se(3);
- 深度图估计:如果新帧跟关键帧变化较小,就通过small-baseline stereo comparison方法更新关键帧深度图;若变化较大就创建新关键帧,此新关键帧通过与最近的关键帧匹配来初始化。
- 地图优化:跟踪两两邻近关键帧间的sim(3),作为下一步全局优化的edge;位姿图优化+闭环检测(用特征点的词袋方法)+尺度漂移检测。kao
- 优点:
- 可在 CPU 上实现半稠密场景的重建;
- 考虑了像素梯度与直接法的关系,以及像素梯度与极线方向在深度估计中的角度关系;使深度估计精度有了较大提高;
- 用sim3作全局优化,可以减小尺度漂移,并可实现尺度可视化。
- 缺点:
- 对相机内参和曝光非常敏感,并且在相机快速运动时容易丢失。
- 回环检测时还是得用特征点,不是单纯的直接法SLAM。
3、SVO
- 工作流程:
- 主要模块:
- 前端跟踪:和上一帧通过光流法跟踪,求位姿初始值,然后通过局部地图在图像上的投影用直接法优化位姿;通过平移量判断是否创建新关键帧,创建关键帧后均匀提取新特征点;
- 深度滤波(地图优化):每次跟踪完后,获得帧间位