SOF-SLAM:一种面向动态环境的语义视觉SLAM(2019,JCR Q1, 4.076)

提出了一种动态特征检测方法&语义光流,是一种紧密耦合的方法,能够充分利用隐藏在语义和几何信息中的特征动态特征,有效、合理地去除动态特征

1. 贡献

本文提出的SOF-SLAM充分利用了语义分割的运动先验信息和极线几何约束下的运动检测信息的互补性,而现有的SLAM系统要么完全依赖于语义信息,要么依赖于几何信息,或者天真地结合它们的结果来删除动态特性。SOF-SLAM提出的动态特征检测算法,即语义光流,利用语义分割信息来辅助极线几何的计算,而不是简单的结果组合。因此,我们的系统可以更合理有效地去除动态特征,从而得到更准确的结果。

2.SOF-SLAM

A . 框架

首先,ORB特征提取过程与原ORB-SLAM2相同,即静态特征和动态特征同时提取。然后我们提出的动态特征检测方法语义光流可以有效地去除动态特征。剩余的静态特征被保留,用于跟踪线程中新帧的后续姿态估计。保持原线程映射和局部线程映射的线程映射和局部线程映射保持相同。
在这里插入图片描述

B. 语义光流

动态特征检测与去除的语义光流流程图如图3所示。一方面,利用当前RGB图像提取球体特征。另一方面,利用SegNet在另一个独立线程上生成的当前RGB图像的语义分割结果,计算语义光流。利用语义光流产生的对应关系得到可靠的基本矩阵,进而有效地检测出真实的动态特征。
在这里插入图片描述
1) 基于语义分割的运动先验
使用SegNet编解码网络对每个输入图像进行像素级语义分割。
  SegNet的体系结构由两个主要模块组成:编码器网络和解码器网络。编码器网络由13个卷积层组成。每个编码器层都有对应的解码器层,因此解码器网络也有13层。首先将输入图像送入编码器网络,编码网络中的每个编码器与滤波器组进行卷积,生成一组特征映射,然后经过批量归一化、ReLU(整流线性单元)激活函数和maxpooling等过程。由编码器网络产生的特征映射然后被馈送到解码器网络。解码器网络使用从相应编码器特征映射中存储的最大池索引对输入特征映射进行上采样。上采样过程可以生成稀疏的特征映射。然后将这些特征映射与一个可训练的滤波器组卷积,以生成密集的特征映射。然后对每个映射应用批处理规范化步骤。将解码网络最终解码器输出端的高维特征表示输入到可训练的软极大分类器中,该分类器可以产生每个像素的语义标签。采用SegNet的caffe实现进行像素级语义分割。我们使用的SegNet模型是在PASCAL VOC数据集上训练的,它总共可以分割出20个类(飞机、自行车、鸟、船、瓶子、公共汽车、汽车、猫、椅子、牛、餐桌、狗、马、摩托车、人、盆栽、绵羊、沙发、火车、监视器)
  每个像素的先验知识可以大致分为三类:静态、潜在动态和动态。在朴素语义SLAM中,静态特征被保留,动态特征被去除,但是对于潜在的动态特征,有两种处理方法,要么静态处理,要么动态处理。这两种方法都会很麻烦。

  图4显示了包含潜在动态对象的场景。在这个场景中,有两个监视器和两个椅子,通过SegNet的分割可以得到它们的属性应该是潜在的动态的,而它们的实际运动特征是:两个监视器是静态的,左边有轮子的椅子由于坐在上面的人而移动,右边的椅子是静态的。如果我们把所有这些物体上的特征都看成是动态的,去掉它们,定位的精度会更差,这是因为两个显示器和椅子上都有很多静态特征,它们角上的特征非常独特,这意味着这种特征可以提供连续帧之间准确可靠的对应。静态特征数量的减少,特别是特征的去除,会导致精度下降。如果将这些物体上的特征视为静态特征并加以保留,那么由于左座椅上的动态特征,定位精度也会受到影响。也就是说,仅仅依靠语义分割,场景中的一些动态部分就不能得到很好的处理。在这里插入图片描述
第二,尽管近年来出现了先进的CNN结构,语义分割的精度有了很大的提高,但是分割结果在对象边界附近的模糊性仍然是不可避免的。
  在面向动态环境的SLAM问题中,SegNet的语义分割结果有助于去除动态特征,但分割结果实际上与场景的运动情况无关。也就是说,无论场景中的对象是否是动态的,分割结果都应该是相同的。
2) 多视图几何约束
  利用极线几何特性的几何约束可以用来检查特征是动态的还是静态的。在多视图几何中,静态特征应满足极线约束,而动态特征会违反标准极线约束。图6(a)示出了两个连续帧中对应的图像点之间的关系。X是静态映射点,在两个连续帧中成像,x1在帧I1,x2在帧I2。C1和C2分别是I1和I2相机的光学中心,连接C1和C2的线称为基线。基线和地图点X决定了一个平面π,称为极平面。平面π分别在L1线和L2线与像面I1和I2相交。L1和L2被称为极线。基线与图像平面的交点称为外极,即图6中的e1和e2。
在这里插入图片描述
  假设现在我们只知道I1中的x1,我们想在I2中找到它的对应x2,如图6(b)所示。在没有深度信息的情况下,我们只知道地图点X位于x1投影的射线背面,因此我们只知道x2位于极线L2。这种几何约束实际上描述了从一幅图像中的一点到另一幅图像中对应的极线的映射,映射关系可以用基本矩阵F来描述:
在这里插入图片描述
  极线几何中的关键是基本矩阵F的估计:
在这里插入图片描述
  F可以用至少五对特征对应来计算,但通常使用经典的八点算法。设f表示包含基本矩阵f的所有元素的向量:
在这里插入图片描述在这里插入图片描述
6

f中有9个未知元素,但由于基本矩阵f的无标度特性,f的自由度可降为8。因此,如果两个连续帧之间有8对像点对应,我们可以通过求解(6)形式的由8个方程组成的方程组来计算F。
  对于在连续两帧之间寻找对应的图像点,光流是一种方便有效的方法。为了减少错误通信的影响,采用了RANSAC。事实上,这种方法具有鸡和蛋的特点。为了利用极线几何约束检测动态特征,首先需要估计基本矩阵F。另一方面,我们必须使用连续帧中静态映射点的对应关系来估计基本矩阵F,因此在计算光流的过程中存在一个局限性:场景中的大多数特征必须是静态的,这样RANSAC就可以减少剩余的少数动态特征的影响。
3) 紧耦合形式下的动态特征检测
这些传统方法首先利用几何或语义信息分别检测动态特征,然后通过投票模块将两种结果进行组合。有两种投票策略:如果两个单独的结果都是动态的,那么最终结果是动态的[25],或者如果其中一个单独的结果是动态的,那么最终结果是动态的[26]。首先利用语义信息得到一个相对可靠的基本矩阵F,然后通过几何约束来检测真实的动态特征。在我们的方法中,基本矩阵是将这两个信息源连接在一个统一框架中的桥梁,并且只需决定一个特征是否是动态的。

  首先利用SegNet得到运动先验,然后在计算从当前帧到当前帧的最后一帧的光流时,用运动先验作为掩模去除动态和潜在动态特征的对应关系。只保留可靠的对应关系,如图8所示。然后使用语义静态特征的对应而不是所有的对应来计算基本矩阵F。
在这里插入图片描述
  利用上述计算出的基本矩阵F,利用极线约束来寻找真正的动态特征。在我们的实现中,我们选择了1个像素作为阈值,当前帧中的特征被认为是真正的动态的,在最后一帧中对应的特征与极线相距超过1个像素。
  图9(a)为单纯利用语义分割结果的朴素语义方法的动态特征去除结果。图9(b)显示了我们的语义光流方法的动态特征去除效果。我们第一眼看到的人几乎都是动的。与朴素语义方法相比,该方法克服了SegNet分割不完整和不准确的特点。其次,确认两台显示器和右侧座椅上的特征是静态的,而左侧座椅上的特征是动态的,该座椅有轮子,并随人移动。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值