目前SLAM领域现有主流方法:
1)多传感器融合。
由两种及以上传感器组成的混合系统,可分为松耦合、紧耦合。可以解决视觉里程计的漂移和尺度丢失问题,提高系统在非结构化或退化场景中的鲁棒性。
多传感器融合系统定义为优化问题的最大似然估计。
视觉惯性系统:
核心是如何进行更好的状态估计,如何更佳地将IMU测量值和相机图像信息进行融合,为传感器安装平台提供最优地自身运动信息和环境信息。IMU和相机有两种融合方式:松耦合和紧耦合。
多状态约束卡尔曼滤波器(multi-state constraint Kalman filter,MSCKF)是基于EKF提出的一种紧耦合框架,使用IMU进行状态预测,将当前时刻的IMU速度、测量偏差等状态和滑动窗口中的多时刻相机位姿一并放到状态向量中,对视觉惯性里程计进行6自由度的运动估计。并提出针对视觉特征的零空间操作,视觉特征点不再作为被估计的状态量。
基于深度学习的视觉惯性系统也逐步发展起来。Liu提出InertialNet,训练端到端模型来推导图像序列和IMU信息之间的联系,预测相机旋转。Shamwell提出无需IMU内参或传感器外参的无监督深度神经网络方法,通过在线纠错模块解决定位问题,这些模块经过训练可以纠正视觉复制定位网络的错误。Kim为不确定性建模引入了无监督的损失,在不需要真值协方差作为标签的情况下学习不确定性,通过平衡不同传感器模式之间的不确定性,克服学习单个传感器不确定性的局限性,在视觉和惯性退化的场景进行验证。
激光惯性系统:
可分为松耦合、紧耦合。
基于松耦合的激光惯性里程计LOAM,LOAM定义了逐帧跟踪的边缘与平面3D特征点,使用高频率的IMU测量对两帧激光雷达之间的运动进行插值,该运动作为先验信息用于特征间的精准匹配,从而实现高精度里程计。
基于LOAM框架,Shan通过引入局部扫描匹配提出LIO-SAM,使用IMU预积分对激光雷达点云做运动补偿并为激光点云的配准提供初值,此外,该系统还可以加入闭环与GPS信息来消除漂移,从而实现长时间导航。但是在退化场景中,由于缺乏有效观测,紧耦合的激光惯性系统同样很难适应。
激光视觉惯性系统:
既能够适应退化场景又兼具激光惯性系统的高精度平滑轨迹。
松耦合:
Zhang提出DEMO(depth enhanced monocular odometry),使用激光雷达的点云深度值为视觉特征点提供深度信息,可以提供更高精度的位姿估计和更高质量的地图。
Zhang和Singh又基于LOAM算法,集成单目特征跟踪与IMU测量来为激光雷达扫描匹配提供距离先验信息,提出了V-LOAM,然而算法执行过程是逐帧进行的,缺乏全局一致性。针对与这一问题,Wang等人通过维护关键帧数据库来进行全局位姿图优化,从而提升全局一致性。
为了克服退化问题,Khattak提出另外一种类似LOAM的松耦合方法,它使用视觉惯性先验进行激光雷达扫描匹配,可以在无光照的隧道中运行。
Camurri提出用于腿足机器人的Pronto,用视觉惯性里程计为激光雷达里程计提供运动先验信息,并能校正视觉与激光之间的位姿。
紧耦合:
Graeter提出一种基于集束调整(bundle adjustment,BA)的视觉里程计系统LIMO(lidar-monocular visual odometry),该算法将激光雷达测量的深度信息重投影到图像空间,并将其与视觉特征相关联,从而保持准确的尺度信息。
Shao提出VIL-SLAM,直接对3种传感器信息进行联合优化,将视觉惯性里程计与激光里程计相结合作为单独的子系统,用来组合不同的传感器模式。
2)多特征基元融合。
点、线、面其他高维几何特征等与直接发相结合。不同几何特征基元的融合,可以大大减少有效约束的程度,并可为自主导航任务提供更多的有用信息。
特征点法与直接法:
特征点法:特征点法通过提取和匹 配相邻图像( 关键) 帧的特征点估计对应的帧间相 机运动,包括特征检测、匹配、运动估计和优化等步骤。
直接法:
直接法不用提取图像特征,而是直接使用像素强度信息,通过最小化光度误差来实现运动估计。
Newcombe提出DTAM,首先使用直接法实现了单目视觉SLAM,它提取每个像素的逆深度并通过优化的方法构建深度图,进而完成相机位姿估计。
Engel提出LSD-SLAM(Large-scale direct SLAM),针对大规模场景,能够使用单目相机获得全局一致的半稠密地图。
Engel提出DSO(direct sparse odometry),对整个图像中的像素进行均匀采样,考虑了光度校准、曝光时间、镜头渐晕和非线性相应函数。
Gao提出LDSO(loop-closure DSO),在DSO的基础上增加了闭环,保证了长时间的跟踪精度。
虽然直接法相较于特征点法省去了特征点和描述子的计算时间,只利用像素梯度就可构建半稠密甚至稠密地图,但是由于图像的非凸性,完全依靠梯度搜索不利于求得最优值,而且灰度不变是一个非常强的假设,单个像素又没什么区分度,所以直接法在选点少时无法体现其优势。
利用特征点法和直接法的优点,Forster在多旋翼飞行器上实现了半直接单目视觉里程计(semi-direct visual odomtry,SVO)。该系统利用像素间的光度误差,通过基于稀疏模型的图像对齐进行位姿初始化。通过最小化特征块匹配的重投影误差优化位姿图和地图点,可以更快更准的得到状态估计结果。
多种几何特征:
Zhang提出一种基于图像直线特征的视觉SLAM系统,使用双目相机进行运动估计、位姿优化和BA,并用不同的表示方式来参数化3D线,在线特征比较丰富的环境中,性能要由于基于点特征的方法。
Gomez-Ojeda用基于概率的方法,将点特征与线特征进行组合,通过最小化点和线段特征的投影误差来恢复相机运动,该系统在低纹理场景中也能有效工作。
Punmarola提出PT-SLAM,以ORB-SLAM为基础,同时处理点特征和线特征,用3幅连续图像帧中的5条线段来估计相机位姿并构建3D地图。
Zuo采用正交表示作为最小参数化,建模视觉SLAM中的点特征和线特征,并推导出重投影误差的关于线特征参数的雅可比矩阵,并在仿真和实际场景中取得了较好的实验效果。
Yang基于图像的线段测量,提出滑动窗口的3D线三角化算法,并揭示了导致三角化失败的3中退化运动,为其提供几何解释。
Arndt将平面地标和平面约束添加到基于特征的单目SLAM中,它不依赖深度信息或深度神经网络就可实现更完整更高级别的场景表示。
3)多维度信息融合。
几何、语义、物理信息和深度神经网络的推理信息等相融合。数据驱动下的基于深度学习的策略为SLAM系统开辟了新的道路。
几何信息与语义信息:
Salas-Moreno提出SLAM++,这是一个实时增量的SLAM系统,可以高效地对场景进行语义描述,非常适合由重复相同的结构和特定领域的物体组成公共建筑内部环境,能够完成3D对象的实时识别跟踪,并提供6自由度相机对象约束。
Zheng基于语义分割的在线RGBD重建,提出一种未知环境下的机器人主动场景理解方法,使用在线估计的视角分数场(viewing score field,VSF)和截断符号距离函数(truncated signed distance function)联合优化路径和相机位姿。
Tateno使用概率推理方法,结合对象位姿估计和SLAM场景理解与语义分割,构建了一种在线增量场景建模框架,提高了语义分割和6自由度对象位姿估计性能。
学习方法与传统方法:
前端里程计领域:
Wang提出基于监督学习的DeepVO,使用卷积神经网络和递归神经网络的组合方式实现视觉里程计的端到端学习,卷积神经网络完成成对图像的视觉特征提取,递归神经网络则用来传递特征并对其时间相关性建模。
Zhou提出基于无监督学习的SfmLearner,由一个深度网络和一个位姿网络构成,深度网络用来预测图像的深度图,位姿网络用来学习图像之间的运动变换。
Yang提出单目视觉里程计D3VO(deep depth,deep pose and deep uncertainly visual odomtry)在深度、位姿和不确定性估计3个层次上使用深度网络,在仅使用一个相机的情况下与当时性能最好的视觉里程计不相上下。
Chen提出IONet(inertial odomtry networks)用于从惯性测量序列中端到端学习相对位姿,这种纯惯性方案可以应用在视觉信息缺失的极端环境中。
Han提出DeepVIO将双目图像和惯性数据集成到一个无监督学习框架中,用特有损失进行训练,可以在全局范围内重建运动轨迹。
Zuo提出CodeVIO,一个轻量级紧耦合的深度网络和视觉惯性里程计系统,可以提供准确的状态估计和周围环境的稠密深度图。
在建图领域,深度学习已经完成了场景感知理解的体系构建:
Godard提出基于无监督的学习方法,分别将空间一致性和时间一致性作为自监督信号,进行深度和自身运动估计,在双目和单目深度预测中取得了较好的效果,若能加入更多的附加约束,应该可以更好的回复网络参数,提升深度预测性能。
对于体素这一几何特征,Ji提出SurfaceNet,一种多视图立体视觉的网络表面学习框架,可以直接学习表面结构的照片一致性和几何关系,通过学习预测体素的置信度,进一步确定它是否在表面上来重建场景的3D表面,虽然可以将其准确重建,但缺乏更进一步的后处理方法来进一步提高精度。
对于语义地图,Xiang提出DA-RNN,提出数据关联递归递归神经网络,将递归模型引入语义分割框架,从而学习多个视图框架的时间连接,网络的输出与KinectFusion等建图技术相结合,以便将语义信息注入到重建的3维场景中。
全局定位通过2D或3D场景模型提供的先验知识确定载体的绝对位姿,深度学习可用于解决此过程中的数据关联问题:
2D-2D显式基于地图的定位NN-Net直接从成对图像中回归相对位姿,隐式基于地图的定位PoseNet通过训练卷积神经网络,从单目图像中估计相机位姿,从而端到端地解决相机重定位问题。
2D-3D基于描述子匹配HF-Net和基于场景坐标回归的定位,用深度学习的方法恢复2D在3D场景模型中的相机位姿。
激光雷达3D-3D的定位L3-Net使用PointNet处理点云数据以提取编码某些有用属性的特征描述子,并通过递归神经网络建模动力学模型,用最小化点输入和3D地图之间的匹配距离来优化预测位姿和真实值之间的损失,进而完成基于学习激光雷达定位框架。
融合物理信息:
气压、高度、物理接触等。