Fast ORB-SLAM

2024-08-25 06:18
文章标签 slam fast orb

本文主要是介绍Fast ORB-SLAM,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点云PCL免费知识星球,点云论文速读。

文章:FastORB-SLAM: Fast ORB-SLAM method with Coarse-to-Fine Descriptor Independent Keypoint Matching

作者:Qiang Fu12, Hongshan Yu1 , Xiaolong Wang

翻译:particle

本文仅做学术分享,如有侵权,请联系删除。欢迎各位加入免费知识星球,获取PDF论文,欢迎转发朋友圈分享快乐。

论文阅读模块将分享点云处理,SLAM,三维视觉,高精地图相关的文章。公众号致力于理解三维视觉领域相关内容的干货分享,欢迎各位加入我,我们一起每天一篇文章阅读,开启分享之旅,有兴趣的可联系微信dianyunpcl@163.com。

论文摘要

基于特征点的视觉SLAM方法由于对不同环境的鲁棒性越来越受欢迎。ORB-SLAM2是该领域的一种基准方法,但是ORB-SLAM2中描述子的计算非常耗时,并且必须选择图像作为关键帧,否则描述子无法重用。为了克服这些问题,本文提出了一种轻量型、高效率的fast orb-slam,可以在不需要计算描述子的情况下跟踪相邻帧之间的关键特征点。为此,提出了一种基于稀疏光流的由粗到细关键点描述子匹配方法。在第一阶段,通过均加速度运动模型预测初始关键点对应关系,然后通过基于金字塔的稀疏光流跟踪方法稳健地建立对应关系。在第二阶段,利用运动平滑和极线约束来优化对应关系。特别是,本文的方法只计算关键帧的描述子。我们用一台RGBD相机在TUM和ICL-NUIM数据集上测试Fast ORBSLAM,并将其精度和效率与现有的九种RGBD SLAM方法进行了比较。从定性和定量结果表明,该方法在精度上达到了最先进的性能,并且大约是ORB-SLAM2的两倍。

● 相关工作与介绍

视觉SLAM在许多应用领域都越来越重要,如虚拟现实(VR)、增强现实(AR)、无人机(UAV)或无人车(UGV)导航和自主移动机器人。高精度和低计算成本是视觉slam的两个核心要求。目前的方法分为基于光度的直接方法,例如DSO和SVO,以及基于特征的间接方法。直接法通过最小化像素的光度误差来恢复姿态。间接方法利用图像特征点,通过最小化特征点对应之间的重投影误差来恢复相机姿态,并基于特征描述子实现回环检测(重定位)以消除全局漂移。其中间接法的视觉SLAM中,ORB-SLAM2被认为是当前最先进的SLAM方法,它建立在许多优秀作品的基础上,如first real-time Visual Slam、PTAM、fast place recognition、BoW2和高效的基于图的捆集调整(BA)共视图。我们注意到间接方法中关键点描述子的计算非常耗时,并且除了关键帧外,这些描述子不会被重用。这浪费了大量的计算资源。如果我们能够在不计算相邻帧之间计算描述子的情况下建立可靠的关键点对应关系,将大大降低计算成本而不损失精度。在此基础上,本文提出了一种高效的轻量化视觉SLAM系统fast orb-slam。与ORB-SLAM2等间接方法不同,我们的方法只在帧被选为关键帧时计算描述子。

为了在没有描述子的情况下建立可靠的关键点匹配,我们将关键点匹配方法分为两个阶段:

  • 第一阶段是鲁棒关键点匹配,首先通过均匀加速度模型预测初始关键点对应关系,然后实现了基于金字塔的光流跟踪算法,建立了鲁棒的关键点对应关系。

  • 第二阶段是内点精匹配,首先利用运动平滑约束过滤出离群点,然后采用极线约束对匹配点进行再细化。

实现了一个完整而健壮的SLAM系统(直接或间接方法)应该包括三个线程:跟踪、局部建图和循环闭合。跟踪运行在前端,实时输出当前摄像机姿态。局部建图和回环检测在后台非实时运行,通过局部或全局约束优化相机运动和结构。回环检测是提高生命周期操作鲁棒性的一个重要线程,因为它为纠正全局累积误差提供了强大的约束,而且,当系统在某个时间无法跟踪有效特征时,它可以用于重定位。无论是最小化光度误差(直接方法)还是重投影误差(间接方法),它都归结为一个非线性最小二乘优化问题,可以通过BA有效地解决。一旦建立了对应关系,就可以通过BA优化来解决位姿估计或精化问题。因此,建立准确的特征对应关系对视觉系统具有极其重要的意义。

总之,我们的主要贡献如下:

本文介绍了FastORB-SLAM,这是一个新颖、完整、轻量、健壮的SLAM系统,它是基于ORB-SLAM2和稀疏光流开发的,可以输出高精度的3D姿态估计,如图所示。

  • 提出了一种新的由粗到精的关键点匹配方法,该方法可以在不需要描述子的情况下,在相邻帧之间建立可靠的关键点对应关系。

  • 我们研究了一个均匀加速模型来预测关键点对应,这不仅提高了关键点匹配的精度,而且潜在地减少了搜索匹配的计算量。

  • 提出的Fast ORB SLAM使用RGBD摄像机作为输入进行测试,几乎所有具有代表性的开源RGB-D SLAM系统在定位精度(RMSE)和计算时间方面都超过了TUM和ICLNUIM数据集的十几个数据集。定性和定量结果表明,该方法达到了SOTA的性能。

  • 我们的方法比ORB-SLAM2快两倍,定位精度也很好。

内容精华

系统介绍

Fast ORB SLAM,一个完整、健壮、重量轻的视觉SLAM系统。与ORB-SLAM2基于描述子匹配在相邻帧中建立关键点对应关系不同,该系统采用由粗到细的描述子匹配方法。描述子只在选择一帧作为关键帧时才计算,而ORB-SLAM2则为每一帧计算描述子。与SVO相比,主要有三点不同:

  • 第一,我们的方法采用了不同的关键点检测器;

  • 第二,SVO由于没有提取描述子而无法实现回环检测;

  • 第三,SVO通过直接最小化光度误差来跟踪关键点,以恢复运动,它有一个问题,如果关键点对应包含很多离群值,这些离群值将导致糟糕的定位精度。

相应地,我们的方法建立关键点对应关系,并通过显式的由粗到细的关键点匹配方法处理异常值问题,然后通过最小化对应点之间的重投影误差来恢复相机运动。

Fast ORB SLAM系统概述。FastORB SLAM基于ORB-SLAM2构建,由三个线程组成:跟踪、局部建图和回环检测。快速跟踪估计并实时输出6D摄像机姿态。局部建图增加一个新的关键帧,并通过BA优化来优化局部关键帧。回环检测就是不断地检查是否有回环,并用全局BA优化来修正漂移。建图模块包含关键帧、地图点、可共视图和生成树等信息。压缩模块是为了高效计算而设计的,它保留了有用的观测值,并及时剔除无用信息,避免了冗余计算。

连续帧上的关键点(inliers)示例。在检测关键点之前,采用自适应直方图均衡化算法对图像进行预处理,以减少光照影响。从这个数字,我们的系统可以一直跟踪足够多的关键点。值得注意的是,如果inlier数足够,我们不需要提取关键点,例如,我们只检测第一列和最后一列中的关键点。在这个序列中,Fast ORB SLAM比ORB-SLAM2具有更好的定位精度,计算时间更少。

由粗到细关键点描述子的匹配方法

通过将三维地标投影到当前帧来预测特征点之间对应关系的图示。

运动模型预测匹配初始值的伪代码

观察到时变序列中相邻两帧具有较小基线距离和亮度不变的特征点,在此基础上,提出了一种由粗到细、与独特描述子的两阶段特征点匹配方法来建立可靠的关键点对应关系。值得注意的是,仅当帧被选为关键帧时才提取描述子,由粗到精细匹配的方法分为两个阶段:

第一阶段是鲁棒的关键点匹配:

首先,通过一个有效的运动模型来预测关键点的对应关系,这给算法一个很好的匹配的初始值,并且潜在地减少了搜索匹配的计算量;

然后,基于稀疏光流算法,在8层金字塔结构中建立特征点的对应关系。更具体地说,我们在第一阶段对所有关键点实现算法1,以稳健地建立粗略的关键点对应关系。

第二阶段为内点精匹配阶段:

首先利用摄像机运动平滑约束过滤出异常值;然后,采用基于RANSAC的基本矩阵法再次精细化特征点的相关系数。

实验

该方法在跟踪特征点的例子。我们为每个图像检测1000个关键点。在(a)中,左、右图像分别表示参考帧和当前帧。(b) 和(c)分别代表了KTL和ours(w/motion model)的结果。(d) 表示内部细化后的结果,包括运动平滑和极线约束后的结果。

Ratio表示inliers比率,inliers数是极线约束验证后当前帧上的关键点数。时间表示极线验证的时间。

该方法比ORB-SLAM2定位精度高,计算量小。在其他数据集中,我们的方法也具有很强的竞争力。

在ICL NUIM Office 3(左)和ICL NUIM LIVEL 1(右)数据集中ORB-SLAM2和OUR的定位精度比较。顶行表示三维运动轨迹。最后一行给出了APE和RPE的误差比较。从这个图中,我们的方法比ORB-SLAM2在两个数据集中产生了比ORB-SLAM2更好的精度,包括一个低纹理区域。

 从表中可以看出,我们的方法实现了SOTA性能

总结

在本文中,我们提出了一个新颖的,轻量级的视觉SLAM系统fast orb-slam。该系统是基于ORB-SLAM2和光流算法开发的。与ORB-SLAM2相比,我们的方法在计算速度上有明显的优势,因为它不需要在跟踪线程中提取描述子。在实验中,我们证明了fast orb-slam可以在使用RGB-D相机的室内场景中产生SOTA性能,在定位精度和效率方面都是如此。与ORB-SLAM2相比,我们的方法运行速度几乎是ORB-SLAM2的两倍,具有很强的竞争力。

资源

三维点云论文及相关应用分享

【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法

3D目标检测:MV3D-Net

三维点云分割综述(上)

3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020)

win下使用QT添加VTK插件实现点云可视化GUI

JSNet:3D点云的联合实例和语义分割

大场景三维点云的语义分割综述

PCL中outofcore模块---基于核外八叉树的大规模点云的显示

基于局部凹凸性进行目标分割

基于三维卷积神经网络的点云标记

点云的超体素(SuperVoxel)

基于超点图的大规模点云分割

更多文章可查看:点云学习历史文章大汇总

SLAM及AR相关分享

【开源方案共享】ORB-SLAM3开源啦!

【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

【点云论文速读】StructSLAM:结构化线特征SLAM

SLAM和AR综述

常用的3D深度相机

AR设备单目视觉惯导SLAM算法综述与评价

SLAM综述(4)激光与视觉融合SLAM

Kimera实时重建的语义SLAM系统

SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM

易扩展的SLAM框架-OpenVSLAM

高翔:非结构化道路激光SLAM中的挑战

SLAM综述之Lidar SLAM

基于鱼眼相机的SLAM方法介绍

往期线上分享录播汇总

第一期B站录播之三维模型检索技术

第二期B站录播之深度学习在3D场景中的应用

第三期B站录播之CMake进阶学习

第四期B站录播之点云物体及六自由度姿态估计

第五期B站录播之点云深度学习语义分割拓展

第六期B站录播之Pointnetlk解读

[线上分享录播]点云配准概述及其在激光SLAM中的应用

[线上分享录播]cloudcompare插件开发

[线上分享录播]基于点云数据的 Mesh重建与处理

[线上分享录播]机器人力反馈遥操作技术及机器人视觉分享

[线上分享录播]地面点云配准与机载点云航带平差

点云PCL更多活动请查看:点云PCL活动之应届生校招群

扫描下方微信视频号二维码可查看最新研究成果及相关开源方案的演示:

如果你对本文感兴趣,请点击“原文阅读”获取知识星球二维码,务必按照“姓名+学校/公司+研究方向”备注加入免费知识星球,免费下载pdf文档,和更多热爱分享的小伙伴一起交流吧!

扫描二维码

                   关注我们

让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入免费星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。

分享及合作:微信“920177957”(需要按要求备注)联系邮箱:dianyunpcl@163.com,欢迎企业来联系公众号展开合作。

点一下“在看”你会更好看耶

这篇关于Fast ORB-SLAM的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1104774

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

每天一道面试题(2):fail-safe 机制与 fail-fast 机制分别有什么作用?

当谈论Java集合的 fail-fast 和 fail-safe 机制时,涉及的是在集合被并发修改时的行为和处理方式。这些机制对保证程序的正确性和稳定性非常重要,尤其是在多线程环境中。 1. Fail-Fast 机制 定义: Fail-fast 机制的核心是在检测到集合在遍历过程中被修改时,立即抛出 ConcurrentModificationException 异常,从而中断迭代操作。这种

激光SLAM如何动态管理关键帧和地图

0. 简介 个人在想在长期执行的SLAM程序时,当场景发生替换时,激光SLAM如何有效的更新或者替换地图是非常关键的。在看了很多Life-Long的文章后,个人觉得可以按照以下思路去做。这里可以给大家分享一下 <br/> 1. 初始化保存关键帧 首先对应的应该是初始化设置,初始化设置当中会保存关键帧数据,这里的对应的关键帧点云数据会被存放在history_kf_lidar当中,这个数据是和

用python fastapi写一个http接口,使ros2机器人开始slam toolbox建图

如果你想使用Python的FastAPI框架编写一个HTTP接口,以便通过接口启动ROS 2机器人的SLAM Toolbox建图,可以按照以下方式进行: 首先,确保你已经安装了fastapi和uvicorn库。你可以使用以下命令进行安装: pip install fastapi uvicorn 接下来,创建一个Python文件(例如app.py),并将以下代码添加到文件中: import

UVa 11992 Fast Matrix Operations 线段树

UVa 11992 Fast Matrix Operations 题目大意:有一个r行c列的全0矩阵,支持三种操作: 1 x1 y1 x2 y2 v 子矩阵(x1,y1,x2,y2)的所有元素增加v(v > 0)。 2 x1 y1 x2 y2 v 子矩阵(x1,y1,x2,y2)的所有元素设为v(v > 0)。 3 x1 y1 x2 y2    查询子矩阵(x1,y1,x2,y2

【HDU】4965 Fast Matrix Calculation 矩阵快速幂

传送门:【HDU】4965 Fast Matrix Calculation 题目分析:因为比赛的时候写的太匆忙。。写的不堪入目,所以赛后重写了一次,顺便就贴一下了。 因为A*B=C,所以C^(N*N-1) = A*B*A*B*A*...*B*A*B,因为满足结合律所以变成A*( (B*A)^(N*N-2) )*B,因为中间得到的矩阵最大不超过K(K<=6),所以可以对中间的矩阵快速幂,然

Fast Image Cache

https://github.com/path/FastImageCache   Fast Image Cache is an efficient, persistent, and—above all—fast way to store and retrieve images in your iOS application. Part of any good iOS applica

GS-SLAM论文阅读笔记--GSFusion

介绍 GS-SLAM是最近比较新的方向,由于传统SLAM的研究变得很少,拥抱与新的技术结合的方法也许是个好主意。之前总结了大部分GS-SLAM的文章。但是这个方向在不断发展,而发展初期的很多论文值得参考。所以用博客记录一下比较新的论文阅读笔记。GSFusion 这篇文章是TUM发表的,TUM在SLAM领域是非常牛的,所以需要仔细阅读一下这篇文章,肯定会有所收获! 文章目录 介绍1.

NCBI-get-GCFIDs_fast.py

import requestsimport osimport redef download_genome_first(gcf_id):# 构建FTP下载路径base_url = "https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/"# 提取GCF号的数字部分并按三位分割parts = gcf_id.split('_')[1] # 提取数字部分path_

Fast Power

Calculate the an % b where a, b and n are all 32bit non-negative integers. Example For 231 % 3 = 2 For 1001000 % 1000 = 0 Challenge O(logn) 思想:recursion算一半,然后base case,处理算完一半以后的情况; 公式就是 (a*b) %