最新综述 | 基于深度学习的SLAM方法:面向空间机器智能时代
A Survey on Deep Learning for Localization and Mapping Towards the Age of Spatial Machine Intelligence
基于深度学习的定位与建图方法综述:面向空间机器智能时代
论文地址:https://arxiv.org/pdf/2006.12567v1.pdf
摘要:
基于深度学习的定位与建图技术近年来受到了广泛的关注。不同于利用物理模型或几何理论的人工设计的(crating hand-designed)算法,深度学习方法提供了一种以数据驱动的方式解决问题的替代方案。得益于不断增长的数据量和计算能力,这些方法可以生成用于跟踪运动和估计真实世界场景结构的,准确且鲁棒的系统,并正在快速发展成为一个新的研究领域。在本次工作中,我们整理出了一篇综述,并提出了一种对于现有的基于深度学习的定位和建图方法新的分类方式。我们还论述了当前模型的局限性,并指出未来可能的发展方向。(本文)涵盖了范围广泛的主题(从基于学习的里程计估计、建图到全球定位和SLAM)。我们重新讨论了车载传感器感知自身运动和场景时(可能存在)问题,并展示了如何通过将这些模块集成到未来的空间机器智能系统(SMIS)中来解决这个问题。我们希望这项工作能够将来自机器人学、计算机视觉和机器学习领域的新兴研究成果联系起来,并为未来研究人员了解应用深度学习技术解决定位和建图问题的可行性方法提供指导。 关键词: 深度学习,定位,建图,SLAM,感知,对应匹配,不确定性估计
1.介绍
定位和感知周围环境是人类和移动机器人的基本需求。举个例子,人类能够通过多模态感觉(multimodal sensory perception)感知自身运动和环境信息,并依靠这种感知能力在复杂的三维空间中进行定位和导航[1]。这种能力是人类空间能力的一部分。此外,对自身运动和周围环境的感知能力在发展认知和运动控制中起着至关重要的作用[2]。同样,人工智能体或机器人也应该能够感知环境,并具有使用搭载的传感器估计其系统状态的能力。这些智能体可以是任何形式的机器人,例如自动驾驶汽车、运输无人机或家政机器人,它们可以感知周围环境并自主做出决策。同样,新兴的增强现实(AR)和虚拟现实(VR)技术将网络空间和现实空间交织在了一起,机器感知能力是人机无缝交互的基础。更进一步的应用包括移动和可穿戴设备,如智能手机、腕带或物联网(IoT)设备,可以为用户提供大量基于定位方面的服务,包括步行导航[4],运动/活动监视[5],动物跟踪[6],以及应急响应功能等[7]。
这些(及其他)数字技术需要精确和鲁棒的定位,并具有逐步构建和维护世界场景模型,持续处理新的信息和适应各种场景的能力,才可以实现高度的自主化。这样的研究在我们的工作中称为“空间机器智能系统(SMIS)”,或者最近在[8]中被称为空间Al。在这项工作中,定位是指获得机器人运动的内部系统状态的能力,包括位置、方向和速度;而建图是指感知外部环境状态和捕捉周围环境信息的能力,包括二维或三维场景的几何体、外观和语义信息。这些组件可以单独地感知内部或外部的状态,也可以像同时定位和建图(SLAM)一样,可以在全局框架内跟踪机器人的位姿并建立一致的环境模型。
1.1.为什么要研究用于定位和建图的深度学习技术
定位和建图问题已经被研究了几十年,各种复杂的人工设计(hand-designed)模型和算法也在被不断开发中,例如里程计估计 ( 包括视觉里程计[9],[10],[11],视觉惯导里程计[12]、[13]、[14]、[15]以及激光里程计[16] ) ,基于图像的定位[17]、[18]、位置识别[19]、SLAM[10]、[20]、[21]、运动重构(SfM)[22]、[23]。在理想的条件下,这些传感器和模型能够不受时间,环境的限制,准确地估计出系统状态。然而,在现实中,传感器测量误差,系统建模误差,复杂的环境动力学和不现实的约束(条件)都影响着人工设计系统的准确性和可靠性。
因为基于模型的解决方案存在的局限性,加上机器学习特别是深度学习的迅速发展,促使研究人员考虑将数据驱动学习方法作为解决问题的替代方法。图1总结了传感器数据输入值(例如视觉,惯导,激光雷达数据或其他传感器)和目标输出值(例如位置,方向,场景几何或语义)之间作为一个映射功能的关系类别。传统的基于模型的解决方案是通过人工设计算法来实现的,而基于学习的方法则通过学习大量的数据来构造这个映射函数。基于学习的方法有三方面的优势:
首先,学习方法可以利用高表达度的深度神经网络作为通用逼近器,自动发现与任务相关的特征。这一特性使已训练好的模型能够适应各种场景(如无特征场景、动态高速场景、动态模糊、精确的相机校准),这些都是人工建模的难题[3]。举一个典型的例子,在视觉里程计的设计过程中加入数据驱动方法[24],[25],可以在其鲁棒性方面取得显著的改进,超过最先进的传统算法。此外,学习方法能够将抽象元素与人类可理解的术语[26]、[27] (如SLAM中的语义标签)联系起来,但用正式的数学方法很难对其描述。
其次,学习方法可以使空间机器智能系统从过去的经验中得到学习,并积极地开发出新的信息。通过构建一个通用的数据驱动模型,研究人员在解决特定领域问题时,可以在构建模型时不必再费尽心思将关于数学和物理规则的全部知识指定其中。这种能力可能使基于学习的机器能够在新的场景或面对新的环境时自动发现新的计算解决方案,进一步完善自己和自身的算法模型。一个很好的例子就是利用最新的视图合成(技术)作为一个自监督信号,机器人可以从未标记的视频[29],[30]中恢复自运动和场景深度信息。此外,通过构建任务驱动的地图,学习到的表示法可以进一步支持高等级任务,如路径规划[31]和决策制定[32]。
第三个优势是它能充分利用不断增长的传感器数据和计算机性能。深度学习或深度神经网络具有被扩展到大规模问题的能力。通过反向传播和梯度下降算法对大型数据集进行训练,DNN框架中的大量参数可以通过最小化损失函数进行自动优化。例如,最近发布的GPT-3[33]是最大的预训练语言模型,它具有惊人的1750亿个参数,即使不进行微调,(经过训练的模型)也能在各种自然语言处理(NLP)任务上获得最先进的结果。此外,各种与定位和建图相关的大型数据集已经发布,例如在自动驾驶汽车场景中,[34],[35],[36]包含了大量传感器数据、运动和语义标签组合的数据。这给了我们一个设想,(仅)利用数据和计算的力量来解决定位和建图是有可能实现的。
但是,必须指出的是,这些学习技术依赖于从大量的数据集上来提取有意义的参数,并且很难推广到数据集类型只外的环境中。模型缺乏可解释性。此外,虽然高度可并行化,但它们通常比简单模型的计算成本更高。更详细的局限性会在第7节中进行讨论
1.2.与其他综述的比较
(目前,)有几篇综述广泛讨论了基于模型的定位和建图方法。SLAM问题的发展在早期几十年间已经在[37]、[38]中得到了很好的总结。[39]是一篇具有开创性意义的综述,对现有SLAM工作的进行了深入讨论,回顾了SLAM的发展历史,并描绘了几个未来的方向。尽管该文章中有一个章节简要讨论了深度学习模型,但它并没有全面概述该领域。特别是在过去五年,该领域产生了大量的研究成果。其他SLAM综述只关注于SLAM系统的个别方面,包括SLAM的概率公式[40]、视觉里程计[41]、位姿图SLAM[42]和动态环境下的SLAM[43]。我们建议读者参考这些综述,以更好地理解传统的基于模型的解决方案。另一方面,[3]讨论了深度学习在机器人研究中的应用;然而,它的主要关注点并不是定位和建图,而是更全面地表达了在机器人学的广泛背景下进行深度学习(包括政策学习、推理和规划)的潜力和局限性。
值得注意的是,尽管定位和建图问题属于机器人学的核心概念,但其与学习方法的结合是和机器学习、计算机视觉甚至自然语言处理等其他研究领域同步发展的。因此,由于其跨学科领域性质,我们在将相关工作综合归纳成一份综述报告时解决了不小的困难。就我们所知,这是第一篇全面而广泛地涵盖了现有的基于深度学习的定位和建图算法工作的综述文章。
1.3.(本篇)综述的结构
本文的其余部分架构如下:第2节概述了目前的基于定位和建图深度学习方法的分类;第3,4,5,6节分别讨论了目前深度学习在相对运动(里程计)估计,几何、语义和通用的建图,全局定位和SLAM以及专注于SLAM后端的工作方法;第7节讨论了现有工作的局限性和对未来展望;最后,第8节对本文进行了总结。
2.现有方法的分类
我们为现有的与定位和建图相关,连接机器人、计算机视觉和机器学习等领域的深度学习方法提供了一种新的分类方式。大致可以分为里程计估计、建图、全球定位和SLAM,分类形式如图2所示:
1)里程计估计是计算两帧或多帧传感器数据在平移和旋转方面的相对位姿变化。它不断地跟踪自我的运动,通过将位姿变化与初始位姿相结合,从而得到全局位姿,即位置和方向。这就是所谓的航迹推算法(dead reckoning solution)。里程计估计可用于提供位姿信息,也可以作为里程计运动模型来辅助机器人控制的反馈回路。最关键问题是如何从各种传感器的测量数据中准确地估计运动变换。为此,深度学习应用端到端的方式对运动动力学进行建模,或以混合的方式提取有用的特征来支持预构建的系统。
2)建图是建立或重构一个一致的模型来描述周围的环境。建图可以为人工操作者和高等级机器人任务提供环境信息,约束里程计估计的漂移误差,检索全局定位[39]的观测。深度学习是一个有用的工具,可以从用于映射的高维原始数据中发现场景几何体和语义信息。基于深度学习的映射方法分为几何映射、语义映射和一般映射,这取决于神经网络是学习场景的显式几何或语义,还是将场景编码为隐式神经表示。
3)全局定位是利用先验知识检索已知场景中移动智能体的全局位姿。这是通过将查询输入数据与预先构建的二维或三维地图、其他空间参考或以前访问过的场景匹配来实现的。它可以用来减少航迹推算系统产生的位姿漂移或解决“被绑架机器人”问题[40]。深度学习被广泛用于解决棘手的数据关联问题,这些问题在查询构建地图与数据之间的对应关系时,会因为视图、光照、天气和动态场景的变化而变得复杂。
4) SLAM将上述里程计估计、全局定位和建图过程作为前端,共同优化这些模块,提升定位和建图性能。除上述模块外,其他几个SLAM模块都是为了保证整个系统的一致性:局部优化保证了相机运动和场景几何的局部一致性;全局优化的目的是在全局范围内约束全局轨迹的漂移;关键帧检测用于基于关键帧的SLAM,以实现更有效的推理,而一旦通过回环检测检测到回环,则可以通过全局优化来改善系统的漂移误差;不确定性估计提供了一种对所学位姿和映射的置信度,对于SLAM系统中的概率传感器融合和后端优化至关重要。
尽管各个组件的设计目标不同,但上述组件可以集成到空间机器智能系统(SMIS)中,以解决现实世界中的挑战,从而实现鲁棒的操作和在野外的长期自主能力。图3显示了基于深度学习的集成定位和建图系统的概念图,以及这些组件之间的关系。在下面的部分中,我们将详细讨论这些组件。
3.里程计估计
我们从里程计估算开始,它可以连续跟踪相机的运动并输出相对位姿。在给定初始状态下,通过整合这些相对姿态位姿可以重建全局轨迹,因此保持运动变换估计足够精确对于确保全局尺度下的高精度定位是至关重要的。本节讨论了从各种传感器数据中实现里程计估计的深度学习方法,这些传感器数据在数据属性和应用场景上有着根本性的不同。讨论主要集中于视觉、惯导和点云数据的里程计估计,因为它们是移动机器人上常见的感知方式。
3.1.视觉里程计
视觉里程计(VO)可以估计相机的自运动,并将图像间的相对运动整合到全局位姿中。深度学习方法能够从图像中提取高级的特征表示,从而提供一种解决VO问题的替代方法,而不需要人工制作的特征提取器。现有基于深度学习的VO模型可以分为端到端VO和混合VO,这取决于它们是纯粹的基于神经网络的模型还是经典VO算法和深度神经网络结合的模型。根据训练阶段是否使用了真值标签,端到端VO系统可以进一步分为有监督VO和无监督VO。
3.1.1.VO的监督学习
我们首先介绍有监督VO,它是最主要的基于学习的里程计方法之一,可以通过在标记数据集上训练一个深度神经网络模型,直接构造从连续图像到运动变换的映射函数,而不是像传统的VO系统那样利用图像的几何结构[41](进行构造)。从本质上说,深度神经网络的输入是一对连续的图像,输出是两帧图像之间估计的平移和旋转。
Konda等人[44]的研究成果是该领域最早的研究成果之一。该方法将视觉里程计作为一个分类问题,并使用卷积神经网络(ConvNet)预测输入图像的方向和速度的离散变化。Costante等人[45]使用了一个卷积神经网络(ConvNet)从密集光流中提取视觉特征,并基于这些视觉特征,输出帧到帧的运动估计。尽管如此,这两项工作没有实现从图像到运动估计的端到端学习,它们的性能仍然是有限的。
DeepVO[24]利用了卷积神经网络(ConvNet)和循环神经网络(RNN)的组合来实现视觉里程计的端到端学习。由于其端到端学习的特殊性性,成为实现VO监督学习的典型选择。图4(a)给出了基于RNN ConvNet的VO系统的架构,该系统通过ConvNet从成对的图像中提取视觉特征,并通过RNNs对特征进行时间相关性建模。它的卷积神经网络编码器基于FlowNet结构可以提取适合光流和自运动估计的视觉特征。使用基于FlowNet的编码器可以看作是在学习过程中引入了光流的先验知识,可以潜在地防止DeepVO被过度拟合到训练数据集上。当前模型会将历史信息归纳为其隐藏状态,从而根据过去经验和当前传感器观测的卷积神经网络特征推断输出。它是在大规模数据集上训练的,基于真实的相机位姿作为标
DeepVO报告显示,即使在未见过的场景中,该模型对驾驶车辆位姿的估计也取得了非常不错的结果。在KITTI测程数据集[46]的实验中,这种数据驱动的解决方案优于传统的代表性单目VO,如VISO2[47]和(没有回环的)ORB-SLAM[21]。另一个优点是,有监督的VO算法可以从单目相机自然生成具有绝对尺度的轨迹,而经典的VO算法仅利用单目信息所产生的轨迹是具有尺度模糊的。这是因为深度神经网络可以隐式地从大量的图像中学习和保持全局尺度,这可以被视为从过去的经验中学习,以预测当前的尺度度量。
在经典的有监督VO模型的基础上,许多工作对该方法进行了进一步的拓展,以提高模型的性能。为了提高有监督VO的泛化能力,[48]结合力课程学习(即通过增加数据复杂度来训练模型)和几何损失约束,在有监督的VO框架中应用了知识蒸馏(即通过训练(teaching)一个较小的模型来压缩大规模模型),从而大大减少了网络参数的数量,使其更易于在移动设备上进行实时操作[49]。此外,Xue等人[50]引入了一个存储全局信息的存储模块,以及一个利用保留的前后数据信息改进位姿估计的细化模块。
总之,得益于机器学习技术和计算能力的最新进展,这些端到端学习方法可以直接从原始图像中自动学习(如何进行)位姿变换,从而解决富有挑战的现实世界里程估计问题。
3.1.2.VO的无监督学习
探索VO的无监督学习越来越引起人们的兴趣。无监督解决方案能够利用未标记的传感器数据,可以节省了人为标记数据的工作量,并且在没有标记数据的新场景下具有更好的适应性和泛化能力。这已经在自监督框架中被实现了,该框架可以利用视图合成作为监督信号,从视频序列中获得了深度和相机的自运动[29]信息。
(3)
然而,在最初的工作中[29],有两个主要的问题仍然没有解决:1)这种基于单目图像的方法无法在一致的全局尺度下提供位姿估计。由于尺度模糊,该系统无法重建具有物理意义的全局轨迹,这也限制了其实际应用。2)光度损失假设场景是静态的,没有相机遮挡。虽然作者提出可以使用可解释的掩模(mask)去除动态场景,但这些环境因素的影响仍未完全解决,这违背了假设。为了解决这些问题,越来越多的工作[53]、[55]、[56]、[58]、[59] 、[61]、[64]、[76]、[77]对这种无监督框架进行了扩展,以获得更好的性能。
为了解决全局尺度问题,[53],[56]提出利用双目图像对,来恢复位姿估计的绝对尺度。他们在左右图像之间引入了额外的空间光度损失。因为双目基线(即左右图像之间的运动变换)是固定的,并且在整个数据集中是已知的。一旦训练完成后,该网络仅使用单目设备生来完成位姿预测。由于在训练和测试中所使用的数据集不同,网络在没有GT的情况下成为了无监督网络。[30]通过引入几何一致性损失来解决尺度问题,从而加强预测深度图和重建深度图之间的一致性。该框架将预测的深度图转换为三维空间,并将其投影回来用于生成重建的深度图。这样,深度预测能够在连续帧上保持尺度一致,从而使位姿估计也能保持尺度一致。
光度一致性约束假设了整个场景只包含刚性静态结构,例如建筑物和车道。然而,在实际应用中,环境动力学(例如行人和车辆)会扭曲光度投影,降低位姿估计的精度。为了解决这个问题,GeoNet[551]将其学习过程分为两个子任务,分别通过一个刚性结构重建器和一个非刚性运动定位器估计静态场景结构和运动动力学。此外,GeoNet加强了几何一致性损失,以减轻相机遮挡和非朗伯曲面(non-Lambertian surfaces)引起的问题。[59]添加了一个2D 流生成器以及一个深度网络来生成3D流。得益于对环境更好的三维理解,他们的框架能够产生更精确的相机位姿及点云图。GANVO[61]采用生成的对抗性学习范式(adversarial learning paradigm)进行深度生成,并引入了时间递归模块(temporal recurrent module)进行位姿回归(计算)。Li等人[76]也使用了生成对抗神经网络(GAN)用来生成更真实的深度图和位姿,并进一步在目标帧中生成了更精确的合成图像,使用了鉴别器代替人工制作的度量标准来评估合成图像生成的质量。在此过程中,生成的对抗性设置使得生成的深度地图纹理更加丰富和清晰。通过这种方式,高层次的场景感知和表现被准确地捕获,同时也能够在动态环境中工作。
如图5所示,尽管无监督的VO在性能上仍无法与有监督的VO竞争,但它所关注的尺度度量和场景动力学问题已经基本解决。无监督VO具有自监督学习和性能不断提高的优点,将成为空间机器智能系统中与其他模块紧密耦合的一种很有前途的位姿信息提供解决方案。
3.1.3.混合VO
与端到端的VO仅仅依靠深度神经网络从数据中提取位姿不同,混合VO集成了经典的几何模型和深度学习框架。基于成熟的几何理论,他们使用了深度神经网络替换了几何模型部分的表达。
一种直接的方法是将学习到的深度估计值合并到传统的视觉里程计算法中,以恢复位姿的绝对尺度度量值[52]。学习深度估计是计算机视觉领域的一个研究热点。例如,[78]、[79]、[80]、[81]通过使用经过训练的深度神经模型,在全局范围内提供每个像素的深度值,从而缓解了传统VO的所谓尺度问题。Barnes等人[54]将预测的深度图和短暂掩模(mask)(即移动对象的区域)输入VO系统中,以提高其对运动目标的鲁棒性。Zhan等人[67]将学习到的深度和光流预测整合到一个传统的视觉里程计测量模型中,获得了比其他基线更具竞争力的性能表现。其他工作将物理运动(例如可微卡尔曼滤波器[82]和粒子滤波器[83]模型)与深度神经网络相结合。物理模型在学习过程中充当了算法的先验。此外,D3VO[25]将深度、位姿和不确定性的深度预测纳入了直接视觉里程计中。
结合几何理论和深度学习的优点,混合模型在现阶段通常比端到端VO更精确,如表1所示。值得注意的是,混合模型的性能甚至超过了目前最先进的传统单目VO或视觉惯导里程计(VIO)系统,例如,D3VO[25]击败了几个热门的传统VO/VIO系统,如DSO[84]、ORB-SLAM[21]、VINS Mono[15]。这表明了这一领域的迅速发展。
3.2.视觉惯导里程计
将视觉和惯导数据,集成为视觉惯导测程(VIO)是移动机器人中一个明确定义的问题。相机和惯导传感器成本相对较低,节能且被广泛使用。这两种传感器是互补的:单目相机捕捉三维场景的外观和结构,但它们的比例不明确,对具有挑战性的场景(例如强烈的灯光变化、缺少纹理和高速运动的场景)不太鲁棒;相比之下,IMU完全以自我为中心,与场景无关,可以提供绝对的度量尺度。不过缺点是惯导测量数据(特别是来自低成本设备的惯导测量数据)会受到测量过程中噪声和偏差的干扰。两个互补传感器测量值的有效融合对于精确的位姿估计至关重要。根据传统的基于模型的视觉惯导信息融合方法大致分为三类:滤波方法[12]、固定滞后平滑器[13]和全平滑方法[14]。
直接从视觉和惯导测量学习6自由度位姿而无需人工干预或校准的数据驱动的方法已经出现。VINet[68]是第一个将视觉惯导里程计定义为顺序学习问题的工作,并提出了一个深度神经网络框架,以端到端方式实现VIO。ViNet使用了基于ConvNet的视觉编码器从两个连续的RGB图像中提取视觉特征,同时使用了长短期记忆(LSTM)网络从IMU数据序列中提取惯导特征。在这里,LSTM的目的是模拟惯导数据的时间状态演化。根据系统状态历史,视觉和惯导特征被连接在一起,作为进一步LSTM模块的输入,以预测(相机)相对位姿。这种学习方法的优点是对校准和相对定时偏移误差具有更强的鲁棒性。然而,VINet并没有完全解决学习有意义的传感器融合策略的问题。
为了解决深度传感器融合问题,Chen等人[70]提出了选择性传感器融合(方法),这是一种有选择地学习前后数据相关表示的视觉惯导位姿估计框架。他们的思路是,根据外部(即环境)和内部(即设备/传感器)动力学来考虑不同模式特征的重要性,充分利用两个传感器的互补特性。他们的方法比那些没有融合策略的(系统),例如VINet,更容易避免重大的失败。
与无监督VO类似,视觉惯导里程计也可以通过新的视图合成以自监督的方式求解。VIOLearner[69]可以从原始惯导数据构造运动变换,并通过第3.1.2节中提到的方程2,利用相机矩阵和深度图将源图像转换为目标图像。此外,系统中还有一个在线纠错模块,可以对框架的中间错误进行纠错。VIOLearner通过优化光度损失来恢复网络参数。类似地,DeepVIO [71]将惯导数据和双目图像合并到了这个无监督的学习框架中,并通过专门的损失训练来重建全局范围内(相机)的轨迹。
基于学习的VIO无法在性能上击败最先进的基于经典模型的VIO系统,但由于DNNs在特征提取和运动建模方面的强大能力,它们通常对实际问题[68]、[70]、[71](例如测量噪声、错误的时间同步)更具有鲁棒性。
3.3.惯导里程计
除了视觉里程计和视觉惯导里程计外,还有一种只使用惯导的解决方案,即惯导里程计,(同样)为解决里程计估计问题提供了一个通用的替代方案。与视觉方法相比,惯导传感器具有成本低、体积小、节能、保密性好等优点。它对环境因素(例如照明条件和存在移动物体)免疫。然而,广泛应用于机器人和移动设备上的低成本MEMS惯性测量单元(IMU)存在传感器偏差大、噪声大的缺点,如果对惯导数据进行二次积分,会导致捷联惯导导航系统(strapdown inertial navigation system (SINS))产生无限的误差漂移。
Chen等人[85]将惯导里程计定义为一个序列学习问题,其关键是可以从分段惯导数据的独立窗口中学习到极坐标(即极向量)的二维运动位移。方法的关键是,当跟踪人和轮式结构时,它们的振动频率与移动速度相关,而运动速度是可以通过惯导测量反映出来的。基于此,他们提出了一种基于LSTM的框架——IONet,用于从惯导序列中进行相对位姿的端到端学习测量。轨迹通过运动位移积分产生。[86]利用深度生成模型和域自适应技术(domain adaptation technique),提高了深度惯导里程计在新领域中的泛化能力。[87]通过改进的三通道LSTM网络扩展了这个框架,以从惯导数据和采样时间中预测出无人机定位的极向量。RIDI[88]训练了一个深度神经网络来从惯导数据中回归线性速度,校准收集到的加速度以满足学习速度的约束,并将加速度加倍集成到了一个传统的物理模型中。类似地,[89]通过学习速度补偿了经典SINS模型的误差漂移。其他研究也探索了利用深度学习来检测行人[90]和车辆导航的零速度相位[91]。零速度相位通过卡尔曼滤波为校正系统误差漂移提供了前后数据信息。
只有惯导的解决方案可以作为在极端环境中(在这些环境中,视觉信息不可用或高度失真)提供姿态信息的备用方案。深度学习已经证明了它能够从存在噪声的IMU数据中学习有用的特征,并补偿传统算法中难以解决的惯导航迹推算误差漂移问题。
3.4. 激光雷达里程计
激光雷达传感器提供高频范围测量,其优点是能够在复杂的照明条件和无光学特性的情况下持续工作。移动机器人和自动驾驶车辆通常配备有激光雷达传感器以获得相对自运动(即激光雷达里程计)和相对于三维地图的全局位姿(激光雷达重定位)。激光雷达里程计的性能对非平滑运动引起的点云配准误差非常敏感。此外,激光雷达测量的数据质量也会受到极端天气条件(例如大雨或起雾)的影响。
传统的激光雷达里程计依靠点云配准来检测特征点,如线/面等,并使用匹配算法通过最小化两个连续点云扫描之间的距离来获得位姿变换。数据驱动方法考虑以端到端的方式解决激光雷达里程计问题,通过利用深度神经网络从点云扫描序列中构建的映射函数,来进行位姿估计[72],[73],[74]。由于点云数据稀疏和不规则的采样格式,使得点云数据很难被神经网络直接使用,这些方法通常通过柱面投影将点云转换为规则矩阵,并采用ConvNets从连续点云扫描中提取特征。这些网络可以回归相对位姿,并通过带有真值标签的数据进行训练。LO-Net[73]报告的性能优于传统的先进算法(即激光雷达里程计和建图(LOAM)算法[16])的性能。
3.5. 里程计估计的比较
表1比较了现有的里程计估计工作,包括传感器类型、模型、是否产生具有绝对尺度的轨迹以及它们在KITTI数据集上的性能评估。由于深度惯导里程计尚未在KITTI数据集上进行评估,因此我们不将惯导里程计包括在表格中。KITTI数据集[46]是里程估计的一个常用基准,它由汽车驾驶场景中的传感器数据集合组成。由于大多数数据驱动方法采用KITTI数据集的轨迹09和轨迹10来评估模型性能,我们使用KITTI VO/SLAM官方评估指标提供的所有长度(100、200…、800米)的位移平均均方根误差(RMSE)(对这些里程计性能)进行了比较。
我们以视觉里程计为例。图5展示了深度视觉里程计模型在KITTI数据集10号轨迹上随时间变化的位移漂移。显然,混合VO比有监督VO和无监督VO表现出了更好的性能,因为混合VO既有传统VO算法成熟的几何模型,又有强大的深度学习特征提取能力。虽然有监督VO仍然优于无监督VO,但是随着无监督VO的局限性逐渐得到解决,它们之间的性能差距会逐渐缩小。例如,(研究人员)目前已经发现无监督VO可以从单目图像中恢复全局尺度[30]。总体而言,数据驱动的视觉里程计显示出的模型性能正在显著提高,这表明了深度学习方法在未来实现更精确的里程计估计的潜力。
4.建图
建图是指移动机器人构建一致的环境模型来描述周围场景的能力。深度学习生成了一套用于场景感知和理解的工具,应用范围从深度预测到语义标记,再到三维几何重建。本节概述了与现有的基于深度学习建图方法相关的工作。我们将它们分为几何映射、语义映射和一般映射。表2总结了现有的基于深度学习的地图绘制方法。
4.1.几何映射
一般来说,几何映射会捕捉场景的形状和结构描述。几何映射中使用的场景表示的典型选择包括深度、体素、点和网格。我们遵循这一具象分类法,并将用于几何映射的深度学习分为上述四类。图6展示了斯坦福兔子基准测试中的这些几何表示。
4.1.1.深度表示
深度图在理解场景的几何和结构信息中扮演着关键的作用。通过融合深度图像和RGB图像可以实现密集场景重建[119],[120]。传统的SLAM系统用密集的深度图(即2.5D)来表示场景几何信息,例如DTAM[121]。此外,精确的深度估计有助于视觉SLAM恢复绝对尺度。
从原始图像中学习深度是计算机视觉中一个快速发展的领域。最早的工作是将深度估计作为单输入图像的映射函数,由多尺度深度神经网络构造[78],以从单个图像中输出每像素的深度映射。这些有监督的学习方法[78]、[79]、[92]可以通过在具有相应深度标签的大数据集上训练深度神经网络来预测每个像素的深度。尽管它们的性能优于传统的基于结构的方法,如[122],但它们的有效性很大程度上依赖于训练模型,并且在缺乏标记数据的情况下很难推广到新的场景中。
另一方面,该领域的最新进展集中在无监督的解决方案上,研究人员将深度预测重新定义为了一个新的视图综合问题。[80],[81]利用光度一致性损失作为训练神经模型的自监督信号。利用双目图像和已知的相机基线,[80],[81]从右视图合成了左视图信息,并(成功)预测了左视图的深度地图。通过最小化合成图像与真实图像之间的距离,即空间一致性,以端到端自监督的方式恢复了神经网络的参数。除了空间一致性外,[29]还提出将时间一致性作为自监督信号,从源时间帧合成了目标时间帧中的图像。同时,在深度估计的基础上,实现了自运动的恢复。这个框架仅需要单目图像就可以学习深度图和自运动。许多后续研究[53]、55]、[56]、[58]、[59]、[61]、[64]、[76]、[77]、[93]扩展了该框架,并在深度和自运动估计方面取得了更好的性能。我们请读者参阅第3.1.2节,其中讨论了各种附加约束。
基于学习的SLAM系统可以利用ConvNets预测的深度图集成深度信息,以解决传统单目方案的一些局限性。例如,CNN-SLAM[123]尝试了把从单个图像中学习的深度集成到单目SLAM框架中(即LSD-SLAM[124])。他们的实验表明,学习的深度图有助于改善位姿估计和场景重建中的绝对比例恢复问题。CNN-SLAM甚至可以在无纹理的区域中实现密集场景的预测,这个问题对于传统的SLAM系统来说通常是很困难的。
4.1.2. 体素表示
基于体素的公式是表示三维几何体的一种常用方法。与图像中的像素(即2D元素)类似,体素是三维空间中的体积元素。以前的工作已经探索了使用多个输入视图来重建场景[94]、[95]和物体[96]的体积表示的问题。例如,SurfaceNet[94]通过学习预测体素的置信度,以确定它是否在表面上,并重建了一个场景的2D曲面。RayNet[95]通过提取视图不变特征,同时施加几何约束重建了场景几何。最近的工作集中在了(如何)生成高分辨率三维体积模型[97],[98]。例如,Tatarchenko等人[97]设计了一种基于八叉树公式的卷积解码器,使场景重建具有了更高的分辨率。其他工作可以在场景完成后从RGB D数据中[99],[100]找到。体素表示的一个局限性是计算量大,尤其是在试图重建一个高分辨率场景时(这一局限性更加显著)。
4.1.3. 点表示
基于点的公式由三维空间中点的三维坐标(x, y, z)组成。点表示易于理解和操作,但存在歧义问题,即不同形式的点云可以表示相同的几何图形。具有开创性意义的工作有:PointNet[125]使用单一对称函数——最大池化层来处理无序的点数据,通过聚集点特征用于分类和分割。Fan等人[101]开发了一种深度生成模型,可以从单个图像生成基于点的三维几何图形。在他们的工作中,为了解决点云的无序性问题, 引入了一种基于移动距离的损失函数。但是,他们的方法只在单个目标的重建任务上得到验证。目前还没有发现用于场景重建的点生成方法。
4.1.4. 网格表示
基于网格的公式对三维模型的底层结构(如边、顶点和面)进行了编码。它是一种非常强大的表示方式,可以自然地捕捉三维形状的表面。一些工作考虑从图像[102]、[103]或点云数据[104]、[105]中学习网格生成的问题。然而,这些方法只能重构单个对象,并且仅限于用简单的结构或从熟悉的类中生成模型。为了解决网格表示中的场景重建问题,[106]将单目SLAM的稀疏特征与ConvNet的稠密深度图相结合,对三维网格表示进行了更新。该系统将深度预测融合到了单目SLAM系统中,用于恢复位姿和场景特征估计的绝对尺度。为了实现高效的计算和灵活的信息融合,[107]使用2.5D网格来表示场景几何体。该方法利用深度神经网络学习网格顶点的图像平面坐标,并将深度映射作为自由变量进行了优化。
4.2. 语义映射
语义映射将语义概念(如对象分类、材料组成等)与环境的几何结构联系了起来。这被视为一个数据关联问题。深度学习的发展极大地促进了对象识别和语义分割的发展。具有语义意义的映射使移动机器人能够在纯几何的基础上对其环境产生更高层次的理解,并允许其拥有更为广泛的功能和自主性。
SemanticFusion[26]是将深度卷积神经网络(deep ConvNet)的语义分割标签与SLAM系统中的密集场景几何相结合的早期工作之一。它通过将二维帧与三维地图进行概率关联,将每帧的语义分割预测逐步集成到一个密集的三维地图中。这种组合不仅生成了具有正确语义信息的地图,其结果也表明了与SLAM系统的集成有助于增强单帧分割的效果。这两个模块在语义融合中是松耦合的。[27]提出了一种自监督网络,通过对多个视图中语义预测的一致性施加约束,来预测地图语义标签的一致性。DA-RNN[108]将递归模型引入语义分割框架中,以学习多视图框架上的时间连接,从KinectFusion[127]中为体积图生成了更准确和一致的语义标记。但是这些方法没有提供对象实例的信息,这意味着它们不能区分同一类别的不同对象。
随着实例分割技术的发展,语义映射逐渐发展到实例级。一个很好的例子是[109]通过bounding box检测模块和无监督的几何分割模块识别单个对象来提供对象级语义映射。与其他密集语义映射方法不同,Fusion [110]构建了一个基于语义图的映射,它只预测对象实例,并通过回环检测、位姿图优化和进一步细化来保持一致的映射。[111]提出了一个实现实例感知语义映射的框架,并允许发现新的对象。近年来,全景分割[126]引起了广泛的关注。PanopticFusion[112]将语义映射提高到了可以映射物体和物品的等级,系统将静态物体(如墙、门、车道)划分为“物体”类,将其他可说明对象划分为“物品”类,如移动的车辆、人和桌子。图7比较了语义分割、实例分割和全景分割的区别。
4.3. 一般映射
除了显式的几何和语义地图表示之外,深度学习模型能够将“整个场景”编码为隐式表示,即一种捕获底层场景几何和外观信息的一般地图的表示形式。
利用深度自动编码器可以自动发现高维数据的高级紧凑表示。一个值得注意的例子是CodeSLAM [113],它将观察到的图像编码成一个紧凑且可优化的表示,以包含密集场景的基本信息。这种一般的表示进一步地被用于基于关键帧的SLAM系统,以推断位姿估计和关键帧深度图。由于缩小了学习表示的大小,CodeSLAM允许高效优化跟踪相机运动和场景几何的生成全局一致性。
神经绘制模型(Neural rendering models)是另一类通过将视图合成作为自监督信号来学习隐式三维场景结构建模的工作。神经绘制任务的目标是从一个未知的视角重建一个新的场景。生成查询网络(GQN)[128]可以学习捕捉(场景)表示形式并绘制一个新的场景。GQN由一个表示网络和一个生成网络组成:表示网络将来自参考视图的观测值编码成一个场景表示;生成网络基于递归模型,根据场景表示和一个随机的潜在变量从新视角对场景进行重建。GQN将多个视点的观测图像和新视点的相机位姿作为输入,从而预测新视点的物理场景。直观地说,通过端到端的训练,表示网络可以通过生成网络捕捉场景重建任务所需的、重要的三维环境因素。GQN通过引入几何感知的注意机制对系统进行了扩展,使得系统可以将用于场景推断的多模态数据[115]作为输出值,且可以生成更复杂的环境建模[114]。场景表示网络(SRN)[116]通过学习一种连续场景表示来解决场景渲染问题,该场景表示将相机的位姿与其相应的观察(数据)联系了起来。(研究人员)在SRN中引入了一种可微射线推进算法(differentiable Ray Marching algorithm),以增强网络对三维结构建模的一致性。然而,由于现实环境的复杂性,这些框架只能应用于合成的数据集中。
最后,在“无地图”导航的探索中,任务驱动地图成为了一种新颖的地图表示。这个表示法通过将深度神经网络与当前任务联合建模生成。通常,这些任务需要利用位置信息,如导航或路径规划,这就要求移动机器人可以理解环境的几何和语义信息。在这些工作中,非结构化环境(即使在城市规模中)中的导航问题被定义为一个策略学习问题[31]、[32]、[117]、[118],通过深度强化学习来解决,这与传统的解决方案不同,后者遵循建立明确的地图、规划路径和决策的程序。而这些基于学习的技术以端到端的方式直接从传感器观测值中预测控制信号,无需显式地对环境进行建模。模型参数通过稀疏的奖励信号进行优化,例如,当机器人到达目的地时,会给于一个正信号来调整神经网络。一旦对模型进行了训练,(该模型)就可以根据当前对环境的观察(即图像),来确定机器人的行为。在这种情况下,所有的环境因素,如场景的几何、外观和语义信息,都被嵌入到了一个深度神经网络的神经元中,使其更适合于解决当前的任务。有趣的是,在一个通过强化学习进行导航训练的神经模型中,其可视化神经元与人类大脑中的网格和定位细胞有着相似的模式。这为神经地图表征的有效性提供了认知信息。
5.全局定位
全局定位涉及在已知场景中检索移动机器人的绝对位姿。与依赖于对内部动力学模型进行估计并能在无视野的场景中使用的里程计估计不同,全局定位使用的是二维和三维模型场景提供和开发的场景先验知识。从广义上来说,它通过匹配查询图像或视图与预先构建的模型,以及返回全局位姿的估计值,来描述传感器观测值与地图之间的关系。
根据查询数据和地图的类型,我们将基于深度学习的全局定位分为三类:2D到2D的定位根据地理参考图像的显式数据库或隐式神经网络图查询二维图像;2D到3D的定位建立了图像的二维像素和场景模型三维点之间的对应关系;3D到3D的定位将三维扫描与预先构建的三维地图进行了匹配。表3、表4、表5分别总结了现有的基于深度学习的2D到2D,2D到3D,3D到3D的全局定位方法。
5.1.2D到2D的定位
2D到2D定位可以根据二维地图回归图像的相机位姿。这种二维地图是由地理参考数据库显式建立或隐式编码在神经网络中的。
5.1.1.基于显示地图的定位
基于显式地图的2D到2D定位通常通过一个带有地理标记的图像数据库来表示场景(参考文献[152],[153],[154]。图8(a)说明了使用二维参考图像进行定位的两个阶段:图像检索用于确定参考图像表示场景中与视觉查询值最相关的部分;位姿回归用于获得查询图像相对于参考图像的相对位姿。
这里的一个问题是如何找到合适的图像描述子进行图像检索。基于深度学习的方法[155]和[156]是基于预先训练的ConvNet模型提取图像级特征,然后使用这些特征来评估与其他图像的相似性。在具有挑战性的场景中,首先提取场景局部描述子,然后进行聚合以获得健壮的全局描述子。一个很好的例子是NetVLAD[157],它设计了一个可训练的广义VLAD(局部聚集描述子向量(the Vector of Locally Aggregated Descriptors))层。这个VLAD层可以插入到现成的ConvNet体系结构中,以实现更好的描述子学习来进行图像检索。
为了获得更精确的查询位姿,需要对检索到的图像进行额外的相对位姿估计。对于传统方法而言,相对位姿估计是通过对极几何来处理的,依赖于由局部描述子确定的2D到2D对应关系[158],[159]。相比之下,深度学习方法可以直接从成对图像中回归相对位姿。例如,NN-Net[131]可以利用神经网络估计查询帧和排名前N位的参考帧之间的相对位姿,基于三角融合算法将预测的N个相对位姿和三维几何体位姿的真值进行结合,自然地计算出绝对查询位姿。此外,Relocnet[129]引入了一个截头重叠损失(frustum overlap loss ),来帮助学习适合相机定位的全局描述子。基于此,CamNet[134]采用基于图像的粗检索和基于位姿的精细检索两个阶段来选择最相似的参考帧进行最终的精确位姿估计,无需针对特定场景进行训练,基于参考的方法具有自然的可扩展性和灵活性,可以在新的场景中使用。由于基于参考的方法(只)需要维护一个地理标记图像的数据库,因此与基于结构的方法相比,它们更容易被扩展到大规模场景中。总体而言,这些基于图像检索的方法实现了准确性和可扩展性之间的平衡。
5.1.2.基于隐式地图的定位
隐式地图定位通过将整个场景的结构隐含在一个深度神经网络中,直接从单个图像中回归了相机姿态。图8(b)展示了常见的转换方式——神经网络的输入是单个图像,而输出的是图像的全局位置和方向。
PoseNet[130]是第一个通过训练ConvNet从单个RGB图像中以端到端的方式预测相机位姿来解决相机重定位问题的工作,PoseNet基于GoogleNet[160]的主要结构来提取视觉特征,但删除了最后的softmax层,引入了一个全连接层来输出一个分别由3维的位置向量和4维的方向向量组成的7维全局位姿。然而,PoseNet的设计没有考虑几何因素,而是采用了一个朴素的回归损失函数,其中的超参数需要繁杂的人工调节。此外,由于特征嵌入的维数过高且训练用的数据有限,该算法还存在过拟合问题。因此,有许多工作对PoseNet进行了拓展:[140]利用了LSTM单元来降低(特征嵌入的)维度,[136]、[139]、[144]应用了合成生成(synthetic generation)来增加训练数据,[141]用ResNet34替换了PoseNet的主干,[135]、[145]对位姿不确定性进行了建模,[138]引入了几何感知损失函数。此外,Atloc[150]将空间域中的特征与注意机制相关联,从而促进网络聚焦于图像中具有时间一致性和鲁棒性的部分。同样地,RVL[148]中还采用了先验的引导丢失掩模(guided dropout mask),以进一步消除动态目标引起的不确定性。不同于只考虑空间连接的方法,VidLoc[137]结合图像序列的时间约束,对输入图像的时间连接进行建模,应用于视觉定位中。此外,MapNet[143]还利用了其他运动约束,包括空间约束和其他来自GPS或SLAM系统的传感器约束,以增强预测位姿之间的运动一致性。通过联合优化重定位网络和视觉里程计网络,也增加了类似的运动约束[142],[147]。但是,由于是应用于特殊程序,从定位任务中学习到的场景表示可能会忽略一些不适用于它们的有用特性。此外,VLocNet [146]和FGSN[161]还利用了语义学习和姿态回归之间的任务关系,取得了极好的效果。
基于隐式建、地图的定位方法利用了深度学习在自动提取特征方面的优势,在无特征环境下可以较好地实现全局定位,而传统的定位方法则容易失败。然而,由于特定场景训练的要求,它不能在未经训练的情况下将其泛化到之前未经历过的场景中。此外,目前基于隐式地图的方法无法表现出与其他基于显示地图的方法性能相当的表现[162]。
5.2.2D到3D的定位
2D到3D定位是指恢复二维图像相对于三维场景节点的相机位姿。这个三维地图是在执行全局定位之前通过诸如运动结构(SfM)[43]等方法预先构建的。如图9所示,2D到3D的(定位)方法通过局部描述子匹配[163,[164],[165]或从像素块[151]、[166]、[167]、[168]回归三维坐标在查询图像的二维像素和场景模型的三维点,之间建立2D到3D的对应关系。然后通过应用PnP算法求解器[169],[170]和RANSAC循环[171],使用2D到3D的匹配对计算出相机的位姿。
5.2.1.基于描述子匹配的定位
描述子匹配方法主要依靠特征检测器和描述子,建立二维输入特征与三维模型特征之间的对应关系。根据检测器和描述子在学习过程中的作用,将其进一步分为三种类型:先检测后描述(detect-then-describe),同时检测和描述(detect-and-describe),先描述再检测(describe-to-detect)。
先检测后描述(detect-then-describe)方法首先执行特征检测,然后从以每个关键点为中心的块(patch)中提取特征描述子[200],[201]。关键点检测器通常负责提供鲁棒性或不变性,以防止可能出现的实际问题,如缩放变换、旋转或视点变化,并相应对块进行规范化。然而,描述子也可以对这些问题提供优化。常见的方法不同于使用人工制作的检测器[202]、[203]和描述子[204]、[205],而是用学习的替代方法替换描述子[179]、[206]、[207]、[208]、[209]、[210]或描述子[211]、[212]、[213],或者同时学习检测器和描述子[214]、[215]。为了提高效率,特征检测器通常只考虑较小的图像区域,并且聚焦于低层次结构,例如角点或斑点(blobs)[216]。然后,描述子会在关键点周围的一个较大的块中捕获更高级的信息。
相比之下,同时检测和描述方法优化了描述阶段。SuperPoint[177]、UnSuperPoint[181]和R2D2[188]通过共享深度神经网络的表示,尝试学习了密集特征描述子和特征检测器。然而,它们依赖于不同的译码器分支,这些分支是独立训练的,有特定的损耗。相反,D2-net[182]和ASLFeat[189]共享检测和描述之间的所有参数,并使用联合公式,同时对两个任务进行优化。
类似地,先描述再检测方法(例如D2D[217])同样会将检测阶段推迟到后期,但该方法会将这种检测器应用于预先学习的密集描述子中,以提取出稀疏的关键点集和相应的描述子。密集特征提取优先于检测阶段,并在整个图像上密集地执行描述阶段[176]、[218]、[219]、[220]。在实践中,这种方法比稀疏特征匹配得到了更好的匹配效果,特别是在光照强度变化较大的情况下[221],[222]。与这些纯粹依赖图像特征的工作不同,2D3D MatchNet[180]提出了允许在二维图像和三维点云上学习直接匹配关键点的局部描述子。同样地。LCD[223]引入了一种双自动编码器架构来提取跨域局部描述子。但是,它们仍然需要预先定义的二维和三维关键点,而关键点选择规则不一致会导致匹配结果不佳。
5.2.2.基于场景坐标回归的定位
场景坐标回归方法不同于基于匹配的方法,会在在计算位姿之前建立二维到三维的对应关系,场景坐标回归方法是从世界坐标系中的查询图像中估计出每个像素的三维坐标,即场景坐标。它可以被看作是学习查询图像到场景的全局坐标的转换。DSAC[190]使用ConvNet模型来回归场景坐标,然后使用一种新的可微RANSAC对整个系统进行端到端的训练。常见的方法通过引入重投影损失[191]、[192]、[232]或多视图几何约束[197]实现无监督学习,联合学习观测置信度[173]、[195]以提高采样效率和精度,利用混合专家(Mixture of Experts (MoE))策略[194]或由粗到细的分层方法[198]以消除歧义的环境信息。与这些不同的是,KFNet[199]将场景坐标回归问题扩展到时域,从而弥合了整个时域与一次性重定位方法之间的性能差距。但是,它们仍然是针对特定场景进行训练的,如果不进行再一次的训练,就不能将其推广到其他的场景中。为了建立一个与场景无关的方法,SANet[196]通过插值与检索到的场景图像相关联的三维点来回归查询的场景坐标图。与上述基于块训练的方法不同,Dense SCR[193]提出以全帧的方式进行场景坐标回归,以提高测试时的计算效率,更重要的是,在回归过程中添加更多的全局数据,以提高系统的鲁棒性。 场景坐标回归方法通常在室内小场景表现出更好的鲁棒性和更高的精度,由于传统算法,如[18]。但是在大场景环境下的适应性还有待于验证。
5.3.3D到3D的定位
3D到3D定位(或激光雷达定位)是指通过建立3D-3D对应匹配,对预先构建的三维地图恢复三维点(即激光雷达点云)的全局位姿。图10显示了3D到3D定位的流程:在线扫描或(使用)预测的粗略位姿用于查询最相似的三维地图数据,这些数据通过计算预测位姿与真值之间的偏移量或估计在线扫描与查询场景之间的相对位姿,可以实现进一步地精确定位。
通过将激光雷达定位定义为递归贝叶斯推理问题,[227]将激光雷达强度地图和在线点云扫描嵌入到共享空间中,以实现完全可微的位姿估计。LocNet[225]没有直接对三维数据进行操作,而是将点云扫描转换为二维旋转不变性表示,用于搜索全局先验地图中的相似帧,并执行迭代最近点(ICP)的方法来计算全局位姿。为了提出一个直接处理点云的基于学习的激光雷达定位框架,L3-Net[224]使用PointNet[125]处理点云数据,以提取某些有用的特征描述子,并通过递归神经网络对运动动力学的时间连接进行建模。它通过最小化点云输入与三维地图的匹配距离,优化了预测位姿与真值之间的损失。一些技术,如Point NetVLAD[226]、PCAN[228]和D3Feat[231]在开始时尝试了检索参考场景,而其他技术如DeepICP[229]和DCP[230]允许从三维扫描中估计相对运动变换。与基于图像的重定位(2D-to-3D和2D-to-2D)相比,对于3D到3D的定位方面的研究相对较少。
6.SLAM
同时跟踪自运动并估计周围环境的结构,构成了一个同时定位与建图(SLAM)系统。上述章节中讨论的定位和建图的各个模块可以看作是一个完整的SLAM系统的各个模块。本节概述了使用深度学习的SLAM系统,主要关注有助于SLAM系统集成的模块,包括局部/全局优化、关键帧/回环检测和不确定性估计。表6总结了本节讨论的现有的基于深度学习的SLAM方法。
6.1.局部优化
当使用联合优化估计相机运动和场景几何时,SLAM系统会强制它们满足一定的约束条件。这是通过最小化几何或光度损失来实现的,以确保它们在局部区域(相机位姿的周围)的一致性,这可以看作是一个光束法平差(BA)问题[233]。基于学习的方法通过在大数据集上训练两个独立的网络来预测深度图和自运动[29]。在在线部署的测试过程中,需要对其进行强制预测以满足局部约束。为了实现局部优化,传统上,会使用二阶解算器(例如Gauss-Newton(GN)方法或Levenberg-Marquadt(LM)算法[234])来优化运动变换和逐像素深度建图。
为此,LS-Net[235]通过一个基于学习的优化器,将分析求解器集成到其学习过程中解决了这个问题。它学习了数据驱动的先验知识,然后用分析优化器细化DNN预测,以确保光度一致性。BA-Net[236]将可微二阶优化器(LM算法)集成到一个深度神经网络中,以实现端到端的学习。不同于最小化几何或光度误差,BA-Net在特征空间上执行,以优化从ConvNets提取的多视点图像特征的一致性损失。此特征级优化器可以较少几何或光度解决方案的基本问题带来的影响,即在几何优化过程中系统可能会丢失一些信息,而环境动力学和光照变化则可能会影响系统的光度优化等。这些基于学习的优化器为解决复杂的调整问题提供了一种可选方案。
6.2.全局优化
由于路径积分的基本问题,即系统误差的累积没有有效约束,在长期运行中,里程计估计会出现累积误差漂移。为了解决这个问题,graphSLAM[42]构造了一个拓扑图,将相机位姿或场景特征表示为图形节点,通过边(由传感器测量)连接,以约束位姿。对于这种基于图的公式可以进行优化,以保证图的节点和边的全局一致性,减少可能的位姿估计误差和固有的传感器测量噪声。一个常用的全局优化求解器是Levenberg-Marquardt(LM)算法。
在深度学习的时代,深度神经网络擅长从观察到的位姿和场景表征中提取特征和构造函数。在DNN预测的基础上进行全局优化是减少全局轨迹漂移和支持大规模建图的必要条件。与经典SLAM中各种深入研究的解决方案相比,全局优化深度预测的研究还不够深入。
现有的工作尝试了将学习模块与不同层次的经典SLAM系统相结合,在前端,DNNs会生成先验预测,然后将这些深度预测合并到后端,以便进行下一步的优化和改进。一个很好的例子是CNN-SLAM[123],它将学习的每像素深度整合到了LSD-SLAM [124]中,实现了一个支持回环检测和图形优化的完整SLAM系统。通过将相机位姿和场景表示与深度地图联合优化,可以生成一致的比例度量。在DeepTAM[237]中,深度神经网络的深度和位姿预测都被引入了经典DTAM系统[121]中,由后端对其进行全局优化,以实现更精确的场景重建和相机运动跟踪。在将无监督VO与图优化后端集成方面,也可以找到类似的工作[64]。DeepFactors[238]反之亦然,将学习到的可优化场景表示(它们所谓的代码表示)集成到了一种不同风格的后端概率因子图中,同样实现了全局优化。基于因子图公式的优点是它可以灵活地包含传感器测量、状态估计和约束信息。在因子图框架中,很容易将新的传感器模式、成对约束和系统状态添加到图中进行优化。然而,这些后端优化器还不能对其区分。
6.3.关键帧和回环检测
关键帧和回环的检测是SLAM系统后端优化的关键。
关键帧选择有助于SLAM系统更加高效。在基于关键帧的SLAM系统中,只有在检测到关键帧时,才会对位姿和场景估计进行优化。[77]提供了一种检测关键帧的学习解决方案,以及对自运动跟踪和深度估计的无监督学习[29]方法。一帧图像是否为关键帧是通过比较其特征与现有关键帧的相似度来确定的(即,如果相似度低于阈值,则该图像将被视为新的关键帧)。
回环检测或位置识别也是用于SLAM后端减少开环错误的重要模块。传统的工作是基于词袋(BoW)来存储和使用人工制作的探测器的视觉特征来实现的。然而,现实场景中的光照、天气、视角和移动物体的变化会使这个问题变得复杂。为了解决这个问题,以前的研究人员(如[239])建议使用ConvNet的特征来代替,这些特征来自于一个通用的大规模图像处理数据集上的预训练模型。由于深度神经网络提取了高层次的表示,这些方法对视点和条件的变化具有更强的鲁棒性。其他有代表性的作品(如[240]、241]、[242])都是基于深度自动编码结构的,以一种无监督的方式压缩场景来提取一个紧凑的表示。基于深度学习的回环检测具有更鲁棒、更高效的视觉特征,可以实现最先进的位置识别性能,适合集成在SLAM系统中。
6.4.不确定性估计
安全性和可解释性是在日常生活中实际部署移动机器人的关键要素:前者使机器人能够可靠地与人类一起生活和行动,而后者允许用户能够更好地理解“模型行为”。虽然深度学习模型在广泛的回归和分类任务中取得了最先进的性能,但一些极端情况也应给予足够的重视。在这些故障情况下,来自一个组件的错误会传播到其他下游模块,从而导致灾难性的后果。为此,需要对深度神经网络的不确定性进行估计,以确保安全性并提供可解释性。
深度学习模型通常只生成预测的平均值,例如,基于DNN的视觉里程计模型的输出是一个6维相对位姿向量,即平移和旋转。为了捕捉深度模型的不确定性,可以将学习模型扩充为贝叶斯模型[244],[245]。贝叶斯模型的不确定性大致分为任意不确定性和认知不确定性:任意不确定性反映了观测噪声,如传感器测量或运动的噪声;认知不确定性用于捕捉模型的不确定性[245]。在本次综述中,我们重点研究了定位和建图这一具体任务的不确定性估计工作,以及它们的使用情况,即它们捕捉不确定性的目的是用于运动跟踪还是场景理解。
[243],[246]探讨了基于DNN的里程估计的不确定性。他们采用了一种常见的策略,使用位姿估计的平均值及其协方差将目标预测值转化为高斯分布。利用均值和协方差相结合的损失函数对框架内的参数进行了优化。通过最小化误差函数寻找最佳组合,以无监督的方式自动学习不确定性。通过这种方法,(他们的模型有效)恢复了运动变换的不确定性。运动不确定性在概率传感器融合或SLAM系统后端优化中起着至关重要的作用。为了验证SLAM系统中不确定性估计的有效性,[243]将学习到的不确定性作为里程计边缘的协方差整合到一个图形SLAM中。然后基于这些协方差进行全局优化以减少系统漂移。它也证实了不确定性估计在固定的预定义协方差的基线上可以有效提高SLAM系统的性能。如[135],[137]所示,深度模型的不确定性能够反映全局定位的误差,其中不可靠的位姿估计可以用置信度来避免。
除了运动/再定位的不确定性,估计场景理解的不确定性也有助于(提高)SLAM系统(的可信度)。这种不确定性为环境感知和场景结构的可信度提供了一个依据。例如,在语义分割和深度估计任务中,不确定性估计可以为DNN预测提供每像素的不确定性值[245]、[247]、[248]、[249]。此外,运用场景不确定性也适用于构建混合SLAM系统。例如,可以学习光度不确定性来捕捉每个图像像素上的强度变化,从而增强SLAM系统对于噪声观测的鲁棒性[25]。
7.开放性问题
尽管深度学习为定位和建图的研究带来了巨大的成功,但如前文所述,现有的模型还不够成熟,无法完全解决当前的问题。目前的深度解决方案仍处于初级阶段。为了在野外获得极大的自主性,未来研究人员将面临许多挑战。这些技术的实际应用应该被看做是一个系统的研究课题。我们讨论了几个可能导致该领域进一步发展的开放性问题。
1)端到端模型 VS 混合模型
端到端学习模型能够直接从原始数据中预测自运动和场景,无需任何人工操作。得益于深度学习的进步,端到端模型正在快速发展,以实现在准确性、效率和鲁棒性方面不断提高的性能。同时,这些模型更容易与其他高级学习任务(如路径规划和导航)相结合[31]。从根本上讲,存在着底层的物理或几何模型用来管理定位和建图系统。我们是应该仅仅依靠数据驱动的方法来开发端到端模型,还是将深度学习模块作为混合模型集成到预先构建的物理/几何模型中,是未来研究的关键问题。正如我们所见,混合模型已经在许多任务中(例如视觉里程计[25]和全局定位[191])取得了最先进的成果。因此,研究如何更好地利用深度学习的先验经验知识对混合模型进行拓展是必要的。另一方面,存粹的端到端模型存在数据匮乏问题。现有模型的性能会受到训练数据集大小的限制,因此需要创建大而多样化的数据集来扩大数据驱动模型的容量
2) 统一评价基准和指标
寻找合适的评价基准和指标一直是SLAM系统所关注的问题。尤其是基于DNN的系统。基于DNN的系统的预测受训练数据和测试数据的特性影响,包括数据集大小、超参数(批量大小、学习率等),以及测试场景的差异,因此考虑到每项工作所采用的数据集、训练/测试配置、评价指标的差异,很难对它们进行公正的比较。例如,KITTI数据集是评价视觉里程计的常用方法,但以前的工作以不同的方式分割训练和测试数据(例如[24]、[48]、[50]使用序列00、02、08、09作为训练集,序列03、04、05、06、07、10作为测试集,而[25]、[30]则使用序列00、08作为训练集,剩下的09和10作为测试集)。其中有些甚至基于不同的评估指标(例如[24]、[48]、[50]采用了KITTI官方评估指标,而[29]、[56]则采用了绝对轨迹误差(ATE)作为评估指标)。所有这些因素都为直接公正地比较它们带来了困难。此外,KITTI数据集相对简单(车辆仅在实现了二维平移)且体积较小。如果只提供KITTI基准的结果而没有在长期的真实世界实验中进行全面的评估,这是不令人信服的。事实上,现在越来越需要建立一个涵盖各种环境、自运动和动力学系统的评估基准。
3) 实际部署
在现实环境中部署深度学习模型是一个系统的研究问题。在现有的研究中,预测精度一直是必须遵循的“黄金法则”,而其他关键问题,如模型结构和框架的参数是否最优等都被忽略了。对于资源受限的系统,如低成本机器人或虚拟现实可穿戴设备,必须考虑计算和能量消耗。为了更好地利用GUP,应该利用卷积滤波器或其他并行神经网络模块等实现并行化。需要考虑的例子包括在什么情况下应该返回反馈来微调系统,如何将自监督模型合并到系统中,以及系统是否允许实时在线学习等。
4) 长期学习
到目前为止,我们讨论的之前大多数的工作只是在简单的封闭数据集上得到了验证,例如视觉里程计和深度预测是在KITTI数据集上进行的。然而,在一个开放的世界中,移动机器人将面临不断变化的环境因素和动态移动的影响。这就要求DNN模型能够持续、连贯地学习和适应世界的变化。此外,还会出现一些新的概念和对象,这就要求机器人更新到一个可以实行对象发现和新知识扩展的阶段。
5) 新的传感器
除了常见的机载传感器,如相机、IMU和激光雷达之外,新型传感器为构建更精确和更鲁棒的多模式系统提供了一种替代方案。与主流的SLAM传感器(如相、IMU和LIDAR)相比,包括事件相机( event camera)[250]、热相机[251]、毫米波设备[252]、无线电信号[253]、磁传感器[254]在内的新型传感器都具有着不同的特性和数据格式。然而,处理这些不同寻常的传感器的有效学习方法仍有待探索。
6) 可扩展性
基于学习的定位和建图模型在评估基准上都取得了良好的效果。但是,它们仅限于某些场景。例如,里程计估计通常是在市区或道路上进行评估的。这些技术是否适用于其他环境,如农村地区或森林地区,仍然是一个未能解决的问题。此外,现有场景重建的工作仅限于单目标、合成数据或室内水平。这些学习方法是否能够扩展到更复杂和大规模的重建仍是值得探索的。
7) 安全性、可靠性和可解释性
安全性和可靠性对于实际应用(例如自动驾驶汽车)至关重要。在这些场景中,即使是位姿或场景估计的一个小错误都会对整个系统造成灾难性后果。长期以来,深度神经网络被批评为“黑箱”,加剧了关键任务的安全性问题。一些初步的努力探索了深度模型的可解释性[255]。例如,不确定性估计244],[245]可以提供一个信任度,表示我们在多大程度上信任我们的模型。这样就避免了不可靠的预测(低不确定性),以确保系统的安全和可靠。
8. 结论
本文全面介绍了用于定位和建图的深度学习领域,涵盖了机器人技术、计算机视觉和机器学习社区的现有相关方法,并提出了一种新的分类方式。学习模型被整合到了定位和建图系统中,通过从原始数据中自动提取有用的特征,可以将输入的传感器数据和目标值连接起来,而无需任何人工操作。到目前为止,基于深度学习的技术已经在各种任务中(从视觉里程计、全局定位到密集场景重建)取得了最先进的性能。由于深度神经网络具有高度表达能力,这些模型能够隐式地模拟环境动力学或传感器噪声等难以人工建模的因素,因此在实际应用中相对更为健壮。此外,通过基于学习的模型,移动机器人可以更容易地实现高层次的理解和交互。深度学习的快速发展为解决经典的定位和建图问题提供了一种数据驱动的替代方案,同时也为下一代研究基于人工智能的空间感知的解决方案铺平了道路。
文献插图:
图1:空间机器智能系统利用机载传感器感知自我运动,全局位姿,场景几何和语义信息。(a)传统的基于模型的解决方案是建立人工设计的算法,将输入的传感器数据转换为目标值。©数据驱动的解决方案是利用学习模型来构造这种映射函数。(b)混合方法结合了人工制作的算法和学习模型。本篇综述主要讨论了(b)和©两种类型的方法。
图2:现有的基于深度学习的定位和建图方法的分类(图示)。
图3:空间机器智能系统的高级概念图(即基于深度学习的定位和建图)。圆角矩形表示一个功能模块,箭头线连接着这些模块的输入数据和输出数据。执行这个系统没有必要包含所有的模块。
图4:视觉里程计监督学习的典型结构,即DeepVO[24],和视觉里程计无监督学习的典型结构,即SfmLearner[29]。
表一:现有的基于深度学习的里程计估计方法综述。
- Model: VO、VIO、LO分别代表视觉里程计、视觉惯导里程计和激光雷达里程计。
- Sensor: MC、SC、I、L分别代表单目相机、双目摄像机、惯性测量单元、激光雷达。
- Supervision 表示了这个模型是一个纯粹的基于真值标签训练的(有监督)神经网络系统,是一个不带标签(无监督)训练的神经网络系统,还是一个经典(模型)和深度神经网络的相结合的系统
- Scale 表示是否可以产生具有全局尺度的轨迹
- Performance 报告了定位误差(小的数字表示误差更小),即KITTI里程计数据集[46]上长度为100m -800m的平均位移RMSE漂移误差(%)。大多数模型都是在序列09和10上进行评估的,因此我们将它们的论文中对于两个序列的测试结果进行了性能比较。注意,每个模型中的训练集可能不同。
- Contributions 总结了每项工作的主要贡献,并与之前的研究进行了比较。
图5:基于深度学习的视觉里程计性能与KITTI数据集轨迹10评估的比较(结果)。
图6:斯坦福兔基准测试中的场景表示示意图:(a)原始模型,(b)深度表示,©体素表示,(d)点表示,(e)网格表示。
表二:现有的基于深度学习的建图方法综述。
图7:(b)语义分割,©实例分割,(d)语义建图的全景分割[126].
图8:通过(a)显式建图,即RelocNet[129]和(b)隐式建图(例如PoseNet[130])实现了基于2D到2D定位的典型架构
表三:现有的基于深度学习的2D到2D全局定位方法综述。
- Agnostic表示是否可以推广到新的场景。
- Performance 报告了在7个(室内)场景[151]和剑桥(室外)数据集[130]上的位置(m)和方向(度)的误差(小的数字表示误差更小)。我们将每个数据集都分为训练集和测试集,并报告了测试集的平均误差。
- Contributions 总结了每项工作的主要贡献,并与之前的研究进行了比较。
图9:通过(a)描述子匹配,即HF-Net[172]和(b)场景坐标回归,即Confidence SCR,实现基于2D 到 3D定位的典型架构[173].
表四:现有的基于深度学习的2D到3D全局定位方法综述
- Agnostic表示是否可以推广到新的场景。
- Performance 报告了在7个(室内)场景[151]和剑桥(室外)数据集[130]上的位置(m)和方向(度)的误差(小的数字表示误差更小)。我们将每个数据集都分为训练集和测试集,并报告了测试集的平均误差。
- Contributions 总结了每项工作的主要贡献,并与之前的研究进行了比较。
图10:3D到3D定位的典型架构,如L3-Net[224]。
表5:现有的基于深度学习的3D到3D全局定位方法综述
- Agnostic表示是否可以推广到新的场景。
- Contributions 总结了每项工作的主要贡献,并与之前的研究进行了比较。
表6:现有的基于深度学习的SLAM方法综述
本文由公众号:计算机视觉life 翻译整理