A Survey of Simultaneous Localization and Mapping 论文精读笔记

A Survey of Simultaneous Localization and Mapping

南洋理工大学,武汉大学,2019.10.12

这是南洋理工大学的一篇关于SLAM的综述.(好像是赵俊老师的学生。。。)

本文介绍的算法有270个(篇论文)这里只记录有代表性的、最近几年的论文成果。

摘要

本文回顾了slam研究的三个方面:激光SLAM视觉SLAM融合的SLAM

并分别review了激光SLAM和视觉SLAM的basic type,传感器产品,开源算法,深度学习嵌入以及面临的挑战和未来发展。此外还提到了视觉惯性里程计。

对于融合的SLAM,本文着重review了多传感器校准问题,硬件层面的融合问题。

这篇论文对于新加入到SLAM领域的研究者较为友好,也可以作为有经验的研究者的论文查阅字典,以便快速发现新的感兴趣的研究点。

简介

为了精确移动,机器人必须要有精确的环境地图,然而构建精确的环境地图需要机器人能够精准的定位自己的位置。(先有鸡还是先有蛋?)

1.基于卡尔曼滤波的SLAM:

机器人先定位自己的位置,然后在不断重复的观测中增量式地构建环境地图。

接着说到定位:最近几年的研究热点。定位技术有很多的指标:cost,accuracy,frequency,robustness. 目前用得比较多的有GPS,IMU,以及无线信号。然而GPS只能在户外工作,IMU有累计误差,无线信号不能在cost和accurcy中取得很好的平衡(应该是实时性不够好的意思?5G大有可为!)

2. 基于图优化的SLAM:

SLAM经历了从基于卡尔曼滤波,基于扩展的卡尔曼滤波,基于粒子滤波到现在基于图优化方法的几个阶段, 图优化也是现阶段的主流方法。

优化方法的改变,从单线程到多线程的改变使得SLAM技术从军事应用逐渐扩展到了各个领域。

一、激光SLAM

1.厂商以及产品介绍:

Lidar根据激光束的数量可以分为2 D和3 D两种,根据机械结构可以分为机械式,混合式固态(比如MEMS:micro-electro-mechanical),固态三种。

  1. velodyne:机械式有VLP-16, HDL-32E ,HDL-64E,混合固态式有 Ultra puck auto(32E)
  2. SLAMTEC:。。。。。
  3. Ouster:。。。
  4. Ibeo:。。。。
  5. 其他:sick, Hokuyo, HESAI, RoboSense, LeddarTech, ISureStar, benewake, Livox, Innovusion, Innoviz, Trimble, Leishen Intelligent System

根据整体趋势来看,轻量化和小型化的固态激光雷达将会占领市场并满足绝大部分场景的需求。

2.基于激光雷达的开源SLAM算法:

2D SLAM:

  • HectorSlam:2011,通过scan-match技术和IMU将2D SLAM和3D 导航结合起来
  • KartoSLAM:2010,基于图优化的SLAM
  • Cartographer:2016,能够提供2D 和3D 的SLAM,采用子图和闭环检测提升性能。

3D SLAM:

  • LOAM:2014,使用3D激光雷达的实时状态估计和建图方法。
  • Cartographer
  • Lego-Loam:2018,使用Velodyne VLP-16 的点云数据和IMU数据(可选)作为输入,通过全局优化和闭环检测,实时输出6维的位姿估计数据。
  • IMLS-SLAM:2018,提出了一种低漂移(low-drift) 的SLAM,该算法使用scan-to-model的匹配框架,但是无法实时,1.25 s/帧

3.深度学习在激光雷达上的应用

特征提取和3D目标 检测:

  • PointNetVLAD :2018,允许端到端的训练和推断,根据给定的点云数据提取全局描述子
  • VoxelNet :2018,3D检测网络,端到端,将特征提取和目标框检测整合到一阶段,
  • LMNet :2018,一阶段检测网络,给每个点云输出目标框的偏移量
  • PIXOR :2018,无proposal的一阶段检测网络
  • YOLO3D:2018,YOLO2D的升级版
  • PointCNN:2018,通过卷积层来学习输入和输出之间的X-transformation
  • MV3D:2017,融合的网络框架,将点云和RGB图像作为输入

识别和3D目标分割:

点云分割有基于边、区域生长、模型拟合、混合方案、机器学习、深度学习等方法,这里论文只讨论了基于深度学习的方法

  • PointNet:2016,使用点云作为输入,可以做分类、分割和语义分析
  • PointNet++:2017,学习层级特征,不断扩大感受野
  • votenet:2019,基于PointNet++的3D检测网络
  • Pointsift:2018,手工提特征?
  • PointRCNN:2019,
  • 。。。。。

定位:

  • L3-Net:2019,基于学习的定位方法,达到了厘米级精度
  • SuMa++:2019,为每个点云输出语义分割结果,使得建立的surfel地图包含丰富的语义,进而通过语义约束提高性能

4.挑战和展望

  1. 优缺点

    激光雷达不受环境条件影响,性能鲁棒,探测范围可以覆盖到360度。但是成本高,技术门槛高。未来固态激光雷达将会占据主流。

  2. 少纹理和高动态的场景

    在长走廊这种少纹理的场景,激光雷达仍然面临挑战,如何在该场景下保持地图的更新,仍然需要更加深入的研究。

  3. 对抗传感器攻击

    深度神经网络很容易收到对抗样本的攻击。但是对于激光雷达的感知系统,对抗攻击是一个很重要但是没有被研究的话题。有相关研究和成果表明,将对抗任务看作优化问题然后设计对抗模型的方法可以使得攻击成功率提高到75%。点云对抗样本的的不可见不易预防,使得以及SLAM系统的安全性可以作为新的研究方向。

二、视觉SLAM

1.视觉SLAM系统的结构:

  • 前端:获取传感器数据(相机,IMU),视觉里程计或者视觉惯性里程计
  • 后端:优化,
  • 闭环检测,建图
  • 附加组件:重定位(提高稳定性和精度)

2.相机传感器介绍:

  1. 单目相机:无深度,有尺度模糊和漂移问题,必须初始化才能使用
  2. 双目相机:有深度信息,但是需要大量计算,耗费资源,需要校准,矫正,匹配
  3. RGB-D深度相机:有深度信息,直出,分为结构光和TOF镜头两种
  4. event camera(事件相机):异步测量亮度变化,采样率极高(没有运动模糊),动态范围i极高(没有过曝),功耗低。

产品介绍:

  • Microsoft: Kinectc v1(structured-light), Kinect v2(TOF), Azure Kinect(with microphone and IMU).
  • Intel: 200 Series, 300 Series, Module D400 Series, D415(Active IR Stereo, Rolling shutter), D435(Active IR Stereo, Global Shutter), D435i(D435 with IMU).
  • Stereolabs ZED: ZED Stereo camera(depth up to 20m).
  • MYNTAI: D1000 Series(depth camera), D1200(for smart phone), S1030 Series(standard stereo camera).
  • Occipital Structure: Structure Sensor(Suitable for ipad).
  • Samsung: Gen2 and Gen3 dynamic vision sensors and event-based vision solution[60].
  • 其他: Leap Motion, Orbbec Astra, Pico Zense, DUO, Xtion, Camboard, IMI, Humanplus, PERCIPIO.XYZ, PrimeSense. Other event camera can be listed as follows but not limited to iniVation, AIT(AIT Austrian Institute of Technology), SiliconEye, Prophesee, CelePixel, Dilusense.

3.视觉SLAM开源算法

可以分为direct method 和 feature based method ,前者属于稠密或者半稠密SLAM,后者属于稀疏建图SLAM

稀疏SLAM:

跳过

半稠密SLAM:

  • SVO:2016,使用稀疏的基于模型的图像对准来提高速度。之后的版本支持了多种传感器(fisheye等)

  • CNN-SVO:2018,

  • DSO:2017,单目

  • EVO:2016,基于event camera 的视觉惯性里程计,在高动态、运动场景表现出色

稠密SLAM:

  • MLM-SLAM:2016,单目,空间平滑,多分辨率的深度估计,稠密3D模型在线重建,without GPU!
  • Kinect Fusion:2011,RGB-D,第一个用RGBD的视觉SLAM
  • Dynamic Fusion:2015,RGBD,第一个基于RGBD的稠密SLAM,实时重建无网格的deforming sence
  • Elastic Fusion:2016,RGBD,室内场景,实时,surfel-based
  • InfiniTAM:2016-2017,RGBD,实时三维重建,在CPU上!
  • 其他:SLAMRecon, RKD-SLAM [114] and RGB-D SLAM [115]. Maplab [116], PointNVSNet [117], MID-Fusion[118] and MaskFusion [119]

视觉惯性里程计VIO

视觉SLAM仍然有很多问题需要深入研究。单目相机的尺度模糊,尺度漂移,必须初始化,虽然双目和RGBD可以解决上述问题,但是在运动场景,光照条件快速变化的场景不够鲁棒,还有视野小,特征丢失,计算量大等问题。

近年来,视觉惯性里程计成为了研究的热点

  • MSCKF:2019,基于扩展卡尔曼滤波

  • VINS-Mobile :2017,基于图优化,运行在IOS设备上的实时视觉惯性里程计

  • VINS-Fusion:支持多IMU的融合 (GPS, mono camera + IMU, stereo cameras + IMU, even stereo cameras only)

  • MAPLAB:2018,可作为ready-to-use的视觉惯性SLAM系统,可做地图融合,三维重建,闭环检测,视觉惯性优化等

  • deep learning 在VIO中的应用:

    • Visualinertial odometry for unmanned aerial vehicle using deep learning. In AIAA Scitech 2019 Forum, page 1410, 2019

    • Unsupervised deep visual-inertial odometry with online error correction for rgb-d imagery

    以上两篇论文通过神经网络模型,实现了不需要IMU的内参或与相机间的校准的VIO

深度学习在视觉SLAM上的应用(语义SLAM)

检测:
  • Pop-up slam:2016,基于单目平面的SLAM。证实了场景理解可以提升尤其在少纹理场景下的状态估计和稠密建图的性能
  • SuperPoint:2018,自监督训练网络
  • GCN-SLAM:2019,提出了深度学习网络,GCNV2,来生成关键点和描述子
  • SalientDSO:2019,在深度神经网络的帮助下实现了视觉显著性感知和环境感知
  • cubeSlam:2019, 基于cube模型的实例级别的建图,能够实现实例目标定位和追踪
  • 。。。。
分割:
  • SLAM++:2013,用CAD模型作为先验知识进行建图和分割
  • Semantic fusion:20117,将CNN和elastic fusion结合在一起,构建3D语义地图
  • MarrNet:2017,端到端的训练框架,序列化的输出2.5D的骨架预测和3D目标的形状
  • 3DMV:2018,通过RGBD扫描联合预测RGB颜色和深度信息来进行语义分割
  • ScanComplete:2018,数据驱动的方法,根据不完整的3D扫描输出完整的模型预测,以及体素级别的语义标签
  • SegMap:2018,应用与机器人定位,环境重建以及语义提取的基于3D分割的地图表达方法
  • 3D-SIS :2019,通过神经网络在商用RGBD上进行3D实例分割
  • DA-RNN:2017,使用循环神经网络在RGBD视频数据上实现 semantic labeling
  • DenseFusion :2019,根据RGBD图像输出6维的位姿信息
尺度恢复:(预测深度)
  • CNN-SLAM:2017,单目,通过CNN预测深度
  • DeepVo:2016,同上
  • GS3D:2019,同上
  • UnDeepVo:2018,同上
  • GEONet:2018,单目,无监督学习预测深度,光流以及相机运动
  • CODE-SLAM:2018,
  • GEN-SLAM:2019,
姿态估计/优化:
  • PoseNet:2015,可以通过单张RGB图像获得DOF位姿,不需要优化
  • VInet:2017,用VIO估计运动以消除对手动校准同步的依赖性
  • DeepVO:2017,单目,使用RNN构建了端到端的视觉里程计,同SFM-Net
  • VSO:2018,提出了视觉语义里程计(VSO),使用语义进行medium-term的points追踪
  • MID-fusion:2018,根据已知的模型和目标导向的追踪方法,估计每一个移动目标的位姿,并增量式地把颜色、深度、语义、前向概率融合到目标模型中去
Long-term定位:

详见原论文第6页

动态SLAM:
  • DS-SLAM:2018,基于优化后的ORB-SLAM的语义SLAM,在动态场景更加鲁棒
  • Mask Fusion:2018,RGBD,稠密点云,基于Mask-RCNN的语义动态RGBD SLAM
  • Detect Fusion:2018,将SLAM 和CNN检测器结合,提高了在未知动态场景下的性能

4.挑战和展望

  • 鲁棒性和可移植性

    视觉SLAM仍然会受到光照条件的影响,在高动态场景有运动模糊问题,在剧烈旋转和少纹理场景也不够鲁棒。

    对于获取相机的精确位姿估计,全局快门一定优于滚动快门(gobel shutter,rolling shutter)

    事件相机在动态场景(运动和高动态范围)下可以更好的克服运动模糊问题。

    使用语义信息的结合,以及机器学习可能是更好的选择

    基于SLAM的数学机制,精确的数学公式优于隐式学习的导函数

    未来的SLAM技术将会广泛应用于手机以及其他移动平台(无人机),还有精细三维重建,和基于深度学习的场景理解,如何在效率和精度上取得合适的平衡就显得很重要!

  • 多传感器融合

    实际中的机器人并不是携带单一传感器的。

    DeLS-3D: 2018,设计了一种将相机视频,运动传感器(GPS/IMU)以及已于一地图结合起来的机制,来提高鲁棒性

    可用的传感器有: Lidar, Sonar, IMU, IR, camera, GPS, radar, etc

  • 语义SLAM

    语义SLAM可以帮助全局优化,闭环检测以及重定位

    传统的SLAM都是基于图形学特征(点,线,面),语义SLAM可以实现实时高精度大场景下的定位,让机器人像人一样进行感知

  • 配套软硬件

    SLAM不仅仅是算法,还是整套软硬件体系的高效结合

    未来SLAM将会聚焦与算法和传感器的深度融合:特定领域的传感器、集成式传感器将会比通用传感器以及单独的传感器更具有优势

三、激光视觉融合SLAM

1.多传感器校准

相机和IMU:

  • Kalibr:2016,提供camera-IMU,mutil-camera,rolling shutter camera之间校准功能的工具箱
  • Vins-Fusion:2018, 在线时间校准和空间校准(单目-IMU)
  • 其他:详见论文第7页

相机和深度相机:

  • BAD SLAM: 2019,Bundle adjusted direct rgb-d slam, 为该类任务(同步RGB全局快门相机和深度相机)提出了一个benchmark

激光雷达和IMU:

  • LIO mapping :2019,提出了一种关于紧密耦合的lidar-IMU 的融合方法
  • Lidar-aling:
  • 。。。

相机和激光雷达:

  • Reg-Net:2017,首个使用CNN来获取DOF外参的模型(Lidar+单目)
  • LiMO:2018,提出了一种从激光雷达数据中提取深度的算法,应用到相机特征追踪和运动估计中
  • Calib Net:2018,自监督学习网络, 能够实时估计多传感器之间的6-DOF变换(3D Lidar+3D camera)

2.激光和视觉的融合

硬件层融合:

禾赛科技的多传感器融合套件(lidar+camera+识别算法)

KAARTA公司:

  • CONTOUR ( 远程移动3d扫描技术的灵活平台,可映射到各种室外和大型内部应用程序),

  • STENCIL( 多合一的移动3D扫描技术 , 用于内部地图绘制以及狭窄,复杂的空间,从而加快了从扫描到BIM的工作流程)

数据层融合:

激光雷达具有稀疏、高精度的深度数据,而相机的深度数据密集,但精度较低,这将导致基于图像的深度上采样和基于激光数据的深度修复。

  • DFuseNet:2019,提出了一种CNN,该CNN被设计用于:根据从高分辨率强度图像中收集到的上下文线索,对一系列稀疏距离测量进行上采样

  • 其他:见原论文第8页

任务层融合:

  • V-LOAM:2015,提出了一个能够融合视觉里程计和激光里程计的通用框架
  • VI-SLAM:2018,将精确的激光里程计与 使用视觉实现环路检测的位置识别算法 相结合。
  • AVOD,MV3D,FuseNet

3.挑战和展望

  • 数据关联:SLAM必须集成多个传感器。但不同的传感器有不同的数据类型、时间戳和坐标系表达式,需要统一处理。此外,还应考虑多传感器之间的物理模型、状态估计和优化。
  • 集成硬件:目前还没有合适的芯片和集成硬件使SLAM技术更容易成为产品。此外,如果传感器的精度因故障、非标称条件或老化而降低,则会导致传感器测量的质量(例如噪声、偏差)与噪声模型不匹配。硬件的鲁棒性和集成性应当进行更加深入的研究。前端传感器应具备数据处理能力,从硬件层到算法层,再到功能层到SDK,再到应用层进行创新
  • 众包:分散式视觉SLAM是一种强大的工具,在无法使用绝对定位系统的环境中可用于多机器人场景。协同优化视觉多机器人SLAM 需要分散的数据和优化,称为众包。分散数据处理过程中的隐私问题应引起重视。
  • 高精地图:高清地图对机器人至关重要。哪种类型的地图最适合机器人?密集地图或稀疏地图可以导航、定位和路径规划吗?一个有关长期制图的开放性问题是:更新地图中包含的信息的频率,以及如何确定该信息何时过时并可以丢弃。
  • 适应性、鲁棒性、可扩展性:目前没有SLAM系统能够覆盖所有场景。为了在给定的场景中正常工作,其中大部分都需要大量的参数调整。为了使机器人像人一样感知,应该首选基于外观而不是基于特征的方法,这有助于在昼夜序列之间或不同季节之间闭合与语义信息集成的回路
  • 抗风险和约束能力:完善的SLAM系统应具有故障下的安全性和故障辨别意识。这不是关于重定位或闭合检测的问题。SLAM系统必须具有应对风险或故障的能力。同时,一个理想的SLAM解决方案应该能够在不同的平台上运行,无论平台的计算约束是什么。如何在精确性、鲁棒性和有限的资源之间取得平衡是一个具有挑战性的问题
  • 应用:SLAM技术有着广泛的应用,如大规模定位、导航和三维或语义地图构建、环境识别与理解、地面机器人、无人机、VR/AR/MR,自动引导车,自动驾驶,虚拟室内装饰,虚拟试衣间,沉浸式网络游戏,抗震救灾,视频分割和编辑等

最后的开放性问题

端到端的学习是否会在将来主导SLAM算法?
个人看法:我觉得有点难,这不是一个简单的输入输出问题,输入数据的格式多样,其次从输入数据到输出地图不仅仅是一个简单的映射关系,甚至连输入输出数据的维度都不确定。

OMG太长了,八页的文章写了整整一天!

综述看一篇就够了,嗯_

你可能感兴趣的:(A Survey of Simultaneous Localization and Mapping 论文精读笔记)