论文题目:
A Survey of Simultaneous Localization and Mapping(2020)
作者:Baichuan Huang1,2, Jun Zhao1Jingbin Liu2
1 Nanyang Technological University, Singapore 新加坡南洋理工大学
2 Wuhan University, Wuhan, China 武汉大学
3.视觉SLAM
与激光雷达系统相比,使用摄像头的视觉SLAM也使系统更便宜、更小。现在,VisualSlam系统可以在微型PC和嵌入式设备上运行,甚至可以在智能手机等移动设备上运行
视觉SLAM 包括传感器数据的收集(如摄像头或惯性测量单元)前端的视觉里程计或视觉惯性里程计、后端的优化、后端的环路闭合和建图。重新定位是稳定和准确视觉SLAM的附加模块。
3.1视觉传感器
分类
1.单目相机:单目相机无法获得真实的深度,这被称为尺度模糊。基于单目相机的SLAM需要初始化,并且面临漂移问题
2.双目相机:双目摄像机是两个单目摄像机的组合,两个单目摄像机之间的距离称为基线。虽然可以通过校准、校正、匹配和计算来获得深度,但这一过程会浪费资源。
3.RGB-D相机:也称为深度相机,可以直接以像素为单位输出深度。深度相机可以通过立体、结构光和TOF技术来实现。结构光理论是红外激光向物体表面发射具有结构特征的图案。然后红外摄像机将收集由于表面深度不同而产生的图案变化。TOF将测量激光的飞行时间,以计算距离。
4.事件摄影机:不是以固定速率拍摄图像,而是异步测量每像素亮度的变化。事件摄影机具有非常高的动态范围(140 dB vs.60 dB)、高时间分辨率(按我们的顺序)、低功耗,并且不会出现运动模糊。因此,事件摄像机在高速和高动态范围内的性能优于传统摄像机。
产品/厂商
1.Microsoft
2.Intel
3.Stereolabs ZED
4.MYNTAI
5.Occipital Structure
6.Samsung
7.其他
深度相机:Leap Motion、Orbbec Astra、Pico Zense、DUO、Xtion、Camboard、IMI、Humanplus、PERCIPIO。XYZ,PrimeSense
事件相机:iniVation,AIT(AIT Austrian Institute of Technology),SiliconEye,Prophesee,CelePixel,Dilusense.
3.2视觉SLAM系统
利用图像信息的方法可以分为直接方法和基于特征的方法。
直接方法导致半稠密和稠密结构,而基于特征的方法导致稀疏结构
稀疏视觉SLAM
1.MonoSLAM 单目
是第一个基于EKF[71]的实时MonoSLAM系统。单目
2.PTAM 单目
第一个实现并行跟踪和映射的SLAM系统。该算法首先采用捆绑调整的方法进行优化,并引入关键帧的概念。
3.ORB-SLAM 单目
使用三个线程:跟踪、局部映射和循环关闭。
ORBSLAM v2 支持单目、立体和RGB-D摄像头。CubemapSLAM是基于ORB-SLAM的单目鱼眼相机SLAM系统。视觉惯性ORB-SLAM[77][78]解释了IMU的初始化过程以及视觉信息的联合优化。
4.proSLAM 双目
一个轻量级的视觉SLAM系统,易于理解
5.ENFT -sfm 单目
一种特征跟踪方法,可以有效地匹配一个或多个视频序列之间的特征点对应,更新后的版本ENFT-SLAM可以大规模运行
6.OpenVSLAM 所有类型相机
基于稀疏特征的间接SLAM算法。OpenVSLAM的优点在于,该系统支持透视、鱼眼和等矩形,甚至支持您设计的相机模型
7.TagSLAM
使用AprilTag基准标记实现SLAM。还为GTSAM因子图优化器提供了前端,该优化器可以设计大量实验。
8.UcoSLAM
半密集视觉SLAM
1.LSD-SLAM 单目
提出了一种新的直接跟踪方法,该方法基于李代数和直接方法
2.SVO 单目
使用基于稀疏模型的图像对齐来获得较快的速度。更新版本扩展到多个摄像头、鱼眼和折反射摄像头,CNN-SVO是SVO的一个版本,它通过单图像深度预测网络进行深度预测
3.DSO 单目
LSD-SLAM作者的新作,该方法基于直接法和稀疏法,不需要对特征点进行检测和描述
4.EVO 事件相机
一种基于事件的视觉里程计算法,不受运动模糊的影响,在具有强烈照明变化的高动态范围条件下运行良好。
密集视觉SLAM
1.DTAM 单目
可以在一种新的非凸优化框架中,基于最小化全局空间正则化能量泛函,实时重建三维模型,称为直接方法
2.MLM SLAM 单目
可以在线重建密集的三维模型,无需图形处理单元(GPU),其关键贡献在于多分辨率深度估计和空间平滑过程
3.Kinect Fusion (RGB-D)
几乎是第一个使用深度相机的3D重建系统
4.DVO (RGB-D)
提出了一种密集视觉SLAM方法,一种基于熵的关键帧选择相似性度量和基于g2o框架的循环闭合检测
5.RGBD-SLAM-V2 (RGB-D)
可以在无需其他传感器的帮助下重建精确的三维密集模型
6.Kintinuous (RGB-D)
具有全局一致的点和网格实时重建的视觉SLAM系统
7.RTAB-MAP:(RGB-D)
支持同时定位和建图,但很难作为开发上层算法的基础[108][109][110]。后者支持视觉和激光雷达SLAM[111]。
8.Dynamic Fusion (RGB-D)
提出了第一个能够在基于实时的Kinect Fusion 中重建非刚性变形场景的密集SLAM系统
VolumeForm也实现了实时非刚性重建,但不是开源的。类似的工作可以在Fusion4D中看到
9.Elastic Fusion(RGB-D)
一个实时密集视觉SLAM系统,能够捕获使用RGB-D相机探测的房间尺度环境的全面密集、全局一致的surfel-based的地图
10.InfiniTAM(RGB-D)
一个在Linux、IOS和Android平台上使用CPU的实时三维重建系统
11.Bundle Fusion(RGB-D)
支持稳健的跟踪,从严重的跟踪故障中恢复,并实时重新估计3D模型,以确保全局一致性
12.KO-Fusion (RGB-D)
提出了一种密集RGB-D SLAM系统,该系统具有轮式机器人的运动学和里程测量功能。
13.SOFT-SLAM (双目)
可以创建密集贴图,具有大循环闭合的优点,它基于SOFT[122]进行姿势估计
14.其他
SLAMRecon,RKD-SLAM,RGB-D SLAM,Maplab,PointNVSNet,MID-Fusion, MaskFusion
视觉惯性里程计(VIO)
1.SSF(松散耦合,基于滤波器)
一种基于EKF的时延补偿单传感器和多传感器融合框架
2.MSCKF(紧密耦合,基于滤波器)
被谷歌Tango采用,基于扩展卡尔曼滤波器,类似的工作称为DMSCKF VIO开放源代码。
3.ROVIO(紧密耦合,基于滤波器)
一种扩展的卡尔曼滤波器,可以跟踪3D地标和图像块特征,支持单目摄像头。
4.OKVIS(紧密耦合,基于优化)
一款开放的、经典的基于关键帧的视觉SLAM,支持基于单目和立体相机的滑动窗口估计器
5.VINS
VINS Mono(紧密耦合,基于优化)单目视觉惯性系统的实时SLAM框架。开源代码在Linux上运行,并与ROS完全集成
VINS Mobile在兼容的iOS设备上运行的实时单目视觉惯性里程计
VINS Fusions支持多种视觉惯性传感器类型(GPS、单摄像头IMU、立体摄像头IMU,甚至仅限于立体摄像头)。它具有在线空间校准、在线时间校准和视觉环路闭合
6.ICE-BA(紧密耦合,基于优化)
为视觉惯性SLAM提供了一种增量、一致和高效的捆绑调整,在滑动窗口上并行执行局部BA,在所有关键帧上并行执行全局BA,并实时输出每帧的相机姿态和更新的地图点
7.Maplab(紧密耦合、基于优化)
一个开放的、面向研究的可视化惯性映射框架,用C语言编写,用于创建、处理和操作多会话映射一方面,maplab可以被视为一个随时可用的视觉惯性测绘和定位系统。另一方面,maplab为研究社区提供了一系列多会话映射工具,包括映射合并、视觉惯性批量优化、循环闭合、3D密集重建
8.其他
VI-ORB(紧密耦合,基于优化)ORB-SLAM的作者的作品,但不是开源的,StructVIO
RKSLAM能够可靠地处理AR应用中的快速运动和强旋转
基于事件摄像机的VIO系统:mi-VINS,使用多个IMU,如果IMU传感器出现故障,这些IMU可以工作
基于深度学习的VIO,该网络没有惯性测量单元(IMU)的固有参数,也没有IMU和摄像头之间的外在校准。避免摄像机和IMU之间的校准。
深度学习在视觉SLAM中的应用(语义SLAM)
“语义SLAM”指的是一种将语义信息纳入SLAM过程的方法,通过提供高水平的理解、稳健的绩效、资源意识和任务驱动的感知来提高绩效和表现力
特征提取和目标检测
1.Pop-up SLAM
提出了实时单目平面SLAM,以证明场景理解可以改善状态估计和密集贴图,尤其是在低纹理环境中
2.LIFT
可以得到比SIFT更密集的特征点
3.DeepSLAM
在存在图像噪声的情况下捕捉特征点时性能有很大差距
4.SuperPoint
提出了一个自监督框架,用于训练兴趣点检测器和描述符,适用于计算机视觉中的大量多视图几何问题
5.GCN-SLAM
提出了一个基于深度学习的网络GCNv2,用于生成关键点和描述符。[162]融合有关3D形状、位置和语义类(如果可用)的信息
6.SalientDSO
借助深度学习可以实现视觉显著性和环境感知。[164]将检测到的对象作为二次曲面模型集成到SLAM系统中
7.CubeSLAM 单目
一个基于立方体模型的3D物体检测和SLAM系统,实现了对象级映射、定位和动态对象跟踪。[166]将立方体图(高级对象)和弹出式SLAM(平面地标)结合起来,与基于特征点的SLAM相比,使地图更密集、更紧凑、语义更有意义
8.MonoGRNet
一个用于单目3D目标检测和定位的几何推理网络
识别&分割
1.SLAM++(CAD模型)
展示了一种新的面向对象3D SLAM范例的主要优点,该范例充分利用了许多场景由重复的、特定于领域的对象和结构组成的先验知识。。[172]结合了最先进的深度学习方法和基于单目摄像机视频流的LSDSLAM。二维语义信息通过具有空间一致性的连接关键帧之间的对应转换为三维映射。
2.Semanticfusion(RGBD)
将CNN(卷积神经网络)和最先进的密集同步定位和映射(SLAM)系统ElasticFusion[116]结合起来,构建语义3D地图。[174]利用稀疏、基于特征的RGB-D SLAM、基于图像的深度学习对象检测和3D无监督分割。
3.MarrNet
提出了一个端到端的可训练框架,顺序估计2.5D草图和3D对象形状
4.3DMV(RGBD)
结合RGB颜色和几何信息,对RGB-D扫描进行3D语义分割。
5.Pix3D
研究单个图像的三维形状建模
6.ScanComplete
一种数据驱动的方法,它将场景的不完整3D扫描作为输入,并预测完整的3D模型,以及每体素语义标签
7.Fusion++
一个在线对象级SLAM系统,它可以构建任意重建对象的持久且精确的3D图形地图
8.Mask-RCNN(RGBD)
在杂乱的室内场景,用于与对象大小相关的分辨率和一个新的3D前景遮罩初始化压缩每对象截断符号距离函数(TSDF)重建。
9.SegMap
一种基于3D片段的地图表示,允许机器人定位、环境重建和语义提取。
10.3D-SIS
一种新的神经网络结构,用于商品RGB-D扫描中的3D语义实例分割。
11.DA-RNN
使用一种新的递归神经网络架构对RGB-D视频进行语义标记。
12.DenseFusion
一个通用框架,用于从RGB-D图像估计一组已知对象的6D姿势
13.CCNet
14.基于事件摄像机进行识别,[185][186][187][188]是最好的研究论文。
尺度恢复:(预测深度)
1.CNN-SLAM(Monocular)
通过深度学习评估深度。另一件作品可以在inDeepVO[190],GS3D[191]中看到
2.UnDeepVO
可以使用具有深度学习功能的单目相机获得6自由度姿势和深度
谷歌提出的这项工作[193]提出了一种预测场景中密集深度的方法,在这种场景中,单目相机和场景中的人都在无监督学习的基础上自由移动。在[194][195]中可以看到在单目视觉中获得真实比例的其他方法。
3.GeoNet
一个联合无监督学习框架,用于视频中的单目深度、光流和自我运动估计。
4.CodeSLAM
提出了一种基于单个图像的深度图,可以与姿势变量一起有效地优化深度图
5.Mono-stixels
利用动态场景中的深度、运动和语义信息来估计深度。
6.GANVO
使用深度卷积生成对抗网络,使用无监督学习框架从未标记图像中获取6自由度姿势和单目深度贴图
7.GEN-SLAM
借助传统的几何SLAM和单目视觉中的拓扑约束输出稠密地图。[201]提出了一个训练目标,该目标对深度范围和规模的变化保持不变。
8.其他
DeepMVS DeepV2D
姿态估计/优化:
1.PoseNet
从单个RGB图像获得6自由度的姿势,无需优化。
2.VInet(Monocular)
首先估计VIO中的运动,减少了手动同步和校准的依赖性。
3.DeepVO(Monocular)
通过使用深度递归卷积神经网络(RCNNs),提出了一种新的单目VO端到端框架。类似的工作可以在FMLearner[212]和SFM Net[213]中看到。
4.VSO
提出了一种新的视觉语义里程计(VSO)框架,可以使用语义对点进行中期连续跟踪。
5.MID Fusion(RGBD,密集点云)
使用面向对象的跟踪方法估计每个现有移动对象的姿势,并将分割的遮罩与现有模型关联,并将相应的颜色、深度、语义和前景对象概率增量融合到每个对象模型中。其他类似的作品可以在VidLoc[215]中看到。
Long-term Localization
[218]阐述了传感器状态和语义地标7个位置的优化问题,该问题集成了度量信息、语义信息和数据关联。
[219]提出了一种新的无监督深度神经网络结构,该结构具有用于视觉环路闭合的特征嵌入。
[220]表明语义信息比传统的特征描述符更有效。
X-View[221]利用语义图描述符匹配进行全局本地化,实现了完全不同视角下的本地化。
[222]提出了一种解决方案,将假设表示为等效非高斯传感器模型的多个模式,以确定对象类别标签和测量标记对应关系。关于基于事件摄像机的应用,
[223]值得一读。
动态SLAM
1.RDSLAM
是一种新型的实时单目SLAM系统,基于一种新颖的在线关键帧表示和更新方法,能够在动态环境中稳健地工作。
2.DS-SLAM
一个基于优化ORB-SLAM的语义信息SLAM系统。语义信息可以使SLAM系统在动态环境中具有更强的鲁棒性。
3.MaskFusion(RGB-D,密集点云)
一个基于Mask R-CNN[226]的实时、对象感知、语义和动态RGB-D SLAM系统[128]。该系统即使在连续、独立的运动中也能用语义信息对物体进行标记。相关工作可参见Co-Fusion(RGBD)[227]。
4.Detect SLAM
将SLAM与基于深度神经网络的目标检测器相结合,使这两种功能在未知和动态环境中互惠互利。
5.DynaSLAM
一个用于在动态环境中借助静态地图的单目、立体和RGB-D相机的SLAM系统。
6.StaticFusion
提出了一种在动态环境中检测运动对象并同时重建背景结构的鲁棒密集RGB-D SLAM方法。
基于动态环境的相关工作也可以在RGB-D SLAM[124]和[231][232][233]中看到。
7.SimVODIS
可以输出帧之间的深度和相对姿势,同时检测对象并分割对象边界。
挑战与展望
1.鲁棒性和可移植性
视觉SLAM仍然面临着光照条件、高动态环境、快速运动、剧烈旋转和低纹理环境等重要障碍
全局快门代替滚动快门是实现精确相机姿态估计的基础。动态视觉传感器等事件摄像机每秒能够产生多达100万个事件,足以在高速和高动态范围内进行非常快的运动
使用边缘、平面、曲面等语义特征,甚至减少特征依赖,例如使用连接边缘跟踪、直接跟踪或机器学习的组合,可能会成为更好的选择
基于SfM/SLAM的数学机制,首选精确的数学公式,其性能优于隐式学习的导函数。
SLAM的未来一个是基于智能手机或嵌入式平台(如UAV(无人机))的SLAM,另一个是详细的3D重建、场景理解和深度学习,如何平衡实时性和准确性是一个至关重要的开放性问题。关于动态、非结构化、复杂、不确定和大规模环境的解决方案有待探索。
2.多传感器融合
实际的机器人和硬件设备通常是多个传感器的融合(激光雷达、声纳、IMU、红外、摄像头、GPS、雷达...)
例如,目前对手机VIO的研究结合了视觉信息和IMU信息,实现了两种传感器的优势互补,为SLAM的小型化和低成本提供了非常有效的解决方案。
DeLS-3D[236]设计是一种传感器融合方案,它集成了摄像头视频、运动传感器(GPS/IMU)和3D语义地图,以实现系统的鲁棒性和效率。
传感器的选择取决于环境和所需的地图类型。
3.语义SLAM
SLAM中的深度学习可以实现目标识别和分割,帮助SLAM系统更好地感知周围环境
语义SLAM还可以在全局优化、循环闭合和重新定位方面发挥作用。
传统的同时定位和映射(SLAM)方法依赖于几何特征,如点、线(PL-SLAM[238]、结构SLAM[239])和平面来推断环境结构。
大规模场景中,高精度实时定位的目标可以通过语义SLAM实现,语义SLAM将机器人视为人类。
4.软件&硬件
SLAM不是一种算法,而是一种集成的复杂技术[240]。它不仅依赖于软件,还依赖于硬件。未来的SLAM系统将专注于算法和传感器的深度结合。
特定领域处理器而非通用处理器、集成传感器模块而非单独传感器(如摄像头)将显示出巨大的潜力