代码改变世界

DF-SLAM:基于深层局部特征的深度学习增强型视觉SLAM系统

2020-09-07 15:20  计算机视觉life  阅读(1126)  评论(0编辑  收藏  举报

DF-SLAM:基于深层局部特征的深度学习增强型视觉SLAM系统

0.摘要

作为无人驾驶和智能机器人的基础,SLAM近来获得了广泛关注。但是,传统SLAM算法的非几何模块受到数据关联(data association tasks)的限制,成为了阻碍SLAM发展的瓶颈。为了解决此类问题,许多人们开始使用深度学习。但是,这些研究大多限于虚拟数据集或特定环境,甚至为了准确性而牺牲效率。因此,它们不够实用。
我们提出了DF-SLAM系统,该系统使用由神经网络获得的深层局部特征描述子来替代传统的手工特征。实验结果证明了其在效率和稳定性的提升。DF-SLAM在各种场景(包括照明变化强烈的场景)中均胜过主流的传统SLAM系统。它的多功能和移植性可以很好地适用于新环境。由于我们采用浅层网络(shallow network)来提取局部描述子,其他的部分与原始的SLAM系统相同,因此我们的DF-SLAM仍可以在GPU上实时运行。

1.介绍

  • 研究背景:

    • 传统的SLAM系统非常重视几何信息。很多优秀的研究都基于多视图几何坚实的理论基础。但是,SLAM系统中的非几何模块会出现问题。为了跟踪摄像机位姿,人们通常在跟踪时进行像素级的匹配操作,并优化少数帧的姿态作为局部地图。毫无疑问,姿势估计和地图估计中的漂移会导致误差不断累积
    • 同时,数据驱动技术——深度学习——让许多计算机视觉任务(例如分类和匹配)快速发展。这些成就反映出深度学习可能是解决数据关联(data association)问题的最佳选择之一。因此,越来越多人认为,图像之间像素级或更高级别的关联(我们上面提到的SLAM系统的瓶颈)也可以借助神经网络来处理。
  • 相关工作:深度学习已证明其在SLAM系统中的优势

    • 使用深度学习替换传统SLAM系统中的某些非几何模块[22,21,49,26,12]。这些方法通过仅修改经典pipeline的一部分(例如立体匹配,重定位等)来增强整个SLAM系统。

    • 使用深度学习获得的高级特征作为SLAM的补充[37,35,1,6,15]。这些高级特征更能推断内容-对象的语义特征,从而提高视觉场景的理解能力。

    • 端到端的学习模型[51,16]。这些方法在特定情况下优于传统的SLAM算法,并体现了深度学习在SLAM中的潜力。

      这三种工作的缺点:

      • 大多数深度学习方法严重依赖训练的数据,这意味着它们无法很好地适应未知环境。例如,我们无法确保要探索的房间是否有椅子和书桌,也无法保证书桌的语义优先级能有所帮助
      • 大多数深度学习增强型SLAM系统体现了深度学习的优势而舍弃了SLAM的优点。结果,它们可能会牺牲效率(SLAM算法的重要组成部分)以提高准确性。
    • 将传统的SLAM系统作为其基础框架[49、26、12、9],然后进行了大量的修改以支持深度学习

      这种工作的缺点:太多的变动可能会导致SLAM pipeline某些有用功能的丧失,使人们难以与现有研究进行比较,更不用说将这些技术迁移到其他SLAM系统了。结果,基于DL的SLAM不够成熟,无法超越传统的SLAM系统。

  • 本文核心思想:我们努力提出一种简单、轻便和高效的SLAM系统。我们的基本思想是通过深度学习提高局部特征描述子的鲁棒性,以确保帧之间数据关联的准确性。

  • 本文贡献:在本文中,我们提出了一种新的方法,用学习到的局部特征描述子代替传统的手工描述子。我们的方法在可移植性和便利性方面具有优势,因为深层特征描述子可以直接替代传统描述子。这种替代对于所有SLAM系统、甚至其他几何计算机视觉任务(例如SFM,相机标定等)都高度适用。在实际的SLAM系统中,学习到的局部特征描述子可以保证比手工描述子更好的性能[30],并实现惊人的精度提高。由于我们采用浅层神经网络来获取局部特征描述子,因此不会在GPU上花费很多时间,并且系统几乎可以实时运行

3.系统概述

DF-SLAM系统采用传统主流SLAM的pipeline,使用学习到的局部特征描述子,替代ORB、SIFT之类的手工特征。系统包括三个部分:跟踪(Tracking)、建图(LocalMapping)、闭环检测(Loop Closing)。只要在跟踪之前捕获并添加了新的一帧,就会从中提取局部特征描述子。
系统框架图如下:
在这里插入图片描述
在这里插入图片描述

本文使用TFeat Network提取图片中的特征点(128维),其中的训练策略换成了HardNet的困难负例挖掘(hard negative mining)。特征提取无需先进行高斯模糊(Gaussian Blur ),直接输入原始图片的patches。
TFeat Network的结构如下:
在这里插入图片描述

本文还是用了在ORB-SLAM中也使用过的基于DBoW的方法,从特征描述子中提取出视觉词汇(Visual Vocabulary),以tree的方式存储。通过为每一帧配备一个词向量和特征向量,可以快速计算两帧的相似程度。

译者注:DBoW是一个词袋(bag of word)的c++库

4.实验结果

EuRoC数据集:ORB-SLAM2与DF-SLAM在有/无闭环检测的对比结果,使用的是均方根误差(RMSE,root-mean-square error)。没有闭环检测是想进一步验证系统的稳定性和准确度

在这里插入图片描述

TUM数据集:ORB-SLAM2与DF-SLAM的对比结果。“Tracked”是整个10次测试中没有跟丢的次数。
在这里插入图片描述

实时性:i5-4590、GTX TITAN X、pytorch c++、CUDA

  • 对于一个patch,模型一次的前向传播时间为7e-5秒
  • 一张图片中提取1200个关键点要0.09秒
  • 并行运行跟、建图、闭环检测,10~15fps。不过,本文相信可以减少特征数量来进一步优化达到实时。

HPatch数据集:将本文的特征点与ORB、SIFT进行对比。本文的特征根据有/无使用hard negative mining可以分为TFeat和HardTFeat,而HardTFeat_HD是在原始HPatch数据集上训练的,HardTFeat_HF则是用了基于FAST的HPatch训练得到的
在这里插入图片描述

5.结论

我们提出了DF-SLAM,该系统在传统的SLAM中结合了学习到的特征。 DF-SLAM充分利用了深度学习和几何信息的优势,并在众多实验中证明了效率和稳定性的显着提高。即使在充满挑战的场景中,也可以稳定、准确地工作。深层特征的使用带来了更好的数据关联,并且是可以进一步研究。出色的结果证明了即使用小型深度学习模型来增强SLAM系统也能带来令人兴奋的结果。

未来工作

  • 提高在极端条件下DF-SLAM定位和建图的稳定性,以及DF-SLAM的速度。
  • 设计一个强大的局部特征检测器,以与我们系统中使用的描述符相匹配。
  • 在线学习(Online learning)
  • 使用全局特征来优化全局BA(bundle adjustment),并为DL-SLAM建立一个完整的系统

欢迎加入公众号读者群一起和同行交流,目前有SLAM、检测分割识别、三维视觉、医学影像、GAN、自动驾驶、计算摄影、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
投稿、合作也欢迎联系:simiter@126.com
在这里插入图片描述

长按关注计算机视觉life
在这里插入图片描述