重磅原创:视觉SLAM技术介绍与展望

编者按:

SLAM技术是目前机器人、自动驾驶、增强现实等领域的关键技术之一,是智能移动平台感知周围环境的基础技术。本文介绍了基于视觉传感器(单目、双目、RGB-D等相机)的SLAM技术的原理和研究现状,包括基于稀疏特征的SLAM、稠密/半稠密SLAM、语义SLAM和基于深度学习的SLAM。然而,现有的系统与方法鲁棒性并不高,随着人工智能技术的发展,深度学习与传统的基于几何模型的方法相结合的趋势正在形成,这将推动视觉SLAM技术朝着长时间大范围实时语义应用的方向前进。

作者简介:

谷东兵,英国埃塞克斯大学教授,现任认知与智能实验室群体智能领域首席专家。

研究方向:群体智能、多智能体协同、SLAM、机器人技术

正文:

定位和地图构建是机器人导航与控制研究领域的两个基本问题。机器人研究领域的同步定位与地图构建SLAM技术是同时解决这两个问题的有效方案之一。由于图像或视频能够提供丰富的环境信息,大多数定位和构图的研究集中在视觉SLAM算法。但由于其复杂性,给潜在的定位和构图应用带来了严峻挑战。近十年来,视觉SLAM算法取得了重大进展,在一定的环境中,可以对移动平台的姿态和环境地图进行非常准确的估计。然而,现有的系统和方法的鲁棒性是不高的,对一些场景仍然是脆弱的;它们大都缺乏实时性,尤其是在大尺度环境下运行。因此,在视觉SLAM系统中应对这些挑战至关重要。

1. SLAM技术

1.1 基于卡尔曼滤波的SLAM

本质上,定位和构图问题是机器人领域中的状态估计问题,卡尔曼滤波或粒子滤波是主流的工具。一些传感器提供本体姿态随时间变化的数据驱动的动态模型,例如地面移动机器人的光学编码器,飞行机器人的IMU等,然而,由此而产生的移动平台的定位估计结果有累积误差或漂移。一些外感受传感器,如摄像机或激光测距仪,则能够提供角度或距离测量,通过融合动态模型中的分布和测量模型中的分布,扩展卡尔曼滤波(EKF)或粒子滤波(PF)将前一步的估计分布传播到当前的估计分布。由于EKF只是更新增递量,在大尺度环境下可以长期使用,有些结果可以达到累积相对误差远小于1%。但由于算法的增递式工作方式,其累积漂移仍然过大,并且所采用的环境地图是稀疏的,构建的地图用处有限。由于这类方法没有使用回环检测和全局优化,有时也被称为视觉惯导里程计VIO。

1.2 基于优化的SLAM

与机器人研究领域SLAM技术并行研究的是计算机视觉研究领域的运动恢复结构SFM技术,它是通过优化算法进行本体运动及环境结构的估计,也可称之为基于优化的SLAM。首先它要提取一些视觉特征,然后进行两副图像的特征匹配,再用匹配的特征进行优化(局部优化),从而估计出移动平台的位置与方向变化,通过位置与方向变化的积累,产生估计的位置与方向。由于它‍‍‍也进行位移积累,也会产生累积误差或漂移。起初SFM技术主要用于构建环境地图,以离线工作方式为主,所以它可以检测回环,即检测移动平台是否经过一段时间后又回到了以前到过的环境。回环检测是通过特征匹配进行的,随着时间的推移、图像的积累,回环检测所用时间越来越长。一旦检测到回环,SFM技术即会对已估计出的局部结果再进行优化(全局优化),从而大大减小了积累的误差或漂移,所以其估计的精度很高。但由于要进行回环检测及其全局优化,在大尺度环境下,其实时性有限。

随着计算机性能的提高以及实现算法的改善,将基于卡尔曼滤波和基于优化的SLAM互相结合,准确度和实时性都有很大的提高,其中基于优化的SLA‍‍‍M现在变得更受欢迎。比如用两个线程实现SLAM算法PTAM,一个是实时跟踪线程,用来估计移动平台的位置与方向;另一个是非实时构图线程,用来通过优化构图。又比如关键帧选取以提高回环检测的速度,用每帧图像进行回环检测花费时间太多,许多图像不包含有用信息或者有冗余,只选取关键帧进行回环检测既提高速度又减少存储量。

2. 视觉SLAM算法的现状

2.1 基于稀疏特征的SLAM

视觉特征的提取是这类技术的关键,良好的特征应该具有尺度和旋转的不变性,能够应用的环境应该具有大量的视觉特征,如特征点,角,线等;而在无特征或特征都一致的环境,如空屋子或高速公路等,则难以取得好的估计效果。

ORB-SLAM是西班牙萨拉戈萨大学的团队开发的,其中ORB是一种具有快速提取和描述的特征。它是由FAST特征点和 BRIEF特征描述结合起来的。ORB-SLAM非常成功地应用在各种规模的、室内/室外的环境中,能够实时计算出相机的轨线,并生成场景的稀疏三维重建地图。它使用了回环检测,使得估计的结果具有较高的精度,且该系统对剧烈运动具有鲁棒性。目前有单目,双目相机,和RGB-D相机版本。但是,ORB-SLAM不能提供稠密的三维点云图,也不能提供估计的不确定性。

2.2 稠密SLAM和半稠密SLAM

有些环境没有显著特征,也有时使用稀疏特征会丢掉大量的视觉信息,直接或稠密的SLAM方法可在一定程度上适应这类环境。直接或稠密的SLAM方法不提取特征,而是通过直接比较两帧图像所有像素光强度的不同来优化估计移动平台的位置与方向变化,即用最小化光测误差来定位相机。地图的构建则是用一些特殊函数来表示环境三维表面,并通过估计所有图像像素的深度进行稠密重建。由于稠密重建所需的计算量和储存量都较大,通常需要用GPU加速计算。早期的算法,如DTAM,应用环境规模有限,精度有限 。

不是图像中所有的像素都是有用的信息,为了减少计算量和储存量,半稠密的视觉里程计SVO并不使用图像中所有的像素,而是使用那些具有不可忽略的图像梯度的像素。德国慕尼黑工业大学所开发的一种改进的SVO,大尺度直接单目SLAM(LSD-SLAM)可以使有CPU在大尺度环境中运行。最新的进一步改进的是直接稀疏里程计DSO算法,针对一些正常的环境可以产生非常准确的定位构图的结果。

2.3 语义SLAM

目前大多数实时SLAM系统都是使用低级水平的特征(点、线、斑块或非参数表征,如深度图),其特点是存储量大,但不利于在大尺度环境中的应用;并且构建的地图是稀疏或稠密点图,不利于机器人对环境的理解。能否用环境中的高级特征或对象,如墙壁、地板、书桌、椅子等,来估计移动平台的位置与方向,并对三维点云图进行场景语义标记是研究语义SLAM的目的。

英国帝国理工学院开发的平面SLAM将环境中的平面作为高级特征或对象,可以同时实现对象识别与定位。然而,对于其他室内物体,如椅子和书桌,还需要进行大量离线的对象识别训练。目前,同步的实时语义标记和定位仍处于初期阶段。

2.4基于深度学习的SLAM

2.4.1深度学习与SLAM

深度学习在图像处理的一些应用场合中已经取得了很大的成功,如在图像识别或图像分割中超过以往的其它方法,主要是它能自动的提取和有效的表示视觉特征。视觉SLAM也需要提取和表示有效的视觉特征,所以基于深度学习的SLAM在这两年应运而生。

前面提到的稀疏特征SLAM或稠密SLAM都采用视觉几何模型的计算,是基于模型的方法;而深度学习SLAM是基于数据的方法。大多数基于模型的方法并不能从原始图像中自主学习,也不能从不断增加的数据集中获益,其中一些在挑战性的场景中很脆弱。基于数据的SLAM 首先是自动提取特征,而不是手动提取,特别是当可以得到非常大规模的数据集时,它有可能得到更有效可靠的特征,从而提高SLAM鲁棒性。

最近,基于深度学习的SLAM已经出现并表现出了良好的性能,特别是在系统的鲁棒性方面有一些明显的改善。但大多数基于深度学习的方法都需要在标记的数据集中进行有监督的学习。然而,对大量数据进行标记是非常困难且代价昂贵,这一要求限制了基于深度学习的方法的潜在应用。因此具有无监督学习机制的SLAM显得更有应用前景,最新无监督学习的SLAM已经和有监督学习的SLAM性能接近。通过在规模不断增加的未标记数据集中进行学习,无监督学习的SLAM会使得系统性能不断提升。

2.4.2无监督深度学习的SLAM

最近开发的DeepSLAM是一种新的基于无监督深度学习的视觉SLAM系统,它的训练过程是完全无监督的,但需要立体数据恢复深度规模。DeepSLAM的测试需要单目图像序列作为输入,因此,它属于单目SLAM范式。DeepSLAM包含几个要素:建图网络,跟踪网络、回环网络和图优化单元。具体地说,建图网络是描述环境结构的编码-解码结构,而跟踪网是一种用于捕获摄像机运动的递归卷积神经网络结构。闭环网络是一种预处理的二进制分类器,用于回环检测。DeepSLAM可以同时产生姿态估计、深度地图、三维点云图以及离群排斥膜。

2.4.3 深度学习SLAM 的性能

目前基于深度学习的SLAM在估计精度方面已逼近当前国际上最先进的SLAM算法,但由于训练的数据集有限,其泛化能力还需进一步的提高。但它确实表现出了较强的鲁棒性,在某些具有挑战性的场景中强于某些基于模型的SLAM。

基于深度学习的SLAM也具有很强的灵活性,它不仅可以估计位置和构建三维点云图,并且可以产生估计的不确定性,为后续决策服务,还可和语义SLAM结合起来构建场景语义地图。

但它的缺点是需要大量的离线GPU学习训练,目前估计的精确度也没有基于稀疏特征的SLAM好。如何结合基于模型的SLAM和基于数据的SLAM,从而既提高精确度又改善系统的鲁棒性是今后的主要研究问题。

3.视觉SLAM的发展前景

3.1 基于深度学习的视觉SLAM

深度学习具有很强的知识表达能力,而视觉SLAM需要将图像中环境结构及当前位置通过深度视觉特征表达出来,最近的研究结果显示深度学习的确对提高SLAM的鲁棒性有所帮助,这方面的研究刚刚起步,许多新的结果正在不断出现。如果能进一步结合基于模型的SLAM的准确性,基于深度学习的SLAM一定能对 SLAM技术的发展提供崭新的前景。

基于深度学习的SLAM当前也有一些挑战性的困难需要克服,比如大规模的数据采集,以及训练。已有的公共数据集主要是用于基于模型的SLAM的测试和验证的,而训练深度学习网络需要更多更具有代表性的大量数据集,收集这样的数据集需要大量的工作。

如何把基于深度学习的SLAM和基于模型的SLAM 的优点结合起来需要进一步的探索研究,直接进行端对端的网络结构设计与训练可能不易发挥准确度高的优点;而过于依赖基于模型的SLAM会影响大数据处理不确定性的特长。

3.2 基于深度学习的场景语义构图

深度学习已经在图像或视频分割中产生了很好的效果,应用这些成果进行场景语义构图可以对视觉SLAM技术的应用作进一步扩展。稠密SLAM算法可以产生三维点云图,然后将三维点云图通过深度学习进行像素级的标记,就可以产生场景语义三维图。场景语义三维图对机器人的自主导航,增强现实等领域的应用十分有益。

场景语义是人类对场景环境的理解,是人类的主观的判断,实现客观的无监督的深度学习是十分困难的。而有监督的深度学习的研究的困难在于缺少用于训练的大规模数据集,目前公共数据集非常有限,给大规模数据集进行语义标签是十分繁杂的工作。

而生成的场景语义图是否可以反过来帮助SLAM 算法提高定位精度或改善定位鲁棒性值得进一步探索研究,因为基于模型的SLAM算法的特征或点云地图的确反过来用于提高定位精度,所以我们期望场景语义图也可以帮助定位,并进一步减少数据存储量,以利于大规模大尺度环境构图。

3.3 长时间大范围SLAM应用

长时间大范围SLAM系统在实际应用中十分有用,如自动驾驶领域,但也具有一定的挑战性,比如:

(1)实时性的挑战:由于地图尺寸和关键帧数量的增长,回环检测将变得很慢,优化算法也会需要更长的时间,从而使得系统的实时性能变得很差。

(2)数据规模的挑战:当环境是大尺度的,如数公里之远,三维点云,甚至是稀疏的三维点云的数据量也会变得很大,以至于无法存储和处理。

(3)环境挑战:在大尺度环境中,系统会变得脆弱,鲁棒性也将随之降低,而且很有可能SLAM系统将会面临一些极具挑战性的场景:如特征少的场景、较差的白平衡、图像失真、夜间等,这些场景构成了特征检测的挑战。

END

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180612G0WYGN00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券