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

一种基于GPU加速的双目匹配方法与流程

2022-08-24 04:28:11 来源:中国专利 TAG:
一种基于gpu加速的双目匹配方法
技术领域
1.本发明涉及计算机视觉技术领域,具体是指一种基于gpu加速的双目匹配方法。


背景技术:

2.随着计算机技术的持续发展,人们对计算机的性能要求日益升高。为了满足这一需求,依靠对现有算法的优化、改善硬件条件或者通过多核或多个处理器同时处理等方法普遍被大家采用。其中,最有效的一种表现形式就是gpu并行计算。在并行设备上将一个主任务拆分成多个子任务,并将其分配给多个处理单元同时进行处理的过程被称为并行计算(parallel computing)。并行计算将一个主任务分解成多个子任务,并交付多个单元同一时间内计算,实现同一时间内工作量成倍增加,运算效率高,满足更多运算需求。
3.目前国内外在双目匹配算法的研究方面,主要是以二维图像之间的匹配为主。图像特征匹配算法里的特征点应具备良好的旋转不变性和尺度不变性。目前常用的特征点提取算法分为:sift、surf、orb三大体系。在sift算法中,每个特征点都用一个标准化的128维特征向量描述,sift对旋转、尺度缩放、亮度变化保持不变性,也对视角变化、仿射变换、噪声保持稳定性,但实时性一般;surf算子是基于sift算子的一种改进,surf特征点使用64维向量进行特征描述,虽然运算时间缩短,但尺度和旋转不变性一般;orb是fast特征检测和brief描述子的结合,此算法的特征提取运算效率高于sift和surf。
4.虽然orb特征在速度上较前两种特征有很大提升,但是在一幅较大的图像上做到实时的双目匹配,还是具有一定的难度,因此亟需一种能够提高速度,运算效率高,满足双目图像匹配系统中对精确性、实时性和鲁棒性要求的双目匹配方法。


技术实现要素:

5.本发明的目的在于提供一种图像匹配速度快、匹配精度高的基于gpu加速的双目匹配方法。
6.本发明通过下述技术方案实现:一种基于gpu加速的双目匹配方法,包括以下步骤:步骤(1)在cpu端分配内存,并读入原始图像和待测图像;步骤(2)检测gpu设备并启动cuda,开始cpu和gpu并行计算;步骤(3)构建相邻多帧高斯金字塔的多尺度空间,得到完整的高斯金字塔和高斯差分金字塔,并使构建的完整的高斯金字塔和高斯差分金字塔进行并行化;步骤(4)在高斯差分金字塔中进行同尺度空间和相邻尺度空间的像素点比较,进行极值点的同步检测,并筛选极值点得到关键点;步骤(5)进行关键点主方向的并行计算,通过关键点的主方向、位置和尺度信息,建立sift描述子,实现sift特征提取,得到关键点描述子;步骤(6)进行关键点描述子的并行计算;步骤(7)利用欧式距离,实现图像特征点的精确匹配。
7.为了更好地实现本发明的方法,进一步地,所述步骤(3)中,并行构建相邻多帧高斯金字塔多尺度空间的具体过程为:输入图像与变尺度高斯函数卷积得到一组高斯模糊图像后,将这组高斯模糊图像的相邻两层对应相减,得到一组高斯差分图像,降采样后得到下一组高斯模糊图像和高斯差分图像,重复以上过程,从而构造出完整的高斯金字塔和高斯差分金字塔。
8.为了更好地实现本发明的方法,进一步地,所述步骤(3)中,构建的高斯金字塔的多尺度空间的方法主要包括高斯模糊和降采样。
9.为了更好地实现本发明的方法,进一步地,所述步骤(3)中,高斯金字塔的多尺度空间进行并行化的具体过程在纹理存储器中实现。
10.为了更好地实现本发明的方法,进一步地,所述步骤(4)中,进行极值点同步检测的具体过程更为:步骤(4.1)将某个像素点与其同尺度空间的8个像素点比较。如果该像素点不是极值,则直接剔除。如果该像素点为极值,则再与相邻尺度空间的2*9个像素点比较得到候选极值点;步骤(4.2)对候选极值点进行插值寻找全局最优点;步骤(4.3)剔除不稳定像素点得到关键点;步骤(4.4)如果图像尺寸不能被16整除,需要在图像边缘进行补零操作,减少核函数的分支判断。
11.为了更好地实现本发明的方法,进一步地,所述步骤(4)中,将高斯差分金字塔中的像素点放在共享内存缓冲区中。
12.为了更好地实现本发明的方法,进一步地,所述步骤(5)中,进行关键点主方向并行计算的具体过程为:步骤(5.1)确定关键点主方向为基于关键点的领域像素的梯度方向,给每个相应的关键点指定方向,使其具有旋转不变性;步骤(5.2)在相邻多帧高斯模糊图像中同步计算关键点所在尺度的模糊图像的梯度直方图。梯度直方图用于统计半径区域内的像素梯度,横坐标是梯度方向,纵坐标是梯度幅值;步骤(5.3)直方图峰值为关键点的主方向,最大值80%的方向为辅助方向,gpu端进行关键点梯度幅值和梯度方向的计算,cpu进行辅助方向的判断;步骤(5.4)在用gpu进行加速时,每个block对应1个关键点主方向的计算,block中的每个线程对应1个像素点梯度方向和梯度幅值的计算。
13.为了更好地实现本发明的方法,进一步地,所述步骤(6)中进行关键点描述子并行计算的具体过程为:步骤(6.1)关键点描述子为利用128维描述向量来描述关键点及其周围像素点的位置、方向和尺度信息的sift特征描述子,利用gpu加速,实现相邻多帧图像同步计算描述子;步骤(6.2)通过旋转坐标轴为关键点方向、计算关键点128维描述向量和归一化128维描述子,使关键点具备尺度不变性、旋转不变性,以及去除光照影响,从而提高关键点匹配的正确性;
步骤(6.3)为了充分提升gpu的加速性能,由于每个像素点不止一次用到,将关键点的邻域信息保存到共享存储器中,实现每个线程块内的线程共享邻域信息;步骤(6.4)每个线程块负责计算1个特征点的描述向量,每个线程负责block中1个像素点的计算,每个线程块包含256个线程。
14.为了更好地实现本发明的方法,进一步地,所述步骤(7)中,利用欧式距离,实现图像特征点的精确匹配的具体过程为:步骤(7.1)当两幅图像的sift特征描述子生成后,利用欧式距离进行图像关键点的匹配;步骤(7.2)两个关键点描述子欧式距离的并行化计算过程是计算相邻两帧图像的某个关键点的128维度距离的归约求和及开方运算;步骤(7.3)如果该欧式距离小于某个阈值,则关键点匹配;步骤(7.4)由于特征描述子的相似性计算需要用到欧式距离,运算量较大,因此放在gpu;步骤(7.5)每个线程块负责图像中1个特征描述子欧式距离的计算,进行双向哈希预筛选,得到极为优质的匹配点对。
15.本发明与现有技术相比,具有以下优点及有益效果:(1)本发明提供的双目匹配方法不受噪声、视角、光照和图像尺寸约束,能够实时精确匹配大尺寸图像,提高双目图像匹配系统的精确性和快速性;。
16.(2)本发明提供的双目匹配方法已经在双目匹配中得到应用验证,满足双目图像匹配系统中对精确性、实时性和鲁棒性的要求;(3)本发明提供的匹配方法图像匹配速度快、匹配精度高,所以可扩展到无人机双目视觉着陆导引,应用范围广泛,适宜广泛推广应用。
具体实施方式
17.为使本发明的目的、工艺条件及优点作用更加清楚明白,结合以下实施实例,对本发明作进一步详细说明,但本发明的实施方式不限于此,在不脱离本发明上述技术思想情况下,根据本领域普通技术知识和惯用手段,做出各种替换和变更,均应包括在本发明的范围内,此处所描述的具体实施实例仅用以解释本发明,并不用于限定本发明。
18.实施例1:本实施例提供一种基于gpu加速的双目匹配方法,首先,在cpu端分配内存并读入原始图像和待测图像;然后,检测gpu设备并启动cuda,开始cpu和gpu并行计算;利用高斯差分金字塔,构建多尺度空间,通过同尺度空间和相邻尺度空间的像素点比较来识别多帧相邻图像中尺度和旋转不变的兴趣点;通过关键点的主方向、位置和尺度信息,建立sift描述子,实现sift特征提取;最后,利用欧式距离,实现图像特征点的精确匹配。
19.具体关键内容如下:

高斯金字塔多尺度空间的并行化输入图像与变尺度高斯函数卷积得到一组高斯模糊图像后,将这
组高斯模糊图像的相邻两层对应相减,得到一组高斯差分图像,降采样后得到下一组高斯模糊图像和高斯差分图像,重复以上过程,从而构造出完整的高斯金字塔和高斯差分金字塔。
20.构建尺度空间的目的为选择满足尺度不变性和旋转不变性的兴趣点。
21.构造尺度空间主要包括高斯模糊和降采样。并行化是指高斯模糊并行化和降采样并行化,用于相邻多帧图像间构造图像尺度空间。
22.具体并行过程在纹理存储器中实现。
23.将高斯卷积设计成两个一维卷积: ,来提高程序的运行速度。
[0024][0024][0024]24.式中,为图像的尺度空间,为变尺度高斯函数,为像素点坐标,为尺度空间因子,越大,图像分辨率越低,、分别为x和y方向block数量,block为高斯模糊过程的一个高斯卷积核,为图像宽度,为图像高度,、分别为block宽度和高度。
[0025]

极值点检测的并行化极值点检测的并行化是一种多进程极值点检测的处理方法,需要在高斯差分金字塔中进行同尺度空间和相邻尺度空间的像素点比较。
[0026]
首先,将某个像素点与其同尺度空间的8个像素点比较。如果该像素点不是极值,则直接剔除。如果该像素点为极值,则再与相邻尺度空间的2*9个像素点比较得到候选极值点。然后,对候选极值点进行插值寻找全局最优点。
[0027]
最后,剔除不稳定像素点得到真正的极值点。
[0028]
为了提高工作效率,将高斯差分金字塔中的像素点放在共享内存缓冲区中。
[0029]
相比于普通缓冲区,访问共享内存的延迟远远低于普通缓冲区的延迟。
[0030]
如果图像尺寸不能被16整除,需要在图像边缘进行补零操作,减少核函数的分支判断,从而提高gpu的加速性能。
[0031]

关键点主方向的并行化关键点主方向为基于关键点的领域像素的梯度方向,给每个相应的关键点指定方
向,使其具有旋转不变性。
[0032]
并行化为在相邻多帧高斯模糊图像中同步计算关键点所在尺度的模糊图像的梯度直方图。梯度直方图用于统计半径区域内的像素梯度,横坐标是梯度方向,纵坐标是梯度幅值。直方图峰值为关键点的主方向,最大值80%的方向为辅助方向。
[0033]
gpu端进行关键点梯度幅值和梯度方向的计算。
[0034]
由于gpu不适合逻辑判断,耗时长,所以cpu进行辅助方向的判断。
[0035]
在用gpu进行加速时,每个block对应1个关键点主方向的计算,block中的每个线程对应1个像素点梯度方向和梯度幅值的计算。
[0036][0036]
式中,为梯度幅值,为梯度方向,为高斯权值,为关键点所在的尺度空间,为直方图的梯度。
[0037]

描述子的并行化sift特征描述子是利用128维描述向量来描述关键点及其周围像素点的位置、方向和尺度信息。
[0038]
并行化是指利用gpu加速,实现相邻多帧图像同步计算描述子。
[0039]
通过旋转坐标轴为关键点方向、计算关键点128维描述向量和归一化128维描述子,使关键点具备尺度不变性、旋转不变性,以及去除光照影响,从而提高关键点匹配的正确性。
[0040]
为了充分提升gpu的加速性能,由于每个像素点不止一次用到,将关键点的邻域信息保存到共享存储器中,实现每个线程块内的线程共享邻域信息,提高程序的运行速度。每个线程块负责计算1个特征点的描述向量,每个线程负责block中1个像素点的计算,每个线程块包含256个线程。
[0041]

基于欧式距离的图像匹配当两幅图像的sift特征描述子生成后,利用欧式距离进行图像关键点的匹配。
[0042]
两个关键点描述子欧式距离的并行化计算过程是计算相邻两帧图像的某个关键点的128维度距离的归约求和及开方运算。如果该欧式距离小于某个阈值,则关键点匹配。由于特征描述子的相似性计算需要用到欧式距离,运算量较大,因此放在gpu。每个线程块负责图像中1个特征描述子欧式距离的计算。进行双向哈希预筛选,得到极为优质的匹配点对;ransac算法提取纯匹配结果;
式中,为特征描述子的相似度,为前一帧关键点位置,为下一帧关键点位置。
[0043]
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
再多了解一些

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

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

相关文献