论文笔记 DXSLAM: A Robust and Efficient Visual SLAM System with Deep Features
论文链接:https://arxiv.org/pdf/2008.05416.pdf
代码链接:https://github.com/ivipsourcecode/dxslam
主要内容
本文的主要工作为使用CNN(Convolutional Neural Network,卷积神经网络)提取特征,然后将所提取的特征整合到现代的SLAM(ORB SLAM2)框架中。其中,作者选择了性能优异的HF-Net,提取每帧图像的局部特征以及整幅图像的全局特征,使得所整合的SLAM系统,相比使用手工特征点的SLAM系统,在环境变化、视角变化情况下拥有更好的鲁棒性。ORB SLAM2中使用BoW(Bag of Words,词袋模型)来加速特征点的匹配,本文中作者使用了FBoW(Fast Bag of Words)来进一步加速词袋的训练以及通过词袋模型进行的特征点匹配过程。并且本系统可以在依赖GPU,在CPU上运行(不愧是和Intel合作的论文)。
论文的主要贡献
1、通过CNN提取的特征,相比于手工设计的特征,使得整合后的SLAM系统在环境和视角变化的情况下有更好的鲁棒性。
2、通过全局特征的辅助,使得SLAM系统中的重定位方法更加鲁邦;同时,FBoW相比于传统的BoW,有更高的成功率和更小的计算量。
3、基于全局和局部特征,提出了一种可靠的闭环检测方法,同时一种新型的词袋被训练,用来整合局部特征。
4、第一款基于深度学习特征点法并且可以在无GPU的情况下运行的SLAM系统。
整个框架如下图所示
总览
整个框架类似于ORB SLAM2,不同点主要在于特征点提取部分,作者使用了HF-Net来提供局部以及全局特征。局部特征主要用于定位和制图流程。基于全局特征,一个高效的重定位模块被建立,用于系统初始化或者跟踪失败时快速重定位,同时,一个鲁邦的回环方法被提出,用来减少累计定位误差并获得全局一致地图。这个方法使用了HF-Net提取的全局特征,以及事前训练好的词袋模型进行局部特征匹配。进一步,为了降低系统初始化时间,提升系统效率,采用了FBoW代替传统的BoW。Open VINO工具包的使用,使得系统可以通过CPU完成实时的特征提取。
特征提取
使用HF-Net,从每个图像帧提取特征。图像首先经过一个共享的编码器,然后通过三个并行的解码器,分别预测关键点的检测得分、稠密的局部描述子和全局描述子。前两个解码器拥有和SuperPoint一样的结构,全局描述子则由NetVLAD层通过聚类得到。
词袋训练
传统的BoW采用训练K-D树的方式来加速搜索过程,但是如果K-D树的层和节点数在词袋训练的过程中没有得到合理安排,单词就难以很好地区分出特征。为了解决这个问题,在充分考虑了所训练的图像序列之间的关系后,采用了一种增量式的方法训练词袋。在训练过程中,首先运用HF-Net提取连续图像序列中的关键点和局部描述子。对每一对临近的图像,使用暴力匹配的方式进行图像匹配。匹配成功的局部描述子应该属于相同的并且已经存在的叶子节点中,即视觉单词;未匹配成功的特征会被分配到新的叶子节点。为了保证所提取特征的可靠性,作者通过关键点的检测得分进行排序,选择得分最高的300个成功匹配的描述子,将他们当做单词进行训练。在所有的训练图片被处理后,可以得到一系列的视觉单词,并将这些单词打散到父节点中。文中运用FBoW代替传统的BoW训练词袋,极大程度上提升了系统效率。以初始化过程为例,DXSLAM只需要40毫秒,ORB SLAM2则需要6秒。
使用全局特征进行重定位
ORB SLAM2使用一个两阶段的流程实现重定位,首先使用BoW进行特征匹配,来检索近似于当前的候选帧,然后通过匹配当前帧和每个候选帧的局部特征点,来估计当前帧的位姿,直到全部候选帧遍历完或者当前帧的位姿被成功估计。失败往往有两种可能性:
1、BoW未能检索到任何候选帧。
2、在第二阶段,没有足够的匹配点来实现位姿估计。
解决第一个问题的方法是:通过学习得到的全局描述子,实现一种粗的图像检索,,这种方法被广泛证明,在针对环境和视角变化时,比BoW方法拥有更好的鲁棒性。被检索的候选帧随后被用来做群体匹配。通过匹配当前帧的和群体中的全部关键点,第二个问题可以得到很好地缓解。当有足够的匹配的特征点时,会对每个群体执行RANSAC和PnP过程。
使用多层次特征来实现闭环检测
相比于重定位重视召回率,闭环检测更加重视准确率,因为一个错误的闭环检测会损坏整个地图。在DXSLAM中,作者使用局部和全局描述子来检测回环。对每一个新的关键帧,通过和训练好的的词袋节点进行匹配,将局部描述子量化为单词,然后关键帧可以使用一个向量进行表示。通过计算不同向量(关键帧)之间的距离得到相似度得分,并且挑选得分最高的K个关键帧。向量 v 1 v_1 v1和向量 v 2 v_2 v2之间的相似度的定义为:
s ( v 1 , v 2 ) = ∑ i = 1 N ∣ v 1 , i ∣ + ∣ v 2 , i ∣ − ∣ v 1 , i − v 2 , i ∣ s(v_1,v_2)=\sum_{i=1}^N|v_{1,i}|+|v_{2,i}|-|v_{1,i}-v_{2,i}| s(v1,v2)=i=1∑N∣v1,i∣+∣v2,i∣−∣v1,i−v2,i∣
因为词袋只整合了局部描述子的的分布而忽视了他们的空间关系,所以会有误匹配的发生。在这里,作者使用全局描述子作为补充标准处理这个问题。在闭环检测的第二阶段,通过当前帧和每一个上一步挑选出来的K个关键帧做内积运算,作为它们之间的距离。距离当中的最小值,如果小于预先定义的阈值,就被检测为回环。
评价
论文笔记 DXSLAM: A Robust and Efficient Visual SLAM System with Deep Features相关推荐
- 论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning
论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning 2017-06-06 21: ...
- 【论文笔记】Learning Synergies between Pushing and Grasping with Self-supervised Deep Reinforcement Learn
文章目录 [论文笔记] Learning Synergies between Pushing and Grasping with Self-supervised Deep Reinforcement ...
- 《论文笔记》Robust Cooperative UAV Visual SLAM
时间:2011 作者: 创新点: 将单机VSLAM扩展到了多机C-VSLAM(中心化方式).单机VSLAM的实现基础是基于NH∞滤波器(具体见参考文献[18][19]).本文重点在VSLAM和C- ...
- 论文笔记:CLIP:Learning Transferable Visual Models From Natural Language Supervision详解
paper:https://arxiv.org/abs/2103.00020 代码:GitHub - openai/CLIP: Contrastive Language-Image Pretraini ...
- 【论文笔记】VOLO: Vision Outlooker for Visual Recognition
论文 论文题目:VOLO: Vision Outlooker for Visual Recognition 论文地址:[2106.13112] VOLO: Vision Outlooker for V ...
- [计算机视觉] AprilTag: A robust and flexible visual fiducial system(2011)论文理解
论文地址 chrome-extension://cdonnmffkdaoajfknoeeecmchibpmkmg/assets/pdf/web/viewer.html?file=https%3A%2F ...
- 论文笔记 Semantics-Guided Neural Networks for Efficient Skeleton-Based Human Action Recognition - CVPR
Semantics-Guided Neural Networks for Efficient Skeleton-Based Human Action Recognition 2020 CVPR | c ...
- AprilTag: A robust and flexible visual fiducial system论文解读
AprilTags论文解读 一.Apriltag是改进的ARToolkit. ARTag . 1.1 ARToolkit的劣势: A major disadvantage of this approa ...
- 最新论文笔记(+22):Anonymous and Efficient Authentication Scheme for Privacy-Preserving DL / TIFS2022
Anonymous and Efficient Authentication Scheme for Privacy-Preserving Distributed Learning 可译为"一 ...
最新文章
- 四川计算机职业技术学院,四川职业技术学院
- Extjs鼠标长按事件(实现长按按钮触发事件的方法:mousedown、mouseup)
- 线性代数同济第六版_线性代数考试内容与课后习题
- Elasticsearch笔记(七):聚合查询
- 连续两年入选Gartner公共云容器,阿里云在边缘容器方面做了什么?
- 52 -算法 -数据结构类 Leetcode26 删除有序数组中的重复项
- Andorid Kernel 编译测试
- 计算机考试准考证无法下载
- Exploring Sparsity in Image Super-Resolution for Efficient Inference
- imatest白平衡测试结果解析
- NLP中Tokenizers总结(BPE、WordPiece、Unigram和SentencePiece)
- 安卓手机格式化怎么弄_安卓手机怎么格式化?
- ACM与IEEE双Fellow、华人女计算机科学家周以真:可信 AI,未来可期
- vagrant 设置除默认工项目之外的synced_folder一个坑
- A.Mio visits ACGN Exhibition
- 基于图数据库的新型肺炎传染图谱建模与分析
- Android FMRadio上层调试
- 502粘到手上变硬了怎么办_手指被502粘住了?别硬扯,教你2招,胶水自动融化...
- ElasticSerach安装IK中文分词器,并在Java中使用
- L1-014 简单题 - java