站在历史角度,看一下为SLAM的发展带来贡献的方案:
- 2007年—A.J.Davison—MonoSLAM
- 视觉SLAM的先驱,建立在EKF基础上,此前基本无法在线运行,意义较大;
- 应用场景窄;
- 2007—Klein—PTAM
- 也是SLAM重要事件:双线程结构;跟踪部分实时响应,地图优化没必要实时,第一个使用非线性优化后端,引入关键帧机制,带有AR效果;
- 场景小跟踪容易丢失;
- 2014—J.Engle—LSD-SLAM
- 单目直接法 用直接法构建半稠密地图(不需要特征点),半稠密:估计梯度明显的像素位置。可在CPU上进行,极线搜索做法是极线等距取5点,度量SSD,深度估计采取随机数再归一化等,减小了尺度漂移;
- 直接法的缺点:对相机内参和曝光敏感,运动过快容易丢失,没有直接法的回环检测,依赖特征点;
- 2014—Forster—SVO
- 半直接法 特征点与直接法混合使用,跟踪角点,没有描述子,直接根据关键点周围信息估计相机运动;4X4大小的块匹配,速度极快,SVO2.0可以达到400帧每秒,提出了深度滤波器;
- 只要是无人机俯视相机使用,平视表现不好,单目初始化等;舍弃了后端优化和回环检测,故称一个VO而非SLAM。
- 2015—PTAM的继承者—ORB-SLAM
- 特征点SLAM中的顶峰支持单目、双目、RGB-D模式;用ORB特征计算视觉里程计和回环检测的ORB字典,精度与效率折中;回环检测优秀,一个很大的ORB字典文件;三个线程完成SLAM,跟踪特征点、小图BA、大图全局位姿图和优化线程;
- 必须对每个图像都计算一遍ORB特征,耗时,三线程CPU负担,没有开放存储和读取地图后重定位,无法提供导航、避障、交互等。
- RTAB-MAP 是专用RGB-D SLAM的方案,基于特征的视觉里程计,基于词袋的回环检测,后端的位姿图优化以及点云和三角网格地图,完整庞大的SLAM方案。
其他一些方案可以在官网查找
研究方向
- 视觉+惯导 :具有明显互补性:
- IMU:角速度,加速度存在明显漂移,使积分两次得到的数据不可靠,但是短时间内快速运动,IMU能提供较好的估计;
- 相机:运动过快,运动模糊,重叠区域太少,数据基本不漂移,运动过快可以依靠IMU保持位姿估计;
- 图像变化时,不知道是相机自身运动还是外接环境变化,IMU却可以感受到;
复杂的VIO
- 语义SLAM
结合深度学习
- 语义帮助SLAM:给图带标签,得到带标签的地图,有助于与回环检测和BA优化;
- SLAM帮助语义:深度学习上,从不同视角采集物体数据标定,辛苦。而在SLAM中可以估计相机运动,自动计算物体在图像中的位置,省去人工成本。
- 在深度学习之前,场景分割识别通过支持向量机,条件随机场等传统工具进行。使用深度学习后,很有前景
- 基于线/面特征的SLAM
- 动态场景下的SLAM
- 多机器人的SLAM
都有待探索。
我们正处在提出问题—寻找算法—完善算法 的第三个阶段,各位共勉!