动态SLAM论文(5) — SOF-SLAM: A Semantic Visual SLAM for DynamicEnvironments

目录

1 引言

A. 相关工作

B. 目的

C. 贡献和概述

2 Semantic optical flow SLAM

A. 系统概述

B. 语义光流

3 Evaluation 

B. 在真实环境中的评估

4 Conclusion and Discussions


论文的论述有些许繁琐

摘要:SLAM在计算机视觉和机器人领域起着重要作用。传统的SLAM框架假设世界是静态的,为了方便分析。如何处理动态环境至关重要,并且越来越受关注。现有的针对动态场景的SLAM系统要么仅利用语义信息,要么仅利用几何信息,要么以松散耦合的方式简单地将它们的结果组合起来。本文提出了一种面向动态环境的语义光流SLAM(SOF-SLAM)系统,它是基于ORB-SLAM2的RGB-D模式构建的。我们提出了一种名为语义光流的新的动态特征检测方法,这是一种紧密耦合的方式,可以充分利用语义和几何信息中隐藏的特征动态特性,有效合理地去除动态特征。由SegNet生成的像素级语义分割结果用作提出的语义光流中的掩码,以获得可靠的基本矩阵,然后用于过滤出真正的动态特征。在跟踪和优化模块中仅保留剩余的静态特征,以实现在动态环境中准确的相机位姿估计。我们在公共的TUM RGB-D数据集和真实环境中进行了实验证明。与ORB-SLAM2相比,所提出的SOF-SLAM在高动态场景中平均实现了96.73%的改进。它还优于其他四种处理动态环境的最新SLAM系统。

索引词:计算机视觉,机器人,语义,同时定位和地图构建。

1 引言

        SLAM使用由操作SLAM系统的平台收集的数据构建周围世界的地图,并在地图中同时定位自身。平台所携带的观测外界世界的传感器可以是各种各样的,例如单目相机、立体相机、RGB-D相机和激光雷达。当传感器为视觉传感器时,系统被称为视觉SLAM系统。视觉SLAM系统是各种上层应用的基本和必要模块,例如服务机器人、增强现实和自动驾驶汽车,这些应用需要估计相机姿态并重建环境的三维模型。在过去的几十年里,视觉SLAM问题引起了许多研究人员的广泛关注,并涌现出许多优秀的视觉SLAM系统,如MonoSLAM[1]、PTAM[2]、ORB-SLAM[3]、ORB-SLAM2 [4]、LSD-SLAM[5]、SVO[6]和DSO[7]。当环境是静态的或动态元素占少数时,这些优秀的工作可以实现令人满意的性能,这些动态元素可以被分类为异常值[8],使用鲁棒模块例如RANSAC和鲁棒成本函数。然而,在实际应用中,环境的动态特性是普遍存在的,有时动态元素甚至占据了场景的很大比例,例如城市街道上总是有移动的人或车辆。由于静态世界的假设,上述标准SLAM系统在这种高动态环境中的准确性大大降低,以至于结果可能完全不可靠。

        图1(a)展示了一个高动态的场景,场景中有两个人在走动。当在这个场景中应用ORB-SLAM2时,几乎一半提取出的ORB特征点位于两个移动的人身上,如图1(b)所示。这些动态特征点不能被排除为离群值,因为它们的数量并不少。由于这些动态特征点的影响,估计的轨迹完全无法使用。如图1(c)所示,蓝色虚线是ORB-SLAM2在图1(a)所示场景中估计的轨迹,而黑色虚线是真实轨迹,它们的形状完全不同。这意味着系统失败了,无法提供可靠的相机位置和环境信息。这个失败是由于SLAM系统对静态世界的假设通常无法满足。因此,需要对标准SLAM系统进行扩展,以应对高动态环境。

图1. 在高动态场景中,ORB-SLAM2估计的相机轨迹完全无法使用。

        已经出现了许多方法来提高标准SLAM系统在动态环境中的准确性。我们将在下面的部分中回顾这些方法。

A. 相关工作

        在面向高动态环境的视觉SLAM系统中,特征通常被分为两组,静态特征和动态特征。只有静态特征被保留以提高在高动态环境中的准确性。为了检测场景中的动态特征,使用了各种方法,这些方法可以大致分为三类:仅依赖几何信息的动态特征检测、仅依赖语义信息的动态特征检测以及通过几何计算和语义信息结果的松散耦合方式进行动态特征检测的简单组合。

在几何方法领域,最相关的方法如下。

  • Kundu等人[9]使用机器人的测距数据构建基本矩阵,以定义两个几何约束条件,其中一个是从本质矩阵而来的。根据本质矩阵的几何约束,如果匹配的特征点距离对极线太远,那么它很可能被认为是动态的。这种方法的关键是估计基本矩阵,如果能够获得相对可靠的基本矩阵,那么大部分的动态特征将很容易被检测出来。基本矩阵可以使用纯粹的视觉方法获得,比如5点法[10]或8点法[11]。如果有其他的运动传感器,比如惯性测量单元(IMU),则可以通过对IMU数据进行双重积分来轻松计算相机运动。
  • Lin和Wang[12]通过观察到在位姿估计计算中存在动态特征会显著降低SLAM系统的精度,从而检测动态特征。当跟踪到一个新的特征时,计算出两个局部SLAM:一个不加入新检测到的特征,另一个在假设这个新特征是静止的情况下加入这个特征。与其对特征进行动态或静态分类的判断,不如使用二进制贝叶斯滤波器对两个结果的差异进行时间集成。经过一定的更新次数后,如果对数比例大于预设阈值,这个新的特征可以被归类为静态;否则,它将被归类为运动。利用重投影误差来检测动态特征是另一种几何方法。
  • Zou和Tan[13]通过分析三角化一致性将地图点分为动态和静态两类。他们将前一帧中的特征点投影到当前帧,然后测量跟踪到的特征点的重投影误差。如果地图点是静态的,重投影误差应该很小;否则,地图点将被归类为动态的。
  • 王等人[14] 将当前RGB图像、之前的图像和当前深度图像作为输入,首先将深度图像聚类成几个对象,提取当前RGB图像中的特征,并计算每个对象上的特征数量和百分比。然后,使用当前RGB图像和之前的RGB图像之间的特征对应关系来计算基础矩阵,然后使用基础矩阵来滤除异常值,再次计算每个对象上剩余内点的数量和百分比。剩余的内点用于再次计算基础矩阵,后续步骤与之前相同。最后,基于上述获得的统计特征设计了一个移动物体判断模型,一旦一个物体被认为是移动的,其上的所有特征将被消除。
  • 孙等人[15] 改进了代码本学习和推理机制,以处理动态环境中的SLAM问题,他们的运动去除方法包括两个在线并行过程:学习过程,用于建立和更新前景模型;推理过程,使用建立的模型逐像素地分割前景。
  • 范等人[16] 构建了一个适用于移动平台的相机运动模型,然后将运动模型分解为平移和旋转两个部分。最后,提出了两个约束条件来定位动态区域。

        只依赖语义信息的方法是直接的。根据人类的常识和经验,动态物体通常是人、汽车等可以自行移动的物体。近年来深度学习的快速发展使得计算机视觉任务如物体检测和语义分割可以得到出色的解决,并且准确度甚至可以超过人类。在SLAM系统中,当一个新的帧到来时,通过应用像YOLO [17]、SSD [18]、SegNet [19]、Mask-RCNN [20] 这样的先进卷积神经网络结构,可以获得提取特征的语义标签。然后将位于人或汽车等语义动态物体上的特征视为动态的并将其移除。

  • 钟等人[21] 使用目标检测网络SSD来检测可移动的物体,如人、狗、猫和车。例如,一旦检测到一个人,无论是行走还是站立,都被视为可能是移动的物体,并移除属于该区域的所有特征。
  • 张等人[22] 使用YOLO来获取语义信息,他们认为总是位于移动物体上的特征是不稳定的,将其滤除。
  • 王等人[23] 提出了一种分步方法,该方法由目标检测和轮廓提取组成,以更高效地提取动态物体的语义信息。
  • 肖等人[24] 使用在单独的线程中运行的SSD目标检测网络来获取关于动态物体的先验知识,然后通过追踪线程中的选择性跟踪算法处理动态物体上的特征,以显著减少位姿估计误差。

        近期的一些研究将几何计算的动态检测结果与语义信息相结合。Yu等人[25]使用SegNet在一个单独的线程中获取每个像素的语义标签。如果一个特征被分割为“人”,则使用极线几何约束进行进一步的移动一致性检查。如果检查结果是动态的,则将所有具有语义标签“人”的特征都被分类为动态并去除。这种方法实际上将具有标签“人”的特征视为一个整体,并取两种结果的交集:只有在语义上和几何上都动态的特征才被视为动态。Bescos等人[26]将Mask R-CNN和多视图几何的语义分割结果结合起来。他们实际上将这两个结果联合起来:无论是在语义上动态还是在几何上动态的特征都被视为动态。

B. 目的

        上述的动态SLAM系统在一定程度上提高了准确性。然而,它们仅仅依赖于几何信息、仅仅依赖于语义信息,或者简单地将它们的动态特征移除结果进行组合。从直觉上讲,这些系统中的几何信息和语义信息之间的联系并不紧密。如果我们能找到一种方法将它们紧密地联系起来,动态特征将会更有效地被移除,从而进一步提高系统的准确性。

C. 贡献和概述

        本文提出了一种面向动态环境的视觉语义SLAM系统,即Semantic Optical Flow SLAM (SOF-SLAM),该系统是建立在ORB-SLAM2上的。该框架旨在在动态环境中使系统更加准确。所提出的SOF-SLAM系统可以通过我们的动态特征检测和移除方法,即语义光流,在紧密关联的方式下利用几何和语义信息高度减少环境中动态物体的影响。

        我们的贡献可以总结如下:所提出的SOF-SLAM系统充分利用了语义分割中的运动先验信息与极线几何约束中的运动检测信息的互补特性,而现有的SLAM系统要么仅依赖于语义信息,要么仅依赖于几何信息,要么简单地将它们的结果组合起来以移除动态特征。我们在SOF-SLAM中提出的动态特征检测算法,即语义光流,利用语义分割信息辅助计算极线几何,而不仅仅是简单地组合结果。因此,我们的系统可以更合理、更有效地移除动态特征,从而得到更准确的结果。

2 Semantic optical flow SLAM

本节将详细介绍提出的SOF-SLAM系统。动态特征的检测和去除方法是本文的重点。

A. 系统概述

        图2展示了所提出的SOF-SLAM的概述。首先,进行ORB特征提取的过程与原始的ORB-SLAM2相同,提取出静态和动态特征。然后,我们提出的动态特征检测方法,即语义光流,可以有效地去除动态特征。剩下的静态特征用于参与跟踪线程中新帧的姿态估计。局部建图线程的地图点创建和地图维护,以及回环检测线程的回环检测和回环校正过程与原始的ORB-SLAM2相同。语义光流是我们框架最重要的模块,因此我们将重点讨论该模块。

图2 SOF-SLAM的总体架构。局部建图和闭环检测线程与ORB-SLAM2相同。前者用于维护周围环境的局部地图,并在其中实现最佳的相机姿态估计,而后者用于检测闭环并进行闭环矫正,以消除累积误差。我们将动态特征检测方法——语义光流集成到跟踪线程中,通过该方法,动态特征得以有效移除,只有静态特征供后续的跟踪过程使用。

B. 语义光流

        图3显示了用于动态特征检测和去除的语义光流的流程图。一方面,当前RGB图像用于提取ORB特征。另一方面,当前RGB图像和之前的RGB图像,结合由在另一个独立线程中运行的SegNet生成的当前RGB图像的语义分割结果,用于计算语义光流。语义光流生成的对应关系用于获取可靠的基础矩阵,随后用于有效地检测真正的动态特征。

图3 语义光流对动态特征进行检测和移除的流程图

        在我们的动态特征检测方法,即语义光流中,语义先验和多视角几何紧密耦合,以实现有效的动态特征检测。接下来,我们将从三个方面详细介绍语义光流:从语义分割中的运动先验分析,动态特征检测中的多视角几何约束分析,以及如何有效地利用语义和几何信息以紧密耦合的方式。

1)从语义分割中获得的动作先验

        在语义分割线程中,我们使用SegNet编码器 - 解码器网络来获得每个输入图像的逐像素语义分割。SegNet的架构由两个主要模块组成:一个编码器网络和一个解码器网络。

        编码器网络由13个卷积层组成。每个编码器层都有一个对应的解码器层,因此解码器网络也有13层。首先将输入图像馈送到编码器网络中,编码器网络中的每个编码器都使用一个滤波器组进行卷积,生成一组特征图,然后通过批归一化、ReLU(修正线性单元)激活函数和最大池化的过程。编码器网络生成的特征图随后被馈送到解码器网络中。

        解码器网络中的解码器使用来自相应编码器特征图的记忆化最大池化索引对输入特征图进行上采样。上采样过程可以生成稀疏特征图。然后,这些特征图与可训练的滤波器组进行卷积,生成密集特征图。然后对这些特征图的每个进行批归一化处理。解码器网络最后一个解码器的输出处的高维特征表示被馈送到一个可训练的软最大化分类器,可以产生每个像素的语义标签。

        我们采用SegNet的caffe实现来生成逐像素的语义分割。我们使用的SegNet模型在PASCAL VOC数据集上进行训练,共可以分割20个类别(飞机,自行车,鸟,船,瓶子,公共汽车,汽车,猫,椅子,牛,餐桌,狗,马,摩托车,人,盆栽植物,绵羊,沙发,火车,显示器)。

        根据像素的语义标签,我们可以获取一些关于其动作特征的先验信息。例如,如果像素的标签是“人”,意味着该像素位于一个人身上,我们可以有很高的置信度假设该像素是动态的,因为人在常识中往往会移动。如果像素的标签是“餐桌”,我们可以有很高的置信度假设该像素是静态的。如果像素的标签是“椅子”,情况就不同了。椅子本身不能移动,因此在正常情况下它应该是静态的,但在其他物体的影响下,如人的活动,它是可移动的,因此不能确定像素在椅子上是静态还是动态。我们将这类对象上的像素视为“潜在动态”。

        使用SegNet,我们可以获取关于像素的动作特征的一些先验知识,这对于提高在动态环境中的SLAM系统的准确性是有用的。利用运动的先验知识的一种常用方法是使用语义分割结果作为掩模来去除动态特征。这个想法很直观,是一种简单但有用的方法来提高动态环境中的定位精度。然而,有两个限制。我们将在接下来详细分析它们。

        首先,正如上面提到的,每个像素的先验知识可以粗略地分为三类:静态、潜在动态和动态。在朴素的语义SLAM中,静态特征被保留,动态特征被移除,但对于潜在动态特征,可以有两种处理方式,要么将它们视为静态,要么视为动态。这两种方式都可能带来麻烦。

        图4显示了一个包含潜在动态物体的场景。在这个场景中,有两个显示器和两把椅子,根据SegNet的分割结果,它们的属性应该是潜在动态的,但它们的实际运动特征是:两个显示器是静态的,左边带轮子的椅子因为上面有人坐在上面而在移动,右边的椅子是静态的。如果我们将所有这些物体上的特征都视为动态特征并移除它们,定位的准确性将变差,原因是两个显示器和椅子上有很多静态特征,它们角落上的特征非常显著,这意味着这种特征可以在连续帧之间提供准确可靠的对应关系。静态特征数量的减少,特别是显著特征的移除,会导致准确性下降。如果我们将这些物体上的特征视为静态特征并保留它们,由于左侧椅子上的动态特征,定位的准确性也会受到影响。换句话说,仅仅依靠语义分割是无法正确处理场景中的一些动态部分的。

 图4 潜在动态物体的场景

        其次,尽管由于近年来出现的先进的卷积神经网络结构,语义分割的准确性得到了很大的提升,但在物体边界附近,分割结果的模糊性仍然是不可避免的。

        图5展示了通过朴素地使用语义分割结果作为掩码来过滤动态ORB特征的示例。在图5(a)中,由ORB-SLAM2提取的ORB特征均匀分布在图像中,我们可以看到许多ORB特征位于人物上,而人物是场景中的主要动态成分。这些动态特征将降低SLAM系统的定位准确性。图5(b)显示了由SegNet生成的语义分割结果,在其中,红色、粉色、蓝色和黑色分别表示椅子、人物、显示器和空白像素的标签。在常见的语义SLAM解决方案中,将具有人物语义标签的图像部分用作掩码以去除动态ORB特征。去除效果如图5(c)所示,我们可以看到大部分位于人物上的动态ORB特征被去除了,但仍然保留了一些位于人物的腰部、腿部和手部的特征。这是由于对人物的分割不完整,可以在图5(b)中轻易观察到。一个位于人物手部的ORB特征被分割为具有“空白”语义标签。一些位于腰部和腿部的ORB特征被错误地认为是“椅子”。错误的语义标签导致动态特征的保留,阻止了系统进一步提高定位准确性。

图5 通过简单地使用语义分割结果作为掩码来过滤动态ORB特征的示例 

        在SLAM问题中,SegNet的语义分割结果确实有助于去除动态特征,但是分割结果实际上与场景的运动情况是独立的。也就是说,无论场景中的物体是动态的还是静态的,分割结果应该是相同的。因此,需要另一种能够反映场景实际运动情况的信息来源。

2)多视图几何约束

图6 多视图几何中静态特征的对极约束。 

        利用对极几何属性的几何约束可以用来检查特征是动态的还是静态的。静态特征应该满足多视图几何中的对极约束,而动态特征将违反标准的对极约束。图6(a)显示了在两个连续帧中对应图像点之间的关系。X是一个静态地图点,它在两个连续帧中被成像,x1在帧 I1 中,x2 在帧 I2 中。C1和C2分别是I1和I2相机的光学中心,连接C1和C2的线被称为基线。基线和地图点 X 确定了一个平面π,称为对极平面。平面π与图像平面 I1 和 I2 在线L1和L2上相交。L1和L2被称为对极线。基线与图像平面的交点被称为对极点,即图6中的e1和e2。假设我们只知道 I1 中的x1,我们想要找到它在I2中的对应点x2,如图6(b)所示。在没有深度信息的情况下,我们只知道地图点X位于从x1反向投影的射线上,因此我们只知道x2位于对极线L2上。这个几何约束实际上描述了从一个图像中的点到另一个图像中相应的对极线的映射,这个映射关系可以用基础矩阵F来描述:

        p1和p2分别是对应图像点 x1 和 x2 的齐次坐标。给定图像点x1和基础矩阵F,(1)提供了一个约束条件,如果地图点X是静态地图点,则 x2 必须满足该条件。因此,我们可以使用这个约束条件来判断ORB特征对应的地图点是动态的还是静态的。然而,由于特征提取和基础矩阵 F 估计中不可避免的不确定性存在,静态地图点的两个图像点可能不严格满足(1)。直观上,图像点 x2 不精确地位于由图像点 x1 和基础矩阵F确定的对极线上,而是非常接近该对极线,就像图7中的x2一样。因此,我们可以计算 x2 与对应的对极线L2之间的距离D。如果D小于预定义的阈值,则认为该图像点是静态的;否则认为它是动态的。

 图7 一个静态特征应该与所有种类的错误和不确定性接近对极线。

对极几何中的关键是估计基础矩阵F

F可以通过至少五对特征对应计算得出,但通常使用经典的八点法算法。以图6中的匹配图像点 x1 和 x2 为例,我们可以写出它们的齐次坐标:

(u1, v1)和(u2, v2)分别是x1和x2的像素坐标。通过组合(1)(2)(3),我们可以得到(4):

设 f 表示包含基础矩阵 F 所有元素的向量:

通过对(4)进行展开,我们可以得到关于变量f的一个方程:

f 中有九个未知元素,但由于基础矩阵F的尺度自由特性,f 的自由度可以减小为8。因此,如果我们有8对图像点对应的相邻帧之间的图像点对,我们可以通过求解形式为(6)的8个方程来计算F。

        至于在两个连续帧之间找到对应的图像点,光流是一种方便且有效的方法。为了减少错误对应的影响,采用了RANSAC算法。事实上,这种方法具有鸡生蛋、蛋生鸡的特点。为了使用对极几何约束检测动态特征,首先需要估计基本矩阵F。另一方面,我们必须使用连续帧中的静态地图点的对应关系来估计基本矩阵F。因此,在计算光流的过程中存在一个限制:场景中的大多数特征必须是静态的,这样RANSAC才能减少剩余动态特征的影响。

3)紧密耦合形式下的动态特征检测​​​​​​​

        为了克服仅仅使用语义分割先验或多视图几何约束来处理动态特征的上述缺点,我们提出的语义光流采用了语义信息和几何信息的紧密耦合方式来检测动态ORB特征。这里我们使用"紧密耦合方式"与传统方法进行对比,传统方法也是通过结合几何信息和语义信息来去除动态特征。我们认为这些传统方法是"松散耦合方式"。这是因为这些传统方法首先利用几何或语义信息分别检测动态特征,然后通过投票模块将两个结果结合起来。有两种投票策略:如果两个独立的结果都是动态的,最终结果就是动态的[25],或者如果两个独立的结果中任何一个是动态的,最终结果就是动态的[26]。我们首先使用语义信息获取相对可靠的基本矩阵F,然后使用F通过几何约束来检测真正的动态特征。在我们的方法中,基本矩阵作为连接这两种信息源的桥梁,统一在一个框架中进行决策,判断一个特征是动态的还是静态的。详细的过程将在下面部分进行解释。

        首先,我们使用SegNet获取动作先验,然后在计算从当前帧到上一帧的光流时,使用动作先验作为掩码,去除动态和潜在动态特征的对应关系。只保留可靠的对应关系,如图8所示。然后使用语义静态特征的对应关系而不是所有对应关系来计算基本矩阵F。

图8 语义光流示例 

        利用上述计算得到的基本矩阵F,使用对极线约束来找到真正的动态特征。在我们的实现中,我们选择1个像素作为阈值,当前帧中与上一帧中的特征对应的特征与对极线距离大于1个像素的特征被认为是真正的动态特征。

图9 朴素语义方法和我们方法之间动态特征去除效果的比较

        Fig.9(a)展示了朴素语义方法仅利用语义分割结果进行动态特征去除的结果。Fig.9(b)展示了我们的语义光流方法的动态特征去除效果。首先,我们可以看到几乎所有位于移动人物上的特征都被去除了。与朴素语义方法相比,我们的方法克服了SegNet的分割不完全和不准确的特点。其次,右侧的两个显示器和椅子上的显著特征被确认为静态,而左侧椅子上的特征被确认为动态,因为它带有轮子并且随人一起移动。

3 Evaluation 

        我们在公共的TUM RGB-D数据集上进行了我们的SOF-SLAM系统的实验,以评估其在动态环境中的性能。首先,我们将我们的SOF-SLAM系统与原始的RGB-D ORB-SLAM2系统和朴素语义ORB-SLAM2系统进行比较,以验证我们系统的改进。朴素语义ORB-SLAM2是我们在ORB-SLAM2上构建的系统,仅使用SegNet生成的语义信息来去除语义上动态的ORB特征,可以作为参考,以说明我们系统的动态特征去除方法更为有效。此外,我们使用原始论文中可能发布的结果,将我们的方法与动态环境中最先进的SLAM系统进行比较。进一步,在实验室环境中展示我们系统的性能。

        在TUM RGB-D数据集上的评估 TUM RGB-D数据集提供了许多以30Hz和640×480分辨率捕获的序列。高精度运动捕捉系统提供了这些序列的地面真值轨迹,该系统配备了八个100Hz相机。我们选择包含动态元素的序列进行实验,即s_static,w_rpy,w_static,w_xyz序列。在TUM RGB-D数据集的这五个选择的动态序列中,人是主要的动态元素。序列名下划线之前的单词表示场景中人员的状态:“s”表示坐下,“w”表示行走。序列名下划线之后的单词表示摄像机的运动。s_static序列是低动态环境的代表,而其余的四个序列则是高动态环境的代表。

        我们在这五个选择的动态序列上运行了ORB-SLAM2,朴素语义ORB-SLAM2和我们的系统。这三个系统估计的相机轨迹与地面真实轨迹在同一图中绘制。我们将3D轨迹投影到2D平面,并利用2D轨迹定性和直观地展示这些系统的准确性。如果估计的轨迹与地面真实轨迹更好地吻合,则相应的系统更准确。比较结果如图10和图11所示。在低动态序列s_static中,三个系统的轨迹都非常接近地面真实轨迹。在高动态序列中,我们提出的SOF-SLAM和朴素语义ORB-SLAM2与地面真实轨迹接近,而ORB-SLAM2估计的轨迹与地面真实轨迹差距非常大。这是因为ORB-SLAM2中的异常值检测方法无法适用于高动态环境。相比之下,提出的语义光流方法和语义信息本身对动态特征的检测和去除非常有帮助。

 图10 低动态序列s_static中对比

  图11 高动态序列对比

        进一步对这三个系统进行质量比较,以验证SOF-SLAM的有效性。我们将ATE(绝对轨迹误差)的均方根误差(RMSE)作为实验的质量评估指标。对于每种方法,我们运行所有序列五次,以得到RMSE结果的中值、平均值、最小值和最大值,这可以减少系统非确定性的影响。结果如表1所示。

        根据表1中的结果,我们可以看到在低动态序列s_static中,这三种方法的结果实际上非常接近。在表示高动态环境的其余四个序列中,无论是我们的系统还是naive semantic ORB-SLAM2,在准确性上都相对于原始的ORB-SLAM2有了显著改进,包括中值、平均值、最小值和最大值的RMSE几乎都降低了一个数量级。这是因为语义信息对于去除动态特征非常有帮助,从而实现了很高的准确性改进。然而,语义信息本身也具有不确定性,正如我们在第二节中所述。在高动态条件下,仍然有一些动态特征无法有效地去除。本文提出的语义光流能充分利用语义和几何信息中隐藏的特征动态特性,进一步有效地去除了动态特征。因此,我们的系统实现了最高的定位准确性。

         在表2中,我们以百分比的形式展示了改进情况。与原始的ORB-SLAM2相比,我们系统在高动态序列中的每个RMSE统计结果都取得了超过90%的改进,其中最高的一项达到了98.49%。我们系统相对于naive semantic ORB-SLAM2的改进也在表2中显示出来,中值、平均值、最小值和最大值的RMSE分别实现了50.18%、60.65%、44.40%和63.33%的平均准确性改进。

图12以柱状图的形式直观地显示了三个系统的比较。

图12 比较ORB-SLAM2、naive semantic ORB-SLAM2和我们系统中的中位数、平均数、最小值和最大值RMSE的直观形式的柱状图。

        此外,我们还将我们的方法与动态环境下的最先进的SLAM系统进行比较,使用原始论文中可能的结果。我们选择了DS-SLAM [25]、DynaSLAM [26]、Detect-SLAM [21]和Zhang等人 [22]提出的系统进行比较。以上四篇论文都是基于ORB-SLAM2开发的,并且它们使用RMSE ATE作为定量指标与原始的ORB-SLAM2进行比较,以展示它们在动态环境中的高准确度。然而,它们之间没有进行比较。我们提出的SOF-SLAM也是基于ORB-SLAM2构建的,因此我们选择中位数RMSE ATE来与它们进行准确度比较。结果如表3所示。我们可以观察到,我们系统的准确度远远优于DS-SLAM [25]、Detect-SLAM [21]和Zhang等人提出的系统 [22],与DynaSLAM [26]相当。然而,我们注意到在这些论文和我们的论文中,相同顺序下的ORB-SLAM2的结果是不同的。在[21]、[25]中的原始ORB-SLAM2的结果与我们在相同顺序下运行ORB-SLAM2的结果非常接近,而在[22]、[26]中,结果比我们得到的结果要好得多。这可能是由于RMSE的评估细节或其他实验条件的差异。因此,为了客观验证我们系统的有效性,我们选择相对RMSE减小(即相对准确度提升)作为评估指标。相对指标更加合理,因为它可以消除与动态特征处理算法无关的其他因素造成的准确度差异。新的比较结果如表4所示,我们可以看到我们系统的准确度改进仅在低动态序列s_static中低于DS-SLAM,而在其余四个高动态序列中更好。DS-SLAM在低动态序列中更好的原因是它采用了几何方法和语义方法动态特征检测结果的交集,这意味着特征更容易保留,而我们的方法更趋向于移除特征。在低动态环境中,动态特征较少且容易被消除,因此更多的特征会导致更高的准确度。至于其他三个系统,在所有五个序列中我们的系统都优于它们。总的来说,我们的系统在四个高动态序列中取得了最好的结果。图13以柱状图的形式直观地展示了我们系统与动态环境中最先进的SLAM系统之间的准确度优势。

 图13 比较我们系统与DS-SLAM、DynaSLAM、Detect-SLAM和L. Zhang等人提出的系统在动态环境下的相对准确度提升。

B. 在真实环境中的评估

        我们还进行了真实环境中的实验,以展示我们系统的有效性。我们使用MYNT深度相机捕获了RGB图像和相应的深度数据。在我们的真实实验场景中,有两个人在周围走动,摄像机以顺时针方向移动成一个圆圈。 图14显示了ORB-SLAM2和我们系统在真实世界实验场景中ORB特征提取情况的比较。在图14(a)中,ORB-SLAM2提取出了很多特征,都位于两个行走的人身上,而在图14(b)中,我们系统提取出的几乎所有特征都在静态背景上。 图15显示了ORB-SLAM2和我们系统估计的相机轨迹的比较。我们系统估计的黄色轨迹完美地形成了一个闭环,就像摄像机移动的方式一样,这在定性上反映出我们系统的准确性,而ORB-SLAM2估计的蓝色轨迹由于存在动态ORB特征无法返回到起点。

 图14 ORB-SLAM2和我们的系统之间ORB特征提取情况的比较。我们的方法可以消除行人行走中的动态特征。

 图15 ORB-SLAM2和我们的系统之间估计的相机轨迹的定性比较。

4 Conclusion and Discussions

        本文介绍了一种基于ORB-SLAM2的语义视觉SLAM系统,即SOF-SLAM。我们添加了一个独立的线程运行SegNet来进行像素级别的语义分割,并提出了一种新的方法称为语义光流来有效地检测和移除动态特征。我们的系统可以克服仅利用语义信息或几何信息的缺点,并避免简单地将它们组合在一起。我们以一种紧密耦合的方式利用它们,以实现更合理的动态特征移除。为了验证我们的集成了语义光流的SOF-SLAM的有效性,我们在公共的TUM RGB-D数据集和真实的实验室环境中进行了实验。结果显示,我们的系统在定位精度上相对于原始的ORB-SLAM2取得了很大的改进。在高动态序列中,我们的系统相对于原始的ORB-SLAM2平均达到了96.73%的精度提升。此外,与四种最先进的动态环境SLAM系统的比较表明,我们的系统相对于原始的ORB-SLAM2实现了最高的相对RMSE减小。 然而,我们的系统仍有更多正在进行的工作。我们的系统可以在两个方面改进。首先,我们的系统仅利用当前帧和上一帧的信息来检测当前帧中的动态特征。我们正在考虑使用更多的图像帧,这可能提供更丰富的时间信息,以确定特征的运动特性。其次,我们的系统目前采用硬判定的方式来决定特征是否是动态的。通过采用概率框架来计算特征具有动态特性的概率,我们可能实现进一步的改进,从而使系统更加稳健。

猜你喜欢

转载自blog.csdn.net/qq_41921826/article/details/131533837