本发明涉及计算机视觉技术领域,具体地涉及一种基于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:本发明跟踪匹配方法与传统方法的效果对比
以上,仅为本发明较佳的具体实施方式;但本发明的保护范围并不局限于此。任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其改进构思加以等同替换或改变,都应涵盖在本发明的保护范围内。