基于ORB

本发明涉及计算机视觉技术领域,具体地涉及一种基于orb-slam算法的图像特征点跟踪匹配方法。

背景技术:

近年来,随着计算机视觉的不断发展,slam技术被广泛的用于各个领域,虚拟现实、增强现实、机器人、无人机、无人驾驶等等。随着计算机硬件的不断发展,视觉信息的处理的实时化也变得可能,利用视觉信息进行实时的定位和地图构建在提高信息获取量的同时也极大的降低了智能机器人产品的价格。

视觉slam主要包前端视觉里程计,后端优化以及回环检测模块,其中前端视觉里程计主要通过提取图像的特征点和描述子进行匹配跟踪,并计算帧间相对位姿,后端优化则结合更多的历史信息去优化位姿,回环检测模块主要用于消除累计误差,提升定位建图的精度。orb-slam作为视觉slam的一个标杆,以其稳定,接口丰富而逐渐被人们作为一个基准slam系统。

但orb-slam对计算资源相对要求较高,不适用于低端处理器。

技术实现要素:

本发明针对现有技术中存在的问题,提出了一种基于orb-slam算法的图像特征点跟踪匹配方法,该方法提升了相机跟踪以及姿态估计的计算速度,并提升了该方法跟踪匹配的精度。

本发明的目的是通过如下技术方案实现的:一种基于orb-slam算法的图像特征点跟踪匹配方法,包括以下步骤:

(1)将视频分成帧图像,对于前三帧图像,分别提取orb特征描述子并做四叉树均匀分布处理,

(2)对于第四帧图像基于匀加速运动预测步骤(1)中orb特征点的位置,

(3)根据第三帧图像上orb特征点位置和步骤(2)预测的orb特征点位置,根据稀疏光流法求解第三帧图像和第四帧图像上对应orb特征点的运动增量,获得第四帧图像上orb特征点的精确位置;

(4)将步骤(3)获得的第四帧图像上orb特征点的精确位置进行反向稀疏光流跟踪,计算出第三帧图像中对应orb特征点的位置,当计算出第三帧图像中对应orb特征点的位置与第三帧图像中对应的orb特征点的实际位置的欧式距离为1.5pixel以上,则将第三帧图像和第四帧图像中对应的orb特征点剔除,保留第三帧和第四帧图像上对应的orb特征点欧式距离小于1.5pixel的匹配点对;

(5)对步骤(4)保留的匹配点对进行鲁棒ransac估计,并剔除离群点,剩下正确的匹配点对;

(6)根据剩下的匹配点对求解6d位姿并判断第四帧是否为关键帧,若第四帧为关键帧,则提取orb特征点和描述子,否则输入下一帧图像重复步骤(2)-(6),直至完成对视频中所有图像帧的跟踪匹配。

进一步地,步骤(1)包括如下子步骤:

(1.1)将帧图像进行直方图均衡化处理,随后设置帧图像的比例因子s和金字塔的层数n,将所述帧图像按比例因子s缩小成n幅图像,缩放后的图像,其中,代表帧图像,为n的索引,,将幅图像的提取特征点总和作为帧图像的fast特征点;

(1.2)通过矩来计算fast特征点以r为半径的图像块的质心,所述fast特征点的坐标到质心形成的向量表示所述fast特征点的方向,其中,所述图像块的矩表示为:

其中,表示图像在处的灰度值,其中p表示第一指数,取值为0或1,q表示第二指数,取值为0或1;

(1.3)对于步骤(1.1)获得的fast特征点的帧图像,构建四叉树,对于每一个子节点,当节点内fast特征点数目等于1时,不再往下划分,若节点数目大于1,则继续向下划分四叉树,直到所有节点只含有一个特征点或者此时划分的节点数已经满足特征点数目要求;

(1.4)对于剩余的fast特征点提取brief二进制串的特征描述符,从该关键点周围的邻域内随机选择a对像素点(),并将该点对旋转,比较每个像素点对的灰度值大小,如果,则该处二进制串为1,否则为0,最终生成长度为256的orb特征描述子;其中,s为邻域的边长,取值为31像素。

进一步地,步骤(2)包括如下子步骤:

(2.1)将相机自由度的运动均设置为匀加速运动,获得第一帧图像、第二帧图像、第三帧图像、第四帧图像的姿态,,,,且第四帧图像、第三帧图像、第二帧图像对应姿态的速度表示为,,,满足:

(2.2)根据第一帧图像的姿态以及第四帧图像的速度,估计出第四帧图像的姿态为,随后预测出第四帧图像的某一orb特征点位置:

其中,为第三帧图像中对应orb特征点的3d点,,k为相机内参矩阵,w为尺度因子;

(2.3)重复步骤(2.2)预测出第四帧图像上所有orb特征点位置。

进一步地,所述关键帧满足:当前帧图像与上一帧图像的运动平移距离大于1m、旋转角度大于5°,且步骤(5)中的正确匹配点对小于150。

本发明的有益效果是:由于30hz的图像序列,相邻两帧的运动量不大,本发明只针对关键帧进行orb特征点和描述子提取,通过关键帧之间的基于匀加速运动模型预测,正反向光流精细化跟踪orb特征点位置,相比于传统的需要对输入的每一帧提取耗时的orb特征点以及对应的orb特征描述子,然后根据描述子之间的汉明距离进行特征点之间的跟踪和匹配,一方面减少耗时,另一方面,在保证跟踪匹配方法精度的同时能够极大的提高该方法的运行速度。

附图说明

图1为本发明基于orb-slam算法的图像特征点跟踪匹配方法流程图;

图2为本发明基于orb-slam算法的提取特征流程图;

图3为本发明基于匀加速运动模型特征点预测示意图;

图4为本发明正向光流跟踪和反向光流剔除的特征点跟踪示意图。

具体实施方式

如图1为本发明基于orb-slam算法的图像特征点跟踪匹配方法流程图,具体包括如下步骤:

(1)将视频分成帧图像,对于前三帧图像,分别提取orb特征描述子并做四叉树均匀分布处理,该流程如图2所示:

(1.1)将帧图像进行直方图均衡化处理,其目的是为了保证帧图像不至于过亮和过暗,保证信息完整,然后提取fast特征点,由于fast特征点不具备尺度不变性和旋转不变形,因此在处理尺度不变性上,设置帧图像的比例因子s和金字塔的层数n,将所述帧图像按比例因子s缩小成n幅图像,缩放后的图像,其中,代表帧图像,为n的索引,,将幅图像的提取特征点总和作为帧图像的fast特征点;

(1.2)在处理旋转不变性上,通过矩来计算fast特征点以r为半径的图像块的质心,所述fast特征点的坐标到质心形成的向量表示所述fast特征点的方向,其中,所述图像块的矩表示为:

其中,表示图像在处的灰度值,其中p表示第一指数,取值为0或1,q表示第二指数,取值为0或1。

则所述fast特征点的方向为:

(1.3)运用四叉树算法使得fast特征点分布均匀,因此对于步骤(1.1)获得的fast特征点的帧图像,构建四叉树,对于每一个子节点,当节点内fast特征点数目等于1时,不再往下划分,若节点数目大于1,则继续向下划分四叉树,直到所有节点只含有一个特征点或者此时划分的节点数已经满足特征点数目要求;

(1.4)对于剩余的fast特征点提取brief二进制串的特征描述符,从该关键点周围的邻域内随机选择a对像素点(),并将该点对旋转度,比较每个像素点对的灰度值大小,如果,则该处二进制串为1,否则为0,最终生成长度为的orb特征描述子;其中,s为邻域的边长,取值为31像素。

(2)为了计算帧图像间的运动,将相机建模为匀加速运动,如图3,对于第四帧图像基于匀加速运动预测步骤(1)中orb特征点的位置,包括如下子步骤:

(2.1)将相机自由度的运动均设置为匀加速运动,获得第一帧图像、第二帧图像、第三帧图像、第四帧图像的姿态,,,,且第四帧图像、第三帧图像、第二帧图像对应姿态的速度表示为,,,则有:。

由于将相机建模为匀加速运动,所以第四帧图像的速度可以与前三帧图像的姿态建立关系,且两帧图像之间的运动量应该是一致的,则有:,其中表示速度向量的增量运算,左右展开可得,以及,于是有:

(4)将步骤(3)获得的第四帧图像上orb特征点的精确位置进行反向稀疏光流跟踪,计算出第三帧图像中对应orb特征点的位置,当计算出第三帧图像中对应orb特征点的位置与第三帧图像中对应的orb特征点的实际位置的欧式距离为以上,则将第三帧图像和第四帧图像中对应的orb特征点剔除,保留第三帧和第四帧图像上对应的orb特征点欧式距离小于的匹配点对。如图4描述了步骤3和步骤4正向光流跟踪和反向光流校验剔除离群点的示意图。

(6)根据剩下的匹配点对求解6d位姿并判断第四帧是否为关键帧,若第四帧为关键帧,则提取orb特征点和描述子,否则输入下一帧图像重复步骤(2)-(6),直至完成对视频中所有图像帧的跟踪匹配。所述关键帧满足:当前帧图像与上一帧图像的运动平移距离大于1m、旋转角度大于5°,且步骤(5)中的正确匹配点对

表1:本发明跟踪匹配方法与传统方法的效果对比

以上,仅为本发明较佳的具体实施方式;但本发明的保护范围并不局限于此。任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其改进构思加以等同替换或改变,都应涵盖在本发明的保护范围内。

THE END
1.C++AVL树的讲解和编写首先,我们要明白,上图中结构在插入前是一颗AVL树,插入后要想满足左单选的条件,上面插入前的原图中数据为30结点的平衡因子必须为1,插入后变为2,即c树中插入结点后高度必加1且插入后数据为60结点的高度满足平衡条件,因为我们在往上排查中发现的是最近一个结点的平衡失调,而原图中30所对应的结点是parent结点。至于https://open.alipay.com/portal/forum/post/161301037
2.四叉树算法的英文四叉树算法翻译四叉树算法英语怎么说海词词典,最权威的学习词典,专业出版四叉树算法的英文,四叉树算法翻译,四叉树算法英语怎么说等详细讲解。海词词典:学习变容易,记忆很深刻。http://dict.cn/%E5%9B%9B%E5%8F%89%E6%A0%91%E7%AE%97%E6%B3%95
3.四叉树算法(KrigingCal)开发实例源码下载四叉树算法(KrigingCal) C#语言基础 下载此实例 开发语言:C# 实例大小:0.08M 下载次数:11 浏览次数:289 发布时间:2021-01-18 实例类别:C#语言基础 发布人:y2534836761 文件格式:.zip 所需积分:2 相关标签:拓扑空间查询 网友评论举报投诉收藏该页 同类人气实例https://www.haolizi.net/example/view_159378.html
4.哪位能讲讲四叉树算法以及其实现原理四叉树算法在实际应用中非常广泛,比如用于游戏中的路径规划、图像处理中的快速搜索算法等。同时,由于其复杂度较高,因此在使用时需要权衡效率和准确性之间的关系。 有用(0) 回复 举报 相关问题 家电 1.3万 浏览 1044 回答 手机性能天梯榜讨论 4389 浏览 615 回答 显卡 2.1万 浏览 614 回答 硬盘 1.5万 https://wap.zol.com.cn/ask/details_25095091_530842_3.html
5.基于小波树和四叉树的图像分形编码算法研究AET对高分辨率子带,将水平、垂直和对角3个方向的小波子带结合起来考虑,形成小波树结构,设定一个阈值,小波树所有系数小于等于阈值则直接置零;大于阈值的小波树采用四叉树算法进行分形编码,如果误差小于等于阈值,则记录分形编码参数,否则进行四叉树分裂。对算法进行了Matlab仿真,结果表明,在保证一定解码图像质量的情况下,http://www.chinaaet.com/article/213726
6.C#四叉树算法源码及Demo示例解析资源摘要信息: "四叉树 C# 源码" 知识点: 1. 四叉树概念: 四叉树是一种树形数据结构,通常用于管理二维空间数据。它可以将二维空间划分为四个象限(或称为“象限”),每个象限又可以继续划分为更小的四个象限,这样递归地划分可以有效地管理和索引空间数据。四叉树在计算机图形学、游戏开发、地理信息系统(GIS)以https://wenku.csdn.net/doc/578exm6884
7.一种基于四叉树的改进的ORB特征提取算法首先,将图片构造成图像金字塔来解决尺度不变性问题;然后,在每一层金字塔图像上检测角点来提取特征点;接着,引入四叉树算法来均匀化分布特征点并计算特征点的方向和描述子;最后,以华硕深度摄像头(Xtion PRO)为实验工具,在室内环境下提取周边特征点,并将提取效果与其他方法进行对比,实验证明了所提算法在图像特征均匀化https://mall.cnki.net/magazine/Article/JSJA2018S2044.htm
8.数据结构与算法四叉树(javascript实现)罗松与拇指(这部分就直接抄了,见参考)四叉树(Q-Tree)是一种树形数据结构。四叉树的定义是:它的每个节点下至多可以有四个子节点,通常把一部分二维空间细分为四个象限或区域并把该区域里的相关信息存入到四叉树节点中。这个区域可以是正方形、矩形或是任意形状。以下为四叉树的二维空间结构(左)和存储结构(右)示意图(注https://segmentfault.com/a/1190000000495387
9.算法&数据结构——四叉树优雅的实现一颗四叉树 具备功能 创建树 插入节点 删除节点 遍历节点 类的定义 template<class Value>class Tree4{public:// 在范围内, 创建一颗指定层次的四叉树Tree4(constMATH Rect&,size_t);// 判断某一区域是否包含在四叉树内template<class Range>Tree4*Contain(constRange&);// 根据给定区域, 插入一https://www.jianshu.com/p/8463a567a9b3
10.一种基于四叉树划分的改进ORB算法摘要: 原ORB (oriented FAST and rotated BRIEF)算法提取的图像特征点经常出现“扎堆重叠”现象,其分布较为密集且缺乏尺度不变性,因而容易造成图像特征点误匹配的问题。为了解决该问题,提出了一种基于四叉树划分的图像特征点提取算法。首先对图像建立尺度金字塔,然后使用四叉树划分图像并限制划分深度。用加速分段测试的https://www.amm.shu.edu.cn/CN/abstract/abstract18860.shtml
11.干货想学习优化算法,不知从何学起?Greedy Randomized Adaptive Search 算法超详细解析,附代码实现TSP问题求解 群体仿生类 基于MPI的并行遗传算法 应用篇 主要介绍应用前面所学的框架,来求解各类问题,包括如何设计算子,如何创新算法框架等等。 干货| 十分钟掌握禁忌搜索算法求解带时间窗的车辆路径问题(附C++代码和详细代码注释) 论文拾萃 | 基于树表示法的https://zhuanlan.zhihu.com/p/556105438
12.四叉树LOD,quad四叉树LOD例句>> 2) Quadtrees 四叉树 1. Preprocessing LOD algorithm for large scale terrain based on restricted quadtrees; 基于限制性四叉树LOD大规模地形预处理算法 2. Autonomou System Environment Modeling Based on Quadtrees; 用四叉树算法建立自主系统环境模型 3. A Fractal Image Compression http://www.dictall.com/indu58/34/58343674864.htm
13.基于Unity的数字化车间改进资源动态调度算法摘要:针对基于Unity引擎的车间仿真系统加载过程中内存占用大, 导致系统在运行时存在卡顿、不流畅的现象, 从模型资源加载角度设计一种资源动态调度算法. 首先通过四叉树算法将场景递归的分割成多个叶子节点进行存储, 然后结合资源动态调度算法以摄像机位置为中心对周边节点的资源进行预设实例化和预设销毁完成内存的管理. 最https://c-s-a.org.cn/html/2018/10/6567.html
14.四叉树开源地理空间基金会中文分会开放地理空间实验室摘要: 四叉树(quad-tree)是一种数据结构,是一种每个节点最多有四个子树的数据结构。 四叉树可以用来在数据库中放置和定位文件(称作记录或键)。这一算法通过不停的把要查找的记录分成4部分来进行匹配查找直到仅剩下一条记录为止。 在树中,记录被存储在叶子的位置上。这 https://www.osgeo.cn/wiki/%E5%9B%9B%E5%8F%89%E6%A0%91
15.四叉树数据结构的编码方法Read.PPT四叉树数据结构的编码方法-Read.PPT 51页内容提供方:jinchenl 大小:1.75 MB 字数:约4.15千字 发布时间:2019-03-25发布于天津 浏览人气:2126 下载次数:仅上传者可见 收藏次数:1 需要金币:*** 金币 (10金币=人民币1元)四叉树数据结构的编码方法-Read.PPT 关闭预览 想预览更多内容,点击免费在线https://max.book118.com/html/2019/0323/8076004007002014.shtm
16.八叉树索引(精选七篇)Beckmmann等[6]在R树的基础上提出了R*树, 相比于R树, R*树的优越性体现在查找方式和节点操作的多样性, 并且它同时支持点和空间数据的索引, 但是R*树的索引构建时间比R树略高。支晓栋等[7]提出的一种改进四叉树算法可以快速完成索引树的构建, 但是该算法构建的索引树的树高减小, 降低了数据的查询速度。https://www.360wenmi.com/f/cnkey1wp269n.html