1
摘要
本文介绍了ORB-SLAM3,这是第一个能够使用单眼、双目和RGB-D相机,使用针孔和鱼眼镜头模型执行视觉、视觉惯性和多地图SLAM的系统.
第一个主要创新是基于特征的紧密集成的视觉惯性SLAM系统.它完全依赖于最大后验概率估计.甚至在IMU初始化阶段也是如此.其结果是一个系统在小型和大型、室内和室外环境中都能稳定地运行,并且比以前的方法精确2到5倍.第二个主要的创新是一个多地图系统,它依赖于一种新的位置识别方法和改进的召回.多亏了它,ORB-SLAM3能够在长时间的不良视觉信息下生存:当它丢失时,它会启动一个新的地图,当重新访问地图区域时,它将与以前的地图无缝地合并.与只使用最后几秒信息的视觉里程计系统相比,ORB-SLAM3是第一个能够在所有算法阶段重用所有先前信息的系统.这允许包含束内调整共可见关键帧,这些关键帧提供了高视差观测,提高了精度,即使它们在时间上相隔甚远.
我们的实验表明,我们的双目惯性SLAM在EuRoC无人机上的平均精度为3.6cm,在TUM-VI数据集(AR/VR场景的一个典型设置)中,快速手持移动时的平均精度为9mm.
2
关于ORB-SLAM3
相对于ORB-SLAM2以及ORB-SLAM-VI, 其最大的亮点有:
- 基于特征的紧密集成视觉惯性SLAM系统(将极大后验概率估计MAP用于IMU初始化等)
- 多地图SLAM系统(新的位置识别方法)
在IMU初始化阶段引入MAP思想,提高了初始化速度,并且极大提高了鲁棒性,精确度提升明显.
多子地图系统大大提高了系统召回率,ORBSLAM3在视觉信息缺乏甚至丢失时具有更高的鲁棒性.当跟丢目标时将会重建一个子地图,并在回环loop closing过程中与之前的非活动地图合并.故ORB-SLAM3是第一个可以重用历史所有算法得到的信息的系统,也就以为着之前的共视关键帧也可以用来一起BA(无论是地图集里活动地图还是非活动地图的共视关键帧).
3
介绍
在过去的二十年里,通过单独使用摄像机或与惯性传感器相结合,对视觉同步定位和绘图系统(SLAM)和视觉里程计(VO)的深入研究产生了具有越来越高的精度和鲁棒性的优秀系统.现代系统依赖于最大后验估计,在视觉传感器的情况下,这对应于束调整,或者在基于特征的方法中最小化特征重投影误差的几何束调整,或者在直接方法中最小化一组选定像素的光度误差的光度束调整.
随着最近集成闭环技术的VO系统的出现,VO和SLAM之间的边界更加分散.视觉SLAM的目标是使用传感器来构建环境地图并实时计算姿态.相比之下,VO系统将注意力放在计算代理的自我运动上,而不是构建地图上.SLAM地图的最大优势是它允许匹配和使用BA先前的观测,执行三种类型的数据关联:
- 短期数据关联: 匹配最近几秒内获得的地图元素.这是大多数VO系统使用的唯一数据关联类型,一旦环境元素离开视野,它们就会被遗忘,即使系统在同一区域移动,也会导致持续的估计漂移
- 中期数据关联: 匹配离累计漂移仍然较小的相机较近的地图元素.这些可以在BA中以与短期观测相同的方式进行匹配和使用,并允许在系统在地图区域移动时达到零漂移.它们是我们的系统与具有环路检测的VO系统相比获得更高精度的关键
- 长期数据关联: 使用位置识别技术将观察结果与以前访问过的区域中的元素进行匹配,而不管累积漂移(环路检测)或跟踪是否丢失(重新定位).长期匹配允许使用姿态图优化或更准确地说,使用BA来重置漂移和校正循环.这是中大型环型环境下SLAM精度的关键
这本质上是一篇系统论文,最重要的贡献是ORB-SLAM3库本身,是迄今为止最完整和准确的视觉、视觉惯性和多地图SLAM系统(见表一).
ORB-LAM3的主要创新是:
- 一种单目和双目视觉惯性SLAM系统,即使在惯性测量单元初始化阶段,也完全依赖于最大后验估计.所提出的初始化方法先前已在[6]中介绍过.这里我们添加了它与ORB-SLAM视觉惯性[4]的集成,扩展至双目惯性SLAM,并在公共数据集进行彻底评估.我们的结果表明,单目和双目视觉惯性系统是极其鲁棒的,并且比其他视觉惯性方法更加精确,甚至在没有循环的序列中也是如此.
- High-recall place recognition.许多最近的视觉SLAM和VO系统使用DBoW2单词库包解决了位置识别问题.DBoW2需要时间一致性,在检查几何一致性之前,将三个连续的关键帧匹配到同一区域,以牺牲召回为代价来提高精度.结果,系统在关闭循环和重用以前的地图方面太慢.我们提出了一种新的位置识别算法,首先检查候选关键帧的几何一致性,然后检查与三个可共视关键帧的局部一致性,这三个关键帧在大多数情况下已经在地图中.这种策略提高了查全率,增加了数据关联度,提高了地图精度,但代价是计算成本稍高.
- ORB-SLAM Atlas 第一个完整的多地图SLAM系统,能够处理视觉和视觉惯性系统,在单目和立体配置.地图集可以表示一组不连续的地图,并在其上平滑地应用所有的制图操作:位置识别、相机重新定位、闭环和精确的无缝地图合并.这允许自动使用和组合在不同时间构建的地图,执行增量多会话SLAM.在原版ORB基础上我们添加了新的地点识别系统,可视化多地图系统及其对公共数据集的评估.
- An abstract camera representation使SLAM与所使用的相机模型无关,并允许通过提供投影、反投影和雅可比函数来添加新模型.我们提供了针孔和鱼眼模型的实现
4
ORBSLAM3框架
整体框架以ORB-SLAM2为基础,进行了改进.
(ORB-SLAM2框架)
(ORB-SLAM3框架)
从框架图中也可以看出,ORB-SLAM3最突出的两点是IMU融合、地图集(map atlas)以及地图融合(map merging).
5
相关工作
作者从VSLAM、VI-SLAM以及Multi-Map SLAM三个范围进行比较论述.
上图为ORB-SLAM3的系统框架图,可以看出新增部分如下:
1 Atlas(地图集)
如图中所示,tlas包括一系列分离的地图组成的多地图表示(包括active map 和 non-active-map).一个active map(活动地图)表示当前位于的map,racking线程向其中传入帧,由local mapping不断优化以及增加新的关键帧扩大规模.其地图为active-map, DBOW库用于和地图融合.
2 Tracking thread(跟踪线程)
判断当前帧是否为关键帧;实时处理传感器信息并计算当前姿态;最大限度地减少匹配地图特征的(eprojection error)投影误差;在VI模式中,通过加入(bias)残差来估计物体速度以及惯性测量单元偏差.地图跟丢时,跟踪Atlas进行重定位,成功则继续跟踪,在必要的时候切换active map(动地图)失败,短暂延时后将当前地图存储为non-active-map,新建一个active map(活动地图).
3 Local mapping thread(局部建图线程)
将关键帧和地图点添加到活动地图, 删除redundant(多余关键帧),并使用视觉或视觉惯性BA优化地图. 另外此线程也包括惯性情况下, 利用MAP估计初始化和优化IMU参数.
4 Loop and map merging thread(回环和地图融合线程)
基于关键帧的速度,对地图集中的active map (活动地图)和 non-active-map(非活动地图)进行相似性度量.如果相似区域处于活动地图,则进行回环校正;若属于不同的地图,则将两个地图进行无缝拼接,并作为活动地图.回环校正时,另开一个线程进行全局BA.
6
相机模型
ORB-SLAM3默认所有系统组件都是针孔摄像机模型,这样通过提取与摄像机模型相关的参数(projection and unprojection functions, Jacobian等)抽象出摄像机模型.同时ORB-SLAM3还提供了鱼眼模型.下面是为了抽象相机模型做出的调整:
1 Relocalization(重定位
之前ORB-SLAM当跟踪失败的时候,系统会启动重定位.找出一些候选关键帧,对每个候选关键帧,用ransac和EPNP估计位姿,然后更新当前帧的地图点匹配,然后优化位姿,如果内点较少,则通过投影的方式对之前未匹配的点进行匹配,再进行优化求解,直到有足够的内点支持,重定位完成.
但是ePnP算法前提是calibrated pinhole camera(针孔相机),为了兼容ORB-SLAM3对相机模型的抽象,采用了MLPnP(极大似然透视n点算法).该算法使用投影光线作为输入,相机只需要提供一个从像素到投影光线的非投影函数即可重定位.
2 Non-rectified Stereo SLAM(非修正双目SLAM)
目前的双目SLAM都将双目相机理想化: 即两图像都被转换成针孔投影,拥有相同的焦距、图像平面共面、与水平极线对齐. 这种假设并不适用, 比如鱼眼相机会因此丧失大视角的优势. 因此可以考虑以下两点:
1、左右两相机之间的恒定相对SE(3)变换
2、两相机观察场景的公共图像区域
这样有利于我们进行三角化以及计算BA,进而有效地估计地图比例.因此,ORB-SLAM中估计了一个6-DoF(自由度)的刚体位姿
如果两个相机都有一个重叠区域,我们可以在第一次看到真实比例的地标时对其进行三角测量.
如果无重叠区域,则作为单目使用: 从多视图进行三角化的.
7
视觉惯性融合SLAM
ORB-SLAM-VI是第一个真正能够重复使用地图的、视觉惯性SLAM,但是仅限与单目且初始化较慢.ORB-SLAM3建立在ORB-SLAM-VI上,提供了一种快速精准IMU初始化策略.
上图为各种情况下的因子图.
1 基本原理
1、待优化变量–>同之前:
2、连续视觉帧i和i 1之间IMU预积分:
3、xj处相机与3D landmark(地图点)的视觉重投影误差:
4、结合惯性项和视觉残差项,可视惯性SLAM可以作为基于关键帧的最小化问题。优化变量为:
前者为惯性残差,后者为附加鲁棒核函数的视觉残差(目的减少误匹配带来的影响)。此处可由上图(a)表示。
2 IMU Initialization(IMU初始化)
IMU初始化的目的为获得惯导的良好初始值:速度、重力方向和IMU的bias。
初始化要求:1、先解决视觉问题有利于IMU初始化;2、尺度显示表示为优化变量将加快收敛速度;3、不能忽略IMU传感器的不确定性。
基于MAP估计的IMU初始化:
1、纯视觉地图估计:初始化纯单目SLAM,并设定在2秒内运行,在4Hz处插入关键帧。在这段时间之后,我们得到了一张由k=10个相机姿势和数百个点组成的高比例地图,该地图使用纯视觉BA进行了优化(因子图中的图b)。这些姿势转换为body坐标系,得到轨迹
其中横杠表示最大比例变量。
2、纯惯性地图估计:这一步目的是获得惯性变量的最佳估计,在MAP估计中,仅使用关键帧之间的和惯性测量。将其与纯惯性状态向量叠加:
上式中,s为视觉求解的比例因子,Rwg为重力方向,b为加速度计、陀螺仪偏差,为从第一个关键帧到最后一个关键帧的最大速度。
若只考虑惯性测量值
文中描述了一个MAP估计问题,其中需要最大化的后验分布是:
假设IMU预积分和先验分布的高斯误差,则最终优化问题为:
当在流行空间中优化时,本系统定义了一个retraction,以便更新重力方向估计:
为了保证在优化过程中比例因子保持正值,我们将其更新定义为:
惯性优化完成后,帧的姿态和速度以及三维地图点将按估计的比例缩放并旋转以使z轴与估计的重力方向对齐。重复的修正偏差和IMU预积分,以减少未来的线性化误差。
3、视觉惯性地图估计:一旦完成惯性参数和视觉参数的估计,接下来就是视觉惯性融合进行优化(因子图的图a),但是对于所有关键帧都有共同的偏差,并且包括与仅惯性步骤相同的先验信息。
3 Tracking and Mapping(跟踪和建图)
Tracking解决了一个简化的视觉惯性优化问题,只优化最后两帧的状态,而地图点保持不变。
Mapping使用关键帧及其地图点的滑动窗口作为可优化变量,括其共视帧的关键帧,保持它们固定.
对于因为运动过慢无法正确初始化的情况,文提出了一种新的尺度优化策略:基于改进的仅惯性优化,括所有插入的关键帧,尺度以及重力方向作为估计参数(子图的图d).
4 Robustness to tracking loss(对tracking丢失的鲁棒性)
ORB-SLAM开创了基于词袋位置识别的快速重定位技术,仍然不够鲁棒.RB-SLAM3跟丢目标时,在两个阶段实现鲁棒性:
1、Short-term lost(短期丢失):当前位姿根据IMU进行估计,地图点被投影到估计的相机位姿中,并在一个大的图像窗口中搜索匹配。结果匹配包含在视觉惯性优化中。若失败则进入下一阶段;
2、Long-term lost(长期丢失):重新初始化一个视觉惯性地图作为active map。
1 MAP MERGING AND LOOP CLOSING(地图融合和回环闭合)
tracking和mapping线程通过将地图点投影到估计的相机位姿中,在附近几个像素的图像窗口中搜索匹配项,此来找到帧和活动地图之间的短期和中期的数据关联.了实现定位和回环检测的长期数据关联,RB-SLAM使用DBoW2词袋位置识别系统.BoW2用它们的词袋向量建立一个关键帧数据库,且给定一个查询图像能够根据它们的词包高效地提供最相似的关键帧.
本文提出了一种新的具有改进召回率的位置识别算法,用于长期和多地图数据关联。每当建图线程创建一个新的关键帧时,就会启动位置识别,尝试检测与地图集中已经存在的任何关键帧的匹配。如果找到的匹配的关键帧属于活动地图,则执行回环闭合。否则,它是一个多地图数据关联,然后合并活动地图和匹配地图。另外的创新点在于,一旦新的关键帧和匹配映射之间的相对姿态被估计出来,我们定义一个local window(局部窗口),其中包含匹配的关键帧及其在共视图中的邻域。在这个窗口中,我们集中搜索中期数据关联,提高了循环闭合和地图合并的精度。
2 Place Recognition(位置识别)
为了获得较高的召回率,对于每个新的活动关键帧,本系统在DBoW2数据库中查询Atlas中的几个相似的关键帧。为了达到100%的精度,每个候选关键帧都要经过几个步骤的几何验证。所有几何验证步骤的基本操作是检查图像窗口内是否存在其描述符与映射点的ORB描述符匹配的ORB特征点,并使用它们之间的Hamming距离阈值。如果在搜索窗口中有多个候选项,为了丢弃不明确的匹配项,我们检查与第二个最近匹配项的距离比。我们的位置识别算法的步骤是:
1、DBoW2候选关键帧
我们用活动关键帧检索地图集DBoW2数据库中三个最相似的关键帧,排除与共视的关键帧。我们将位置识别每个匹配的候选关键帧称为Km。
2、Local window(局部窗口)
对于每一个,我们定义一个局部窗口,其中包括、它的最佳共视关键帧以及它们所观察到的地图点.DBoW2直接索引提供了中的特征点和本地窗口关键帧之间的一组假定匹配.对于每一个2D-2D匹配,我们也可以在它们对应的地图点之间进行3D-3D匹配.
3、3D aligning transformation(三维对齐变换)
我们使用RANSAC计算变换,使Km局部窗口中的地图点与的地图点对齐.
在纯单目或者单目惯性中,地图还不成熟时,我们计算∈Sim(3),或者∈SE(3).在这两种情况下,我们使用Horn算法.使用三个3D-3D匹配的最小集合来找到的每个假设.某个假设中,通过对Ka中的地图点进行变换后,如果在中实现一个重投影误差低于某个阈值,则记为肯定.票数高于设定阈值前提下,选择票数较多的假设.
4、Guided matching refinement(引导匹配精细化)
局部窗口中的所有地图点都用进行变换,以找到与键点更多的匹配.当然,搜索也会反转,在本地窗口的所有关键帧中查找地图点的匹配项.利用找到的所有匹配,采用非线性优化方法对进行优化,优化目标函数为双向重射误差,利用鲁棒核函数对伪匹配提供鲁棒性.如果优化后的inliner数超过一个阈值,则使用较小的图像搜索窗口启动引导匹配和非线性优化的第二次迭代.
5、Verification in three covisible keyframes(在三个共视关键帧中验证)
为避免误匹配,DBoW2等待位置识别在三个连续的关键帧中触发,从而延迟或丢失位置识别.本文关键观点:验证所需的信息已经在地图上了.为验证位置识别,ORB-SLAM3在active map中寻找两个的共视关键帧,其中与局部窗口中的点的匹配数量超过了一个阈值.如果未找到,则使用新传入的关键帧进行验证.直到三个关键帧验证.或者两个连续的新关键帧无法验证.
6、VI Gravity direction verification(重力方向验证)
在视觉惯性融合时,如果活动地图成熟了,我们估计了∈SE(3).我们进一步检查pitch and roll,是否低于阈值,以确定是否接受位置识别假设.
8
Visual Map Merging(视觉地图合并)
如果位置识别成功,产生了多地图数据关联,在活动地图中的关键帧和地图集中的不同地图中的匹配关键帧之间,使用对齐变换进行地图合并操作.需要确保Mm中的信息能被tracking线程及时调用,避免地图重复.因此作者建议将引入坐标系,并且中信息较多,故分为两步:首先合并在和邻域中的welding window中进行,然后通过位姿图优化将修正量传播到合并后的其余部分.
1 Welding window assembly(融合窗口集合)
焊接窗口包括及其共视关键帧、及其共视关键帧以及它们观察到的所有地图点。在将它们包含在焊接窗口中之前,属于的关键帧和地图点由变换使它们与对齐。
2 Merging maps(地图合并)
地图和融合成为新的活动地图.为删除重复点,将在的关键帧中主动搜索匹配项以查找的地图点.对于每对匹配,从中移除点,并且中的点不断累积已移除点的观测值.共视性和本征图通过添加边来更新,这些边将和的关键帧连接到找到的新的中期点关联.
3 Welding bundle adjustment(融合BA)
下图为视觉融合BA的因子图表示:具有重投影误差项(蓝色方块)
在融合窗口(图)中,执行局部BA优化和中的所有关键帧.为了固定测量自由度,中的共视关键帧保持固定.优化完成后,融合区域中所有关键帧都可以用于摄像机跟踪,实现地图Mm的快速准确复用.
4 Pose-graph optimization(位姿图优化)
在保持融合区域关键帧固定的前提下,利用融合后的整个地图的本征图进行位姿图优化.此优化将修正从融合窗口传播到地图的其余部分.
9
Visual-Inertial Map Merging(视觉惯性地图合并)
视觉惯性合并算法的步骤与纯视觉情况相似.对步骤1和3进行了修改,以便更好地利用惯性信息:
1 VI welding window assembly(VI融合窗口集合)
如果活动地图成熟,我们在被包含在融合窗口之前应用可用的∈SE(3)来转换.如果活动地图不成熟,我们利用可用的∈Sim(3)对其.
2 VI welding bundle adjustment(VI融合BA)
下图为VI融合BA的因子图,具有重投影误差项(蓝色方块)、IMU预积分项(黄色方块)和偏差随机游走(紫色方块).
活动关键帧及其最后5个关键帧的姿态、速度和偏差都是可优化的.这些变量通过IMU预积分项进行关联.对于地图,我们进行了类似的处理,包括km及其5个时间邻域的姿态、速度和偏差.如上图所示.对于,包含但固定了紧挨着本地窗口的关键帧;而对于,包含了相似的关键帧,但其姿势仍然是可优化的.所有这些关键帧看到的所有点,以及观察这些点的关键帧姿势也得到优化.所有的关键帧和点通过重投影误差来关联.
3 Loop Closing(闭合回环)
回环闭合校正算法类似于地图合并,但是位置识别匹配的两个关键帧都是属于活动地图.
首秀是地图点融合:融合窗口由匹配的关键帧组合而成,检测到重复的点进行融合,在共视性和本质图中创建新的关联.
下一步是姿势图优化:将回环校正传播到地图的其余部分
最后一步是全局BA:在考虑回环闭合的中长期匹配后找到MAP估计.在视觉惯性的情况下,全局BA只在关键帧数目低于阈值的情况下进行,以避免计算过多.
10
实验结果
整个系统的评估分为:
- EuRoC中的单阶段实验:对11个序列中的每一个进行处理以产生一个图,传感器配置:单目、双目和双目惯性
- 在具有挑战性的TUM VI中,具有鱼眼镜头摄像机的单目和双目视觉惯性SLAM的性能
- 两个数据集中的多阶段实验 我们使用RMS ATE测量精度,在纯单目情况下使用Sim(3)变换,在其余传感器配置中使用SE(3)变换,将估计轨迹与地面真实情况对齐.所有实验都在3.6千兆赫、32 GB内存的英特尔酷睿i7-7700中央处理器上运行.
1 在EuRoC上单会话
表二比较了ORB-SLAM3与其他系统之间比较.如表中所示,ORB-SLAM3结果都比更准确.
在单目和双目中,我们的系统比ORB-SLAM2更精确,因为更好的位置识别算法可以更早地结束循环,并提供更多的中期匹配.有趣的是,第二好的结果是由DSM获得的,它也使用中期匹配,即使它没有闭环.在单目惯性中,ORB-SLAM3的精度是VI-DSO和VINS-Mono的两倍多,再次显示了中长期数据关联的优势.与ORB-SLAM VI相比,我们新颖的快速IMU初始化允许ORB-SLAM3在几秒钟内校准惯性传感器,并从一开始就使用它,能够完成所有EuRoC序列,并获得更好的精度.在双目惯性中,ORB-SLAM3远远优于OKVIS、VINS-Fusion和Kimera.
为了总结性能,我们给出了每个传感器配置的10次执行的中间值.对于一个稳健的系统,中位数准确地代表了系统的行为.但是一个不稳定的系统会在结果中表现出很大的差异.这可以使用图4进行分析,图4用颜色显示了10次执行中每一次获得的误差.
在纯视觉中,多地图系统通过在跟踪丢失时创建新地图来增加快速运动的鲁棒性,新地图稍后会与全局地图合并.这可以在序列V103单目和V203双目11中看到,ORB-SLAM2不能解决这些问题,我们的系统在大多数执行中成功地解决了这些问题.正由于其更快的特征初始化,双目视觉比单目视觉更鲁棒,并且具有估计真实比例的额外优势.
然而,鲁棒性的巨大飞跃是通过我们新颖的视觉惯性SLAM系统获得的,无论是单目还是双目配置.双目惯性系统有一个非常小的优势,特别是在最具挑战性的V203序列.我们可以得出结论,惯性积分不仅提高了精度,与纯视觉解决方案相比,降低了median ATE error,而且赋予系统出色的鲁棒性,具有更稳定的性能.
2 基于TUM-VI基准的视觉惯性SLAM
所获得的结果与表三中相关的系统进行了比较,这清楚地表明了ORB-SLAM3在单目惯性和惯性方面的优势.最接近的系统是VINS-Mono、BASALT.它们本质上是带有闭环的视觉惯性里程计系统,缺少中期数据关联.
我们的系统在中小型室内环境、房间和走廊序列中获得最低的误差,其中大多数误差小于10厘米.在这些轨迹中,系统不断地重新访问和重用以前映射的区域,这是ORB-SLAM3的主要优势之一.此外,跟踪点通常比5米更近,这使得惯性参数更容易估计,防止它们发散.
在长达900米的裁判室内序列中,大多数跟踪点相对接近,ORB-SLAM3除了一个接近5米的序列之外,误差约为1米.相比之下,在一些长的室外序列中,缺乏接近的视觉特征可能导致惯性参数,特别是标度和加速度计偏差,会导致10至70米的误差.尽管如此,ORB-SLAM3仍是室外序列中表现最好的系统.
最后,房间序列可以代表典型的AR/VR,表三显示ORB-SLAM3比竞争方法更准确.表四比较了使用我们的四种传感器配置获得的结果.利用单目惯性,我们进一步将平均RMSE加速度误差降低到2厘米以下,也获得了真实的尺度.最后,我们的双目惯性SLAM带来的误差小于1厘米,使其成为VR/AR应用的绝佳选择.
3 多会话SLAM
EuRoC数据集包含三个环境中每一个环境的几个会话:5个在机器大厅、3个在Vicon1、3个在Vicon2.为了测试ORB-SLAM3的多会话性能,我们依次处理每个环境对应的所有会话.同一环境中的每个轨迹都有相同世界参考的基本事实,这允许执行单个全局对齐来计算ATE.
每个房间的第一个序列提供了一个初始地图.处理下面的序列从创建一个新的活动地图开始,这个新的活动地图很快与之前会话的地图合并,从那时起,ORB-SLAM3从重用之前的地图中获益.
表五:将这些多会话性能与表II中报告的单会话结果进行比较很有意思.例如在纯单目情况下,多会话Vicon 1实现的全局误差小于单会话映射的平均误差,并且显著小于单会话V103的误差.由于利用了以前的地图,多会话Vicon 2可以处理单会话中失败的V203序列.在困难的机器大厅序列中MH04和MH05,多会话误差小于单会话误差.
该表还与EuRoC数据集中两个唯一发布的多节结果进行了比较:CCM-SLAM [73]报告了MH01-MH03中的纯单目结果,以及VINS-Mono使用单目惯性在五个机器霍尔序列中的结果.在这两种情况下,ORB-SLAM3将竞争方法的准确性提高了一倍多.在VINS-Mono的情况下,ORB-SLAM3在单个会话中获得了2.6的更好精度,在多个会话中优势上升了3.2倍,显示了我们的地图合并操作的优势.
我们还在TUM-VI数据集上进行了一些多会话实验.图5显示了在TUM building1中处理几个序列后的结果.在这种情况下,小房间序列提供了较长序列中缺少的闭环.将所有错误带到厘米级.尽管室外无法获得地面实况,但将该数字与[84]中公布的数字进行比较清楚地表明了我们的观点:我们的多会话SLAM系统比现有的视觉惯性里程计系统获得了更好的精度.这在图6中进一步举例说明.虽然ORB-SLAM3在双目惯性单-会话outdoor1的时段处理,仍有显著漂移(≈ 60 m).相比之下,如果 outdoors1 在magistrale2 之后以多时段的方式处理,这种漂移显著减少,并且最终的地图更加精确.
11
总结
我们提出了ORB-SLAM3,这是最完整的用于视觉、视觉惯性和多会话SLAM的开源库,具有单目、双目、RGB-D、针孔和鱼眼相机.除了集成库本身之外,我们的主要贡献是快速准确的惯性测量单元初始化技术和多会话地图合并功能,这些功能依赖于一种新的具有改进召回率的位置识别技术,使ORB-SLAM3非常适合实际应用中的长期和大规模SLAM.
我们的实验结果表明:ORB-SLAM3是第一个能够有效利用短期、中期、长期和多地图数据关联的视觉和视觉惯性系统,达到了现有系统无法达到的精度水平.我们的结果还表明,在准确性方面,使用所有这些类型的数据关联的能力压倒了其他选择,例如使用直接方法而不是特征,或者对局部BA执行关键帧边缘化,而不是像我们一样假设一组外部静态关键帧.
关于鲁棒性,直接方法在低纹理环境中可能更鲁棒.但仅限于短期和中期数据关联.另一方面,匹配特征描述符成功地解决了长期多地图数据关联,但似乎不如使用LK跟踪更稳健.
关于四种不同的传感器配置,毫无疑问,双目惯性SLAM提供了最鲁棒和准确的解决方案.此外惯性传感器允许以比帧速率高几个数量级的惯性测量单元速率估计姿态,这是某些使用情况下的一个关键特征.对于双目摄像机因其较高的体积、成本或处理要求而不受欢迎的应用,您可以使用单目惯性,而不会在鲁棒性和准确性方面损失太多。请记住,勘探期间的纯旋转不允许估计深度
在运动缓慢或没有滚转和俯仰旋转的应用中,例如平坦地区的汽车,惯性测量单元传感器可能难以初始化.在这些情况下,如果可能,使用双目SLAM.除此之外,最近在利用CNN从单个图像进行深度估计方面取得的进展为可靠和真实尺度的单目SLAM提供了良好的前景[85],至少在CNN训练过的相同类型的环境中是如此.
本文仅做学术分享,如有侵权,请联系删文。