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

  • 1. 贡献
  • 2.SOF-SLAM
    • A . 框架
    • B. 语义光流

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的所有元素的向量:

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分割不完整和不准确的特点。其次,确认两台显示器和右侧座椅上的特征是静态的,而左侧座椅上的特征是动态的,该座椅有轮子,并随人移动。

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

  1. 面向动态环境基于点的语义SLAM系统

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:robot L | 来源:知乎 https://zhuanlan.zhihu.com/p/133 ...

  2. 面向动态环境基于面元的RGB-D SLAM系统

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:robot L https://zhuanlan.zhihu.com/p/142175916 本 ...

  3. VDO-SLAM :一种动态目标感知的视觉SLAM系统

    VDO-SLAM :一种动态目标感知的视觉SLAM系统 (VDO-SLAM :A Visual Dynamic Object-aware SLAM System) 论文地址:https://arxiv ...

  4. 一种面向危险环境远程操作的仿人随动机器人

    摘要: 为代替专业人员在高危环境中工作,开展了一种面向危险环境远程操作的仿人随动机器人研究.首先,基于人体上肢生物学特性,设计了从端仿人随动机器人并利用蒙特卡洛法对其理论运动空间进行分析.其次,依据人 ...

  5. RP-VIO:面向动态环境的基于平面的鲁棒视惯融合里程计(IROS2021)

    RP-VIO: Robust Plane-based Visual-Inertial Odometry for Dynamic Environments 来源:Ram K, Kharyal C, Ha ...

  6. 最新语义视觉SLAM综述:面向应用的移动机器人自主导航解决方案

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 论文名称: A survey of image semantics-based visual simu ...

  7. slam特征点深度 svd_【干货】视觉SLAM面试题汇总(第二部分)

    小伙伴们大家好!上期我们已经放送了第一部分slam面试题库接下来就是第二部分福利时间啦~ 26. 除了RANSAC之外,还有什么鲁棒估计的方法? 27. 3D地图点是怎么存储的?表达方式? 28. 给 ...

  8. slam特征点深度 svd_SLAM初探:关于视觉SLAM的一些常识

    视觉slam从根本上其实就是为了回答两个问题,机器人在哪,机器人所处的环境是什么样的.这其实和人进入一个陌生的环境时所思考的问题非常相似. 比如我们被拉进了一个陌生的屋子,我们会首先观察这个屋子,观察 ...

  9. 【无人机自主导航3-ORB-SLAM2】Gazebo仿真环境下的视觉SLAM

    一.背景 无人机的自主导航需要无人机的位置信息.姿态等,在空旷的室外环境,一般需要基于GNSS系统进行位置信息的获取与无人机导航. 但在室内等无GNSS的情况下,我们就需要其他的手段来实现. 在我们确 ...

  10. 计算机视觉与深度学习 | 城市拒止环境下的视觉SLAM

    ================================================ 博主github:https://github.com/MichaelBeechan 博主CSDN:h ...

最新文章

  1. NLP机器翻译深度学习实战课程基础 | 深度应用
  2. 20分钟一键自动化部署10台集群规模实战(隆重分享)
  3. 口令即漏洞 放弃它吧
  4. python字符串写入excel-python 将数据写入excel
  5. WebMagic功能——XPath、CSS选择器、正则表达式 || 抽取元素API、获取结果API || ​​​​​​​获取链接||​​​​​​​使用Pipeline保存结果
  6. DisplayPageBoundaries 打开word后自动将页面间空白隐藏 (auto+定时器)
  7. Android官方开发文档Training系列课程中文版:数据存储之键值对序列存储
  8. 无痕模式_无痕网络导航
  9. #!/usr/bin/env python与#!/usr/bin/python
  10. mybatis中association和collection的column传入多个参数值
  11. 使用GDAL库中的RPC校正问题
  12. [python] 将一个序列的排序方式扩展到其他序列
  13. 随记:STM32L053LL库LPUART串口DMA接收数据
  14. oracle sys改密码,忘记oracle的sys用户密码怎么修改
  15. Ubuntu下添加开机启动项的2种方法
  16. 徒手攀登酋长岩,世界第一人!
  17. refind引导的win10+ubuntu18.04开机启动
  18. 借助 usb转rs232 模块实现两台电脑文件的传输
  19. 与体育行业有关的e–r图_体育产业与相关产业的产业关联度研究
  20. Java(回文数--一种比较简单的写法)

热门文章

  1. 99%的人都不知道的减肥小秘密,你必须知道
  2. PCIe扫盲——PCIe卡Spec(CEM)导读
  3. 2021牛客暑期多校训练营#5:C-Cheating and Stealing
  4. leetcode(17~30)
  5. 领导力 之 《情境领导》
  6. 2021年最新版Git一天入门教程
  7. 转:软件开发的葵花宝典
  8. #二维差分# [ssloj 1467] U
  9. 06-jQuery属性操作
  10. java框架-Springmvc-quzrtz-jasperreport-pio-pdfbox-jedis