2018年
摘要
视觉同时定位和映射(SLAM)在机器人界已经研究了几十年。随着基于几何模型的技术日益成熟和精确,视觉SLAM已经取得了重大进展和成就。然而,在具有挑战性的环境下,它们往往是脆弱的。最近,有一种趋势是开发数据驱动的方法,例如深度学习,以解决具有更稳健性能的视觉SLAM问题。本文旨在通过提供全面的技术回顾,见证视觉SLAM技术从基于几何模型到数据驱动方法的不断发展。我们的贡献不仅是汇编了最先进的端到端深度学习SLAM工作,还深入了解了深度学习SLAM的潜在机制。为此,我们首先简要概述了基于几何模型的方法。接下来,我们确定使用深度学习的视觉深度估计是进化的起点。正是基于深度估计,使用深度学习的自我运动或姿势估计技术迅速蓬勃发展。此外,我们努力将使用深度学习的语义分割与紧急语义SLAM技术联系起来,以阐明自我运动和高水平理解的同时估计。最后,我们设想了这一研究方向的一些进一步机会。
关键词:SLAM·深度学习·深度估计·姿态估计·语义映射
导言
视觉同步定位和映射(SLAM)对于实现基于视觉的移动机器人的持续自主性至关重要,尤其是在未知环境中。它也是巨大的基于视觉的应用程序(如虚拟和增强现实)的关键使能器。在过去的几十年中,来自机器人和计算机视觉社区的研究人员一直致力于设计一些高效和通用的视觉SLAM系统。
大多数现有的视觉SLAM方法基于视觉几何显式地建模摄像机投影、运动和环境。因此,它们被称为基于模型的SLAM。根据使用图像信息的方式,它们可分为基于特征的方法[1-3]和直接方法[4-6]。具体而言,基于特征的视觉SLAM方法从图像中提取稀疏特征,如点和线,用于特征匹配和自我运动估计,而直接方法在光度一致性假设下直接使用密集(或半密集)图像像素进行运动估计。环路闭合检测和后端优化可以与这两种方法结合起来,形成一个完整的可视化SLAM系统。
在过去十年中,最先进的基于模型的视觉SLAM算法取得了巨大成功。例如,基于特征的[3]和直接[6]方法都证明了定位和映射精度的优越性能。然而,它们仍然面临许多挑战性问题,特别是在大规模环境中部署或在极端照明条件下。如今,系统鲁棒性[7]和高级(语义)认知计算感知[7,8]是视觉SLAM系统的要求很高的任务。不幸的是,仅仅依靠基于模型的方法来解决这些问题变得越来越具有挑战性。其中一个原因是,高维图像携带重要的“冗余”信息,现实世界具有复杂的外观,难以以精确的方式手动建模。
深度学习可以以端到端的方式从海量数据中自动学习有效的特征表示,不需要提取手动设计的特征[9]。通过这种方式,深度学习可以根据具体问题学习更稳健和有效的特征,并成功地证明了对一些具有挑战性的认知和感知任务的良好能力,如手写代码识别[10]、人体姿势估计[11]、触觉识别[12]和面部标志定位[13]。不可避免地,视觉SLAM从基于模型的方法演变为深度学习方法。针对视觉SLAM问题开发深度学习方法的最新尝试包括从单目图像对场景的深度估计[14]、视觉里程估计[15]和语义图生成[8]。这些最新进展预示着视觉SLAM系统通过引入自适应和学习能力来解决挑战性问题的巨大潜力。
本文旨在回顾视觉SLAM系统从基于模型到深度学习方法的不断变化。以前的一些出版物提供了各种SLAM技术概述。DurrantWhyte等人[16,17]从递归贝叶斯公式的角度介绍了解决SLAM问题的基本方法。Scaramuzza等人[18,19]对视觉测程(VO)进行了全面审查。Cadena等人[7]对视觉SLAM进行了详细调查,并描述了一些开放性挑战和研究问题,包括系统鲁棒性和语义感知。然而,他们主要集中于基于模型的方法,没有或有限地讨论数据驱动方法。从技术上讲,它们关注于特征的选择、递归优化的框架或循环闭包的检测。显然,我们的工作与他们的不同之处在于,我们专注于使用深度学习的视觉SLAM方法的最新进展,包括深度神经网络的构建、损失函数的设计和估计的灵活性。此外,我们还展示了当设计损失函数或构建深度学习架构时,深度学习SLAM如何从基于模型的方法中受益。我们还强调了语义SLAM对于图像分割的强大深度学习能力的重要性。最后,这个方向的未来机会集中在系统鲁棒性、语义理解和学习能力。
基于模型的SLAM方法
基于模型的SLAM方法基于多视图几何体和光度一致性,显式建模摄像机投影、运动和环境。它们可以分为基于特征的方法和直接方法。基于特征的方法从2D图像中提取和匹配特征点,然后计算和优化相机姿态以及这些特征点在3D中的位置。相反,直接方法使用图像中的像素,通过最小化光度误差而不提取特征点,直接计算6自由度相机姿态。尽管存在大量基于模型的方法,但由于空间限制,我们主要关注定位和映射精度方面的最新技术。
基于特征的视觉SLAM方法
Davison等人提出的单镜头定位系统[20]是最早使用单目摄像机的实时视觉定位系统之一。与缺乏实时性能的结构与运动(SfM)方法不同,MonoSLAM采用概率框架,为地图创建稀疏但一致的3D特征点。通过结合通用摄像机运动模型和特征初始化,MonoSLAM在标准PC上以30 Hz的实时性能实现了3D定位和映射。Monosram将纯视觉和自主机器人技术联系起来,并为增强现实(AR)提供了一些新的潜在应用。
然而,单斯拉姆系统中的跟踪和映射是紧密联系的,并在一个线程中操作。换句话说,6自由度相机姿态和3D地图点在每帧一起更新。由于使用了大量图像,该算法只能处理有限数量的稀疏特征。为了解决这个问题,Klein等人提出了一个并行跟踪和计算映射(PTAM)系统[1],该系统将跟踪和映射分离为两个并行线程。映射线程根据关键帧更新,并使用计算昂贵的束调整技术执行。跟踪线程以帧速率更新,以基于构建的3D地图估计6自由度相机姿态。在小型环境中使用手持摄像机成功地进行了PTAM。
Mur Artal等人[3]提出的ORB-SLAM是目前最成功的基于特征的SLAM系统之一。他们首先提出了一种基于词袋(BoW)技术的具有ORB特征的地点识别系统[21]。ORB[22]是一种旋转不变和尺度感知特征,可以在高频下提取。所提出的位置识别算法可以高效运行,从而在视觉SLAM系统中实时实现重定位和闭环。然后,在ORB位置识别器[21]的基础上,他们提出了带有单目摄像机的ORB-SLAM[3],这可以在大规模环境中执行,并证明了其优越的性能。之后,他们将ORB-SLAM从单目摄像机扩展到立体和RGB-D摄像机[23]。
Endres等人提出了基于特征点的RGB-D SLAM[2]。所提出的RGB-D SLAM可以生成密集和精确的3D地图。近年来,出现了一种新的传感器,称为事件摄像机或动态和主动像素视觉传感器(DA VIS)。针对6自由度运动跟踪和三维重建,提出了相应的SLAM算法[24][25],这些算法在一些具有挑战性的场景中表现出令人印象深刻的性能。
在新兴的语义SLAM中也观察到从低级点特征到高级对象的转变。SalasMoreno等人[26]提出了一种平面SLAM系统,可以检测环境中的平面并生成平面图。他们还提出了一种称为SLAM++[27]的SLAM系统,该系统可以检测椅子和桌子等物体,然后利用这些物体进行定位。然而,提取的对象数量有限,如平面、桌子和椅子,需要特定的监督离线学习。
直接视觉SLAM方法
与上述基于特征的方法不同,直接方法不依赖于手动设计的稀疏特征。相反,他们使用图像中的大多数像素,通过对每个重叠图像对的一些光度误差进行惩罚来估计6自由度相机姿态。
Newcombe等人提出了一种密集跟踪和映射(DTAM)系统[4]。当估计图像中每个像素的深度时,DTAM为每个帧生成密集的3D地图。随后,Newcombe等人[28]提出了使用RGB-D摄像机的动态融合,该摄像机在密集配准和映射中得到了成功证明。KinectFusion依赖截断符号距离函数(TSDF)进行像素网格表示,并利用迭代最近点(ICP)对齐深度图像。DTAM和KinectFusion都在具有商用GPU的室内规模环境中运行,以实现实时性能。
Whelan等人提出了基于RGB-D摄像机的曲面表示的弹性融合[29]。通过使用帧模型跟踪和非刚性变形,ElasticFusion执行基于时间窗surfel的密集数据融合。在不需要姿态图优化或后处理步骤的情况下获得密集的全局一致映射。为了实现实时性能,摄像机跟踪和密集映射也需要GPU。
为了提高基于密度的方法的效率,Engel等人提出了在CPU上实时运行的半密度视觉里程计(SVO)[30]。SVO使用具有不可忽略图像梯度的像素,而不是图像中的所有像素。估计半密集逆深度图,并通过估计深度图的对齐来跟踪6自由度相机运动。Forster等人还提出了一种类似的方法,称为SVO[5]。Engel等人通过引入大规模直接单目SLAM(LSD-SLAM)[31]改进了SVO[30],该系统可以在具有CPU的大规模环境中运行。LSD-SLAM采用sim(3)来检测尺度漂移,并提供概率解决方案来处理跟踪期间的噪声深度预测。最近,Engel等人进一步改进了直接法,并提出了直接稀疏里程计(DSO)[6]。DSO将光度误差与几何误差相结合,并联合优化所有模型参数。所证明的性能包括跟踪和映射的高精度,以及在某些无特征环境中的鲁棒性。
Pascoe等人提出了NID-SLAM[32],这也是单目摄像机的直接方法。NID-SLAM选择归一化信息距离(NID)度量来估计摄像机运动,而不是像大多数直接方法那样惩罚光度误差。NID-SLAM在外观变化环境中表现出强大的性能。
总结
基于模型的视觉SLAM方法已经成功地证明了它们在姿态估计和3D地图构建方面的优越能力。特别是基于特征的代表性ORB-SLAM[3]和直接代表性DSO[6]都在大规模环境中实现了高精度,并使用商用CPU实现了实时性能。然而,当他们面对一些无特征的环境或其他挑战场景时,例如严重的图像模糊,他们的鲁棒性仍然会很困难。此外,他们不具备适应特定环境的学习能力。计算机视觉深度学习的成功为通过持续学习提高鲁棒性能提供了一些启示。
用于视觉SLAM的深度神经网络
基于模型的方法用人工设计的特征表示输入图像,并搜索与图像帧之间的特征匹配的最佳姿势。深度学习直接在多个级别学习输入图像的良好表示。对于大满贯问题,表示可以是未知的特征、深度,甚至是两帧之间的自我运动。
在本节中,简要说明了三种类型的深度神经网络(DNN),它们已经在深度学习SLAM方法中找到。有关深度学习的更多信息,请参阅[9]。
卷积神经网络(CNN)
是迄今为止最流行的深度神经网络结构之一。CNN主要由视觉层(例如,卷积层、激活层、池层)和公共层(例如完全连接层)组成,如图1a所示。还经常合并掉层和归一化层(例如批量归一化层)。损失函数,如Softmax和欧几里得损失,通过最小化预测和标签之间的差异来驱动训练。
RNN
Autoencoder
1深度学习的深度估计
深度估计是SLAM系统的基础。基于模型的SLAM方法通常利用来自多个图像的相机视差来估计深度。随着深度学习的发展,数据驱动方法为深度估计提供了一种替代方法。深度学习的深度估计可分为有监督方法和无监督方法。
监督方法
Eigen等人[50]设计了一个深度神经网络,用于对单个图像进行深度估计。这是一种有监督的方法,其中网络训练需要地面真相深度图。该网络由两部分组成:一部分用于全局结构预测,另一部分用于局部预测细化。尺度不变误差被定义为学习的成本函数。在不进行任何后处理的情况下恢复实际深度尺度。所提出的方法在纽约大学深度[41]和基蒂[35]数据集上都产生了良好的结果。根据透视几何,对象的大小与深度成反比。Ladicky等人[53]利用这一特性将图像转换为标准深度进行训练。他们还提出将语义分割和深度估计结合起来以提高性能。该方法也是一种基于单目图像的有监督深度估计方法。Liu等人[51]还提出了一种使用所谓的深度卷积神经场(DCNF)的单图像深度估计方法,该方法将连续条件随机场(CRF)集成到统一的深度CNN框架中。此外,在[34]中提出了超像素池方法和全卷积网络(FCN),以提高分割性能的准确性和效率,也可用于深度估计。Li等人也提出了类似的方法[54]。在[52]中尝试将深度估计与视觉SLAM结合起来,称为CNN-SLAM。这是一个单目SLAM系统,其中来自CNN的预测深度图是密集的,并且具有绝对比例。与基于模型的方法相比,仅从CNN估计深度,而其他部分,如姿态估计和图形优化,与基于特征的SLAM相同。所提出的方法在姿态估计和地图构建方面表现出鲁棒性和精确性。Ma等人提出了一种所谓的稀疏到稠密[55]方法来预测稠密深度图像,该方法可用作基于模型的SLAM方法的插件模块,以创建精确、稠密的点云。他们构造了两个CNN来融合RGB图像和稀疏深度图像。他们的稀疏深度图像可以是基于模型的SLAM或低成本激光雷达。Ummenhofer等人[56]提出的DeMoN通过监督深度学习实现了深度估计。监督方法需要大量的标记数据来训练网络。由于收集标记数据集的成本很高,其应用受到限制。
无监督方法
最近出现了使用无监督深度学习的深度估计方法。主要思想来自自动编码器的表示能力。编码器是预测左输入图像的深度图的CNN,解码器是从右输入图像和预测深度图合成重构左图像的卷绕函数。重建的误差被用作训练CNN的成本函数[48](s e e F i g.2a)。
(不全)
摘要
表1简要总结了使用深度学习的深度估计方法。深度估计从有监督学习到无监督学习的进步是显著的,因为不需要标记数据,并且终身学习是可行的[48]。无监督学习深度估计在建立SLAM系统的密集图中也很重要。鉴于图像序列中的时间约束,可以使用无监督学习估计自我运动。下一节将对此进行审查。
2基于深度学习的姿态估计
3深度学习的自我运动估计
4语义映射与深度学习
5开放式挑战和未来机遇
结论
基于模型的SLAM在精度上的成熟导致寻求视觉SLAM系统中的鲁棒性和高级认知和感知。受各种视觉任务中深度学习的强大能力的启发,注意力逐渐转向深度学习解决方案。此外,具有学习或自适应能力的视觉SLAM系统是进一步探索的吸引因素。此外,深度学习解决方案还可以使视觉SLAM系统更灵活地产生各种有意义的估计结果,如姿态、深度、3D点云和语义地图。
我们提供了重要证据,表明正在从基于模型的方法向基于深度学习的方法演变。一些深度学习解决方案已经证明了在提高鲁棒性、集成语义信息和合并学习能力方面的性能。预计将继续取得更丰硕的成果。
基于模型的可视化SLAM知识在设计基于深度学习的方法的网络架构、损失函数和数据表示时非常重要。大规模数据集的可用性是深度学习方法广泛应用的关键。采用无监督学习的尝试有望进一步巩固深度学习对视觉SLAM的贡献。