Advertisement

动态SLAM论文(4) — DS-SLAM: A Semantic Visual SLAM towards DynamicEnvironments

阅读量:

目录

1 Introduction

2 Related Works

A. 语义SLAM

B. 动态环境中的SLAM

3 System Introduction

4 Experimental Results

5 Conclusions


摘要

1 Introduction

在过去的几年里,视觉SLAM受到了广泛关注。这一技术之所以能够获得如此多的关注,在于它能够有效提取并存储图像中的大量信息,并且能够在多种基于视觉的应用中发挥重要作用。目前来看,视觉SLAM系统的架构已经相当完善,并且通常由几个关键模块构成:前端特征提取系统、后端状态估计模块以及闭环检测机制等环节。值得注意的是,在这一领域已经取得了显著进展的 SLAM 算法包括 ORB-SLAM2 和 LSD-SLAM 等先进方法。

尽管如此,在当前的研究中仍有许多问题有待解决。例如,在复杂多变的环境中难以应对的各种现有算法都存在明显的脆弱性。一方面,在极端动态环境或高度复杂环境中难以实现有效的处理效果;另一方面,在现有的算法中其地图模型通常依赖于几何数据(如基于地标的地图与点云地图),因此在某种程度上无法提供对周围环境的深入理解能力。参考文献[3]研究表明SLAM技术正逐步进入稳健感知的新时代,在这一过程中仍需进行更加深入的研究工作才能实现对周围环境的全面而稳定的感知与导航能力以适应自主机器人的发展需求

传统基于不同iable几何的SLAM方法仅提供地图中带有纯粹几何特征的部分区域,并未涉及任何语义信息. 然而,在机器人学领域中存在对周围场景理解至关重要的需求. 随着深度学习技术的进步, 某些深度神经网络已展现出在图像分割任务中表现出色的能力. 因此, 将这些具有语义分割能力的模型与传统的SLAM系统相结合, 可以生成具备丰富语义信息的完整地图, 进而显著提升机器人对环境的认知能力.

该系统的动态环境下表现出的稳定性同样面临诸多挑战。值得注意的是,在特定场景下已有研究展示了该系统的有效性。然而,在动态环境中突然发生的外界干扰可能导致状态估计精度下降,并可能引发系统崩溃。例如,在这些环境中运动物体的影响尤为显著。这可能干扰基于视觉信息的状态估计过程。值得注意的是,在激光雷达辅助下已有改进可减少这种影响。一些研究者已尝试结合惯性测量设备以提升鲁棒性。然而在完全依赖视觉的信息融合方面仍需进一步突破

在本文中, 我们重点探讨了结合语义分割网络与光流方法以降低基于视觉的SLAM系统中动态物体的存在及其影响, 同时提供了一种基于八叉树的地图进行语义表示[8]. 该地图不仅有助于机器人的环境理解, 还为执行高级任务提供了基础支持. DS-SLAM的整体框架如图1所示

本节概要介绍了DS-SLAM技术。原始RGB图像同时被用于实现语义分割与运动一致性检验。随后去除异常数据并对姿态进行估计。基于姿态估计、深度信息以及语义分割结果,在独立线程中构建出一种基于八叉树的空间地图。

本文的主要贡献包括:

基于ORB-SLAM2[2]开发了一种完整的动态环境下的语义SLAM系统(DS-SLAM),该系统旨在减少动态物体对位姿估计的影响。通过在TUM RGB-D数据集[9]上的实验评估表明,在动态环境中DS-SLAM较ORB-SLAM2在准确性和鲁棒性方面均表现出显著优势,并与机器人操作系统(ROS)[10]实现了无缝集成。通过在真实环境中进行系统测试验证了其卓越性能。
在动态场景中引入了实时语义分割网络,并结合移动一致性检查方法以过滤场景中的动态元素如行人等物体。这种改进使得定位模块与建图模块在鲁棒性和准确性方面均得到了显著提升。
DS-SLAM采用了单独线程构建密集语义三维八叉树地图[8]的方法,并通过采用对数概率过滤机制来去除不稳定体素并更新体素的语义信息以实现对环境的精确建模。

A. 语义SLAM

由于纯粹基于几何构建的地图无法提供关于环境概念的知识以促进复杂任务的完成许多早期的研究试图通过将环境中的物体与空间位置相关联来解决这一问题。随后提出了一系列方法用于预先训练对象识别子系统并将获取到的语义信息附加到识别出来的对象模型上。Vasudevan等人[11]采用了简单的朴素贝叶斯分类器来识别场景类别并基于预训练的对象模型提供空间上的分层概率表示这一方法成为当前研究的一个热门方向。然而这些研究主要集中在语义映射与目标物体识别上而忽略了其他潜在的信息资源。Bao等人[14]首次提出了结合场景中物体的几何特性和语义信息来估计相机姿态的方法这一突破性的工作不仅提高了目标物体定位精度还为后续研究提供了重要的参考框架。在本文中我们不仅利用了基于八叉树地图的空间表示技术还通过引入语义信息实现了动态环境下目标物检测与跟踪功能这一创新性的解决方案有效地提升了系统的性能水平

B. 动态环境中的SLAM

目前大多数 SLAM 方法都基于环境静止这一前提假设。然而,在现实中存在许多像人类这样主要活动物体的情况。因此,在最初针对静态环境设计的最先进 SLAM 算法无法有效应对复杂的动态场景

为了解决这一问题,在姿态估计之前

3 System Introduction

本节内容共包含五个主要部分。首先详细阐述了DS-SLAM体系架构图的相关内容。其次重点介绍了该框架中所采用的实时语义分割技术的基本原理与实现方法。随后深入探讨了用于评估特征点运动一致性的算法设计与性能评估指标。接着详细描述了基于语义分割与运动一致性双重检测机制的异常值识别方法及其在动态物体过滤中的应用效果。最后系统阐述了基于语义八叉树的地图构建方法及其在动态环境建模中的实际应用效果分析

A. DS-SLAM框架

在实际应用中,精确的位置与姿态估计以及在复杂环境中的鲁棒性被视为自主机器人性能的核心指标。该算法通常展现出卓越的效果。因此,在DS-SLAM系统中我们采用了ORB-SLAM2算法来实现基于全局特征提取与语义地图构建的整体解决方案。该系统的概览图如图1所示。

图2展示了DS-SLAM系统的整体架构。其中包含两个关键处理模块:局部建模模块与闭环检测模块。这两个模块在功能设计上与ORB-SLAM2方案具有高度相似性:前者负责处理新增的关键帧信息,并通过局部优化技术进行调整从而能够在相机姿态附近实现最优的三维重建效果;而后者则负责搜索并识别闭环路径,并在此基础上进行全局优化

使用Kinect2捕获的原始RGB图像同时被分配到跟踪线程和语义分割线程进行处理。跟踪线最先提取ORB特征点;随后粗略评估特征点的一致性运动,并记录潜在异常;接着等待来自语义分割线程预测的像素级别的语义标签图;当分割结果到达时,则根据当前结果以及之前识别出的关键异常;排除位于运动物体内的ORBF特异;最后利用剩余稳定ORBF特征求取变换矩阵

B. 语义分割

该系统架构旨在满足现实应用场景的需求,在实现实时性与准确性时需权衡两者的性能。基于caffe [17]框架的SegNet [4]算法实现了像素级语义分割功能,从而确保了系统的实时处理能力。经过PASCAL VOC数据集[18]训练的SegNet架构能够识别并分类20种不同的物体类型。在实际应用场景中,由于人类等物体往往处于动态状态,在特征点检测过程中位于人体部位的特征会被视为异常值。

C. 移动一致性检查

因为运动分割所需的时间较长,在另一个线程中可以轻松获得语义分割的结果;从而只需关注那些关键点是否发生了位置变化。如果某些关键点被识别为属于动态区域的元素,则该区域可以被视为动态区域的一部分;本文提出的方法思路清晰且易于理解。

  • 第一步涉及计算光流金字塔以便获取当前帧中的特征点。
  • 若匹配对位于图像边缘附近或中心3×3像素块的差异超过设定阈值,则舍弃该匹配对。
  • 第三阶段应用带最多内点的RANSAC算法确定基础矩阵。
  • 随后利用所述基础矩阵在当前帧中求解对应的极线方程。
  • 最后验证各匹配点与其对应的极线之间的距离是否低于设定阈值。
  • 若某匹配点与对应极线的距离超出范围,则判定该点处于运动状态。

基础矩阵对应地将前一帧中的特征点转换为当前帧中相应的搜索区域,并将其定位为极线。定义为p1和p2分别表示前一帧和当前帧中的匹配点,并以齐次坐标形式表示。

其中u和v是图像帧中的值。然后可以通过以下方程计算表示为I1的极线:

其中X、Y、Z代表向量空间中的线元素,F为基本矩阵.接着,匹配点与其对应极线之间的距离可通过以下方法计算:

D代表距离。通过检查运动一致性来确定动态点的方法如所展示,该方法引用了算法1,并且ε被设定为一个阈值。

D. 异常值排除

由于移动对象(如人)的形态多变以及复杂的动态行为,在运用运动一致性检测方法时难以精确提取出完整的动态区域边界线框图,并且这一过程所需的时间开销非常巨大。相比之下,在DS-SLAM框架中通过部署语义分割网络能够较为精准地获取目标物体的完整轮廓信息。**我们的创新思路在于整合语义信息与运动一致性检测结果的基础上构建双重语义知识库:判断物体是否处于移动状态。若检测到由运动一致性算法生成的一组足够数量的动态特征点位于分割区域边界内,则判定该物体正处于运动状态之中。若判定目标物体为移动体,则需删除所有位于其轮廓范围内的特征点信息。这种操作能够有效去除异常数据点并提高系统精度。**此外,在处理部分场景时还可以降低因误分割带来的负面影响;同时,在等待下一计算单元完成之前也可以开展相关运算工作——比如进行运动一致性检测计算等操作。这种优化策略能够在提升系统运行效率的同时保证各环节之间的良好衔接与协作运作。实验结果表明,在DS-SLAM系统中各运行单元所需时间基本相当

因为人类活动剧烈影响了机器人在绝大多数真实场景中的定位,并且基于现有的语义分割技术只能识别有限数量的不同类型。在此文章剩余部分中,默认将人类视为具有代表性的动态物体。理论上来讲,在任何情况下都可以实现对多个动态物体进行同时定位与语义分割。

当语义分割后的结果呈现时

E. 密集语义三维八叉树地图构建

基于语义的八叉树构建过程中

语义数据同样被整合进八叉树地图中。在八叉树地图中每个体素都对应特定的颜色这一设定下每种颜色代表一种 semantic 标签。例如在该系统中红色体素代表沙发这一场景下粉色体素则对应人这一类别。建模及 semantic 融合的过程均采用概率方法进行从而使得更新体素属性更为便捷基于密集 semantic 三维八叉树的地图结构能够为移动机器人执行高级任务提供可靠的基础支持

DS-SLAM旨在处理动态环境问题,在此背景下构建的地图中不应包含任何动态物体。通过语义分割结果可以有效地区分并剔除这些动态物体以提高系统的准确性。然而,在某些复杂场景下如当多个物体相互重叠时 语义分割结果可能会导致无法完全准确识别或出现误判的情况 为此 DS-SLAM采用了Log-odds评分方法[8]来减小动态物体对系统估计的影响 该评分机制通过定量评估每个体素被占有的概率从而帮助优化整体估计精度

表示一个体素被占据的概率,

表示该概率的log odds得分。

可以通过 logit 变换计算得到:

反向变换:

表示时间 t 时刻体素 n 的观测结果,且其从开始到时间 t 的 log odds 得分为

。那么在 t+1 时刻,体素 n 的log odds得分可以根据以下公式计算:

其中,如果在 t 时刻观测到体素 n 被占据,则

等于

,否则为0。增量

该值是预先设定好的参数。
该公式表明,在体素被多次观测到占据时其log odds得分会上升而在未被多次观测到占据的情况下则会下降。
当体素被多次观测到占据时其log odds得分会增加否则其log odds得分会下降。
通过反向逻辑函数可以计算出体素的占据概率p。
只有当占据概率p超过预先设定的阈值时才认为该体素处于被占用状态并将在八叉树地图中进行可视化处理。
换句话说一旦某一个体素已经被观测到多次处于被占用状态我们就认为它是稳定的占用状态并以此为基础构建动态环境下的八叉树地图。

4 Experimental Results

本节将呈现实验结果以验证DS-SLAM的可靠性。我们对各个模块所需时间进行了评估并基于公共TUM RGB-D数据集在动态场景中测试了DS-SLAM性能表现。值得注意的是TUM RGB-D数据集中包含动态物体的序列这种情况下SLAM算法的表现可能会受到干扰其中观察者移动较大时甚至可能占据画面的一半以上从而影响算法的鲁棒性和准确性我们在极端条件下进行了模拟测试以验证算法的适应性能力同时还将DS-SLAM与ROS系统进行了集成并在标准机器人 TurtleBot2 上进行了功能验证以评估其实时处理能力以及生成三维语义八叉树地图的能力所有实验均在配置精良的计算环境中运行包括一台搭载Intel i7 CPU P4000 GPU及32GB内存的高性能计算机以及配备Kinect V2相机捕获图像序列的TurtleBot2机器人平台

A. 使用TUM RGB-D数据集进行评估

该研究采用了TUM RGB-D数据集[9]来获取一系列动态场景;这些场景通过外部运动捕捉系统获得了精确的地平线基准(包括行走者、坐姿个体以及桌型物体)。在实验中,我们重点选择了行走序列(由于参与行进的人频繁移动)。这些场景中的参与者被视作高度动态的物体(尤其是难以处理的情况)。同时考虑了坐姿场景(而这些场景被认为是低动态的)。

DS-SLAM采用了ORB-SLAM2[1]作为其全局SLAM方案的基础,并因其卓越性能而被公认为当前最优且稳定的SLAM技术之一。为此我们进行了系统性的对比分析。为了量化评估不同算法的表现我们引入了两个关键度量指标:绝对轨迹误差(ATE)与相对姿态误差(RPE)。其中ATE指标反映整体的一致性特征而RPE则用于评估平移与旋转的变化趋势

对定量比较结果进行了系统性分析,并列出了表格I至III中各项数据。研究中将xyz表示为相机沿x、y、z轴方向运动的参数[9]。文中详细阐述了RMSE(Root Mean Square Error)、平均误差、中位误差以及标准偏差(S.D.)的具体计算方法,并重点强调RMSE和S.D.的重要性,因为它们更能反映系统运行的稳定性和可靠性特征。此外还对比展示了DS-SLAM相较于原始ORB-SLAM2在各性能指标上的提升幅度。具体改进值的计算方法如下所述:

其中η代表改进值,o代表ORB-SLAM2的值,r 代表DS-SLAM的值。

从表I至表III的数据统计结果显示, DS-SLAM技术可使大多数高动态视频序列的表现获得显著提升, 其性能进步幅度可达到数量级层面的明显改善。具体而言, 在ATE指标方面, 采用DS-SLAM后, RMSE值较传统方法降低了约2.08%, 同时标准差(S.D.)也减少了约2.6%. 实验结果表明, DS-SLAM显著增强了高动态环境下SLAM系统的鲁棒性和稳定性表现。然而, 在低动态视频序列处理中, 如fr3_sitting_static这一特定场景, DS-SLAM所获得的性能提升并不十分明显。我们推测这一现象的原因在于ORBSLAMv2算法本身具备较强的适应性, 可在较低动态条件下正常工作并实现良好效果, 因此进一步优化的空间较为有限

图3和图4分别展示了ORB-SLAM2与DS-SLAM在高动态fr3_walking_xyz序列中的选配ATE与RPE曲线。从观察结果来看, DS-SLAM中的误差明显降低。

就实际应用而言,在SLAM系统中实现实时性具有重要意义。我们对主要处理模块的运行时间进行了测试。结果显示在表IV中。每帧平均处理时间为59.4毫秒,在主线程中完成。相比于之前采用非实时方法(如引用编号19)的系统,在动态物体过滤方面DS-SLAM提供了更高的实时性能。

B. 在真实环境中的评估

本研究通过将DS-SLAM与ROS集成,并在实验室环境中进行广泛测试以验证其稳定性和实时性

图5 异常值排除的结果

如图6所示,构建了细致的三维语义八叉树地图重建结果。其中红色体素标记沙发区域,蓝色体素标注显示器位置。通过应用log-odds评分机制筛选不稳定的体素,在此过程中行人的移动对重建结果无显著影响。此外,在构建八叉树结构的同时生成二维代价层数据集用于路径规划。

图6 密集的三维语义八叉树地图重建

5 Conclusions

本系统实现了对动态环境中的语义SLAM框架的完善构建,并通过动态物体检测机制与八叉树空间分割相结合的方式,在位姿估计过程中实现了对动态场景的有效过滤。该系统由五个独立运行的子进程协同工作:首先是目标跟踪模块、随后是场景语义分割算法、接着是局部图构建过程、之后是闭环路径检测机制以及最后的大规模地图生成网络。采用基于深度学习的方法进行实时分割,并结合运动一致性校验算法来识别并排除动态区域内的干扰;通过目标追踪算法确定的目标特征点被定位到已知dynamic区域之外的位置;为了提高空间分辨率并减少计算负担,在构建三维八叉树时采用基于对数几率得分的方法来剔除低质量的空间单元格;为了验证系统的鲁棒性,在TUM RGB-D数据集中选取了一系列复杂度较高的dynamic测试序列进行实验评估

然而,在DS-SLAM系统中仍有一些正在进行的任务项目尚未完成。由于这类网络仅能识别有限种类的对象类型,在实际应用场景中往往显得力有未逮。每当系统检测到闭环事件时必须进行八叉树地图的重建工作。未来我们计划通过优化运动一致性检查机制来提升该系统在实时性方面的表现,并采用更为密集的语义八叉树地图结构以实现更高水平的应用需求满足能力

全部评论 (0)

还没有任何评论哟~