一个动态环境下的实时语义RGB-D SLAM系统

描述

作者:K.Fire | 来源:3D视觉工坊 

大多数现有的视觉SLAM方法严重依赖于静态世界假设,在动态环境中很容易失效。本文提出了一个动态环境下的实时语义RGB-D SLAM系统,该系统能够检测已知和未知的运动物体。为了减少计算成本,其只对关键帧进行语义分割以去除已知的动态对象,并保持静态映射以实现稳健的摄像机跟踪。此外,文章还提出了一个有效的几何模块,通过将深度图像聚类到几个区域,并通过它们的重投影误差来识别动态区域,从而检测未知的运动物体。

1 前言

尽管现有很多的vSLAM系统都有很好的性能,但这些方法中的大多数严重依赖于静态世界假设,这极大地限制了它们在现实世界场景中的部署。

由于移动的人、动物和车辆等动态物体对姿态估计和地图重建有负面影响。尽管稳健的估计技术(如RANSAC)可以用于过滤掉一些异常值,但改进仍然有限,因为它们只能处理轻微的动态场景,当移动的物体覆盖大部分相机视图时,仍然可能失败。

由于计算机视觉和深度学习的最新进展,环境的语义信息已被集成到SLAM系统中,比如通过语义分割提取语义信息,预测被检测对象的标签并生成掩码。通过识别和去除潜在的动态目标,vSLAM在动态场景中的性能可以得到很大的提高。

然而,这些方法仍然存在两个主要问题:

强大的语义分割神经网络算法计算成本很高,不适用于实时和小规模机器人应用。

而对于轻量级网络,分割精度可能会降低,跟踪精度也会受到影响。另一个问题是,它们只能处理在网络的训练集中被标记的已知物体,面对未知的运动物体时仍然可能失败。

为了识别具有语义线索的动态对象,大多数现有方法对每个新帧进行语义分割。这将导致相机跟踪的显著放缓,因为跟踪过程必须等到分割完成。

本文主要贡献如下:

提出了一种基于关键帧的语义RGB-D SLAM系统,能够减少动态环境中运动物体的影响。

提出了一个有效和高效的几何模块,处理未知的运动物体,并结合语义SLAM框架。

通过与最先进的动态SLAM方法对比实验,证明所提出的方法的准确性,同时能够在嵌入式系统上实时运行。

2 算法框架

整个算法的框架如下图所示:

VSLAM

2.1 语义模块

语义分割是预测像素标签,并使用基于深度学习的方法为输入RGB图像中检测到的对象生成掩码,语义模块采用了轻量级的语义分割网络SegNet。

然后将分割网络在PASCAL VOC数据集上进行预训练,该数据集包含20类对象。在这些对象中,只处理那些高度移动或潜在动态的对象,如人、汽车、自行车等。这些目标将从分割图像中移除,与它们相关的特征点将不会用于相机跟踪和地图构建。

与大多数现有的基于学习的动态SLAM方法不同,该模型只在创建新的关键帧时执行语义分割,而不是对每个新帧执行语义分割。这大大降低了语义模块的计算成本,帮助实现语义信息的实时跟踪。此外,该进程在单独的线程中执行,因此对总体跟踪时间没有太大影响。

2.2 几何模块

由于单独的语义信息只能检测到训练集中被标记的固定数量的对象类,因此在存在未知运动对象的情况下,跟踪和映射仍然会受到影响,因此需要一个不需要先验信息的几何模块

首先使用K-Means算法将每个新的深度图像分割成N个簇,在3D空间中彼此接近的点被分组在一起。假设每个聚类都是一个物体的表面,并且聚类中的点共享相同的运动约束。因为单个对象可以被分割成几个簇,所以对象不需要是刚性的,而大多数语义SLAM方法都有这种刚性假设。

对于每个聚类,计算聚类内所有特征点相对于它们在三维空间中的匹配对应Pi的平均重投影误差,如(1)所定义,其中m为中匹配的特征数,为相机姿态,π表示相机投影模型,ρ为罚函数。

当一个集群的误差相对大于其他集群时,就将其标记为动态集群。动态聚类中的所有特征点将被移除,不再参与相机姿态估计。与识别单个特征点的动态状态相比,该聚类方法更加有效和高效。此外,它还可以防止由单点测量噪声引起的误检。它还允许我们通过几何聚类近似运动物体的大致形状。改方法的一些结果可以在下图的第三行中看到,其中动态集群用红色突出显示。该模块可以独立工作,不需要语义信息,因此可以检测未知的运动物体。

第一行显示了提议的语义模块(蓝色矩形点)和几何模块(红色点)检测到的动态特征。第二行是相应的语义分割结果。第三行显示深度图像的几何聚类结果,动态聚类以红色突出显示。(a)和(b)显示两个模块都检测到动态目标。(c)-(h)表示语义分割失败,而几何模块分割成功(几何模块可以在语义模块失效的情况下继续工作)。

作者在实验过程中发现了一个有趣的现象,一些半动态的物体也可以被识别出来。如上图(h)所示,其中左椅子被确定为动态的。原因是椅子目前是静态的,但当重新访问它时,它的位置发生了变化。这对于长期一致的地图构建是有帮助的。

2.3 关键帧和本地地图更新

只从关键帧中提取语义信息。因为新帧是用关键帧和局部地图跟踪的,我们只需要确保分割的关键帧和局部地图只包含场景的静态部分。关键帧选择策略继承自原ORB-SLAM2系统。当在跟踪过程中选择新的关键帧时,在单独的线程中执行语义分割并删除动态特征点。本地地图也通过删除相应的动态地图点来更新。

通过这种方式,维护了一个关键帧数据库和一个只包含静态特征和地图点的地图。

2.4 跟踪

继承于ORB-SLAM2对于每一个新帧都执行一个两阶段的跟踪。首先使用与当前帧重叠最大的最近关键帧进行初始跟踪,以获得初始姿态估计。由于关键帧已经经过了改进,删除了潜在的动态对象,因此这个初始估计将更加可靠。

然后在几何模块中使用初始姿态估计进行动态物体检测。几何模块去除当前帧中的动态点后,利用当前帧中观察到的所有局部地图点进行跟踪,利用局部束调整获得更精确的姿态估计。由于语义模块还在局部地图中删除了潜在的动态地图点,进一步降低了动态目标的影响,从而使姿态估计更加鲁棒和准确。

3 实验与结果

本文方法在广泛用于RGB-D SLAM评价的TUM RGB-D数据集上进行了测试。

评估指标:用于评估的误差指标是m的绝对轨迹误差(ATE)的常用均方根误差(RMSE),以及包含m=s的平移漂移和◦=s的旋转漂移的相对姿态误差(RPE)的RMSE。ATE测量轨迹的全局一致性,RPE测量每秒的里程漂移

3.1 不同模块的作用

ATE与基线ORB-SLAM2的RMSE比较如下表所示。

VSLAM

实验结果:

对于稍微动态的序列,提出的方法的结果与ORB-SLAM2相似,因为ORB-SLAM2可以通过RANSAC算法成功处理这些情况,因此改进幅度有限。

对于高度动态的序列,文中的语义模块和几何模块都取得了显著的精度提高,并且提出的组合系统取得了更好的结果。

下图为根据地面真值,ORBSLAM2和所提方法估算的轨迹对比

VSLAM

3.2 与最先进方法的比较

作者将所提出的方法与最先进的基于几何的动态SLAM方法MR-DVO、SPW、StaticFusion、DSLAM以及基于学习的方法MID-Fusion、EM-Fusion、DS-SLAM和DynaSLAM进行了比较。

ATE和RPE的比较分别总结于表2和表3。

VSLAM

可以看出,文中的方法在所有动态序列中都提供了具有非常好的的结果,并且优于所有其他动态SLAM方法,除了在语义框架中结合多视图几何的DynaSLAM。但是,DynaSLAM提供离线静态地图创建,由于其耗时的Mask-RCNN网络和区域增长算法,它无法实时运行。但是本文的方法在实现了实时操作的同时,提供了与之非常接近的结果。

3.3 真实环境下的鲁棒性检验

在真实的实验中,一个拿着书的人在相机前坐着走着,而相机几乎是静止的。下图是实时测试过程中动态点检测结果的几张截图,其中第二行和第三行分别是语义模块和提出的几何模块的分割结果。

书在网络模型中不是一个被标记的对象,因此它不能被识别,或者有时被语义模块错误地识别,如第二行所示。作为一个补偿过程,几何模块能够在测试中正确地将书作为移动对象提取出来,如第三行所示。这表明语义模块和几何模块都是动态环境下健壮的语义RGBD SLAM系统所必需的。该方法的平均弹道估计误差约为0:012m,而ORB-SLAM2由于运动物体引起的较大波动,误差约为0:147m。

4 总结

本文提出了一个实时语义RGB-D SLAM框架,该框架能够处理已知和未知的运动物体。

为了减少计算量,提出了一种基于关键帧的语义模块,并引入了一种基于几何聚类的有效几何模块来处理未知运动目标。广泛的评估表明,文中的系统提供了最先进的定位精度,同时仍然能够在嵌入式平台上实时运行。

未来改进:可以构建一个只包含静态部分的环境的长期语义地图,这对高级机器人任务很有用。

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分