Semantic Visual Simultaneous Localization and Mapping A Survey

基于视觉传感器的SLAM,又称视觉SLAM(visual SLAM),因其硬件成本低、小场景精度高、能获取丰富的环境信息等优点,近年来成为热门的研究方向。

VSLAM的缺点也很明显。一方面,在应对光线变化、动态物体移动和缺乏纹理的环境方面仍有许多挑战。另一方面,该系统计算量大,构造的几何地图难以用于路径规划和导航。

语义SLAM是指SLAM系统在建图过程中不仅获得环境中的几何结构信息,同时可以识别环境中独立个体,获取其位置、姿态和功能属性等语义信息,以应对复杂场景及完成更加智能的服务任务。

语义VSLAM的三个主要问题:语义信息的提取与关联、语义信息的应用以及语义VSLAM的优势。

《在SLAM中,基于语义信息执行任务需要准确的目标识别。对象的语义信息以TOSM的形式存储,其中包含符号、显式和隐式信息。语义分析是将通过传感器接收到的信息与预先映射的感官数据数据库和知识库进行合并。结果,它被表示为语义描述符,我们通过匹配描述符提出并执行数据关联,然后最终识别对象。》

将语义信息集成到系统中,语义信息有两种方式与视觉SLAM相结合。

  1. 将语义信息与定位相结合,优化定位的准确性、鲁棒性和实时性。
  2. 将语义信息与建图相结合。这些方法大多采用三维重建技术,其目的是完成语义图的构建,仅使用摄像机作为传感器是不够有效的。

语义SLAM的技术框架,大致为语义提取、SLAM定位与建图两部分,不同的语义SLAM问题区别在于语义提取的方法、语义信息的应用。

语义提取主要体现为图像的处理,对图像进行识别分割,加语义标签,而识别与分割图像的方法目前主要为深度学习方法,比如CNN、R-CNN等卷积神经网络,网络模型训练的结果也决定着语义SLAM的最终效果。

对于语义信息的应用,主要体现在辅助定位与语义地图,而辅助定位又可以分为SLAM特征提取、回环检测、BA等方面,提高SLAM本身的定位精度,语义地图主要是构建含语义信息的可用于导航的地图,为机器人层面理解提供丰富的信息。

与传统的VSLAM相比,语义VSLAM不仅可以获取环境中的几何结构信息,还可以提取独立对象的语义信息(如位置、方向和类别)。在定位中,语义VSLAM借助语义约束提高了定位的准确性和鲁棒性。在映射中,语义信息提供了丰富的对象信息来构建不同类型的语义映射,如像素级映射[9],对象级映射[10],[11]。因此,语义VSLAM可以帮助机器人提高对未知的准确感知和适应能力

SLAM已经开始与语义信息相结合,语义信息包含环境中对象的位置、方向、颜色、纹理、形状和特定属性。与以往的SLAM方法相比,语义VSLAM不仅可以在映射过程中获取环境中的几何结构信息,还可以识别环境中的对象并获取语义信息,以适应复杂环境,执行更智能化的任务。传统的VSLAM方法通常基于静态环境的假设,而语义VSLAM方法可以预测动态环境中对象的可移动特性。语义VSLAM中相似的对象知识表示可以共享,通过维护共享知识库提高SLAM系统的操作和存储效率。此外,语义VSLAM还可以应用于智能路径规划和导航,如服务器机器人选择最优路径来运送物资。

语义VSLAM的框架大致可以分为语义信息提取模块和VSLAM模块,如图2所示。此外,语义VSLAM方法的关键是准确地识别环境中的对象。

对于语义提取的过程,可以把这个过程看作是识别图像中感兴趣的对象并获取关于对象的信息。近年来出现的深度学习技术是最有前途的语义提取方法。语义对象提取的研究逐渐从传统的机器视觉算法转向深度神经网络的方向,如CNN和R-CNN。它们的语义提取精度和实时性都能满足SLAM的要求。

语义VSLAM提取语义信息常用的方法有三种,分别是对象检测[21]-[28]、语义分割[29]-[32]和实例分割[33]。此外,语义对象关联的处理也至关重要。我们将在下面描述语义信息的提取和关联。

Semantic Visual Simultaneous Localization and Mapping A Survey_第1张图片

图2所示:语义机器人的总体框架。语义视觉SLAM由语义信息提取和视觉SLAM两个相互影响的模块组成。语义视觉SLAM广泛应用于自动驾驶、路径规划和导航等领域。

Semantic Information Extraction

Object Detection对象检测:

语义VSLAM中的对象检测模块可以帮助SLAM系统从图像中获取对象。通过将其与SLAM结合,我们可以构建对象级语义映射,提高对环境的理解。目前语义VSLAM中使用的对象检测方法主要分为单阶段方法和两阶段方法两大类。

语义VSLAM通常采用SDD[21]或YOLO系列(YOLOv1[22]、YOLOv2[23]、YOLOv3[24]、YOLOv4[25])作为单级对象检测方法。

SSD[21]是第一个基于DNN的实时对象检测器,在PASCAL VOC数据集[34]中实现了70%以上的mAP,TitanX中达到了40 FPS。SSD也是一种单级物体检测检测器,能够很好地平衡速度和精度。因此,几个语义VSLAM工作[35]–[38]将SSD部署为检测器模块。

[36]–[38]利用SSD来检测静态对象,而不考虑动态对象,但Zhong等人[35]认为,大多数语义VSLAM工作在动态和复杂环境中表现不佳。为了解决这些挑战,他们通过SSD检测器检测潜在的移动对象(例如,人、车辆、动物),并剔除其区域,以消除动态对象对姿态估计的影响。

实验结果表明,该系统有助于机器人在未知和动态环境中可靠、高效地完成任务。然而,在暴力移除潜在的动态对象时,不可避免地将非动态区域识别为动态区域。

YOLOv1[22]检测器比SSD早,但其速度和检测性能与SSD相当,因此也应用于语义VSLAM中进行对象检测[39]。很快Redmon等人提出了YOLOv2[23],在识别类型、检测精度、速度和定位精度上都比YOLOv1和SSD有了很大的改进。考虑到YOLOv2的良好性能足以满足语义VSLAM的需求,一些研究[11]、[40]-[42]尝试使用YOLOv2作为语义VSLAM的检测器。

Bavle等[40]提出了一种基于室内环境语义信息的粒子滤波定位方法。它们将语义信息融合到先前的地图中,帮助空中机器人进行精确定位。在室外语义VSLAM中,[41]、[42]分别使用YOLOv2检测室外车辆和街道路标,获得大量的目标测量值以提高定位精度。Yang等[11]提出了一种适用于室内外场景的单幅图像三维长方体检测方法,该方法通过YOLOv2检测器和消失点技术获取三维语义对象。YOLOv3[24]利用残差网络结构和多尺度检测思想,形成更深层次的网络,提高了平均精度(mean average precision,mAP)和小目标检测。

因此,大量语义VSLAM作品[43]-[48]使用该检测器来满足动态环境中目标检测和定位的精度。在这些方法中,Nicholson等[43]专门设计了一种基于YOLOv3的目标检测器传感器模型。从而解决了部分可见物体的检测难题,大大提高了VSLAM的精度。无论是SSD还是YOLO系列,都满足语义VSLAM最关键的要求,即实时。因此,它们在许多语义VSLAM系统中被广泛使用。

除了实时性外,检测精度也会影响语义VSLAM的性能。因此,有若干作品(如[2]、[49])采用两级探测器进行物体检测,如R-CNN[26]、Fast R-CNN[27]、Faster R-CNN[28]。

与单阶检测器不同的是,双阶检测器需要获取区域建议,对结果进行分类并调整候选边界框位置。

由于双阶检测器的设计思想,双阶检测器的实时性通常略差于单阶检测器,但其探测精度高于单阶检测器。

Li等人[2]认为Faster R-CNN在检测小对象方面表现良好,因此利用语义信息和稀疏特征测量之间的时空一致性关系来跟踪静态和动态对象。为了使语义VSLAM面对更多的场景,Iqbal等[49]提出了基于Fast RCNN[28]和MobileNet[50]的混合检测器思想,系统可以灵活地使用不同的对象检测器来应对不同环境下的对象检测。此外,Li等人在[51]中将文本对象引入语义图中,他们使用EAST文本检测器[52],并为检测到的文本补丁提供方向信息。

尽管近年来在VSLAM和目标检测方面取得了长足的进展,但目标探测器获取的目标边界框中还包含前景等目标信息,影响了目标重构和全局定位精度。因此,研究者尝试使用语义分割或实例分割来获取像素级的对象。

Semantic Segmentation

语义分割是图像理解的基础技术,它可以给出每种对象类型对应的精确像素,但不能区分同一类型的不同个体。它在自动驾驶、UAVs和可穿戴设备应用中至关重要。目前语义VSLAM中使用的语义分割方法基本都是基于深度学习方法,如U-Net[29]、Bayesian SegNet[30]、SegNet[31]、PSPNet[32]等。

U-Net是最常用的分割模型之一,它简单、高效、易于构建,只需要少量的数据集进行训练。因此,Qin等人[53]基于U-Net模型将图像像素划分为不同的类别,如车道、停车线、减速带和障碍物。由于这类对象具有清晰稳定的特征,因此它们被用来提高定位精度。此外,停车线还用于车位检测,障碍物用于路径规划。

SegNet也常用于户外环境[54]-[56]的语义分割任务,其优点是图像边缘信息保存较好,运行速度较快。[54] -[56]基于相同的[57]框架,各自提出了一个完整的动态语义VSLAM系统。区别在于[54]和[56]默认剔除潜在的移动对象,[55]结合语义分割和移动一致性检查方法,过滤掉场景的动态区域。由于去掉了这些区域的特征点,提高了动态场景中定位的鲁棒性和准确性。

与U-Net和SegNet相比,PSPNet考虑了上下文关系匹配问题,即使在复杂环境中也表现出良好的分割效果。Liu等[58]利用PSPNet获取沙发、橱柜和桌子的语义标签,以构建高精度的语义场景图。

与输出粗检测边界框的目标检测方法相比,语义分割方法可以在像素级别上识别目标,极大地帮助语义VSLAM理解环境。但是,语义分割无法区分同一类别的对象实例,限制了应用范围。

Instance Segmentation

为了检测动态对象实例,语义VSLAM开始使用实例分割方法,获得图像的按像素的语义分割。实例分割是对对象检测的进一步细化,以实现像素级的对象分离。但是,它不能达到与目标检测相同的实时性。目前语义VSLAM中常用的实例分割方法(例如[59]-[62])是Mask-RCNN[33],这是一种功能强大的基于图像的实例级分割算法,可以分割80个语义对象类标签。这些工作适用于动态环境,因为它们将几何信息与Mask-RCNN融合在一起,对动态和静态对象进行分割,获得基于像素的语义分割和实例标签信息。但实时性会受到很大影响。与传统的VSLAM方法相比,[59]方法以去除动态对象为代价,在动态场景中具有更强的定位鲁棒性。[60] -[62]不仅可以实时跟踪和重构场景中的静态背景和对象,而且具有鲁棒的跟踪精度。

虽然现阶段三种语义提取方法都能满足语义VSLAM的基本要求,但语义提取方法要想高效地集成到语义VSLAM系统中,在识别精度和操作速度上仍有很大的提高空间,因为在许多复杂环境中,存在动态或遮挡的物体会影响目标检测的性能。为了解决这些挑战,VSLAM和语义提取方法在未来需要相互补充,帮助机器人执行更智能的任务。

Semantic Object Association

当装有传感器的机器人在未知环境中移动时,它会收集一系列数据。在VSLAM系统中,图像集I1:T = {I1,···,IT}包含了从起始时间到当前时间T的所有图像。假设当前环境包含对象标签C ={1,…c}。例如,语义VSLAM系统中常用的对象是门、椅子、桌子、人和车辆。xt表示图像It的相机姿态,包括位置和方向。X 4= {xt}T T =1表示每次的摄像机轨迹集。由于相机的姿态是基于最后的状态而不是直接计算的增量估计,结果容易受噪声影响。t时刻的摄像机位姿可表示为:

xt = f (xt−1,ut) + wt, wt ~ N (0, Rt)

其中ut为vSLAM在t时刻的运动测量,Rt为相机位姿噪声的协方差矩阵。

当机器人处于xt位姿时,通过摄像机观察地标点测量yt和物体(目标)测量Lt 4= {Ltm}M M =1。t时刻对应的摄像机测量值如下:

zt = h (xt, yt, Lt) + vz, vz ∼ N (0, Qz)

其中Qz为随机测量噪声,z4={zt}T =1为当前时刻已有传感器测量的集合。

SLAM系统创建关键帧F1:D 4= {Fd}D D =1,减少重复计算。假设当前场景中存在一些可检测的对象,每个关键帧Fd可以通过对象检测方法检测Nd个对象测量值。通常,一个关键帧Fd有多个对象测量值,可以表示为一个集合Ld 4= {Ldi}Ndi=1,和

Ldi = ?Lcdi, Lsdi, Lbdi ? , Ldi ∈ Ld

其中,Ldi表示关键帧Fd中第i个对象的测量信息,该关键帧Fd通常由对象类别Lcdi∈C、检测置信度Lsdi和作品[36]-[38],[40],[41],[45],[48] ,[63],[64]中的对象检测包围框Lbdi组成。这些信息可以从II-A节中的语义对象提取方法[21]、[31]、[33]中获得。

环境中地标的数量比对象测量的数量要小得多。原因是可以在连续的关键帧中观察到相同的地标,并且在每个关键帧中检测到多个目标测量。因此,引入了对象关联S的概念,它指定跨关键帧的对象度量与相同的地标相关联。可以理解为,每个对象测量Ldi被分配一个唯一的地标Ok,即Sdi = (Ok, Ldi)。在t时刻有dt个关键帧。当前时刻t的对象关联可表示为:

St 4= {Sij} , i ∈ {1, ..., dt} and j ∈ {1, ..., Nd}

随着时间的推移,机器人移动,物体测量的数量积累。因此,对象关联是一个动态过程,随着连续获取的对象测量而变化。t时,在作品[36]-[38],[63],[64]中估计对象关联:

St = arg maxSt−1 p {St−1|X, L, Z} , X ⊆ X , L ⊆ L, Z ⊆ Z

其中X、L、Z分别是SLAM算法从所有相机姿态X、物体测量L和传感器测量Z中选择的子集

在实现对象关联后,需要根据对象和相机优化[36]-[38],[45],[63],[64]的结果更新相机和物体的姿态。

X 0, L 0 = arg maxX,L log P {Z|X, L, St}.

上述方程描述了基本的语义VSLAM问题。从上面可以看出,对象关联对于语义VSLAM的作用是将语义对象度量与对象标记准确地关联起来。对象关联的难点在于,当当前图像中存在多个类别相同、外观相似、位置接近的对象时,将新的对象测量值与地图中已有的三维地标正确关联。对象关联帮助机器人获取环境中真实对象的数量,并将其整合到语义图中,提高对环境的感知能力。此外,它可以为更新相机姿态和物体姿态提供正确的优化约束。因此,语义信息的对象关联是语义VSLAM中一个值得研究的问题,一些研究者从概率的角度考虑了语义对象关联。例如,Bowman等人[63]的概率对象关联模型是语义VSLAM中鲁棒对象关联的里程碑式工作。他们提出了一种概率方法来建模对象关联过程,并采用EM算法来寻找对象测量和地标之间的对应关系。此外,他们充分考虑了对象关联的模糊性,为语义VSLAM的后续工作奠定了数学基础。

然而,在现实环境中存在着许多不确定因素,如大量的对象类别相同,位置相近,这大大降低了对象关联的准确性。这对估计的摄像机姿态和物体姿态也有很大影响,导致轨迹误差较大,地图精度较低。为了提高关联的准确性,研究人员尝试不同的方案来解决复杂环境中的对象关联问题。[36]提出了分层主题模型的思想,该模型基于分层的Dirichlet对象关联。它们通过使用关于物体的位置、外观和类别的信息,为物体测量和地标之间的对象关联提供了丰富的基础。之后,分层对象关联策略[64]大大减少了位置和外观相似的对象之间的虚假关联,包括短期对象关联和全局对象关联。与[63]的工作不同,Doherty等人[37]、[38]提出了一种基于近似最大边缘化的概率对象关联语义SLAM方法,该方法消除了对象关联变量在推理过程中的模糊性,并保留了标准高斯后验假设。与其他语义VSLAM系统相比,该方法具有显著的鲁棒性优势。在处理连续关键帧之间的对象关联时,[49]使用了一种非参数统计方法,该方法提取图像中对象测量和地标的区域,并比较区域的深度相似度,以确定它们是否可以相互关联。

大多数概率对象关联方法都集中在静态对象上,但这些方法在动态环境中效果不佳。考虑到动态环境的复杂性,[61]采用概率EM框架解决了动态对象关联和遮挡问题。将深度图像与符号距离函数相结合,提高了多目标跟踪的精度。[65]采用不同的策略来关联动态和静态对象。静态物体测量的关联是基于[66]中的特征点匹配机制。对于动态目标关联,他们考虑了目标在短时间内匀速运动的两个主要特征和特征点匹配,然后通过重投影方法将目标测量值与地图中的地标相关联。

非概率对象关联方法在对象级语义VSLAM中也非常流行。例如,在[42],[44],[67]中,使用马氏距离(Mahalanobis distance)和匈牙利算法(Hungarian algorithm)将新的物体测量与地标相关联,但这些算法消耗了非常大的计算资源。[47]构建了一个集成的对象关联策略,该策略集成了参数统计检验和非参数统计检验,以及基于借据的方法,充分利用了不同统计性质。值得一提的是,Wang等[68]针对不同的传感器设备采用了不同的对象关联策略。在LiDAR模式下,通过比较三维包围盒与重建目标之间的距离来执行一种关联策略。另一种关联策略是在立体或单目相机模式下,通过计算物体测量值和地标之间的匹配特征点的数量。如果当前关键帧中的多个物体测量与同一个地标相关联,那么距离最近的物体测量将与该地标相关联,而其他的将被拒绝。如果对象测量没有与任何现有的地标相关联,那么它将被初始化为一个新的地标。[69]结合几何信息和语义信息提出了一种混合对象关联方法,该方法无需显式重定位模块即可实现无漂移跟踪。然而,该方法在面对目标切换和漏检时需要提高实时性和跟踪精度。与分层对象关联策略[64]不同,[48]提出的两步对象关联策略主要依靠对象类别和外观相似性来匹配地标,不适用于户外环境。

语义VSLAM中的语义提取方法和对象关联策略近年来受到广泛关注。此外,目前的概率对象关联策略是提高SLAM系统感知能力的最佳方法之一,但其鲁棒性和通用性还有待进一步提高。此外,由于现实环境的复杂性,语义提取和对象关联的准确性很容易受到影响。

SEMANTIC APPLICATION

语义技术和SLAM技术是相互促进的两个部分。语义信息结合定位(localization)和映射可以提高定位和场景理解的准确性。近年来,语义VSLAM技术推动了定位和地图绘制的发展,对自动驾驶、移动机器人和无人机等研究领域产生了重大影响。本节将重点讨论语义定位和语义映射的两个方面。

Semantic Localization

定位的目的是让机器人在一个未知的环境中获得自己的方向,即确定自己在该环境的世界坐标系中的位置。传统的VSLAM容易受到环境因素的影响,导致定位失败。尽管如此,VSLAM可以提取丰富的语义信息,帮助车辆和机器人感知环境中的高级信息。此外,语义信息中存在几何约束,可以有效提高系统的定位精度。由于室内外环境存在明显差异,导致定位难度不同。因此,我们从两个不同的环境来阐述语义本地化。

长期户外视觉导航必须面临长时间运行、跨天气、光线变化明显等挑战。在这样的挑战下,很难可靠地匹配图像与地图之间的特征,最终导致定位精度较差,甚至定位算法完全失败。为了解决这些问题,有研究人员尝试了一种基于语义分割图像和语义点特征图的定位算法[70],解决了长期视觉定位的问题。文献[71]在跟踪过程中还建立了基于语义信息的中期约束,减小了视觉里程计的漂移误差。面对剧烈的视点变化,研究者[72]采用语义图描述符匹配进行全局定位,实现多视点下的定位。

室内机器人定位问题的挑战性不亚于室外机器人定位问题。VSLAM系统仍然依赖于表面的图像信息来感知环境,缺乏认知层面的能力。SLAM在进入复杂室内环境时的鲁棒性和可靠性还没有达到实用性。为了提高机器人在环境中的认知能力,[43]提出了一个对象级语义VSLAM系统,该系统首次采用了三维地标的双二次曲线表示,包含了地标的大小、位置和方向。同时,他们推导了一个基于因子图的SLAM公式,在求解目标关联的假设下,联合估计双二次参数和相机位姿参数。类似地,[11]是一种基于单目的3D目标检测和映射方法,它在语义对象约束的帮助下改进摄像机姿态并减少单目漂移。EAO-SALM[47]借鉴了[43]和[11]的思想,是一个基于iForest的对象姿态估计框架。该框架包含一个异常值鲁棒质心、尺度估计算法和一个目标姿态初始化算法,极大地促进了关节姿态优化。但是,[43]、[47]不考虑动态对象因素,椭球或矩形代表稀疏映射中创建的对象,不考虑对象细节。因此,研究人员注意到语义信息可以帮助区分静态和动态对象,提高机器人在动态环境中的定位精度和鲁棒性。采用语义信息对运动对象进行分割,过滤出与运动对象[35],[55]相关的特征点,[73]是一种常用的方法,提高了系统在动态环境中的定位能力。

可见,融合语义信息是提高机器人定位性能的根本途径。在改进定位过程中,语义工作常用于SLAM系统初始化、后端优化、重新本地化和闭环等阶段。因此,有效地处理和利用语义信息对于提高定位精度至关重要。

Semantic Mapping

映射是SLAM的另一个目标,它服务于VSLAM中的本地化。通常我们希望机器人保存地图,这样机器人在接下来的工作中就不需要重复构建地图,节省了大量的计算资源。在应用中,VSLAM构造的映射包括稀疏映射[57],[74],半密集映射[75],密集映射[76],[77]。与稀疏地图相比,密集地图包含许多三维空间点来描述地图,更适合定位、导航、避障和重建。

然而,传统的VSLAM地图缺乏用于人机交互的高级环境语义信息,使得机器人无法执行智能避障、识别和交互等复杂任务。为了更好地解决地图问题,建立准确可靠的三维语义地图显得越来越重要。早期的语义地图[5]经常使用先验对象CAD模型数据库构建三维语义地图,可以还原真实场景,为存储密集的点云图节省大量空间。然而,CAD模型仅限于预定义数据库中的对象。在[9],[69],[78],[79]中,研究者构建了静态密集语义映射,它集成了密集VSLAM和语义分割标签。对于动态环境重构,[10],[35],[60]采用实例感知的语义分割,将对象划分为背景、移动对象和潜在移动对象。然而,他们未能实现系统的实时性能。针对语义VSLAM在映射中的实时性问题,一些研究者[43]、[48]尝试构造稀疏语义映射。这些方法以[11],[36],[44],[47],[51],[64]为代表,基于ORB-SLAM2框架,结合语义对象,实时构建稀疏的三维语义对象映射。

必须指出的是,语义地图在智能场景中的应用比传统视觉地图更为广泛。然而,它需要面对繁重的计算、不同类型对象的识别和地图存储的挑战。

SLAM DATASETS

众所周知,由于设备昂贵和设备操作复杂,大多数SLAM系统在多个公共数据集上评估其算法,以证明其在某些方面的有效性。最常用的SLAM数据集有KITTI[80]、TUM RGB-D[81]、ICL-NUIM [82]和EuRoC MA V[83]。这些数据集来自不同的环境,适用于不同的VSLAM算法。因此,找到合适的数据集来评估VSLAM是非常重要的。最近,Liu等人[84]整理了近十年来SLAM工作中常用的数据集,并对其进行了全面的介绍和分析,这将有助于SLAM学界找到合适的数据集。然而,这项调查并没有提供适合语义VSLAM的数据集的详细介绍和分析。为了填补这一空白,我们组织了适合语义VSLAM的数据集,从中进行评估和比较。

Datasets Classification

数据集的分类通常基于传感器差异或适用场景,以帮助他们理解和利用现有的SLAM数据集。根据传感器的不同,SLAM相关数据集可以分为LiDAR、视觉和视觉-LiDAR融合数据集。视觉传感器的优点是它们是廉价且无处不在的视觉设备,可以是手机或相机。尽管这些设备不如雷达设备那么强大和准确,但它们在SLAM领域被认为具有巨大的潜力,并正在稳步向前发展。此外,基于语义的VSLAM极大地提高了传统VSLAM的性能,其主要原因是通过语义提取在视觉图像中获取丰富的环境信息,帮助机器人对未知环境有更高层次的理解。

为了帮助语义VSLAM系统选择合适的数据集,我们调查了当前的开源数据集,并收集了31个数据集。此外,我们在第IV-B节中为不同的VSLAM系统提供了数据集选择指南。对于每个数据集,我们从八个维度描述数据集,尽可能多地显示关于每个数据集的信息,如表I所示。我们明确指出数据集是否包含语义注释。注释类型包括对象框架、语义分割、实例分割以及是2D还是3D。此外,我们还指出了数据集中有多少对象类别,因为这些语义注释对检查语义vSLAM非常有帮助。数据集每个维度的详细信息如下所示:名称:数据集的名称。

Year:数据集的发布的年份

Cited:在调查数据集时,数据集中的引用数(引用数请参阅谷歌Scholar)。

Sensors:相机列包含典型的相机类型:颜色、事件、深度和RGB-D。LIDAR/RADAR列包含标准的2D或3D LIDAR(波束数从4、16、32和64不等),而一些数据集也有雷达传感器。IMU列用于表示IMU在数据中是否可用。

Ground Truth:这个维度显示了真实地面定位信息的获取。

Motion Pattern:在这个维度中给出了所获得的移动平台,表示不同的运动模式。

Environment:该维度主要介绍数据集的序列、长度或场景信息。

Annotated information:该维度主要介绍数据集是否包含语义注释,这可以帮助语义VSLAM验证其性能,并为训练检测模型提供大量注释信息。

Overview and Comparison of Datasets

数据集收集的结果如表I所示。本文主要展示了31个近年来已经开源的数据集,其中包括6个经典的高被引数据集,以及25个近5年发表的数据集。此外,本文还在附录中详细介绍了四个具有代表性的数据集[85]-[88]。

根据表I中划分的结果,本文提供了以下建议指南。

1、考虑各种传感器设备。除了MulRan[89]外,大多数收集的数据集都可以用于语义VSLAM的评估。

2、考虑环境的挑战(光线变化、弱纹理、恶劣天气)。一些SLAM系统试图说明其系统在恶劣环境下的鲁棒性,因此研究人员可以选择数据集[90]-[93]进行评估。

3、考虑不同的场景。如果研究人员需要一个多场景数据集,那么他们可以从城市数据集[87],[94],室内数据集[95],[96],丛林数据集[97]中进行选择。

4、选择带有数据注释的数据集。如果研究人员正在研究语义vSLAM,他们可以选择评价数据集[80],[85],[88],[93],[94],[97]-[103]。

5、选择不同的运动模式。针对不同的应用场景,需要选择不同的抓取设备运动模式,如机器人、汽车、UAVs、USVs、手持设备、仿真设备等。

近年来,该仿真设备由于不需要考虑场地约束,且设备成本和时间较低,受到SLAM界的欢迎。例如TartanAir[85]采用虚幻引擎,使用微软[104]开发的AirSim插件进行数据采集。与传统数据集相比,仿真收集的数据集包含各种对象、运动多样性和不同的场景。

A COMPARATIVE STUDY FOR SEMANTIC VSLAM AND TRADITIONAL VSLAM

SLAM社区在过去的三十年中取得了巨大的进步,我们见证了SLAM技术在行业中的过渡阶段。Cadena et al[18]回顾了SLAM在过去三十年的发展,并讨论了SLAM正在进入一个新时代,即健壮感知时代。与之前的纯几何VSLAM相比,新阶段感知SLAM具有更健壮的性能和更高的环境理解水平,这归功于将图像语义信息应用到SLAM中进行姿态估计、闭环和映射。因此,本节将回顾VSLAM的发展历史,并介绍近年来语义VSLAM的发展。

Development of Traditional vSLAM

传统的VSLAM系统基于图像信息估计机器人在未知环境中的姿态,并使用多视图几何原理构建低级地图。目前,传统的VSLAM系统主要表现为基于滤波的方法[113]、[114]、基于关键帧的BA方法[66]、[115]和直接跟踪方法[116]、[117]。基于滤波器的VSLAM方法将系统各时刻的状态视为高斯概率模型,帮助机器人根据滤波器预测准确的姿态。即使有各种噪声,滤波也能预测机器人的真实运动。例如,[113]选择了扩展卡尔曼滤波器(extended Kalman filter, EKF)。由于视觉SLAM姿态估计问题不是线性的,因此EKF不能保证姿态估计的全局最优性。PTAM[115]作为第一个基于关键帧的BA单目VSLAM系统,为后续基于关键帧的BA VSLAM工作奠定了基础。ORB-SLAM[66]基于PTAM架构,增加了映射初始化和循环关闭功能,以及关键帧选择和映射优化功能。在定位时,其定位误差远小于[113],[115]。很快,同一研究团队不断改进ORB-SLAM,并发布了开源VSLAM系统(即ORBSLAM2 [57], ORB-SLAM3[74])。这些系统的定位精度远高于[76]、[77]、[118]。直接跟踪方法(即DTAM [116], LSD-SLAM[117])不依赖于特征点的提取和匹配,而是通过从前后帧之间的像素灰度值构建光度误差来解决相机运动。在特征缺失和图像模糊的情况下,这些方法比前两种方法具有更好的鲁棒性。而直接跟踪方法对光照变化和动态干扰较为敏感,定位精度一般不如[57],[66]。

如第三-b节所述,传统的VSLAM通过点云表示周围环境,如稀疏映射、半密集映射和密集映射。由于这些地图中的点云与环境中的物体不对应,因此对机器人来说没有意义,如图3c所示。因此,研究人员试图利用几何和先验感知信息来浓缩3D点云的特征并理解它们,这有助于机器人感知高层次的环境细节。随着语义概念的兴起,VSLAM系统与语义信息解决方案相结合,极大地提高了机器人感知未知环境的能力。在Fig.3d中,语义信息为点云提供语义标签,帮助构建三维地标信息的语义地图。经过多年的开发和验证,语义信息提高了VSLAM对环境的鲁棒性,实现了更准确的闭环。

Development of Semantic VSLAM

语义VSLAM的早期工作可以追溯到Salas-Moreno等人的早期研究[5]。他们认识到传统的VSLAM系统是在低级的原语上运行的,需要严格地处理。此外,用传统方法构建地图只是有噪声的点云,并不像人类视觉所显示的地图。值得注意的是,该系统仅限于预先建立的对象数据库,对被检测对象的位置有严格的要求。但是,它为语义VSLAM的后续发展提供了必要的基础。近年来,基于特征点的VSLAM系统在定位方面表现出了突出的准确性和鲁棒性,因此研究人员尝试构建基于ORB-SLAM2算法框架的语义VSLAM系统。例如,在[11][36][64]中,研究者在地图中引入三维矩形,构建了一个轻量级语义地图。其他研究人员[43][45][119]采用语义3-D椭球来构建语义地图,因为它们能够紧凑地表示地标的大小、位置和方向。Liao等人在[43]的基础上结合了三个空间结构约束,提出了一种具有完全耦合的三个空间结构约束[39]的室内环境单目目标SLAM算法。不久之后,EAO-SLAM[47]集成了[11]、[43]的方法,并在iForest方法的基础上对目标姿态估计进行了改进,使其能够更准确地估计地标的位置、姿态和尺度。

但是,以往对语义VSLAM的研究通常假定场景是静态的,这限制了它的应用场景。这些方法在面对动态环境时,在定位和映射方面不具有鲁棒性。为了解决这一难题,一些研究人员提出了动态离群点检测策略来去除动态目标。例如,基于语义分割的运动一致性检查算法[55],基于语义分割的多视图几何算法[59],运动目标检测器[35]。[120]利用先验语义信息建立一个有效的在线概率模型来监测动态异常值。在[121]-[123]中,他们将动态物体区域转换为真实的静态图像,改进了动态环境中基于视觉的定位和映射任务。此外,文献[124]-[126]中也有研究者关注物体运动跟踪和姿态估计。[127]整合了他们之前的工作[125],[126],提出了一种新的基于特征的动态SLAM系统,利用语义信息对机器人进行定位,构建环境结构,跟踪刚性物体的运动。他们依靠更密集的物体特征来确保比[125]更健壮的跟踪,并且他们的物体跟踪精度比[126]好得多,因为他们的方法可以跟踪被遮挡的物体。

综上所述,近年来语义VSLAM的发展备受关注,但许多解决方案局限于特定场景,在实际应用中面临诸多挑战。在短时间内处理大量语义对象测量时,语义信息的有效过滤和关联仍然值得进一步研究。

Comparison of Semantic VSLAM Systems

为了更形象地比较语义vSLAM,我们从2017年到2022年收集了30个语义vSLAM系统,如表II所示。对于每个语义vSLAM系统,我们从九个基本维度来描述它,这些维度可以揭示系统的优点和缺点。每个维度的详细信息如下所示。方法:语义vSLAM系统的名称。

Y ear:该方法发表的年份。Input:语义vSLAM使用的传感器类型。Full Shape:物体可以完全重建吗?Detailed Shape:是否有可能知道重建对象的详细形状? Large Scene:它能用于大场景吗?Dynamic Scene:它能用于动态场景吗?FPS:语义VSLAM运行速率(/表示运行速率未知)。Online:系统是否可以在线运行?

如表二所示,不同的语义VSLAM系统都有各自的特点。例如,[59],[68]的优点是适用于各种类型的传感器,满足实时需求。[2],[10],[62],[65],[127]在重建三维对象方面具有优势,弥补了[11],[43],[124],[130]的不足。然而,重构对象需要消耗大量的计算资源,这使得它在实时性能上可能不如其他语义VSLAM系统。[65]、[124]、[127]、[132]适用于动态室外场景,这些系统的鲁棒性比室内或静态VSLAM好得多。从2017- 2022年的语义VSLAM作品来看,语义VSLAM系统的输入数据类型越来越多模态,并且这些作品越来越强调对象重构。此外,这些作品的应用场景也逐渐向大型动态环境发展。语义VSLAM的实时性可以满足当前应用的要求,且不需要重构对象的外观。

从近年来SLAM技术的发展来看,语义VSLAM被认为是提高VSLAM系统感知能力的最佳方法。传统的VSLAM系统主要使用底层几何特征进行匹配和定位,如角点、线、曲面特征等。通过引入语义信息,语义VSLAM系统可以感知环境的高级信息,如识别行人、检测车辆等,极大地丰富了地图信息,提高了定位精度。目前,语义信息可用于传统SLAM算法框架的各个阶段,包括初始化、后端优化、重新定位和闭环。然而,当前有限的计算资源与算法日益增长的计算资源需求之间的矛盾极大地阻碍了语义VSLAM的发展。例如,在语义信息提取中,系统需要获得实时的语义信息,需要及时对语义信息进行过滤和关联。此外,需要注意的是,语义VSLAM还处于发展阶段,还有很多隐藏的问题需要解决。例如,错误的对象关联将使系统在对象级SLAM中更容易受到攻击。

OUTLOOK

Multi-Modal Data Fusion

一些语义SLAM工作使用多模态传感器(例如,RGB摄像机,深度摄像机,激光雷达)在未知环境中进行姿态估计和映射。多模态语义SLAM系统在复杂动态环境中具有更强的鲁棒性和准确性。由于这些系统包含了多模态语义信息,减少了对象关联的模糊性。此外,这些系统能够更准确地识别动态目标,减少动态目标引起的局部化漂移。当然,处理后的多模态环境信息可以用来构建密集的语义地图。然而,在复杂和高度动态的环境中,仅靠这些传感器获取的语义信息已不足以满足实际需求。因此,未来的语义SLAM工作可以尝试融合更多的传感器(如毫米波雷达、红外摄像机和事件摄像机)和先前的语义地图(如2.5D地图)。多模态方法可以获得更丰富的语义对象信息,有助于改善对象关联的模糊性,但同时也带来了多传感器的校准与同步、实时融合、多模态语义信息关联等挑战。

Multi-Robot Collaboration Mode

多机器人系统是机器人领域的重要研究方向之一。在多机器人协同SLAM系统中,机器人之间的相互通信与协调可以有效利用空间分布的信息资源,提高问题解决效率。而且,系统中单个机器人的损坏不会影响其他机器人的运行,具有比单个机器人系统更好的容错和抗干扰能力。在传统的SLAM研究中,多机器人系统有两种协作方法。一是每个客户端机器人分别构建一个本地地图,服务器接收并融合所有本地地图,以构建一个全局一致的地图。另一个是去中心化的架构。多机器人协作的前提是如何高效、准确地进行多机器人全局定位,但基于外观的定位方法很难在视点差异和光线变化较大的情况下实现准确定位。近年来,语义信息(如文本信息)的融合有助于多机器人系统的鲁棒性,这归功于基于外观和上下文的语义定位方法,可以稳定准确地进行全局定位。此外,多机器人为语义VSLAM带来了多视图语义信息。例如,在对象关联中,多视图观察对象增加了对同一对象的观测次数,可以有效避免对象关联的模糊性问题。但同时也增加了计算成本。

Acquisition and Association of Semantic Information

语义信息的获取与关联仍然是语义VSLAM系统中值得研究的问题。目前的语义信息获取方法基于深度学习模型,模型的泛化和准确性决定了语义信息的准确性。例如,当一个物体被遮挡时,它很容易被物体检测方法忽略。随着物体测量数量的积累,正确地将物体测量与地标相关联变得更加困难。当前的对象关联方法通常基于语义信息,如距离、方向和外观。然而,当环境中出现同类物体、相互靠近的物体、模糊物体或动态物体时,采用常规方法无法准确地将物体关联起来。因此,我们需要更深入的研究来挖掘潜在的语义信息约束,以改善对象关联和全局定位。

CONCLUSION

本文综述了机器人视觉感知语义信息的最新研究进展,包括语义信息提取、目标关联、定位和映射。为了让读者对该领域的现状有一个概述,我们总结了调查中的一些代表性作品。我们介绍了三种基于深度学习模型的语义信息获取方法:对象检测、语义分割和实例分割。我们还介绍了语义信息关联的问题。总结了语义信息在VSLAM中的应用。此外,我们收集和评估了30个开源SLAM数据集。最后,介绍了传统VSLAM和语义VSLAM的区别,列举了30种语义VSLAM系统。本文主要参考了近五年来的研究成果,并对语义VSLAM的未来发展提出了一些看法。

 

你可能感兴趣的:(SLAM,人工智能,深度学习,计算机视觉)