《Semantic SLAM With More Accurate Point Cloud Map in Dynamic Environments》论文笔记

Semantic SLAM With More Accurate Point Cloud Map in Dynamic Environments

Abstract 摘要

SLAM系统在动态环境下构建的全局点云图的质量与相机位姿估计和局部点云图中噪声块的去除有关。

多数动态SLAM系统主要是提高相机定位精度,但对噪声块去除的研究很少。本文提出了一种新的语义SLAM系统,该系统具有更精确的动态环境点云地图。

我们通过BlitzNet获得了图像中动态对象的蒙版和边界框。通过在边界框中分析mask(掩模)的深度统计信息,对动态对象的掩模进行扩展。在几何分割后,通过形态学操作去除由动态目标残差信息产生的岛屿。利用边界框,将图像快速划分为环境区域和动态区域,利用环境区域中深度稳定的匹配点构造外极约束来定位动态区域中的静态匹配点。

Introduction 引言

当前在动态环境下工作的语义SLAM系统的主要思想是预先定义潜在的动态对象,获取对象的语义信息.然后将语义与几何信息相结合,准确分割出动态区域。最后,系统利用环境中的静态部分来估计相机的姿态。

本文SLAM系统的语义信息由BlitzNet提供,同时生成人等潜在动态对象的边界框和mask(掩码)

我们在动态对象的边界框中利用掩码的深度统计信息对动态对象的掩码进行扩展。然后对深度图像进行几何分割。将未包含在扩展掩码中的动态对象的残差信息分割为一些岛屿,通过简单的形态学操作删除这些岛屿,得到干净的局部点图。

Related Work 相关工作

A. Dynamic SLAM 动态SLAM

B. Semantic SLAM 语义SLAM

Dyna-SLAMMaskFusionMID-Fusion 都是使用Mask R-CNN作为语义分割方法的RGB-D SLAM系统

Dyna - slam 删除了所有潜在的动态对象,如人、汽车和动物。但有些动态对象不能被Mask R-CNN检测到,因为他们之前没有被定义为潜在的动态对象,例如旋转的椅子等。作者利用多视图几何来定位这些可移动的对象。

Mask Fusion的工作环境主要在室内,因此作者提出了两种判断目标是动态还是静态的策略:一是目标运动的一致性,其次,与人接触的物体是可移动的。

MID Fusion包括四部分:分割,跟踪,融合和光线投射。该系统为环境中每一个可能的刚性运动物体创建子地图,并将动态物体的几何、语义和运动属性信息融合到这些子地图中。在相机跟踪的过程中,mid - fusion丢弃了人类掩码区域的匹配点。

DS-SLAM 、SOF-SLAM 、SDF-SLAM使用SegNet作为语义分割算法。

DS-SLAM的作者假设人身上的特征点最有可能是离群点(outliers),因此将图像中的人排除在外,通过环境区域中的匹配点构造外极线约束(对极几何?)。然后利用约束来检测人是否是静态的。如果一个人被确定是静态的,那么匹配点的人可以用来预测相机的姿势。

SOF-SLAM 提出了一种利用语义信息辅助极线几何计算的动态特征检测算法,该系统能够有效地去除动态特征点

SDF SLAM是SOF SLAM的延续,性能优于SOF SLAM,解决了两个问题:一是慢速目标上的匹配点可以被识别为静态匹配点,二是相邻帧中的动态信息容易受到噪声干扰。

有些研究者直接利用边界框去除动态区域,而不是获取潜在动态对象的遮罩。

总结以上工作在动态环境下的SLAM系统,可以发现这些工作大多集中在提高相机定位精度上,而对所获得的点云图中噪声块去除的研究几乎没有。

SLAM所构建的全局地图的质量与两个因素有关。一是相机位姿估计的准确性,二是地图上的噪声块是否被有效去除。

由于现有的语义分割算法还不是很完善的,动态对象的一些信息会泄露到环境中,这些信息会被保留在构造的局部点云图中,形成大量的噪声块。这些噪声块会极大地影响地图的实际使用。另外,如果将这些有大量噪声块的点云地图转换成其他形式的地图,如octomaps[54],地图的质量不会有明显的提高。

System description 系统综述

在这里插入图片描述

本文提出的语义SLAM系统在动态环境中的总体概况如图1所示。首先,RGB图像经过一个CNN (Convolution Neural Network),同时进行目标检测和逐像素分割。

考虑到系统的实际应用,对于潜在动态对象的语义分割,CNN的选择需要在实时性和准确性之间取得平衡。我们选择BlitzNet作为我们语义SLAM系统的基础网络,它是一个实时的深度神经网络,在一次正向传播中进行对象检测和语义分割。检测到的对象包括人,显示器,椅子等。

我们将环境中的对象大致分为三类:

  • 动态对象,如人;
  • 潜在的动态物体,如椅子、书籍、键盘,其状态由动态物体决定;
  • 静态物体,如显示器,其在环境中的位置相对固定,不容易改变。

SLAM系统构建的全局点云图PG的本质是将每组关键帧得到的局部点云PiL拼接起来
在这里插入图片描述

式中,n为关键帧总数,i=1,…n

Ri和ti是将局部点云图转换为全局点云图所在坐标系的旋转矩阵和平移矩阵。Ri和ti的值由相机在空间中的姿态决定。

A. DYNAMIC OBJECT MASK EXTENSION 动态对象掩码扩展

在这里插入图片描述

BlitzNet获取的动态对象掩码并不完整,动态对象的一些信息会渗漏到环境中。在本节中,我们以人体蒙版扩展为例。如图2所示,将RGB图像与获得的人体面具图像进行比较,可以清楚地看到,坐着的人的身体部分没有包含在面具中,这些部分在图中用红色方框标记出来。为了更直观地观察人体渗漏到环境中的信息,我们将人体掩码对应的深度图像中区域的深度值设置为0。渗漏到环境中的人体部位绿色的方框标示出来。从深度图中可以看出,行走的人的一部分边缘也渗漏到了环境中。这样的深度图像和RGB图像产生的局部点云中会存在大量的噪声块,用蓝色的方框标记。

我们利用人体掩码区域的深度统计信息,在人体的边界框内找到属于人体但渗透到环境中的像素点,即人体mask的延伸。如图3所示,计算两个人体掩模区域对应的深度值。考虑到在人罩区域中可能存在一些深度值为0的像素,以及一些噪声,所以在统计过程中没有对0值进行统计。

如果动态对象远离相机,或者分割算法在特定类型的对象上表现不佳,则获得的遮罩的面积将非常小,因此遮罩中的深度值将不足以有效地表示动态对象的深度信息,此时删除整个动态目标所在区域。

同时,我们注意到动态对象的某些内容可能会泄漏到边界框之外的环境中。这些泄露内容的形状通常又长又窄。由于动态对象在环境中的连续运动,两个相邻帧中动态对象边缘的深度值之间的差值远远大于环境中的深度值。我们可以使用此功能移除这些窄边和长边,如下所示:

从当前深度图中减去上一张深度图,取绝对值为d_sub。若d_sub值很大,则像素(u,v)有两种情况。一个是环境中对象边缘的点。这种类型的点可以去除,因为在构建全局点云地图的过程中会有大量的冗余信息,并且对象边缘处的深度值变化很大,这就是所获得的点云中对象边缘处存在明显分层的原因。另一个是动态对象泄漏到环境中的问题。

动态扩展掩码的算法如下:
在这里插入图片描述

B. INTERACTION JUDGMENT BETWEEN POTENTIAL DYNAMIC OBJECT AND DYNAMIC OBJECT 潜在动态对象与动态对象的交互判断

潜在动态对象的状态由动态对象是否与其交互决定。所以首先判断潜在动态对象的状态。

首先,我们对图像中的人和潜在的动态对象进行标注,并得到相应的标注,如{P(1),。。。,P(N)},{O(1),。。。,O(K)}。

当P(i)的边界框与O(j)的边界框相交时,认为P(i)可以与O(j)相互作用,保存标签群{P(i),O(j)}。否则,删除标签组{P(i),O(j)},

接下来,对于上一步保存的标签组{P(i),O(j)},利用深度信息进一步确定P(i)与O(j)的交集。我们对P(i)和O(j)的掩码中的深度值进行计数,去除0值和离群值后,分别得到P(i)和O(j)的掩码中的深度值集DMaskP(i)和DMask O(j)。
在这里插入图片描述

公式(9)保存的标签组{P(i),O(j)}是彼此相交的标签组。

也就是两步判断

  1. 判断目标检测的边界框是否相交,相交则组成一个集合
  2. 判断深度值是否相交(在一定范围内),相交则与上一步获得的集合取交集为最终判断结果。

C. BOUNDING BOX TRACKING 边界框追踪

基于动态物体相对于摄像机的运动速度在短时间内恒定的假设,提出了一种双向搜索策略来跟踪动态物体的边界框。

当DKtIndicator=0时,表示在帧中未检测到动态对象。如果DKtIndicator=1,则表示在Kt帧检测到动态目标Dtarget

BBX Kt为Kt帧中动态目标Dtarget的边界框,坐标为左上到右下

当Ki帧没有检测到动态对象,向后搜索三帧,向前搜索三帧。通过这6帧中记录的值,可以跟踪当前帧Ki中动态对象的包围框。

如何判断当前帧中是否存在动态对象,如果存在动态对象,如何获取对象的包围框,如下所示:

  • 在前3帧和后3帧中检测到动态对象,认为该动态对象存在于当前帧Ki中,动态对象的边界框可以通过下式确定
    在这里插入图片描述

    其中Ki−np和Ki+nl是前一帧和最接近Ki的后一帧,在Ki−np和Ki+nl中检测到相同的动态对象,np≤3,nl≤3。

  • 当仅在前3帧或仅在后3帧中检测到动态对象时,该动态对象被认为存在于当前帧Ki中,并且最接近Ki的图像中的动态对象的边界框被用作Ki中的边界框。

  • 当Blitz-Net在这6帧中没有检测到动态对象时,我们认为当前帧Ki中没有动态对象。

本文提出的边界框跟踪算法能够有效跟踪被Blitz-Net遗漏的动态目标的边界框。

D. GEOMETRIC SEGMENTATION OF DEPTH IMAGE 深度图像的几何分割

在移除动态对象后,我们发现这些对象的一些信息仍然留在环境中。为了去除这些残差信息,对深度图像进行几何分割。在分割后的深度图像中,残差信息通常是一些孤立的小块,通过简单的形态学操作就可以去除这些小块。在深度图像中,不同物体之间的接合处深度不连续,即物体和背景之间的深度值变化很大。根据这一性质,深度图像的分割边缘可以被放置在深度不连续处。

我们对深度图的分割方法如下:

  • 使用大小为2∗2的滑块遍历深度图,滑块左上角像素对应的图像坐标为(u,v),记录滑块中的深度值如下:

    在这里插入图片描述

  • 深度图像可以通过以下公式快速分割:

    在这里插入图片描述

    其中τ3为预设阈值

  • 对分割后的深度图像中含有深度信息的图像块进行面积统计,得到Spatch(i),i=1,。。。,m,其中m是图像补丁的数量。由动态对象的残差信息形成的小块可以如下移除:

    在这里插入图片描述

    其中,τ4为预设阈值

E. FEATURE POINTS WITH STABLE DEPTH VALUES 深度值稳定的特征点

首先求相机外参矩阵,解最小二乘问题

在这里插入图片描述

对于相邻的两帧深度图像,存在深度值缺失的区域,这些区域的深度值为0。这些区域的匹配点不能为求解ICP(迭代最近点)提供任何有用的信息。此外,对象边缘处的特征点深度值会突然发生变化,这将直接影响(14)的求解。同时,动态目标上某些匹配点的深度值也会发生较大的变化。在本文中,我们利用具有稳定深度值的匹配点来求解(14)。

  • 首先检测图像块中每个特征点对应的深度值是否缺失。如果图像块中存在深度值为0的像素,则认为对应的特征点位于深度值缺失的区域,并删除该特征点。

  • 接下来,我们计算图像块中每个被保留的特征点对应的深度值的标准差。深度值突然变化的图像块中,深度值的标准差则较大。深度值标准差大的图像块对应的特征点可以通过设置适当的阈值来删除。在实验过程中,我们发现深度值突变的图像块个数通常比深度值稳定的图像块个数少得多。将得到的所有标准差存储在一个序列中,并剔除序列中离群值对应的特征点。离群值定义为距离中值大于3个MAD(中位数绝对偏差)的值。

    (在构建点云图的过程中,我们丢弃了深度值超过30000(6m)的点。距离越近深度值越精确)

经过以上两步得到深度稳定的特征点

经过以上两个步骤,就可以得到深度值稳定的特征点。如图13所示,获取的三种特征点分别显示在RGB和深度图像上,绿点表示深度值稳定的特征点,红点表示深度值缺失的特征点,蓝点表示深度值突变的特征点。

当在一对图像之间匹配特征点时,我们只使用那些具有稳定深度值的特征点。从图13可以看出,行走的人身上有大量的绿点,这是造成相机姿态估计误差较大的主要原因。

F. LOCATION OF STATIC MATCHING POINTS 静态匹配点定位

经过特征匹配后,图像中的特征点可以分为4组:

(1)环境区域中的内点集合PIE

(2)环境区域中的离群点集合POE

(3)动态区域中的动态点集合PDD

(4)动态区域中的静态点集合PSD。

  • 在匹配前一帧和当前帧环境区域中的特征点后,利用RANSAC算法有效地去除POE(2)

  • 通过PIE(1)可以计算出相邻两帧之间的基本矩阵F

  • 通过对前一帧和当前帧动态区域中的特征点进行匹配,得到匹配点PPD=[uPD,vPD,1],PCD=[uCD,vCD,1],匹配点到相应极线的距离可以通过下式计算:

    在这里插入图片描述

    lx和ly可以由式16得到

    在这里插入图片描述

  • 动态区域内的每一组匹配点都可以得到距离di,其中i为这组匹配点的序号,第i组匹配点所属的集合可以根据下式判断

    在这里插入图片描述

    属于PDD的匹配点分组被直接丢弃,属于PDD但不在动态对象掩码上的匹配点分组可以参与摄像机姿态估计。

Conclusion

本文提出了一种动态环境下具有更精确点云地图的语义SLAM系统。利用BlitzNet获得潜在动态目标的边界框和掩码,并根据边界框将图像快速划分为环境区域和动态区域。我们引入了一种新的深度分析统计方法来去除动态目标形成的噪声块和几何分割产生的小块。利用环境区域中的深度稳定匹配点构造核线约束,利用该约束可以定位动态区域中的静态匹配点。

在TUM RGB-D数据集的五个序列上的实验结果表明,该方法可以有效地消除动态对象的影响。与ORB-SLAM2、Dyna-SLAM和DS-SLAM的比较表明,该方法在相机位姿估计精度和轨迹完整性方面具有一定的优势。

然而,该方法也存在一些不足之处:首先,根据生活经验预先指定潜在的动态对象。如果一个未知的动态目标位于摄像机视场的大部分区域,系统会将该目标视为静态环境区域的一部分,从而导致摄像机的姿态和轨迹估计误差。其次,BlitzNet提供的语义信息没有得到充分利用。最后,我们没有研究动态物体在环境中的具体运动状态(也就是直接把默认的动态目标全部去除,忽略预先设定的动态目标,如人类,在环境中为静止的情况)。

针对系统中存在的问题,我们下一步的工作包括:未知动态对象的处理、语义地图的构建。同时,机器人在探索未知环境时,很可能会与一些动态物体发生碰撞。因此,需要进一步研究动态物体在环境中的运动情况,为机器人提供安全的导航路线

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值