[发明专利]一种在CUDA平台上基于递归高斯滤波的SIFT并行化系统及方法无效
申请号: | 201310614166.8 | 申请日: | 2013-11-26 |
公开(公告)号: | CN103593850A | 公开(公告)日: | 2014-02-19 |
发明(设计)人: | 盛浩;李蕊;陈嘉晖;李超;刘书凯 | 申请(专利权)人: | 北京航空航天大学深圳研究院 |
主分类号: | G06T7/00 | 分类号: | G06T7/00;G06T5/00 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 成金玉;贾玉忠 |
地址: | 518057 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种在CUDA平台上基于递归高斯滤波的SIFT并行化系统及方法:(1)将原始图像传输到GPU端进行一系列高斯滤波和降采样构建高斯金字塔,高斯滤波采用递归高斯滤波器,然后将相邻图像相减得到高斯差分金字塔;(2)以线程块为单位,载入一块图像,每个线程处理一个像素点,与相邻26个像素点进行比较得到局部极值点;(3)每个线程处理一个局部极值点,进行关键点的定位和筛选;(4)一个线程块计算一个关键点的方向,一个线程计算该关键点邻域内一个像素点的方向和幅度值,通过CUDA提供的原子加法累加到梯度直方图中。根据梯度直方图的峰值得到关键点的方向,将关键点坐标、方向等信息传输回主机端。(5)一个线程块计算一个关键点描述子,再将计算结果传输回主机端,完成SIFT特征提取。本发明提高了SIFT算法的计算速度。 | ||
搜索关键词: | 一种 cuda 平台 基于 递归 滤波 sift 并行 系统 方法 | ||
【主权项】:
1.一种在CUDA平台上基于递归高斯滤波的SIFT并行化系统,其特征在于:包括构建尺度空间模块、检测局部极值点模块、关键点精确定位及筛选模块、关键点方向赋值模块和关键点描述子生成模块;构建尺度空间模块,将原始图像传输到设备端,进行一系列递归高斯滤波和降采样之后得到的所有图像即构成了尺度空间;递归高斯滤波结果是一次正向滤波结果和逆向滤波结果之和,采用3阶递归高斯滤波,其公式如下:y + ( n ) = n 0 + x ( n ) + n 1 + x ( n - 1 ) + n 2 + x ( n - 2 ) - d 1 + y + ( n - 1 ) - d 2 + y + ( n - 2 ) - d 3 + y + ( n - 3 ) ]]>y - ( n ) = n 1 - x ( n + 1 ) + n 2 - x ( n + 2 ) + n 3 - x ( n + 3 ) - d 1 - y - ( n + 1 ) - d 2 - y - ( n + 2 ) - d 3 - y - ( n + 3 ) ]]> y(n)=y+(n)+y-(n)其中y+(n)为像素点n的正向递归高斯滤波结果,y-(n)为像素点n的逆向递归高斯滤波结果,x(n)为像素点n的灰度值,
为滤波器系数,y(n)为递归高斯滤波的最终结果;递归高斯滤波也是可分离的,先对一幅图像的所有行进行一次递归高斯滤波得到中间结果,然后再对该中间结果的所有列进行一次递归高斯滤波得到最终的结果;一个核函数根据上述递归高斯滤波的公式和方法完成一幅图像所有行或所有列的递归高斯滤波,每个线程处理一行或一列数据;对原始图像进行6次递归高斯滤波之后得到一组图像,该组图像为高斯金字塔的第0组,将其中倒数第3幅图像进行降采样,即隔点采样,使得长宽都降为原来的二分之一,得到高斯金字塔的第1组的第1幅图像,即该组第1层,再将该图像进行5次递归高斯滤波,这6幅图像组成了高斯金字塔的第1组,以此类推,根据图像大小决定高斯金字塔的组数,这些图像就构成了高斯金字塔;然后将每组相邻两幅图像相减,一个核函数完成两幅图像的相减,每个线程计算对应两个像素点之差,得到的这些图像就构成了每组5幅图像的高斯差分金字塔;高斯金字塔和高斯差分金字塔就构成了该图像的尺度空间,每幅图像为尺度空间的一个尺度;检测局部极值点模块,在高斯差分金字塔上进行,一个核函数完成金字塔中一层的局部极值点检测;每个线程块将一组5幅图像中的同一块区域载入到共享内存中,然后进行一次线程同步;每个线程处理第2至第4层的一个像素点,将其灰度值与相邻的26个像素点进行比较,判断其是否为空间极值点,若是则加入到结果集中,初始结果集大小为0,每次加入结果集时用CUDA提供的原子加法将当前结果集的大小加1,并将得到的值作为极值点在结果集中的索引位置,然后将极值点的坐标存储到相应全局内存中,最终得到所有的局部极值点;关键点精确定位及筛选模块,在高斯差分金字塔上进行,一个核函数完成所有关键点的精确定位及筛选;每个线程处理一个局部极值点,通过曲线拟合精确到亚像素精度,并剔除低对比度和边缘响应点,将满足条件的点加入到结果集中,初始结果集大小为0,每次加入结果集时用CUDA提供的原子加法将当前结果集的大小加1,并将得到的值作为关键点在结果集中的索引位置,然后将关键点信息存储到相应全局内存中,最终得到所有的关键点;关键点方向赋值模块,在高斯金字塔上进行,一个核函数完成所有关键点的方向赋值;每个线程块处理一个关键点,每个线程计算关键点邻域内一个像素点的梯度方向和幅度值,然后通过原子加法累加到该关键点的梯度直方图中,最终求出梯度直方图的峰值,该值代表了该关键点的主方向,即作为该关键点的方向;将关键点坐标、方向信息传输回主机端;关键点描述子生成模块,在高斯金字塔上进行,一个核函数完成所有关键点描述子的生成;每个线程块处理一个关键点,首先将坐标旋转到该关键点的方向上,然后将关键点邻域划分为4×4个子区域,计算每个区域内像素点的梯度方向和幅度值,得到8个方向的梯度直方图,最终得到4×4×8=128维的描述子;最后将描述子传输回主机端。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学深圳研究院,未经北京航空航天大学深圳研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310614166.8/,转载请声明来源钻瓜专利网。