文献精读——动态SLAM

论文标题:SG-SLAM: A Real-Time RGB-D Visual SLAM Toward Dynamic Scenes With Semantic and Geometric Information

作者:Shuhong Cheng

期刊:IEEE TRANSACTIONS ON INSTRUMENTATION AND MEASUREMENT (中科院二区,Q1)

正文:

摘要 :同步定位和映射(SLAM)是智能移动机器人在未知环境中进行状态估计的基本能力之一。然而,大多数视觉SLAM系统依赖于静态场景假设,因此严重降低了动态场景的准确性和鲁棒性。此外,许多系统构建的度量地图缺乏语义信息,因此机器人无法在人类认知水平上理解周围环境。本文提出了基于ORB-SLAM2框架的实时RGB-D语义可视化SLAM系统SG-SLAM。首先,SG-SLAM增加了两个新的并行线程:用于获取二维语义信息的对象检测线程和语义映射线程。然后,在跟踪线程中加入一种结合语义和几何信息的快速动态特征抑制算法。最后在语义映射线程中生成三维点云和三维语义对象,发布到机器人操作系统(ROS)系统进行可视化。我们对TUM数据集、波恩数据集和OpenLORIS-Scene数据集进行了实验评估。结果表明,SG-SLAM不仅是动态场景中最实时、最准确、最鲁棒的系统之一,而且还可以创建直观的语义度量地图。

1. 引言

同时定位与映射(SLAM)在移动机器人的状态感知中起着重要的作用。它可以帮助机器人在未知环境中以未知姿态逐步构建全局一致的地图,并同时测量其在该地图中的姿态[1]。由于相机和计算系统的持续快速发展,我们可以使用更便宜、更快、更高质量和更小的基于视觉的传感器。它还有助于基于视觉的测量(VBM)变得更加普遍和适用[2]。因此,近年来出现了大量优秀的视觉SLAM系统,如PTAM[3]、ORB-SLAM2[4]、DVO[5]、Kimera[6]等。其中一些视觉SLAM系统已经相当成熟,在某些特定的环境条件下已经取得了很好的性能。
SLAM进入鲁棒感知时代[7],对系统的鲁棒性和高层次的理解特征提出了更高的要求。然而,许多基于视觉的经典SLAM系统在一些实际场景中仍然达不到这些要求。一方面,大多数视觉SLAM系统基于静态场景假设,这使得系统在真实的动态场景(例如包含行走的人和移动的车辆的场景)中准确性和鲁棒性较差。另一方面,大多数现有SLAM系统仅构建了机器人工作环境的全局一致度量图[8]。然而,度量地图并不能帮助机器人在更高的语义层面上理解周围环境。
大多数视觉SLAM算法依赖于静态场景假设,这就是为什么动态对象的存在会导致这些算法产生错误的数据相关性。这些从动态对象中获得的异常值会严重影响算法的准确性和稳定性。尽管这些算法在一些特定的场景中表现出优异的性能,但很难将它们扩展到包含动态对象的实际生产和生活场景中。最近的一些研究,如[9]、[10]、[11]和[12],使用了结合几何和语义信息的方法来消除动态对象的不利影响。这些主要使用深度学习的算法在实验精度上有了显著的提高,但由于各种因素的影响,在场景泛化和实时性方面存在不足。因此,如何熟练地检测和处理场景中的动态物体,对于系统能否准确、鲁棒、实时地运行至关重要。
传统SLAM系统只构建一个稀疏度量地图[3],[4]。这个度量地图由简单的几何图形(点、线和面)组成,每个姿态都严格与全局坐标系相关。使机器人能够通过直观的人机交互执行高级任务,需要它以人类的方式了解其周围环境认知水平。然而,度量映射缺乏必要的语义信息,因此不能提供此功能。随着近年来深度学习的快速发展,一些神经网络可以有效地捕获场景中的语义信息。因此,通过整合语义信息,可以将度量图扩展为语义度量图。语义度量图中包含的语义信息可以为机器人提供在更高层次上理解周围环境的能力。
本文重点研究了一种融合语义和几何信息的动态特征抑制算法,该算法不仅显著提高了系统定位的精度,而且具有优异的计算效率。因此,从仪器和测量的角度来看,我们的算法非常有用[2]。本文还重点研究了如何构建语义度量图,以提高机器人对周围场景的感知水平。SG-SLAM系统总体框架如图1所示。

在这里插入图片描述

本文的主要贡献包括以下几点:
1)以ORB-SLAM2为框架,提出了完整的实时RGB-D视觉SLAM系统SG-SLAM。与ORB-SLAM2相比,它在动态场景下具有更高的精度和鲁棒性,可以通过机器人操作系统(ROS)系统发布语义度量地图[13]。
2)提出了一种结合几何信息和语义信息的快速动态特征抑制算法。几何信息由图像帧之间的极间约束计算得到。在新的线程中,通过基于ncnn[14]的对象检测网络获取动态对象的语义信息。在保持精度的前提下,通过适当的修正和经典方法的结合,大大提高了算法的速度。
3)在SG-SLAM中,一个独立的语义度量映射线程,该线程可以使用嵌入ROS接口。这些地图在后续的定位、导航和对象捕获任务中非常有用。
本文的其余部分组织如下。第二节描述了与该系统有关的工作。第三节介绍了本系统实施的相关细节。第四节对实验结果进行了评价和分析。本文的结论和未来的工作在第五节中提出。

2.相关工作

A.动态场景中的SLAM

目前大多数视觉slam假设工作场景是静态和刚性的。当这些系统工作在动态场景中时,由于静态场景假设而产生的错误数据关联会严重削弱系统的准确性和稳定性。动态对象在场景中的存在使得所有的特征分为两类:静态特征和动态特征。如何检测和剔除动态特征是问题解决的关键。以往的研究工作可分为三类:几何信息方法、语义信息方法和几何与语义信息相结合的方法。
几何信息方法,其主要思想是假设只有静态特征可以满足算法的几何约束。Kundu等人[16]的工作为早期的单眼动态目标检测系统提供了一个显著的成果。该系统基于多视图几何构造了两个几何约束来检测动态物体[17]。其中最重要的是由基本矩阵定义的极外约束。其思想是当前图像中的静态特征点必须位于与前一图像中相同特征点对应的极点线上。如果一个特征点与相应极线的距离超过经验阈值,则认为它是动态的。系统的基本矩阵是借助里程表计算出来的。在纯视觉系统中,基本矩阵可以通过基于RANSAC的七点方法计算[18]。Kundu等[16]的算法具有速度快、场景泛化能力强的优点。然而,它缺乏对场景的高层次理解,因此经验阈值难以选择,精度不高。此外,也有一些作品采用直接方法对场景进行运动检测,如[19]、[20]、[21]、[22]。直接法算法速度更快,可以利用更多的图像信息。然而,由于它是基于灰度不变性假设,因此在复杂环境下的鲁棒性较差。语义信息方法,其主要思想是粗暴地拒绝使用深度学习技术先验获得的动态区域中的特征。Zhang等[23]采用YOLO[24]对象检测方法,获取工作场景中动态对象的语义信息,然后根据语义信息剔除动态特征点,提高系统的准确率。然而,YOLO通过包围框提取语义信息的方式会导致一部分静态特征点被错误地视为离群点而被剔除。同样,Xiao等[25]提出的DynamicSLAM也存在直接拒绝边界框内所有特征的问题。Liu和Miura[26]采用语义分割方法检测动态目标,去除关键帧中的异常值。语义分割方法在一定程度上解决了边界框导致的错误识别问题。然而,语义信息方法严重依赖于神经网络的质量,难以同时满足速度和精度的要求。
近年来,人们对几何信息和语义信息相结合的方法进行了大量的研究。对于RGB-D相机,Bescos等[9]使用Mask R-CNN[27]的语义分割结果结合多视图几何来检测动态物体并剔除异常值。Yu等[10]使用基于光流的移动一致性检查方法检测所有特征点,同时在独立线程中使用SegNet对图像进行语义分割[28]。如果移动一致性检查方法在人体物体范围内检测到超过一定百分比的动态点,则直接拒绝物体内部的所有特征点。Wu等[11]利用YOLO对场景中先验的动态物体进行检测,然后结合deep - ransac方法对动态物体范围内的特征点进行剔除。Chang等[12]使用YOLACT对动态对象进行分割,然后去除对象内部的异常值。然后,引入几何约束进一步过滤缺失的动态点。以上方法在提高精度方面都取得了相当不错的效果。然而,所有这些方法的思想都严重依赖于语义信息,并且在较小程度上依赖于几何信息。因此,它们或多或少都有以下缺点。
1)无法正确处理先验对象之外的动态特征[10],[11],[23],[25],[26]。例如,椅子在默认情况下是静态的,但在被人移动时是动态的;场景中出现了移动的猫,而神经网络没有对猫的类别进行训练;检测算法的召回率低。
2)先验的动态对象保持静止,但仍然野蛮地拒绝其范围内的特征点,导致可用的关联数据较少[11],[12],[23],[25],[26]。例如,一个坐着不动的人被认为是一个动态的物体。
3)实时性较弱[9],[10],[11],[12]。由于语义分割网络复杂或系统架构不合理等因素,导致系统的平均帧率较低。
为了解决上述问题,我们提出了一种结合几何信息和语义信息的高效动态特征抑制算法。与目前大多数严重依赖深度学习的工作不同,我们的算法主要使用几何信息,然后辅以语义信息。这种思维的转变使我们的算法避免了过多依赖深度学习的缺点。

B.语义建图

目前许多视觉slam只提供一种度量地图,仅满足移动机器人定位和导航的基本功能,例如ORB-SLAM2构建的稀疏特征点地图。移动机器人要想在人类概念层面感知周围环境,就必须在度量地图中加入语义信息,形成语义地图。语义度量图可以帮助机器人根据人类规则行事,执行高级任务,并在概念层面与人类进行交流。
在较早的研究中,Mozos等[29]使用隐马尔可夫模型将度量图划分为不同的功能位置(房间、走廊和门道)。Nieto-Granda等人[30]在ROS上部署了基于rao - blackwelzed粒子滤波技术的映射模块[13],并使用高斯模型将地图划分为标记的语义区域。随后,深度学习的发展极大地促进了目标检测和语义分割算法的进步。suderhauf等[31]使用SSD[32]检测每个RGB关键帧中的目标,然后使用自适应三维无监督分割方法为每个目标分配一个三维点云。这项工作是基于类icp匹配分数的数据关联机制来决定是在语义图中创建新对象还是将其与现有对象关联。Zhang等[23]通过RGB-D SLAM系统中的YOLO目标检测模块和定位模块获取工作场景的语义地图。
综上所述,许多工作仅仅停留在使用SLAM来帮助进行语义映射,而没有充分利用所获得的语义信息来帮助跟踪。DS-SLAM是Yu等人[10]提出的一种语义映射系统,采用语义分割信息构建语义映射。然而,DS-SLAM只是简单地将语义标签附加到度量图上以供视觉显示。缺乏以数学形式描述的对象的位置坐标限制了系统执行高级任务规划的能力。

3. 系统概述

在本节中,我们将从五个方面介绍SG-SLAM系统的技术细节。首先,我们介绍了系统的框架和基本流程。其次,我们给出了对象检测线程的信息。在此基础上,阐述了极坐标约束法判断动态特征的几何原理。随后,提出了动态特征抑制策略。最后,我们提出了获取语义对象和构建语义建图的方法。

A.系统框架

本文提出的SG-SLAM是在基于特征点的经典视觉SLAM系统ORB-SLAM2的基础上开发的。ORB-SLAM2由三个主要的并行线程组成:跟踪、本地映射和循环关闭。通过对许多流行的公共数据集的评估,ORB-SLAM2是实现最先进精度的系统之一。因此,SG-SLAM选择ORB-SLAM作为基础框架,提供全局定位和映射功能。
如图1所示,SG-SLAM系统增加了两个并行线程:对象检测线程和语义映射线程。多线程机制提高了系统运行效率。增加目标检测线程的目的是利用神经网络获取二维语义信息。这些二维语义信息为动态特征拒绝策略提供了先验的动态对象信息。语义映射线程将关键帧的二维语义信息和三维点云信息集成在一起,生成三维语义对象数据库。通过向ROS系统发布三维点云、三维语义对象和相机姿态,获得直观的语义度量图。与ORB-SLAM2的稀疏特征点地图相比,语义度量地图可以帮助移动机器人从更高的认知水平理解周围环境并执行高级任务。
SG-SLAM系统运行时,首先将从RGB-D相机捕获的图像帧一起馈送到跟踪线程和目标检测线程。对象检测线程开始对输入的RGB图像执行对象识别。同时,跟踪线程也开始从输入帧中提取ORB特征点。提取完成后,采用金字塔迭代Lucas-Kanade光流法对当前帧与前一帧之间的稀疏特征点进行匹配。然后,采用基于RANSAC的七点法计算两帧之间的基本矩阵。这减少了由于动态区域中不正确的数据关联而造成的不利影响。与特征提取和基本矩阵计算相比,目标检测任务更加耗时。换句话说,在计算基本矩阵时,跟踪线程需要等待对象检测线程的结果。由于跟踪线程采用的是目标检测而不是语义分割,所以阻塞时间不会太长[26]。提高了系统的实时性。其次,跟踪线程结合极坐标约束和二维语义信息来拒绝动态特征点。根据剩余的静态特征点计算相机姿态并释放给ROS。
新的关键帧被输入到本地映射线程和循环关闭线程中进行姿态优化,这与原来的ORB-SLAM2系统相同。不同之处在于,新关键帧的深度图像在语义映射线程中用于生成三维点云。然后,将三维点云与二维语义信息相结合,生成三维语义对象数据库。在语义图构建中存在计算量大、正常帧间信息冗余等问题。因此,这里只处理关键帧数据的做法提高了映射的效率。二维语义信息的重用也提高了系统的实时性。最后,利用ROS系统的接口将三维点云和三维语义对象数据发布到三维可视化工具Rviz进行地图显示。
采用对象检测网络(而不是语义分割)、多线程、基于关键帧的映射和数据重用机制克服了第II-A节中列出的实时性缺点。

B.目标检测

由于电池寿命的限制,移动机器人一般选择每瓦性能较高的ARM架构处理器。NCNN是一个针对移动平台优化的高性能神经网络推理计算框架,因为NCNN是用纯c++实现的,没有第三方依赖,可以很容易地集成到SLAM系统中。因此,我们选择它作为对象检测线程的基本框架。
许多SLAM系统,如[9],[10],[11],[12],由于复杂的语义分割网络或不合理的系统架构,运行缓慢。SLAM作为移动机器人状态估计的基础组件,只有具备良好的实时性,才能保证上层任务的顺利运行。为了尽可能提高目标检测速度,选择单镜头多盒探测器SSD作为检测头。此外,我们使用MobileNetV3[33]作为SSDLite中骨干特征提取器的直接替代品。最后,使用PASCAL VOC 2007数据集对网络进行训练[34]。
在现实中,可以根据硬件性能灵活使用其他检测器,以实现精度和速度之间的平衡。

C.极线约束

SG-SLAM利用极面约束获得的几何信息来确定特征点是否为动态特征点。极外约束的判断管道非常简单。首先,匹配连续两帧的ORB特征点。接下来,解基本矩阵。最后,计算当前帧的特征点与其对应的极线之间的距离。距离越大,特征点越可能是动态的。
为了求解基本矩阵,需要在特征点之间有正确的数据关联。然而,求解基本矩阵的目的是判断数据关联是否正确。这就变成了一个经典的先有鸡还是先有蛋的问题。ORB-SLAM2采用Bag-of-Words方法加速特征匹配,继续使用该方法并不能消除异常值的不利影响。因此,SG-SLAM采用金字塔迭代LucasKanade光流法计算特征的匹配点集,以获得相对精确的基本矩阵。受Yu等人[10]的启发,将位于图像边缘且外观差异过大的匹配点对去除,进一步减少错误的数据关联。然后,采用基于RANSAC的七点法计算两帧之间的基本矩阵;一般情况下,动态区域的比例相对于整个图像来说是比较小的。因此,RANSAC算法可以有效地减少动态区域中错误数据关联的不利影响。
根据针孔相机模型,如图2所示,相机从不同角度观察同一空间点P。O1和O2表示相机的光学中心。P1和P2分别是前一帧和当前帧空间点P地图的匹配特征点。短虚线L1和L2是帧中的极线。P1和P2的齐次坐标形式表示为:

在这里插入图片描述

其中x、y为图像像素坐标系中特征点的坐标值。则由基本矩阵(记为F)计算出当前帧下的极线L2,公式如下:

在这里插入图片描述

其中X, Y, Z表示线向量。根据[16],极线约束可表示为:

在这里插入图片描述

接下来,将特征点Pi(i = 2,4)与对应极线之间的距离定义为偏移距离,用符号d表示。偏移距离的描述如下:

在这里插入图片描述

若点P为静态空间点,与(3)、(4)联合,则点P2的偏移距离为:

在这里插入图片描述

由式(5)可知,在理想情况下,当前帧中的特征点P2正好落在极线L2上。然而,在现实中,由于各种类型的噪声的影响,偏移距离通常大于零,但低于经验阈值ε。
如果点P不是静态空间点,如图2所示,当摄像机从上一帧移动到当前帧时,点P也移动到P’。在这种情况下,点P1与从P’映射到当前帧的P4点匹配。如果点P的移动没有退化[16],那么一般情况下,P4的偏移距离大于阈值ε。也就是说,通过对比偏移距离和经验阈值ε,可以判断特征点是动态的还是非动态的。

D.动态特征拒绝策略

为了避免严重依赖深度学习进行动态特征判断的缺点,我们的算法主要依赖于几何信息。几何信息法通过比较偏移距离d和经验阈值ε来判断特征是否为动态特征。然而,阈值ε的设置非常困难[12]:设置太小会使许多静态特征点被错误地判断为动态特征点,设置太大会错过许多真实的动态特征点。这是因为纯几何方法无法在语义层面理解场景,只能使用固定阈值机械地处理所有特征点。
为了解决上述问题,首先根据先验知识将对象检测线程能够检测到的所有对象分为静态对象和动态对象。任何具有移动属性的对象都被定义为动态对象(例如,人或车);否则,它就是一个静态对象。然后,定义两个权重值w。标准经验阈值εstd的设置非常简单:只需确保在使用它时只拒绝明显的真实动态特征点即可。动态权重值w在1-5范围内是一个先验值,根据物体移动的概率设置。例如,一个人通常以高概率移动,然后w = 5;椅子通常不动,然后w = 2。
通过这些准备,可以逐一判断当前帧中的所有特征点。算法1描述了动态特征抑制策略。

E.语义建图

ROS[13]是一组软件工具库,可帮助开发人员快速构建机器人应用程序。Rviz是ROS中的一个可视化工具。除了跟踪线程向ROS发布相机姿态外,语义映射线程还发布两种数据:三维点云和三维语义对象。然后,rviz对这些数据进行处理,以显示一个直观的地图界面。
为了提高效率,只使用关键帧来构造语义度量图。当新的关键帧到达时,语义映射线程立即使用其深度图像和姿态来生成三维有序点云。随后将三维点云发布到ROS,并通过Octomap_server包增量构建全局Octo-map。全局Octo-map具有可更新、灵活、紧凑等优点,可以方便地服务于导航和避障任务。然而,由于八向映射缺乏语义信息,限制了移动机器人与语义对象之间高级任务规划的能力。因此,包含语义对象及其坐标的映射也是必要的。语义映射线程将二维语义信息与三维点云相结合,生成三维语义对象,主要过程如下:
在动态特征抑制算法阶段捕获二维目标边界框。获取边界框区域的三维点云,计算三维语义对象信息。但是,由于边界框中包含一些非目标对象的噪声区域,无法准确分割语义对象轮廓。为了获得相对准确的目标位置和尺寸信息,首先对边界框进行适当的约简。接下来,我们计算与边界框区域相对应的点云平均深度。然后,将原始边界框中每个点云的深度与平均深度进行比较,如果差太大则拒绝平均深度。最后,我们对剩余的点云进行过滤,计算它们的大小和空间质心坐标。
对当前关键帧中的每个二维语义信息(动态对象如人、狗除外)执行上述操作,得到三维语义对象数据。在系统运行过程中,可以根据物体的类别、质心、尺寸等信息,不断合并或更新三维语义对象数据库。通过ROS接口发布该数据库,可以实现语义度量图的可视化。

4、实验结果

在本节中,我们将从四个方面对SG-SLAM系统进行实验评估和演示。首先,用两个公共数据集评估跟踪性能。其次,我们验证了动态特征抑制策略的有效性,并分析了融合算法相对于单个算法的优势。其次,对系统的实时性能进行了评估。最后给出了语义对象的可视化和全局八元图。实验主要在NVIDIA Jetson AGX Xavier开发工具包上进行,系统环境为Ubuntu 18.04。

A.基于TUM RGB-D数据集的性能评估

TUM RGB-D数据集[35]是由慕尼黑工业大学计算机视觉小组提供的大型数据集,旨在为视觉里程计和SLAM系统创建新的基准。为了评估SG-SLAM系统在动态场景下的准确性和鲁棒性,实验主要使用了数据集中动态对象类别下的5个序列。其中前四个是作为补充的高动态场景序列,第五个是低动态场景序列。
实验中有两个主要的误差评估指标。一种是绝对轨迹误差(ATE),它直接用于测量地面轨迹与估计轨迹之间的差值。另一种是相对位姿误差(RPE),主要用于测量旋转漂移和平移漂移。为了评估SG-SLAM相对于原系统的性能改进,将实验结果与ORB-SLAM2进行了比较。五种动态场景序列的评价对比结果如表1-3所示。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

表I-III中的实验结果表明,与ORB-SLAM2系统相比,我们的系统在高动态序列中的大多数指标提高了93%以上。图3和图4为两种系统在5个序列下,输入RGB-D摄像机的ATE和RPE实验结果。如图所示,我们的系统在高动态场景序列中的估计结果的精度[图2]。3(a)-(d)和4(a)-(d)]显著高于ORB-SLAM2。在低动态场景序列[图1]3(e)和4(e)],由于动态目标活动的面积和幅度较小,精度提高仅为31.03%。

在这里插入图片描述
在这里插入图片描述

为了进一步评价本文算法的有效性,我们继续将其与M-removal DVO[22]、RDS-SLAM[26]、ORB-SLAM3[36]等类似算法进行比较。结果如表4所示。

在这里插入图片描述

尽管使用像素级语义分割的DynaSLAM系统在单个序列结果上略微领先,但其实时性较弱(如表7所示)。由于第二节中描述的某些缺点,所有其他方法都难以达到实验结果的最高准确性。总体而言,从实验结果可以看出,SG-SLAM在所有序列的平均精度提高方面达到了最先进的水平。

在这里插入图片描述

B.波恩RGB-D数据集的性能评估

波恩RGB-D动态数据集[37]是波恩大学于2019年提供的用于RGB-D SLAM评价的24个动态序列数据集。为了验证动态特征拒绝算法的泛化性能,我们使用该数据集进行了另一次实验评估。
实验主要从数据集中选取了9个具有代表性的序列。其中,“人群”序列是三个人在房间里随机行走的场景。“不移动盒子”序列显示一个人将盒子从地板移到桌子上。“人跟踪”序列是摄像机跟踪行走的人的场景。“同步”序列呈现了几个人一次又一次向同一个方向跳跃的场景。为了评估我们的系统的精度性能,主要与原始的ORB-SLAM2系统和目前最先进的YOLO-SLAM系统进行了比较。
9个动态场景序列的评价对比结果如表5所示。只有在两个“同步”序列中,SG-SLAM表现不如YOLO-SLAM。最主要的原因是人类场景中的跳跃方向与极线方向相似,导致算法有不同程度的退化[16]。表V中的结果表明,我们的算法在大多数序列中优于其他算法。这不仅再次证明了SG-SLAM系统在动态场景下达到了最先进的精度和鲁棒性,而且证明了其通用性。

在这里插入图片描述

C.动态特征拒绝策略的有效性

SG-SLAM将几何信息和语义信息相结合,对动态特征进行剔除,扬长避短。为了验证几何信息和语义信息融合算法的有效性,我们设计了对比实验。图5显示了这些方法检测动态点的实验结果。首先,SG-SLAM (S)是一种基于语义信息的动态特征点拒绝算法。其次,SG-SLAM (G)仅是基于极面约束的几何算法。最后,SG-SLAM (S + G)采用基于几何信息和语义信息的融合算法。实验结果见表六。

在这里插入图片描述

图5(a)为ORB-SLAM2提取特征点的结果:基本上没有处理动态区域。图5(b)和(c)显示了在不同经验阈值下仅使用极极约束方法的结果。在低阈值下[见图5(b)],许多静态特征点被误检测和拒绝(例如,电视监视器角落的特征点);在高阈值下[见图5(c)],行人的一些动态特征点被遗漏。接下来,图5(d)显示了仅使用语义信息方法提取特征点的结果:人体周围的所有特征点都被粗暴地拒绝。最后,结合语义和几何信息的SG-SLAM系统实验结果如图5(e)所示。SG-SLAM算法剔除了人体上的所有特征点,同时尽可能多地保留了人体外的静态特征点,且剔除效果优于前两种算法。两种基于分离信息的算法在不同序列下的实验结果相互优与差。结合这两种信息的算法在所有序列中显示出最准确的实验结果。从表六的结果可以看出,各算法的实验数据与图5直观的抑制效果相匹配。这证明了几何信息和语义信息融合算法的有效性。

在这里插入图片描述

D.时间分析

SLAM作为机器人状态估计的基本组成部分,其速度直接影响到高级任务的顺利执行。因此,我们测试了系统运行时处理每帧的平均时间成本,并将其与其他系统进行比较。
实验耗时结果及硬件平台如表7所示。由于DS-SLAM、DynaSLAM和基于yolact的SLAM等系统使用像素级语义分割网络,因此它们每帧的平均时间成本非常昂贵。YOLO- slam采用端到端的YOLO快速目标检测算法,但由于系统架构优化和硬件性能等方面的限制,速度很慢。SG-SLAM系统通过采用多线程、SSD对象检测算法和数据复用机制,显著提高了帧处理速度。与ORB-SLAM2相比,我们的工作使每帧平均处理时间增加了不到10 ms,可以满足移动机器人的实时性要求。

E.语义建图

为了展示实际的语义映射效果,SG-SLAM系统在TUM RGB-D数据集和OpenLORIS-Scene数据集上进行了映射实验[38]。OpenLORISScene是机器人在真实场景中使用动作捕捉系统记录的数据集,以获得真实轨迹。此数据集旨在帮助评估SLAM和场景理解算法在实际部署中的成熟度。
图6为SG-SLAM在TUM RGB-D数据集fr3_walking_xyz序列中的语义对象映射效果。图7(a)和(b)分别显示了OpenLORIS-Scene数据集cafe1-2序列中构建的语义对象映射和全局Octo-map。地图中显示的物体的坐标是从SLAM系统运行的原点转换而来的。语义度量图和全局Octo-map不仅使移动机器人能够导航和避开障碍物,而且使它们能够在更高层次上理解场景并执行高级任务。

在这里插入图片描述

在这里插入图片描述

5、结论

本文提出了一种基于RGB-D摄像机输入的动态场景实时语义视觉SG-SLAM。SG-SLAM在ORB-SLAM2的基础上增加了两个新的线程:对象检测线程和语义建图线程。该系统采用动态特征抑制算法,显著提高了动态场景下的实时性、准确性和鲁棒性。语义映射线程重用二维语义信息来构建具有对象坐标和全局八元映射的语义对象映射。实验证明,当引入深度学习并结合适当的工程实现时,改进的传统算法可以获得更好的性能。
该系统仍有一些缺点需要在未来加以解决。例如,动态物体沿极线方向运动的退化问题会导致动态特征抑制算法失败,语义度量图精度的提高,实验定量分析等。
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐