一种基于灰度直方图的ORB-SLAM3回环检测加速方法

文档序号:31542262发布日期:2022-09-17 00:11阅读:111来源:国知局
一种基于灰度直方图的ORB-SLAM3回环检测加速方法
一种基于灰度直方图的orb-slam3回环检测加速方法
技术领域
1.本发明涉及机器人同步定位与地图创建领域,尤其涉及一种基于灰度直方 图的orb-slam3回环检测加速方法。


背景技术:

2.近十年来,同时定位和地图构建(simultaneous localization andmapping,slam)的发展非常迅速,研究的重心从最开始的激光雷达slam渐渐 的向视觉slam转移。其中slam系统的实时性被认为是目前研究的关键问题 之一,对机器人的实际应用以及应用扩展有着重要意义。在目前的众多slam 框架中,orb-slam3是目前性能最好的开源框架之一,其利用词袋模型进行长 期的数据关联,可以实现同地图的回环以及多地图的融合,并且利用几何验证 结合时序验证的方法,实现了召回率的提升。但由于该方法产生的回环候选关 键帧的质量不高,从而导致回环检测过程进行大量无效的计算,这对slam系 统的实时性产生了巨大的影响。
3.现有技术的回环检测方法主要存在以下两个问题:
4.1、回环候选关键帧的质量差,导致多次无效计算,甚至错过回环最佳时 间。
5.2、回环检测线程计算量大,而随着系统运行时间增长,时间消耗也会增 加,导致slam系统的实时性下降。
6.故,针对现有技术的缺陷,实有必要提出一种技术方案以解决现有技术存 在的技术问题。


技术实现要素:

7.有鉴于此,确有必要提供一种基于灰度直方图的orb-slam3回环检测加 速方法,从输入关键帧的灰度图中提取出灰度直方图及其标准差和均值等信息, 再利用这些信息进行回环候选关键帧的预筛选,然后进行回环验证和回环矫正, 从而大大降低了回环检测线程对每一帧的计算量,同时提高了候选关键帧的质 量,不仅提高了实时性也提高了精度。
8.为了克服现有技术的缺陷,本发明的技术方案如下:
9.一种基于灰度直方图的orb-slam3回环检测加速方法,包括以下步骤:
10.步骤s1:在局部建图线程向回环检测线程插入关键帧时,提取关键帧的 灰度直方图,并计算其标准差、均值等信息;
11.步骤s2:在回环检测的前端筛选出高质量的回环候选关键帧;
12.步骤s3:对回环候选关键帧进行回环可行性验证;
13.步骤s4:在回环检测的后端进行回环矫正;其中,步骤s1进一步包括:
14.步骤s11:对插入到回环检测线程的关键帧灰度图进行自适应裁剪,根据 i

gray
=rect(i
gray
,θ1,λ1,θ2,λ2),其中i

gray
为裁剪后的灰度图,表示将i
gray
从 坐标(θ1,λ1)截取至(θ2,λ2),具体坐标根据输入图像大小自动调整;
15.步骤s12:计算i

gray
的灰度直方图hist,取0~255共256个灰度级;
16.步骤s13:根据对hist进行范围归一化得到h, 其中x
in
、x
out
分别为原本各灰度级对应的值与归一化后各灰度级对应的值,值 的取值范围从(γ,δ)映射到(α,β);
17.步骤s14:计算范围归一化后的灰度直方图的均值和标准差,计算公式如 下:
[0018][0019][0020]
其中m
×
n为灰度直方图h的大小,p(i,j)表示直方图第i行,第j列的 值;
[0021]
步骤s15:建立二维容器来存放帧的数据结构,以均值作为横坐标,以标 准差作为纵坐标,根据(μ,sd)将关键帧放入容器的对应位置;
[0022]
步骤s2在回环检测的前端筛选出高质量的回环候选关键帧,该步骤进一 步包括:
[0023]
步骤s21:根据当前关键帧的均值和标准差,根据(μ,sd)从二维容器中取 出与当前帧的均值和标准差相似的关键帧组,也即在二维容器中存放位置相近 的所有关键帧;
[0024]
步骤s22:遍历当前关键帧的所有词袋节点,根据词袋的倒排索引,在上 述关键帧组中再取出与当前关键帧有共同节点的所有关键帧kfs;
[0025]
步骤s23:获取当前帧的共视关键帧的数量m,并从kfs中直接剔除与当 前帧的id之差小于m的所有关键帧,得到新的kfs;
[0026]
步骤s24:从上述kfs中寻找最好的三个关键帧,作为候选关键帧组;该 步骤s24进一步包括:
[0027]
步骤s241:利用词袋向量计算两帧的相似得分;
[0028]
步骤s242:相似得分低于阈值的关键帧标记以后不与当前帧检测。相似 得分高于阈值的关键帧,再计算其相邻关键帧的得分;
[0029]
步骤s243:将相似得分高于阈值的关键帧与其相邻关键帧进行得分比较, 返回3个得分远高于相邻关键帧得分的最好关键帧,作为候选关键帧组;
[0030]
步骤s25:计算候选关键帧组中的关键帧与当前帧的灰度直方图的相似度, 剔除相似度小于0.85的候选关键帧,相似度计算公式如下;
[0031][0032]
[0033]
其中当前帧与候选关键帧处理后的灰度直方图分别为h1和h2,h1和h2之 间的相似度为d(h1,h2),d(h1,h2)越接近1则认为两帧之间的相似度越高;
[0034]
步骤s3对回环候选真进行回环可行性验证,该步骤进一步包括:
[0035]
步骤s31:几何验证。当前关键帧的5个共视关键帧中只要有3个满足条 件(和候选关键帧组匹配成功)即可认为几何验证通过。如果不够3个,则进 行s32;
[0036]
步骤s32:时序验证。如果后续输入的关键帧也能与候选关键帧组匹配成 功,则认为时序验证通过,与上一步几何验证成功的次数之和为3则认为回环 可行性初步验证通过。如果连续两帧时序验证失败,则认为时序验证失败;
[0037]
步骤s33:最后进行滚转角、俯仰角、偏航角的变换量验证,只有三个量 都小于一定阈值才认为回环可行性验证最终通过;
[0038]
步骤s4在回环检测的后端进行回环矫正,该步骤进一步包括:
[0039]
步骤s41:计算关键帧的sim3变换;
[0040]
步骤s42:位姿传播;
[0041]
步骤s43:地图点修正。
[0042]
与现有技术相比较,采用本发明技术方案,能够大幅提高实时性。本发明 利用关键帧的灰度直方图等信息,在回环检测前端进行筛选,并根据回环候选 帧与当前关键帧的相似度进行进一步的剔除。该过程计算极其轻量,能够有效 的去除大量无效计算。并且利用灰度直方图之间的相似度,在图像整体的灰度 分布层面能够保证极高的相似,从而提高回环候选帧的质量,使回环候选帧与 当前帧的相似度很高,从而也减少了回环时的计算次数,使slam系统的实时 性大幅提高。
附图说明
[0043]
图1为本发明提供的一种基于灰度直方图的orb-slam3回环检测加速方 法的框架流程图;
[0044]
图2为本发明提供的一种基于灰度直方图的orb-slam3回环检测加速方 法中步骤s24的详细流程图;
[0045]
图3为本发明与orb-slam3算法在euroc数据集上的回环检测过程时间 对比图;
[0046]
图4为本发明与orb-slam3算法在v203序列上的每一关键帧回环检测 时间对比图;
[0047]
如下具体实施例将结合上述附图进一步说明本发明。
具体实施方式
[0048]
以下将结合附图对本发明提供的技术方案作进一步说明。
[0049]
在目前的性能比较优秀的视觉slam系统中,大都采用词袋模型进行闭环 的检测,从而实现数据的长期关联和误差消除过程。词袋模型具有较少的计算 量,能使闭环过程有较高的召回率。但是词袋模型的有效性深受训练集的影响, 少量的图像不能训练出一个有效的词袋模型,并且词袋模型并不是完全精确, 很容易出现假阳性数据,并且基于词袋的回环检测方法只在乎单词有无,不在 乎单词的排列顺序,会容易引发感知偏差,因此需要用其他方式额外验证。图 像的灰度直方图具有平移、旋转、缩放不变性,并且其各项指标都
能被快速计 算与比较,能实现以较小的计算代价反应一幅图像的整体像素分布规律,非常 适合用于slam系统中。
[0050]
参见图1、图2,本发明提供一种基于灰度直方图的orb-slam3回环检测 加速方法,图1所示为本发明基于灰度直方图的orb-slam3回环检测加速方 法的架构图,整体而言,本发明包括4大步骤,步骤s1:在局部建图线程向 回环检测线程插入关键帧时,提取关键帧的灰度直方图,并计算其标准差、均 值等信息;步骤s2:在回环检测的前端筛选出高质量的回环候选关键帧;步 骤s3:对回环候选关键帧进行回环可行性验证;步骤s4:在回环检测的后端 进行回环矫正;
[0051]
步骤s1在局部建图线程向回环检测线程插入关键帧时,提取关键帧的灰 度直方图,并计算其标准差、均值等信息,具体包括如下步骤:
[0052]
步骤s11:对插入到回环检测线程的关键帧灰度图进行自适应裁剪,根据 i

gray
=rect(i
gray
,θ1,λ1,θ2,λ2),其中i

gray
为裁剪后的灰度图,表示将i
gray
从 坐标(θ1,λ1)截取至(θ2,λ2),具体坐标根据输入图像大小自动调整;
[0053]
步骤s12:计算i

gray
的灰度直方图hist,取0~255共256个灰度级;
[0054]
步骤s13:根据对hist进行范围归一化得到h, 其中x
in
、x
out
分别为原本各灰度级对应的值与归一化后各灰度级对应的值,值 的取值范围从(γ,δ)映射到(α,β);
[0055]
步骤s14:计算范围归一化后的灰度直方图的均值和标准差,计算公式如 下:
[0056][0057][0058]
其中m
×
n为灰度直方图h的大小,p(i,j)表示直方图第i行,第j列的 值;
[0059]
步骤s15:建立二维容器来存放帧的数据结构,以均值作为横坐标,以标 准差作为纵坐标,根据(μ,sd)将关键帧放入容器的对应位置;
[0060]
步骤s2在回环检测的前端筛选出高质量的回环候选关键帧,具体包括如 下步骤:
[0061]
步骤s21:根据当前关键帧的均值和标准差,根据(μ,sd)从二维容器中取 出与当前帧的均值和标准差相似的关键帧组,也即在二维容器中存放位置相近 的所有关键帧;
[0062]
步骤s22:遍历当前关键帧的所有词袋节点,根据词袋的倒排索引,在上 述关键帧组中再取出与当前关键帧有共同节点的所有关键帧kfs;
[0063]
步骤s23:获取当前帧的共视关键帧的数量m,并从kfs中直接剔除与当 前帧的id之差小于m的所有关键帧,得到新的kfs;
[0064]
步骤s24:从上述kfs中寻找最好的三个关键帧,作为候选关键帧组;
[0065]
图2所示为本发明提供的一种基于灰度直方图的orb-slam3回环检测加 速方法中上述步骤的详细流程图,其进一步包括以下步骤:
[0066]
步骤s241:利用词袋向量计算两帧的相似得分;
[0067]
步骤s242:相似得分低于阈值的关键帧标记以后不与当前帧检测。相似 得分高于阈值的关键帧,再计算其相邻关键帧的得分;
[0068]
步骤s243:将相似得分高于阈值的关键帧与其相邻关键帧进行得分比较, 返回3个得分远高于相邻关键帧得分的最好关键帧,作为候选关键帧组;
[0069]
步骤s25:计算候选关键帧组中的关键帧与当前帧的灰度直方图的相似度, 剔除相似度小于0.85的候选关键帧,相似度计算公式如下;
[0070][0071][0072]
其中当前帧与候选关键帧处理后的灰度直方图分别为h1和h2,h1和h2之 间的相似度为d(h1,h2),d(h1,h2)越接近1则认为两帧之间的相似度越高;
[0073]
步骤s3对回环后选帧进行回环可行性验证,具体包括如下步骤:
[0074]
步骤s31:几何验证。当前关键帧的5个共视关键帧中只要有3个满足条 件(和候选关键帧组匹配成功)即可认为几何验证通过。如果不够3个,则进 行s32;
[0075]
步骤s32:时序验证。如果后续输入的关键帧也能与候选关键帧组匹配成 功,则认为时序验证通过,与上一步几何验证成功的次数之和为3则认为回环 可行性初步验证通过。如果连续两帧时序验证失败,则认为时序验证失败;
[0076]
步骤s33:最后进行滚转角、俯仰角、偏航角的变换量验证,只有三个量 都小于一定阈值才认为回环可行性验证最终通过;
[0077]
步骤s4在回环检测的后端进行回环矫正,具体包括如下步骤:
[0078]
步骤s41:计算关键帧的sim3变换;
[0079]
步骤s42:位姿传播;
[0080]
步骤s43:地图点修正。
[0081]
在本发明中使用的输入数据采用euroc数据集中的图像及imu数据,euroc 数据集为微型飞行器收集的视觉惯性数据集,包含11段双目视频序列数据集 场景为室内房间和工厂,其中v103、v202以及v203为有回环的序列。本文仿 真实验平台为一台intel(r)core(tm)i7-7700hq cpu@2.80ghz,24g内存的 计算机。将数据集中的所有视频序列都应用到本实验中,观察经本文算法处理 后的回环检测时间与未处理的orb-slam3的回环检测时间的关系。
[0082]
为了验证本发明的技术效果,将通过算法对比验证本发明的有效性:
[0083]
在本方法与orb-slam3原方法的对比中,以两者均运行十次并取中值为 最终的比较结果。以算法在回环检测过程中的时间消耗为测量指标进行对比, 并计算较原算法,本方法所提升的时间效率。其次,由于v203序列是一个带 有运动模糊的快速移动序列,在v203序列中,中后期开始出现大量的重复场 景,slam系统应当在此段场景中完成回环检测
以及回环矫正过程,但是这期 间并不是所有帧都满足回环的条件,有很多帧具有模糊以及rpy方向上的角 度变化过大的特点,虽然能够提取到相似的特征点并进行匹配,但是最后都会 被舍弃,故在v203序列中出现了数次由于以上原因无效计算大量时间的情 况,其中每次计算都耗费了几十毫秒,严重浪费了计算机资源。故以v203为 例,计算该序列中的每一关键帧在回环检测过程所消耗的时间,直观的展示回 环时的大量时间消耗,并展示本算法的提升。
[0084]
参见表1、图3、图4所示,为本发明与orb-slam3原始算法的实验数据 结果对比。其中表1为本发明与orb-slam3原始算法的回环检测时间消耗数 据以及时间效率的提升;图3为本发明与orb-slam3原始算法分别在euroc数 据集11个序列上的平均回环检测时间对比图;图4为本发明与orb-slam3原 算法在v203序列上的各关键帧的回环检测时间对比图。
[0085]
表1本发明算法与orb-slam3原始算法的回环检测时间对比及时间(ms)效率提升
[0086][0087]
上表1列出了本发明算法与orb-slam3原始算法的回环检测时间的对比, 以及时间效率提升的百分比。图3展示了本方法在11个序列中的个关键帧平 均检测时间,能够形象的展示本方法较orb-slam3的时间消耗的减少。进一步 的实验,图4展示了在v203序列上的个关键帧的回环检测时间消耗,形象的 体现出在整个序列中各帧的时间消耗,尤其体现出在计算回环时的时间消耗格 外大,由于更好的体现在图中,将时间取对数。综上所述,本发明通过利用灰 度直方图对orb-slam3的回环检测线程进行改进,极大的减少了每一帧在回 环检测过程中的时间消耗,提高了slam系统的实时性,其中在有回环或运行 时间长的情况下实时性提升更为明显。如表1所见,在euroc数据集的所有序 列中,本发明相比orb-slam3原方法的时间效率平均提升约55.96%。
[0088]
以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指 出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还 可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的 保护范围内。
[0089]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本 发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的, 本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它 实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要 符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1