SLAM的研究历程简述

前言

SLAM的英文全程是 Simultaneous Localization and Mapping,中文称作同时定位与地图创建。SLAM试图解决这样的问题:一个机器人在未知的环境中运动,如何通过对环境的观测确定自身的运动轨迹,同时构建出环境的地图。SLAM技术正是为了实现这个目标涉及到的诸多技术的总和。早期的SLAM多利用声呐、单线激光雷达等传感器来实现。从2000年以后,随着计算机视觉的发展,利用摄像头的视觉SLAM开始成为研究热点,并且在许多领域中体现出巨大的应用价值,主要分为以下几个方面。

  1. VR/AR 方面:根据 SLAM 得到地图和当前视角对叠加虚拟物体做相应渲染,这样做可以使得叠加的虚拟物体看起来比较真实,没有违和感;
  2. 无人机领域,SLAM可以构建局部地图,辅助无人机进行自主避障、规划路径;
  3. 无人驾驶领域, SLAM 技术可以提供视觉里程计功能,然后跟其他的定位方式融合;
  4. 机器人定位导航领域,SLAM 可以用于生成环境的地图。基于这个地图,机器人执行路径规划、自主探索、导航等任务。

视觉SLAM的发展历程

SLAM是由Smith Self 和Cheeseman于1986年首次提出,距今为止已经发展了30多年,其主要发展历程可划分为以下3个时代。

  1. 传统时代classical age(1986-2004):SLAM问题的提出,并将该问题转换为一个状态估计问题,利用扩展卡尔曼滤波、粒子滤波及最大似然估计等手段来求解。
  2. 算法分析时代algorithmic-analysis age(2004-2015):研究SLAM的基本特性,包括观测性、收敛性和一致性。
  3. 鲁棒性-预测性时代robust-perception(2015-):鲁棒性、高级别的场景理解,计算资源优化,任务驱动的环境感知。
    视觉SLAM是在传统SLAM的基础上发展起来的,早期的视觉SLAM多采用扩展卡尔曼滤波等手段来优化相机位姿的估计和地图构建的准确性,后期随着计算能力的提升及算法的改进,BA优化、位姿优化等手段逐渐成为主流。随着人工智能技术的普及,基于深度学习的SLAM越来越受到研究者的关注。

现代较成熟视觉SLAM系统简介

现代视觉SLAM系统可以分为2部分:前端和后端。前端提取传感器数据构建模型用于状态估计,后端根据前端提供的数据进行优化,这个架构如图1所示。
在这里插入图片描述

前端(VO)

视觉SLAM的前端关心的是相邻图像之间的相机运动,又称为视觉里程计VO。VO的实现方法,按是否需要提取特征,分为特征点法的前端及不提取特征的直接法的前端。
特征点法前端主要包括特征提取与匹配,位姿求解。常用的特征提取方法包括SIFT特征、ORB特征与SURF特征。经测试在同一幅图像中同时提取约1000个特征点的情况下,ORB约要花费15.3ms,SURF约花费217.3ms,SIFIT约花费5228.7ms。不过就精度而言,SIFIT特征的效果最好。相机位姿的求解通常是根据匹配的点对来计算的,对于多组2D像素点,我们可以利用对极几何来估计;对于多组3D空间点,我们可以采用ICP来解决;对于3D空间点和2D像素点,我们可以采用PNP来求解。特征点法的代表作是PTAM和ORB-SLAM2.
直接法的前端是根据像素灰度的差异直接计算相机运动,并根据像素点之间的光度误差来优化。直接法既避免了特征的计算时间,也避免了特征缺失的情况。只要场景中存在着明暗变化,直接法就能工作。根据使用像素的数量,直接法分为稀疏,稠密和半稠密三种。稀疏方法可以快速地求解相机位姿,而稠密方法可以建立完整的地图。不过直接法也存在着以下几个缺陷:(1)非凸性:由于图像是强烈非凸的函数,使得优化算法容易陷入极小值,在运动很小时直接法效果更好;(2)单个像素没有区分度;(3)灰度值不变是很强的假设。直接法的代表作为SVO和LSD-SLAM。

后端优化

后端优化主要处理SLAM过程中的噪声问题。早期的后端优化考虑的问题是如何从带有噪声的数据中估计整个系统的状态,以及这个状态估计的不确定性有多大——这也称为最大后验概率估计。这里的状态既包含机器人自身的轨迹(每个时刻的位姿),也包含地图。很长一段时间内早期的这种方法并不称为后端优化,而是直接被称为“SLAM研究”。该方法的代表作为MonoSLAM。先阶段效果最好的优化算法是BA和位姿图优化。从每一特征点反射出来的几束光线(boundles of light rays),在我们把相机位姿和特征点空间位置做出最优的调整(adjustment)之后,最后收束到相机光心的这个过程。SLAM的研究者们通常认为包含大量特征点和相机位姿的BA计算量过大,不适合实时计算。直到近十年,人们逐渐认识到SLAM问题中BA的稀疏特征,才能够使他在实时的场景中应用。位姿图优化则是不再优化路标点的位置,而只关心相机的位姿。相机间的位姿通过看到的共同的路标点产生了关系(边)。位姿图优化可以大量减少计算量,实现全局的相机位姿优化。

回环检测

得益于视觉独特的特征,我们可以通过机器学习的方法检测出相机经过同一个地方。如果能够成功的检测到这件事,就可以为后端的全局优化提供更多有效的数据,使之得到更好的估计,特别是得到一个全局一致的估计。现阶段应用最广的回环检测方法是词袋模型(Bag-of-Words)。首先,我们利用机器学习的方法从大量图像中提取特征并将其聚类形成一部词典。然后,将每幅图像根据词典编码为一个向量的描述。最后根据不同的图像比较向量之间的差异进行图像的匹配,差异小于某个阈值的两幅图像再根据对极几何进行几何验证,对于验证通过的一对图像认为是相机在同一个地方。该方法的代表作为DOBW2。

地图

地图是对环境的描述,而建图是指构建地图的过程。地图的形式随着SLAM的应用场合而定。大体上可以分为度量地图和拓扑地图两种。度量地图强调精确地表示地图中物体的位置关系,通常可分为稀疏和稠密两种。相比于度量地图的准确性,拓扑地图更强调地图元素之间的关系。它放松了地图对精确位置的需要,去掉了地图的细节问题,然而它不擅长表达具有复杂结构的地图。

视觉SLAM现在的研究热点及未来的发展

  1. 基于监督学习的特征点提取方法。利用卷积神经网络进行自主学习特征点的提取及描述方法,而不是采用之前的人工设计的特征点。

  2. 基于监督学习的图像深度估计。利用多层深度网络对大量带有深度标签的图像进行学习以达到对单一图像的深度估计。

  3. 基于无监督学习的图像深度与里程计估计。利用光学误差来自我修正训练的深度网络实现图像序列的深度与里程计估计。

  4. 语义地图的建立与表达。在度量地图的基础上加上语义标签,实现不仅表达了物体的位置,还表达了物体的类别。

  5. 主动式SLAM。机器人主动调整自身位姿去寻找有利的特征点。机器人自主执行所选择的行动并决定是否终止任务

  6. 基于新的非传统的传感器的SLAM。深度、光场和基于事件的摄像机,磁场传感器和热传感器。

【参考文献】
[1] Cadena C, Carlone L, Carrillo H, et al. Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age[J]. IEEE Transactions on Robotics, 2016, 32(6):1309-1332.
[2] Fuentes-Pacheco J, Ruiz-Ascencio J, Rendón-Mancha J M. Visual simultaneous localization and mapping: a survey[J]. Artificial Intelligence Review, 2012, 43(1):55-81.
[3] Liu H, Zhang G, Bao H. A Survey of Monocular Simultaneous Localization and Mapping[J]. Journal of Computer-Aided Design & Computer Graphics, 2016.
[4] Mur-Artal R, Tardós J D. Fast relocalisation and loop closing in keyframe-based SLAM[C]// IEEE International Conference on Robotics and Automation. IEEE, 2014:846-853.
[5] Mur-Artal R, Montiel J M M, Tardós J D. ORB-SLAM: A Versatile and Accurate Monocular SLAM System[J]. IEEE Transactions on Robotics, 2017, 31(5):1147-1163.
[6] Mur-Artal R, Tardos J D. ORB-SLAM2: An Open-Source SLAM System for Monocular, Stereo, and RGB-D Cameras[J]. IEEE Transactions on Robotics, 2016, PP(99):1-8.
[7] Rublee E, Rabaud V, Konolige K, et al. ORB: An efficient alternative to SIFT or SURF[C]// International Conference on Computer Vision. IEEE, 2012:2564-2571.
[8] Galvez-López D, Tardos J D. Bags of Binary Words for Fast Place Recognition in Image Sequences[J]. IEEE Transactions on Robotics, 2012, 28(5):1188-1197.
[9] Klein G, Murray D. Parallel Tracking and Mapping for Small AR Workspaces[C]// IEEE and ACM International Symposium on Mixed and Augmented Reality. IEEE Computer Society, 2007:1-10. [6] Mur-Artal R, Tardos J D. ORB-SLAM2: An Open-Source SLAM System for Monocular, Stereo, and RGB-D Cameras[J]. IEEE Transactions on Robotics, 2016, PP(99):1-8.
[10] Davison A J, Reid I D, Molton N D, et al. MonoSLAM: Real-Time Single Camera SLAM[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2007, 29(6):1052-1067.
[11] Engel J, Schöps T, Cremers D. LSD-SLAM: Large-Scale Direct Monocular SLAM[J]. 2014, 8690:834-849.
[12] Forster C, Pizzoli M, Scaramuzza D. SVO: Fast semi-direct monocular visual odometry[C]// IEEE International Conference on Robotics and Automation. IEEE, 2014:15-22.
[13] Weerasekera C S, Garg R, Reid I. Learning Deeply Supervised Visual Descriptors for Dense Monocular Reconstruction[J]. 2017.
[14] Zhan H, Garg R, Weerasekera C S, et al. Unsupervised Learning of Monocular Depth Estimation and Visual Odometry with Deep Feature Reconstruction[J]. 2018.
[15] Eigen D, Puhrsch C, Fergus R. Depth map prediction from a single image using a multi-scale deep network[C]// International Conference on Neural Information Processing Systems. MIT Press, 2014:2366-2374.

  • 12
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
激光SLAM(Simultaneous Localization and Mapping)算法是一利用激光雷达数据进行同时定位和地图构建的技术。它在机器人导航和自主驾驶等领域具有重要应用。下面是激光SLAM算法的发展历程: 1. 早期算法:最早的激光SLAM算法是基于扫描匹配的方法,通过比较两次激光扫描数据的差异来进行定位和地图构建。这些算法包括ICP(Iterative Closest Point)和Scan Matching等。 2. EKF-SLAM:扩展卡尔曼滤波(Extended Kalman Filter,EKF)是一种常用的状态估计方法,被应用于SLAM中。EKF-SLAM通过将机器人的状态和地图的特征点同时估计,实现了同时定位和地图构建。 3. RBPF-SLAM:粒子滤波(Particle Filter)是一种基于蒙特卡洛采样的滤波方法,被应用于SLAM中。RBPF-SLAM(Rao-Blackwellized Particle Filter SLAM)将机器人的轨迹和地图的特征点分别用不同的粒子表示,通过重采样和更新步骤来实现同时定位和地图构建。 4. Graph-SLAM:图优化(Graph Optimization)是一种基于图模型的SLAM方法。Graph-SLAM将机器人的轨迹和地图的特征点表示为图的节点,通过最小化误差函数来进行优化。常用的图优化算法包括最小二乘法(Least Squares)、因子图(Factor Graph)和非线性优化等。 5. 基于深度学习的SLAM:近年来,深度学习技术在SLAM中得到了广泛应用。通过使用深度神经网络对激光雷达数据进行特征提取和匹配,可以提高SLAM算法的鲁棒性和精度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值