DXSLAM论文阅读

1 篇文章 0 订阅

DXSLAM: A Robust and Efficient Visual SLAM System with Deep Features论文阅读


摘要

对于机器人自主运动来说,鲁棒且高效的SLAM系统是必须的。对于视觉SLAM算法,尽管各方面的理论框架都已经较为完善,但是特征点的提取和关联在大多数情况下依然是基于经验设计的,这些方法在复杂环境下较为脆弱。本文提出了一个使用CNN的特征提取方法,同时可以无缝集成到现在的SLAM框架中。本文提出的SLAM系统利用SOTA的CNN网络来检测每一帧的特征点,得到特征点描述子同时也得到整张图像的整体描述子。这些局部和全局的特征可以用于不同的SLAM模块,比起传统的手工特征点,这些特征使得系统对于环境变化和视点变化更为鲁棒。本文使用BoW(词袋)方法训练了一个局部特征的词典。基于局部和全局特征以及词典,实现了非常可靠的回环检测。实现结果表明,提出的方法与baseline相比效果显著提升,同时整个系统在测试数据上达到了更低的轨迹误差。通过使用Intel OpenVINO工具包优化CNN网络,以及使用Fast BoW库,系统极大的得益于现代CPU中的SIMD技术(单指令多数据)。整个系统可以在没有GPU之类的加速器的情况下实时运行整个系统。
代码开源地址
论文地址

背景介绍

特征点法SLAM在机器人工业领域得到了广泛应用。目前大部分SLAM算法使用的都是手工视觉特征,比如SIFT、ORB、Shi-Tomasi,这些特征在一些复杂环境下可能会失效。CNN提取的特征在很多计算机视觉领域都表现不错,但目前很少有工作将其用到视觉SLAM系统中,其中一个原因是CNN的引入会提高机器人对算力的要求并降低实时性。本文的主要贡献有:

  1. 一种基于图像全局特征提取和组匹配方法的,鲁棒的重定位方法。比传统的BoW方法达到更高的成功率和更低的计算量。
  2. 本文提出的SLAM系统使用了Intel OpenVINO工具包针对现代的CPU,对特征提取和回环检测中的Fast BoW进行了优化。系统在不依赖GPU的情况下实现了实时。

相关工作

视觉SLAM中的特征提取

MonoSLAM、ORBSLAM2、VINS-MONO这些经典SLAM系统中都使用了传统的手工视觉特征。深度CNN网络提出后,有些工作专门训练CNN网络来提取局部特征。这些网络以局部的图像块作为输入,然后通过网络得到这个块的描述子。
对于深度学习来说,关键点的提取比描述子的获取困难。DeTone等人使用自适应学习方法训练了一个全卷积神经网络,从而同时实现特征点的检测和描述子计算。也有使用GCN实现这些功能的,但是用到了视觉里程计来进行监督。Dusmanu设计了一个D2-Net。本文选择了HF-Net来实现特征点提取和描述子计算。

回环检测

BoW算法这里就不多言了。 FBoW是对BoW的优化。使用了x86 CPU上的SIMD技术,从而显著加速了字典的加载和匹配。目前的工作倾向于将CNN特征与BoW技术相结合。

重定位

与回环检测相似,但是与回环检测相比,重定位的候选帧数量更多同时更强调高召回而不是高准确。
对于图像搜索,我们可以使用局部特征聚合的方式(BoW),也可以使用CNN得到整副图像的全局特征。区别就是,后者是端到端学习的方式得到局部特征聚合成全局特征的策略,总的来说可以得到更好的表现。目前最好的用CNN聚合局部特征的网络是使用了NetVLAD层。在HF-Net中提出了将SuperPoint-like网络和NetVLAD绑定在一起,通过共享编码层的方式减少了计算量和训练难度。

基于深度特征的SLAM系统

整体框架

在这里插入图片描述
整个系统与ORBSLAM2相似,输入帧传入HF-Net得到局部特征点(关键点和描述子)全局特征点(图片描述子)。局部特征被用于定位建图线程。基于全局特征,实现了一个高效的重定位模块可以快速的进行系统初始化以及系统失败的恢复。为了消除累计误差并得到一个全局一致的地图,论文提出了一个鲁棒的回环检测方法。该方法同时考虑了HF-NET得到的全局特征,以及使用预训练BoW词典的局部特征匹配。为了进一步提高系统的效率,这里使用了FBoW方法,减少了系统初始化时间,同时提高匹配效率。

特征提取

我们使用一个深度CNN网络,HF-NET来提取图像特征。在HF-NET中,图像首先经过一个共享的编码器,然后进入三个并行的解码器来得到关键点检测得分、稠密局部描述子、以及全局描述子。HF-NET这种网络结构比其他深度CNN特征提取器在SLAM系统中有更好的表现。

字典训练

在传统Bow中,使用KD树来加速搜索过程。但是在训练过程中,如果KD树的层次和节点没有被适当的划分,那么字典就不能很好的区分特征。为了解决这个问题,我们充分考虑了相邻训练图像之间的关系,并使用增量式的方法训练字典。在训练阶段,我们首先同个HF-Net提取连续图像序列中的局部特征和全局特征。对于每一对相邻图像,我们暴力匹配图像。匹配上的局部描述子应该属于同一个节点,也就是一个word,而没有匹配上的特征应该分为新的叶子节点。考虑到提取特征的可靠性,我们根据关键点检测分数选出前300个匹配描述子。
为了提高特征匹配的和整个SLAM系统的效率,我们利用FBoW来构建整个字典。用FBoW训练后的字典以二进制形式保存,可以提高加载和匹配的效率。在测试中,DXSLAM初始化时间只有40ms,而ORBSLAM2需要6S。

全局特征重定位

在ORBSLAM2中使用了两阶段的方法进行重定位:首先根据BoW特征匹配选出与当前帧相似的候选帧;然后使用当前帧和候选帧之间的局部特征匹配估计出当前帧的位姿。直到所有候选帧都被,或者位姿已经被估计出来了。两种问题会导致重定位的失败:

  1. BoW方法没有找到任何候选帧
  2. 第二步时没有足够的局部特征匹配来进行位姿估计

为了解决第一个问题,这里利用学习到的全局描述子实现了一个粗略的图像搜索,比起BoW方法对环境和视角变化更为鲁棒。检索到的候选帧接着会用于组匹配。将当前帧与组内所有关键点进行匹配,第二个问题就能极大的缓解。最后就是在每个有足够匹配点的组上使用标准的RANSAC和PnP方法。

多级特征的回环检测

虽然这也是一个图像检索问题,但是回环检测与重定位相比更强调准确率而不是召回率,因为一个错误的回环对整个地图是致命的。因此回环检测时需要设置更严格的条件。在DXSLAM中,我们同时使用局部和全局描述子来检测回环。对于每个新关键帧,首先根据预训练的词汇表和局部描述子得到图像的描述向量,然后选出前K个相似的关键帧。由于BoW只考虑局部特征是否出现,忽略了空间关系,所以有可能会出现错误的匹配。
第二步,计算当前帧与K个候选帧之间全局描述子的内积,如果最低的距离低于一个阈值,那么我们就算检测到了回环。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值