一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于LK光流法与ORB-SLAM2的导航定位方法与流程

2021-12-17 19:48:00 来源:中国专利 TAG:

一种基于lk光流法与orb

slam2的导航定位方法
技术领域
1.本发明涉及slam技术,尤其涉及一种基于lk光流法与 orb

slam2的导航定位的方法。


背景技术:

2.orb

slam2是一种十分典型的视觉slam方案。可使用单目,双目和rgb

d相机作为传感器。系统使用orb特征进行追踪、建图和位置识别任务,orb特征具有旋转不变性和尺度不变性的优点。且在使用时能够迅速的提取特征和进行匹配,能够满足实时操作的一般需求,可在基于词袋的位置识别过程中,显示出良好的精度,满足商用以及民用的日常活动。
3.但是,orb

slam2算法对于数据帧的处理是非常耗时的,该算法会将传入的每一个数据帧进行特征提取与特征皮配。众所周知,特征提取与特征匹配是非常耗时的,最终结果,这会影响该算法的实时性,使得在某些需要快速反应的场合不适用。
4.所以亟需一种改进方法,能够解决orb

slam2算法对每一个数据帧进行特征匹配与特征提取的问题。目前,改进orb

slam2 算法实时性都是在改变它的特征提取与特征匹配的方式方法,尤其是改变特征提取的速度居多,但最后在应用方面略显一般。


技术实现要素:

5.本文发明了一种基于lk光流法与orb

slam2的导航定位算法,来增强了现有技术的的实时性。
6.为了实施上述的目的,本文本文采取了以下技术方案:
7.步骤一,实时的采集图像数据的数据帧;
8.步骤二,在orb

slam2计算相机位姿之前,借助基于gpu的 lk光流法,对于t时刻位于(x,y)处的像素,我们设t dt时刻,它运动到(x dx,y dy)处。由于灰度不变,我们有:
9.i(x,y,t)=i(x δx,y δy,t δt)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
10.对左边进行泰勒展开,保留一阶项,得:
[0011][0012]
后联立上式,等式两边对时间t求导可以得到简化方程:
[0013][0014]
两边除以dt,得:
[0015][0016]
其中,令u=dx/dt,v=dy/dt。u,v分别为为像素在x轴上运动速度和y轴速度,也是i(x,y)上的光流。
[0017]
为了获取数据帧的特征点数,光流法追踪特征点包括以下步骤:
[0018]
1)把第一帧图像作为keyframe,并提取orb特征点p;
[0019]
2)利用gpu加速的光流法对点p跟踪到下一帧的p’;
[0020]
3)利用gpu加速的光流法对点p跟踪到上一帧的p1;
[0021]
4)计算p与p1的像素距离;
[0022]
5)利用p跟踪到p’的跟踪状态,p’到p1的跟踪状态,p与p1 之间的像素距离,综合判断从p到p’是否一个准确的跟踪。
[0023]
由基于gpu的lk光流法追踪特征点,与阈值相对比,低于阈值特征点数量的数据帧被丢弃,不在进入到算法的三个线程中去。其中,所属的空间保持一致性,不能出现位置的突变与空间跳跃,使得检测的当前帧特征点与上一帧的特征点无法对应。lk光流法追踪的特征点速度与转动时角速适中,保证像素不会因为这两个因素发生显著的变化。
[0024]
相机产生的位姿最后通过当前帧中所获得的点云地图进行优化,尽可能使当前帧与局部地图更多的匹配点对,使相机产生的位姿更加的准确可靠。关键帧插入时,添加一个关键帧节点,检查与该节点有共同的云点的其他关键帧,边线连接后,更新生成树与该节点有最多共享点的其他关键帧的链接,计算表示该关键帧的词袋,利用三角法生成点云地图。
[0025]
步骤三,关键帧进入到orb

slam2的trackering,localmapping,loopclosing三个线程,实现orb

slam2原有的功能,完成算法的定位。但是,阈值可以根据实际情况进行微调,但算法必须始终保持只有一个相同的阈值。
[0026]
步骤四,由pcl(point cloud library)软件处理rgb

d图像计算来的点云数据据,根据lk光流法选取的关键帧对应的相机位姿与根点云数据创建局部稠密点云地图,对局部稠密点云地图进行点云拼接,得到全局稠密点云地图。
附图说明
[0027]
下面将结合附图及实施例对本发明作进一步说明,附图中:
[0028]
图1是本发明基于gpu的lk流光法的原理图;
[0029]
图2是本发明实基于lk光流法与orb

slam2的导航定位算法流程图;
[0030]
图3是本发明采用kitti数据集验证的算法精度的误差轨迹对比图;
具体实施方式
[0031]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0032]
本文发明了一种基于lk光流法与orb

slam2的导航定位算法,来增强了现有技术的的实时性。
[0033]
本文本文采取了以下技术方案:
[0034]
步骤一,实时的采集图像数据的数据帧;
[0035]
步骤二,在orb

slam2计算相机位姿之前,借助基于gpu的 lk光流法,对于t时刻位于(x,y)处的像素,我们设t dt时刻,它运动到(x dx,y dy)处。由于灰度不变,我们有:
[0036]
i(x,y,t)=i(x δx,y δy,t δt)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0037]
对左边进行泰勒展开,保留一阶项,得:
[0038][0039]
后联立上式,等式两边对时间t求导可以得到简化方程:
[0040][0041]
两边除以dt,得:
[0042][0043]
其中,令u=dx/dt,v=dy/dt。u,v分别为为像素在x轴上运动速度和y轴速度,也是i(x,y)上的光流。
[0044]
如图1所示为基于gpu的lk流光法的原理图,为了获取数据帧的特征点数,光流法追踪特征点包括以下步骤:
[0045]
1)把第一帧图像作为keyframe,并提取orb特征点p;
[0046]
2)利用gpu加速的光流法对点p跟踪到下一帧的p’;
[0047]
3)利用gpu加速的光流法对点p跟踪到上一帧的p1;
[0048]
4)计算p与p1的像素距离;
[0049]
5)利用p跟踪到p’的跟踪状态,p’到p1的跟踪状态,p与p1 之间的像素距离,综合判断从p到p’是否一个准确的跟踪。
[0050]
如图2所示为基于lk光流法与orb

slam2的导航定位算法流程图,由基于gpu的lk光流法追踪特征点,根据步骤一追踪到特征点的数量与阈值相对比,低于阈值特征点数量的数据帧被丢弃,不在进入到算法的三个线程中去。其中,所属的空间保持一致性,不能出现位置的突变与空间跳跃,使得检测的当前帧特征点与上一帧的特征点无法对应。lk光流法追踪的特征点速度与转动时角速适中,保证像素不会因为这两个因素发生显著的变化。
[0051]
相机产生的位姿最后通过当前帧中所获得的点云地图进行优化,尽可能使当前帧与局部地图更多的匹配点对,使相机产生的位姿更加的准确可靠。关键帧插入时,添加一个关键帧节点,检查与该节点有共同的云点的其他关键帧,边线连接后,更新生成树与该节点有最多共享点的其他关键帧的链接,计算表示该关键帧的词袋,利用三角法生成点云地图。
[0052]
步骤三,关键帧进入到orb

slam2的trackering,localmapping, loopclosing三个线程,实现orb

slam2原有的功能,完成算法的定位。但是,阈值可以根据实际情况进行微调,但算法必须始终保持只有一个相同的阈值。
[0053]
步骤四,由pcl(point cloud library)软件处理rgb

d图像计算来的点云数据据,根据lk光流法选取的关键帧对应的相机位姿与根点云数据创建局部稠密点云地图,对局部稠密点云地图进行点云拼接,得到全局稠密点云地图。
[0054]
kitti数据集是用来评估计算机视觉算法性能的开源数据集。该数据集包括了22个数据,图像的分辨率为1240*376。本文采用绝对平移的均方根误差(absolute trajectory error,ate)来评价本算法的精度。
[0055]
如图3所示为采用kitti数据集验证的算法精度的误差轨迹对比图。本文算法在提
高传统技术的实时性的同时,保证了算法原有的精度,而且还略微提高了一些。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献