第一节概述。
第二节讲述激光SLAM:激光传感器,开源系统,深度学习的应用。
第三节讲述视觉SLAM:相机传感器,开源系统,视觉惯性里程计,深度学习的应用。
第四节讲述激光雷达与视觉的融合。 最后展望SLAM的发展前景。

第一节:概述
**SLAM:**同时定位和建图(Simultaneous Localization and Mapping)。为了精确的定位,需要有精确的环境地图;为了得到精确的环境地图,需要有精确的定位。这便是先有鸡还是先有蛋的问题了。于是乎,只能同时定位与建图—SLAM。
事情还要追溯到1990年,【Estimating uncertain spatial relationships in robotics】利用扩展卡尔曼滤波器估计机器人姿态的后验分布。于是越来越多的研究者开始进入研究(入坑)。其中对于定位的研究主要基于GPS (Global Positioning System), IMU (Inertial Measurement Unit), and wireless signal。GPS只有在室外定位才比较精准,IMU具有累积误差,无限信号受制于成本和精确度。
目前较为主流的是filter-based SLAM, Graph-based SLAM。

第二节:激光SLAM
最开始是给机器人装备的SLAM系统融合了伺服驱动声呐传感器和扩展卡尔曼滤波器。后来激光的引入才使得SLAM勉强能看。
根据激光束的不同可将激光传感器区分为2D和3D传感器,都逐渐趋向于轻量化与小型化。作者还在文章中列举了一些传感器的公司和激光SLAM系统,系统分为2D SLAM系统(Gmapping、HectorSlam、KartoSLAM),3D SLAM系统(Loam、Lego-Loam、Cartographer),以及采用深度学习的激光 SLAM的系统。

困难及展望:
1.成本及适应性
激光的优势在于提供了3D信息(视角能到360°),且不受光线的影响。但是技术门槛高且贵。目前正在向小型化、成本低、高可靠性和适应性的趋势发展。
此处叙述有误,感谢评论区大佬指出
2.低维特征及动态环境
激光SLAM在低纹理环境下(比如走廊和管道)效果不好,于是【Imuassisted 2d slam method for low-texture and dynamic environments】将IMU和2D SLAM相结合以解决这类问题。【Dynamic pose graph slam: Long-term mapping in low dynamic environments】将时间维度融入到映射的过程中,以便在动态环境中精确建图。
3.对抗性样本
为了使系统规避一些潜在的风险,有一部分研究人员致力于生成模型的对抗性样本。这也是一个不错的研究方向。
第三节:视觉SLAM
伴随着图像处理的深入研究,以摄像机为传感器的SLAM系统得到了快速发展。与激光传感器相比,摄像机更加便宜、小且轻。目前视觉SLAM已经可以在微PC和嵌入式设备上运行了,以及一些在手机上的应用。
视觉SLAM系统包括传感器数据的搜集(camera and IMU),前端的视觉(惯性)测程,后端的优化,闭环及映射等,还包括重新定位等附加模块。
A. 视觉传感器
1.单目相机
无法获取图像的真实深度(官方术语:尺度模糊),所以必须初始化,并面临漂移问题。但是计算量是真的小。
2.双目相机(也叫立体相机)
顾名思义,即两个单目相机的组合。通过左右(一般是左右放置,毕竟,类人嘛)图片的视差来计算物体所处的深度,但是计算量比较大(我觉得应该怪CPU运算能力不行,你看我们大脑多?,,,时间问题,等等运算力就上来了)。
3.RGBD相机
前面两个相机都要通过运算才得到深度信息,这哥们就比较?了,直接物理外挂—拍照片的时候就把深度信息存在进来,一般是通过结构光或者TOF技术来实现。但是也有缺点,鲁棒性不太好,应用范围有限,室外很少采用。
4.事件相机(Event camera)
事件相机并不是以固定的速率捕获图像,而是异步的测量每个像素的变化。(是不是一下就搞蒙了?)说人话就是:事件相机并不是一直在拍照,而是收到信号后才开始记录。它具有高动态范围、高时间分辨率及低功耗,不会出现运动迷糊。因此在高速、高动态的环境下优于传统相机。
B. 视觉SLAM系统
利用图像信息的方法可以分为直接法和基于特征的方法。直接法会得到半密集和密集结构,主要用于3D重构、导航、避障等方面,需要处理的数据量很大。基于特征的方法带来稀疏结构,虽然没法重构出当前场景,但也能得到当前场景中的部分信息,理论上可用于定位与跟踪。
1.稀疏的视觉SLAM
MonoSLAM是第一个实时单目系统,PTAM是第一个平行跟踪和建图的系统,它首先提出了包调整和关键帧的概念。ORB-SLAM采用了三个线程:循迹,基于包调整的局部优化和基于位姿图的全局优化,该系统支持单目、双目及RGBD。
2.半密集视觉SLAM
LSD-SLAM(基于单目的系统)提出了一种基于李代数和直接法的直接跟踪新方案。SVO(单目)半直接的视觉导航,利用基于稀疏模型的图像对齐来获得较快的速度。DSO(单目)基于直接法和稀疏法建立了一个可视化的导航系统。EVO(基于事件相机)是一种基于事件的视觉测程算法,不受模糊运动的影响,在高动态场景中变现良好。
3.密集视觉SLAM
DTAM(单目)在一种新的非凸优化框架中,通过最小化全局空间正则化能量泛函,实现三维模型的实时重建。MLM SLAM(单目)无需GPU就可以在线重建3D模型(计算量小),突出贡献在于多分辨率的深度估计和空间平滑处理。Kinect Fusion(RGBD)几乎是第一个具有深度摄像机的三维重建系统。DVO(RGBD)提出基于熵的关键帧选择相似度度量和基于g2o框架的闭环检测。
4.视觉惯性测程SLAM
视觉SLAM的距离测定是技术难题:单目相机存在必要的初始化,尺度模糊和尺度漂移等问题;双目相机和RGBD相机计算量大,视场较小和场景的动态范围小等问题。逐渐,VIO (visual inertial odometry SLAM)视觉惯性里程计开始登上舞台。
VIO SLAM的开源系统:
SSF(松耦合、基于过滤器)一种基于EKF的单传感器和多传感器时延补偿融合框架;MSCKF-VIO(紧耦合、基于过滤器);ROVIO(紧耦合、基于过滤器、单目)扩展跟踪三维地标和图像斑块特征的卡尔曼滤波。
基于深度学习的VIO-SLAM可以在【Unsupervised deep visual-inertial odometry with online error correction for rgb-d imagery.】中看到,该系统不需要惯性测量单元(IMU)的固有参数,也不需要IMU与摄像机之间的外部标定,都用深度网络搞定。
5.基于深度学习的视觉SLAM
提出了一个概念:语义SLAM(semantic SLAM)在SLAM的处理过程中加入语义信息以提供高层次的理解、高鲁棒性、资源感知和任务驱动感知。接下来从三个方面来分析:
1)特征及检测
Pop-up SLAM(单目)提供了一种实时的单目平面SLAM,证实了语义信息对于状态估计和稠密映射有益,尤其是在低纹理环境中。SuperPoint提出了一种用于训练兴趣点检测器和描述符的自监督框架。GCN-SLAM提出了一个基于深度学习的网络GCNv2,用于生成关键点和描述符。SalientDSO可以借助深度学习实现视觉显著性和环境感知。
2)识别与分割
SLAM++(CAD模型)指出了3DSLAM算法为导向的主要优势:充分利用了先验知识的循环,即许多场景是由重复的、领域特定的对象和结构组成。

语义融合Semanticfusion (RGBD)将卷积神经网络(CNN)和一种最先进(这个字眼,又来了)的密集SLAM技术相结合。DenseFusion是一个用于评估的通用框架RGB-D图像中一组已知物体的6D姿态。
3)恢复规模
CNN-SLAM(单目)通过深度学习来估计深度,谷歌提出了一种在单目摄像机和场景中人员自由移动的情况下,基于非监督学习的稠密深度预测方法。
4)姿态输出及优化
PoseNet能够在没有任何优化的情况下从单张RGB图片得到一个6自由度的姿态。VInet(单目)对VIO中的运动进行估计,减少对手动同步和校准的依赖。DeepVO(单目)提出了一种基于深度递归卷积的单目VO端到端神经网络框架(RCNNs)。
5)长期定位
【Probabilistic data association for semantic slam】提出一个传感器状态和语义地标位置的优化问题,该问题集成了度量信息、语义信息和数据关联。[Lightweight unsupervised deep loop closure]提出了一种新的基于特征嵌入的无监督深度神经网络结构来实现视觉闭环。[Long-term visual localization using semantically segmented images]表明语义信息比传统的特征描述符更有效。
6)动态SLAM
RDSLAM(单目)是一种基于在线关键帧表示和修正方法的新型单目实时SLAM系统,能够在动态环境下鲁棒工作。DS-SLAM一个基于优化ORB-SLAM的具有语义信息的SLAM系统,语义信息可以使SLAM系统在动态环境下具有更强的鲁棒性。MaskFusion (RGB-D, 稠密点云)是一种基于Mask R-CNN的实时、对象感知、语义化、动态的RGB-D SLAM系统,它甚至可以在连续的、独立的运动中对目标进行语义标注。Detect-SLAM将SLAM与基于深度神经网络的目标检测相结合,使得这两种功能在未知动态环境中相互受益。DynaSLAM是一个支持单目、双目和RGBD的视觉SLAM系统。StaticFusion提出了一种动态环境下的鲁棒稠密的RGB-D SLAM方法,该方法在检测运动目标并同时重建背景结构。
C. 挑战与展望
鲁棒性和可移植性
视觉SLAM面临着光照条件、高动态环境、快速运动、剧烈旋转和低纹理环境等重要障碍。对于未来的发展,首先,全局快门(global shutter)代替滚动快门(rolling shutter)是实现相机精确定位的基础。其次,利用边缘、平面、地面等语义特征,甚至减少特征依赖,如结合边缘跟踪、直接跟踪或机器学习的组合,可能成为更好的选择。第三,基于SfM/SLAM的数学机制,精确的数学公式优于隐式学习的导航函数。
未来的展望:SLAM基于手机或嵌入式平台(如无人机–UAV),另一种是深度学习下的场景理解和三维重建。以及如何平衡系统的实时性和准确性。
多传感器融合
实际的机器人往往是多个传感器的融合。目前对移动手机VIO的研究将视觉信息与IMU信息进行融合,实现两个传感器的优势互补,为SLAM的小型化与低成本化提供了一种可行的方案。
语义SLAM
SLAM中的深度学习可以实现目标识别与分割,帮助SLAM系统更好的感知周围环境。语义SLAM还可以在全局优化、重定位和循环closure中起作用。
软硬件
SLAM系统更加有效地将算法和传感器相融合。比如特有处理器,集成传感器等。
第四节:激光雷达和视觉SLAM系统
A. 多传感器标定
a) Camera & IMU
Kalibr是解决标定问题的工具箱,其中包括:多个摄像机标定, 视觉-惯性校正(camera-IMU)和滚动快门相机校正。Vins-Fusion具有在线空间校准和在线时间校准
b) Camera & Depth
BAD SLAM提出了一个使用同步全球快门RGB和深度相机的校准基准
c) Lidar & IMU
LIO-mapping引入了一种紧密耦合的激光和IMU的融合方法。Lidar- align是一种寻找三维激光雷达和6自由度姿态传感器之间的外部校准的简单方法。
d) Camera & Lidar
[Automatic online calibration of cameras and lasers]介绍了一种概率检测算法和一种连续校准的优化器,使得相机能在线自动校准。Lidar-Camera提出了一种新颖的方法和实验装置以寻找精确的刚体变换,用于外部校准激光雷达和摄像机,使用3D-3D点对应。RegNet 是第一个在多模态传感器之间推导出6个自由度(DOF)外部校准的深度卷积神经网络。
B. 激光雷达与视觉融合
a) 硬件层 — Pandora
b) 数据层
激光雷达深度数据稀疏、精度高,而相机深度数据密集、精度低,这导致基于图像的深度上采样和修复。[Image guided depth upsampling using anisotropic total generalized variation] 提出了一种深度图像上采样方法。[In defense of classical image processing: Fast depth completion on the cpu.]仅依靠基本的图像处理操作来完成稀疏激光雷达深度数据的深度补全。
c) 任务层
[Intersection safety using lidar and stereo vision sensors]融合双目相机和激光雷达来感知。[Multiple sensor fusion and classification for moving object detection and tracking]融合雷达,激光雷达和相机来探测和分类移动的物体。
C. 挑战与未来
a) 数据融合
SLAM会融合越来越多的传感器,对不同的数据类型统一处理。还要考虑多传感器之间的物理模型建立、状态估计和优化。
b) 集成硬件
顾名思义,在硬件上集成更多功能。
c) 众包(Crowdsourcing)
分散的视觉SLAM适用于多机器人在绝对定位系统不可用的环境中工作。协同优化视觉多机器人SLAM需要分散的数据和优化,这被称为众包。
d) 高清晰度地图
地图清晰对于导航的重要性务须多言。
e) 鲁棒性、适应性、可收缩性
目前还没有一个系统可以覆盖所有的应用场景,为了在给定的场景中SLAM可以工作,多数场景都需要大量的调参。为了让机器人像人类一样感知,相比于基于特征,基于外观的工作更好,这将有助于将昼夜序列或不同季节之间的语义信息整合成闭环。
f) 抗风险和约束能力
完善的SLAM系统应具备故障安全机制和故障感知机制,这不是重定位或闭环问题。SLAM系统必须能对风险和故障做出相应补救措施。同时,SLAM系统应该能在不同的平台上运行,不用在乎平台限制。研究如何在精度、鲁棒性和有限资源之间取得平衡。
g) 应用
SLAM应用广泛,比如定位,导航,三维重建或语义地图重建、环境识别与理解、地面机器人、无人机、AR、VR、MR、AGV(自动导航车)、自动驾驶、虚拟室内设计师、虚拟试衣间、沉浸式网络游戏、地震救援、视频分割和编辑。
最后,端到端的学习会不会主导SLAM?

备注:
点击下面链接,进入奥比中光开发者社区,了解更多3D视觉技术信息:https://developer.orbbec.com.cn/
或扫描下方二维码,进入奥比中光开发者社区:

SLAM综述:激光雷达与视觉SLAM相关推荐

  1. 八种常用激光雷达和视觉SLAM算法的评估与比较

    文章:Evaluation and comparison of eight popular Lidar and Visual SLAM algorithms 作者:Bharath Garigipati ...

  2. 论文简述 | CamVox: 一种低成本、高精度的激光雷达辅助视觉SLAM系统

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 摘要 将激光雷达与基于相机的同步定位和建图(SLAM)相结合是提高整体精度的有效方法,尤其是在大规模室 ...

  3. SLAM综述|激光与视觉融合SLAM

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 SLAM包含了两个主要的任务:定位与构图,在移动机器人或者自动驾驶中,这是一个十分重要的问题:机器人要 ...

  4. CamVox:一种低成本、高精度的激光雷达辅助视觉SLAM系统

    标题:VCamVox: A Low-cost and Accurate Lidar-assisted Visual SLAM System 作者:Yuewen Zhu, Chunran Zheng, ...

  5. SLAM算法解析 抓住视觉SLAM难点,了解技术发展大趋势

    SLAM(Simultaneous Localization and Mapping)是业界公认视觉领域空间定位技术的前沿方向,中文译名为"同步定位与地图构建",它主要用于解决机器 ...

  6. 视觉SLAM(一)——视觉SLAM框架

    1.简介及说明 SLAM(Simultaneous Localization And Mapping)--同时定位与地图构建.因此SLAM是研究"定位"和"地图构建&qu ...

  7. 论文精读 | 语义SLAM综述:现状回顾问题分析未来趋势!

    作者 | 鱼肖农  编辑 | 汽车人 原文链接:zhuanlan.zhihu.com/p/590974335 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 ...

  8. 多传感器融合SLAM:激光雷达、RGB相机、IMU定位与光度重建

    作者 | 流川峰 编辑 | 深蓝前沿 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心[SLAM]技术交流群 后台回复[SLAM综述]获 ...

  9. OA-SLAM:在视觉SLAM中利用对象进行相机重新定位

    作者 | 鱼肖浓  编辑 | 汽车人 原文链接:https://zhuanlan.zhihu.com/p/587010197 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷 ...

最新文章

  1. WPF Interaction框架简介(一)——Behavior
  2. 【常规的01背包 POJ3624 UVA562 HDU2546 HDU3466 poj1745】
  3. 企业如何应对BT传输
  4. python末位1的位置_用Python黑了整个学院学姐的电话和QQ,爬虫牛皮!兄弟们耗子尾之!...
  5. Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的
  6. java integer 值传递_在java中String,对象,Integer(包装类型的)关于引用传递仍是值传递...
  7. 回到顶部 jquery
  8. 工作流管理系统开发之十 数据库连接及事务设定
  9. 微信html人脸识别接口,微信人脸识别可视化的实现:
  10. 【Multisim仿真】10秒倒计时8路抢答器
  11. C语言如何打开shx文件,shx文件怎么打开 .shx格式打开方式解答
  12. 给仍在「 选品 」的跨境卖家提个醒!
  13. win10下使用Linux(ubuntu18.04)
  14. 笔记本没有Insert键怎么办
  15. 创业者的噩梦 - 怎么就侵权了
  16. 网页: 如何修改列表项 ul > li 前小圆点的样式
  17. 启动nexus常见问题
  18. 李云赫天津大学计算机,中国大学生自强之星
  19. 微软试图导演互联网版的“赤壁之战”?
  20. 【Python】在字符串的头尾做文本匹配

热门文章

  1. perl判断CGI程序或终端程序的方法
  2. 一起谈.NET技术,.Net Discovery系列之-深入理解平台机制与性能影响 (中)
  3. api.533.net 文章迁移计划
  4. 换掉VMware?轻量级虚拟机,横空出世!
  5. 雷军做程序员时写的博客,太牛了!
  6. 系统架构性能问题诊断及优化思路,纯干货!
  7. 刚看完 Kafka 源码,各位随便问!
  8. 深入理解 Java 虚拟机 - 你了解 GC 算法原理吗
  9. 来!说说你在流量控制方面的经验!
  10. 高中生也能读懂的Docker入门教程