第14讲 SLAM:现在与未来
了解经典SLAM实现方案,通过实验,比较各种SLAM方案的异同,探讨SLAM的未来发展方向。
目录
1、当前的开源方案
2、未来的SLAM
2.1 视觉+惯性导航SLAM
2.2 语义SLAM
2.3 SLAM的未来
其他还有:基于线/面特征的SLAM、动态场景下的SLAM、多机器人的SLAM。
1、当前的开源方案
方案 | 概述 | 优点 | 缺点 |
MonoSLAM | 2007年,A.J.Davison提出,第一个实时单目视觉SLAM系统。以EKF为后端,追踪前端非常稀疏的特征点。以相机当前状态和所有路标点为状态量,更新其均值和协方差。 | 里程碑,第一个实时单目视觉SLAM。 | 应用场景窄,路标数量有限,稀疏特征点非常容易丢失。开发已停止。 |
PTAM(Parallel Tracking and Mapping) | 2007年,Klein等提出。 | 1、提出并实现了跟踪与建图过程的并行化。 2、第一个使用非线性优化,而不是传统的滤波器作为后端的方案。引入的关键帧机制。 3、同时是一个增强现实软件,可以在虚拟平面上叠加虚拟物体。 | 场景小,跟踪容易丢失。 |
ORB-SLAM | 2015年,是现代SLAM系统中做的非常完善、非常易用的系统之一。代表主流的特征点SLAM的一个高峰。 | 1、支持单目、双目、RGB-D模式 2、整个系统围绕ORB特征计算,包括视觉里程计与回环检测的ORB字典。 3、回环检测,运行前必须加载一个很大的ORB字典文件。 4、三线程完成SLAM:实时跟踪特征点的Tracking线程,局部BA的优化线程(小图),全局位姿图的回环检测与优化线程(大图)。 5、围绕特征点进行很多优化。提取特征保证特征点均匀分布、优化位姿时循环优化4遍、宽松的关键帧选取策略。 6、代码清晰易读,注释完善。 | 1、必须对每幅图像计算一遍ORB特征,非常耗时。 2、三线程结构给CPU带来较重的负担,移植到嵌入式设备较困难。 3、ORB-SLAM的建图为稀疏特征点,只能满足定位功能,无法提供导航、避障、交互功能。仅用其处理定位问题,显得过于重量级。 |
LSD-SLAM(Large Scale Direct momocular SLAM) | 2014年,J.Engel提出。标志着单目直接法在SLAM中的成功应用。核心贡献是将直接法应用到了半稠密的单目SLAM中,不仅不需要计算特征点,还能构建半稠密的地图(半稠密指估计梯度明显的像素位置)。 | 1、LSD-SLAM的直接法是针对像素进行的。提出了像素梯度与直接法的关系,以及像素梯度与极线方向在稠密重建中的角度关系。 2、在CPU上实现了半稠密的重建。 3、LSD-SLAM的半稠密追踪使用了一些精妙的手段保证追踪的实时性和稳定性。在极线上等距取5个点,度量其SSD;深度均值归一化;考虑极线与深度的夹角;关键帧约束使用了相似变换群及与之对应的李代数显式表达尺度。 | 直接法跟踪,既有优点(对特征缺失区域不敏感),又继承了其缺点。对相机内参和曝光敏感;在相机快速移动时容易丢失;回环检测仍依赖特征点计算。 |
SVO(Semi-direct Visual Odometry) | 2014年,Forster等人提出一种基于稀疏直接法的视觉里程计。半直接法指特征点与直接法的混合使用:SVO跟踪了一些关键点(无描述子),然后像直接法那样,根据关键点周围信息估计相机运动和位置。 | 1、速度极快(不必计算描述子,不必处理稠密和半稠密信息),适用于计算平台受限的场合,例如无人机、手持AR/VR设备的定位。该系统目标场景也是无人机。 2、提出深度滤波器概念。并推导了基于均匀-高斯混合分布的深度滤波器。用于关键点的位置估计,并使用逆深度。 | 1、目标应用平台为无人机的俯视相机,其视野内的物体主要是平面,且相机主要运动为上下和水平移动,SVO很多细节围绕该应用设计,因此在平视相机表现不佳。 2、舍弃了后端优化和回环检测,且基本没有建图功能。因此SVO位姿估计比如存在累计误差,丢失后不容易重定位。因此称它为视觉里程计,而不是完整SLAM。 |
RTAB-MAP(Real Time Appearance-Based Mapping) | RGB-D SLAM中比较经典的一个方案,实现了所有应该有的东西:基于特征的视觉里程计、基于词袋的回环检测、后端的位姿优化、以及点云和三角网格地图。 | 支持一些场景的RGB-D和双目传感器,像Kinect、Xtion等,且提供实时定位和建图。 | 集成度较高,使得二次开发困难,更适合作为SLAM应用而非研究。 |
2、未来的SLAM
- 发展趋势:一是轻量化、小型化发展;二是利用高性能计算设备,实现精密的三维重建、场景理解等功能。
2.1 视觉+惯性导航SLAM
- IMU能够测量传感器本体的角速度和加速度,被认为与相机传感器具有明显的互补性,而且极有可能在融合之后得到更完善的SLAM系统
- IMU虽然可测角速度和加速度,但都存在明显漂移,使得积分两次得到的位姿数据非常不可靠。但是对于短时间的快速运动,IMU能够提供一些较好的估计,这正是相机的弱点。相机运动过快时,两帧之间重叠太少可能无法特征匹配。有了IMU,在相机无效时间,也能保持一个较好的位姿估计,这是纯视觉SLAM无法做到的。
- 相比IMU,相机不会有漂移,慢速运动后的位姿估计依然有效。
- 纯视觉SLAM难以处理动态的障碍物(当图像变化,无法知道是相机自身运动,还是外界发生变化)。而IMU可以感受到自己的运动信息,减轻动态物体的影响。
- IMU为快速运动提供了较好的解决方式,而相机能在慢速运动下解决IMU漂移问题,因此二者是互补的。
- VIO(Visual Inertial Odometry),有两大类:松耦合和紧耦合。
- 松耦合(Loosely Coupled)是指IMU和相机分别进行自身的运动估计,然后对其位姿估计结果进行融合。
- 紧耦合(Tightly Coupled)是指把IMU和相机的状态合并到一起,共同构建运动方程和观测方程,然后进行状态估计。
- VIO为将来SLAM的小型化和低成本提供了一个非常有效的方向。
2.2 语义SLAM
- SLAM另外一个大方向:与深度学习技术结合。语义SLAM:
- 将物体识别与视觉SLAM结合起来,构建带物体标签的地图。
- 把标签引入BA或优化端的目标函数和约束中,可以结合特征点的位置和标签信息进行优化。
- SLAM和语义的结合:
- 语义帮助SLAM:运动的图像带上物体标签,就能得到一个带标签的地图。另外物体信息可为回环检测、BA优化带来更多条件。
- SLAM帮助语义:SLAM可以估计相机运动,自动计算物体在图像中的位置,自动生成带高质量标注的不同视角下的样本,加速训练。
- 目前已经有学者将神经网络引入SLAM的物体识别和分割中,甚至SLAM本身的位姿估计和回环检测中。
2.3 SLAM的未来
其他还有:基于线/面特征的SLAM、动态场景下的SLAM、多机器人的SLAM。