CN103593850A - 一种在cuda平台上基于递归高斯滤波的sift并行化***及方法 - Google Patents

一种在cuda平台上基于递归高斯滤波的sift并行化***及方法 Download PDF

Info

Publication number
CN103593850A
CN103593850A CN201310614166.8A CN201310614166A CN103593850A CN 103593850 A CN103593850 A CN 103593850A CN 201310614166 A CN201310614166 A CN 201310614166A CN 103593850 A CN103593850 A CN 103593850A
Authority
CN
China
Prior art keywords
key point
gaussian
image
recurrence
point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201310614166.8A
Other languages
English (en)
Inventor
盛浩
李蕊
陈嘉晖
李超
刘书凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
RESEARCH INSTITUTE OF BEIHANG UNIVERSITY IN SHENZHEN
Original Assignee
RESEARCH INSTITUTE OF BEIHANG UNIVERSITY IN SHENZHEN
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by RESEARCH INSTITUTE OF BEIHANG UNIVERSITY IN SHENZHEN filed Critical RESEARCH INSTITUTE OF BEIHANG UNIVERSITY IN SHENZHEN
Priority to CN201310614166.8A priority Critical patent/CN103593850A/zh
Publication of CN103593850A publication Critical patent/CN103593850A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

一种在CUDA平台上基于递归高斯滤波的SIFT并行化***及方法:(1)将原始图像传输到GPU端进行一系列高斯滤波和降采样构建高斯金字塔,高斯滤波采用递归高斯滤波器,然后将相邻图像相减得到高斯差分金字塔;(2)以线程块为单位,载入一块图像,每个线程处理一个像素点,与相邻26个像素点进行比较得到局部极值点;(3)每个线程处理一个局部极值点,进行关键点的定位和筛选;(4)一个线程块计算一个关键点的方向,一个线程计算该关键点邻域内一个像素点的方向和幅度值,通过CUDA提供的原子加法累加到梯度直方图中。根据梯度直方图的峰值得到关键点的方向,将关键点坐标、方向等信息传输回主机端。(5)一个线程块计算一个关键点描述子,再将计算结果传输回主机端,完成SIFT特征提取。本发明提高了SIFT算法的计算速度。

Description

一种在CUDA平台上基于递归高斯滤波的SIFT并行化***及方法
技术领域
本发明涉及一种在CUDA(统一计算设备架构,Compute unified device architecture)平台上的SIFT(尺度不变特征转换,Scale-invariant feature transform)并行化方法,特别涉及一种基于递归高斯滤波的SIFT并行化方法。
背景技术
视频数据作为一种动态、直观、形象的数字媒体,越来越多地出现在各类信息服务和应用场合,而且随着存储成本的降低,高速传输和压缩技术的进步,视频信息数量出现了飞速膨胀,因此,对视频内容分析和处理的计算量也大大增加。
由于视频的数据量往往较大,算法也比较复杂,所以计算量通常比较大,单一使用CPU往往满足不了实时性的要求。此外,视频图像信号处理和控制算法的实现,通常以一些较小的基本运算为基础,经过适当组合而得到。这些基本运算包括卷积、相关、差分方程计算等,具有良好的并行性和可扩展性,可以通过多个处理单元并行计算的方法来实现高速计算。综合上述两点,面向视频内容的分析和处理比较适合在GPU上进行运算以达到提高执行速度的目的。
尺度不变特征变换(SIFT)是一种重要的特征提取算法,在目标跟踪、视频拼接等许多方面都有应用。此算法对旋转、缩放、亮度变化具有较高的稳定性,但是算法较为复杂,计算量大,并不能很好地满足实时性的要求,所以需要考虑采用并行化方法来加速SIFT的计算。
在众多并行化平台中,基于CPU/GPU异构协同的计算平台具有很大的发展潜力。正由于GPU所具有的强劲计算能力、高性能/价格比和高性能/能耗比,在当今追求绿色高性能计算的时代,GPU的计算优势受到越来越多的关注。在GPU编程方面,NVIDIA公司推出的CUDA通用并行计算架构是相对比较成熟的计算平台,所以本发明采用基于CUDA的并行计算平台来提高SIFT算法的计算速度。
发明内容
本发明要解决的技术问题是:克服现有技术的不足,提供一种性能优良的SIFT并行化方法,提高其计算速度,能够更好地满足视频图像特征提取的实时性要求。
本发明解决其技术问题所采用的技术方案:一种在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的灰度值,
Figure BDA0000422883550000023
为滤波器系数,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维的描述子;最后将描述子传输回主机端。
本发明与现有技术相比所具有的优点是:
(1)本发明提高了SIFT算法的计算速度,能够更好地满足视频图像特征提取的实时性的要求;
(2)本发明对GPU的性能要求较低,应用更加广泛;
(3)本发明实现简单,处理过程明确,使用递归高斯滤波代替传统的分离高斯滤波,计算复杂度小,更容易在CUDA平台上实现。
附图说明
图1为本发明的总体框架图;
图2为本发明的设备端SIFT特征提取流程图。
具体实施方式
如图1所示,本发明包括主机端和设备端两部分。
其中设备端SIFT特征提取流程图见图2,其步骤如下:
步骤1:构建尺度空间。将原始图像传输到设备端,进行一系列递归高斯滤波和降采样之后得到的所有图像即构成了尺度空间。递归高斯滤波结果是一次正向滤波结果和逆向滤波结果之和,采用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)
d 1 + = d 1 - = - 2 cos ( 1.475 σ ) exp ( - 1.512 σ ) - exp ( - 1.556 σ )
d 2 + = d 2 - = 2 cos ( 1.475 σ ) exp ( - 3.068 σ ) + exp ( - 3.024 σ )
d 3 + = d 3 - = - exp ( - 4.58 σ )
n 0 + = 1.051 k
n 1 + = k { 1.021 sin ( 1.475 σ ) - 2.9031 cos ( 1.475 σ ) } exp ( - 1.512 σ ) + 0.8929 k exp ( - 1.556 σ )
n 2 + = - k { 1.021 sin ( 1.475 σ ) + 0.8929 cos ( 1.475 σ ) } exp ( - 3.068 σ ) + 1.898 k exp ( - 3.024 σ )
n 1 - = n 1 + - d 1 + n 0 +
n 2 - = n 2 + - d 2 + n 0 +
n 3 - = - d 3 + n 0 +
k = 1 σ 2 π
其中y+(n)为像素点n的正向递归高斯滤波结果,y-(n)为像素点n的逆向递归高斯滤波结果,x(n)为像素点n的灰度值,
Figure BDA00004228835500000410
k为滤波器系数,σ为图像在尺度空间中的尺度,通常取值范围是1.6~3.2,y(n)为递归高斯滤波的最终结果;
递归高斯滤波也是可分离的,先对一幅图像的所有行进行一次递归高斯滤波得到中间结果,然后再对该中间结果的所有列进行一次递归高斯滤波得到最终的结果;
一个核函数根据上述递归高斯滤波的公式和方法完成一幅图像所有行或所有列的递归高斯滤波,每个线程处理一行或一列数据;对原始图像进行6次递归高斯滤波之后得到一组图像,该组图像为高斯金字塔的第0组,将其中倒数第3幅图像进行降采样,即隔点采样,使得长宽都降为原来的二分之一,得到高斯金字塔的第1组的第1幅图像,即该组第1层,再将该图像进行5次递归高斯滤波,这6幅图像组成了高斯金字塔的第1组,以此类推,根据图像大小决定高斯金字塔的组数,这些图像就构成了高斯金字塔;然后将每组相邻两幅图像相减,一个核函数完成两幅图像的相减,每个线程计算对应两个像素点之差,得到的这些图像就构成了每组5幅图像的高斯差分金字塔;高斯金字塔和高斯差分金字塔就构成了该图像的尺度空间,每幅图像为尺度空间的一个尺度。
步骤2:检测局部极值点。在高斯差分金字塔上进行,一个核函数完成金字塔中一层的局部极值点检测。为了寻找尺度空间的极值点,每一个采样点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小。每个线程块将一组5幅图像中的同一块区域载入到共享内存中,然后进行一次线程同步。每个线程处理第2至第4层的一个像素点,比较的范围是一个3×3的立方体,将其灰度值与它同尺度的8个相邻点和上下相邻尺度对应的9×2个点共26个像素点进行比较,判断其是否为空间极值点,一个点如果在高斯差分金字塔本层以及上下两层的26个邻域中是最大或最小值时,就认为该点是图像在该尺度下得一个特征点,若是则加入到结果集中。初始结果集大小为0,每次加入结果集时用CUDA提供的原子加法将当前结果集的大小加1,并将该值作为极值点在结果集中的索引位置,然后将极值点的坐标存储到相应全局内存中,最终得到所有的局部极值点。
步骤3:关键点精确定位及筛选。在高斯差分金字塔上进行,一个核函数完成所有关键点的精确定位及筛选;每个线程处理一个局部极值点,通过高斯差分金字塔的尺度空间函数的泰勒展开式进行曲线拟合精确到亚像素精度,公式如下:
D ( X ) = D + ∂ D T ∂ X X + 1 2 X T ∂ 2 D ∂ X 2 X
X ^ = ( x , y , σ ) T
其中D为高斯差分金字塔中图像的像素值,X为该点的坐标值,x、y、σ为曲线拟合之后的亚像素精度坐标值;
然后根据亚像素精度坐标值确定关键点的位置,并剔除低对比度和边缘响应点,剔除低对比度点的公式如下:
D ( X ^ ) = D + 1 2 ∂ D T ∂ X X ^
其中D为高斯差分金子塔中图像的像素值,
Figure BDA0000422883550000053
为该点的坐标值,若
Figure BDA0000422883550000054
的绝对值大于等于0.03,该点就保留下来进入下一步计算,否则就丢弃;
剔除边缘响应点的公式如下:
H = Dxx Dxy D xy D yy
其中D为高斯差分金字塔中邻近点的差分,Dxx为该点与左右相邻两点的差分,Dyy为该点与上下相邻两点的差分,Dxy为该点的左上、左下、右上、右下相邻点的差分,H为Hessian矩阵,然后计算该矩阵H的迹的平方与行列式的比值,若大于(r+1)2/r,r通常取值为10,则丢弃该点,否则该点就保留下来;
最后将满足条件的点加入到结果集中,初始结果集大小为0,每次加入结果集时用CUDA提供的原子加法将当前结果集的大小加1,并将得到的值作为关键点在结果集中的索引位置,然后将关键点信息存储到相应全局内存中,最终得到所有的关键点。
步骤4:关键点方向赋值。在高斯金字塔上进行,一个核函数完成所有关键点的方向赋值。每个线程块处理一个关键点,每个线程计算关键点以3×1.5σ为半径的邻域内一个像素点的梯度方向和幅度值,σ为图像的尺度,计算公式如下:
m ( x , y ) = ( L ( x + 1 , y ) - L ( x - 1 , y ) 2 ) + ( L ( x , y + 1 ) - L ( x , y - 1 ) ) 2
θ ( x , y ) = tan - 1 ( L ( x , y + 1 ) - L ( x , y - 1 ) L ( x + 1 , y ) - L ( x - 1 , y ) )
其中m为该点的幅度值,θ为该点的梯度方向,L为高斯金字塔上图像的像素值,x、y为该点的坐标;
然后通过原子加法将幅度值累加到该关键点对应梯度的梯度直方图中,梯度直方图的范围是0~360度,其中每10度为一个柱,总共36个柱,每个柱的初始值为0,根据关键点的梯度方向判断其落在哪个柱中。最终求出梯度直方图的峰值,该值代表了该关键点的主方向,即作为该关键点的方向。将关键点坐标、方向等信息传输回主机端。
步骤5:关键点描述子生成。在高斯金字塔上进行,一个核函数完成所有关键点描述子的生成。每个线程块处理一个关键点,首先将坐标旋转到该关键点的方向上,然后将关键点邻域划分为4×4个子区域,每个区域有4×4个像素点,分别计算每个区域内像素点的梯度方向和幅度值,计算公式如下:
m ( x , y ) = ( L ( x + 1 , y ) - L ( x - 1 , y ) ) 2 + ( L ( x , y + 1 ) - L ( x , y - 1 ) ) 2
θ ( x , y ) = tan - 1 ( L ( x , y + 1 ) - L ( x , y - 1 ) L ( x + 1 , y ) - L ( x - 1 , y ) )
其中,m为该点的幅度值,θ为该点的梯度方向,L为高斯金字塔上图像的像素值,x、y为该点的坐标,然后通过原子加法将幅度值累加到该区域对应梯度的梯度直方图中,梯度直方图的范围是0~360度,其中每45度为一个柱,总共8个柱,得到8个方向的梯度直方图,最终得到4×4×8=128维的描述子。最后将描述子传输回主机端。
总之,本发明提高了SIFT算法的计算速度。
本发明未详细阐述部分属于本领域公知技术。
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (2)

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维的描述子;最后将描述子传输回主机端。
2.一种在CUDA平台上基于递归高斯滤波的SIFT并行化方法,其特征在于实现步骤如下:
步骤1:构建尺度空间:将原始图像传输到设备端,进行一系列递归高斯滤波和降采样之后得到的所有图像即构成了尺度空间,递归高斯滤波结果是一次正向滤波结果和逆向滤波结果之和,采用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的灰度值,
Figure FDA0000422883540000023
等为滤波器系数,y(n)为递归高斯滤波的最终结果;
递归高斯滤波也是可分离的,先对一幅图像的所有行进行一次递归高斯滤波得到中间结果,然后再对该中间结果的所有列进行一次递归高斯滤波得到最终的结果;
一个核函数根据上述递归高斯滤波的公式和方法完成一幅图像所有行或所有列的递归高斯滤波,每个线程处理一行或一列数据;对原始图像进行6次递归高斯滤波之后得到一组图像,该组图像为高斯金字塔的第0组,将其中倒数第3幅图像进行降采样,即隔点采样,使得长宽都降为原来的二分之一,得到高斯金字塔的第1组的第1幅图像,即该组第1层,再将该图像进行5次递归高斯滤波,这6幅图像组成了高斯金字塔的第1组,以此类推,根据图像大小决定高斯金字塔的组数,这些图像就构成了高斯金字塔;然后将每组相邻两幅图像相减,一个核函数完成两幅图像的相减,每个线程计算对应两个像素点之差,得到的这些图像就构成了每组5幅图像的高斯差分金字塔;高斯金字塔和高斯差分金字塔就构成了该图像的尺度空间,每幅图像为尺度空间的一个尺度;
步骤2:检测局部极值点:在高斯差分金字塔上进行,一个核函数完成金字塔中一层的局部极值点检测;每个线程块将一组5幅图像中的同一块区域载入到共享内存中,然后进行一次线程同步;每个线程处理第2至第4层的一个像素点,将其灰度值与相邻的26个像素点进行比较,判断其是否为空间极值点,若是则加入到结果集中;初始结果集大小为0,每次加入结果集时用CUDA提供的原子加法将当前结果集的大小加1,并将该值作为极值点在结果集中的索引位置,然后将极值点的坐标存储到相应全局内存中,最终得到所有的局部极值点;
步骤3:关键点精确定位及筛选:在高斯差分金字塔上进行,一个核函数完成所有关键点的精确定位及筛选;每个线程处理一个局部极值点,通过曲线拟合精确到亚像素精度,并剔除低对比度和边缘响应点,将满足条件的点加入到结果集中,初始结果集大小为0,每次加入结果集时用CUDA提供的原子加法将当前结果集的大小加1,并将该值作为关键点在结果集中的索引位置,然后将关键点信息存储到相应全局内存中,最终得到所有的关键点;
步骤4:关键点方向赋值:在高斯金字塔上进行,一个核函数完成所有关键点的方向赋值;每个线程块处理一个关键点,每个线程计算关键点邻域内一个像素点的梯度方向和幅度值,然后通过原子加法累加到该关键点的梯度直方图中,最终求出梯度直方图的峰值,该值代表了该关键点的主方向,即作为该关键点的方向;将关键点坐标和方向信息传输回主机端;
步骤5:关键点描述子生成:在高斯金字塔上进行,一个核函数完成所有关键点描述子的生成;每个线程块处理一个关键点,首先将坐标旋转到该关键点的方向上,然后将关键点邻域划分为4×4个子区域,计算每个区域内像素点的梯度方向和幅度值,得到8个方向的梯度直方图,最终得到4×4×8=128维的描述子;最后将描述子传输回主机端。
CN201310614166.8A 2013-11-26 2013-11-26 一种在cuda平台上基于递归高斯滤波的sift并行化***及方法 Pending CN103593850A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310614166.8A CN103593850A (zh) 2013-11-26 2013-11-26 一种在cuda平台上基于递归高斯滤波的sift并行化***及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310614166.8A CN103593850A (zh) 2013-11-26 2013-11-26 一种在cuda平台上基于递归高斯滤波的sift并行化***及方法

Publications (1)

Publication Number Publication Date
CN103593850A true CN103593850A (zh) 2014-02-19

Family

ID=50083975

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310614166.8A Pending CN103593850A (zh) 2013-11-26 2013-11-26 一种在cuda平台上基于递归高斯滤波的sift并行化***及方法

Country Status (1)

Country Link
CN (1) CN103593850A (zh)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104331696A (zh) * 2014-09-28 2015-02-04 苏州新视线文化科技发展有限公司 一种基于图形处理单元的图像特征快速提取方法
CN104732490A (zh) * 2014-12-03 2015-06-24 南京理工大学 基于cuda的快速双边滤波方法
CN104778471A (zh) * 2015-04-17 2015-07-15 华中科技大学 一种基于gpu的多尺度空间特征提取方法
WO2015144069A1 (zh) * 2014-03-27 2015-10-01 株式会社日立医疗器械 图像滤波方法及ct***
WO2015168362A1 (en) * 2014-04-30 2015-11-05 Siemens Healthcare Diagnostics Inc. Method and apparatus for processing block to be processed of urine sediment image
CN105894494A (zh) * 2016-02-05 2016-08-24 中国科学院西安光学精密机械研究所 基于gpu技术的三线阵立体航测相机并行谱段配准方法
CN106920239A (zh) * 2017-03-08 2017-07-04 福建师范大学 一种基于改进sift算法的图像关键点检测方法
CN107358238A (zh) * 2017-03-01 2017-11-17 郑州云海信息技术有限公司 一种提取图像特征信息的方法及***
CN107657582A (zh) * 2017-09-29 2018-02-02 郑州云海信息技术有限公司 一种信息获取方法及获取装置
CN107845096A (zh) * 2018-01-24 2018-03-27 西安平原网络科技有限公司 基于图像的行星三维信息测定方法
CN107945098A (zh) * 2017-11-24 2018-04-20 腾讯科技(深圳)有限公司 图像处理方法、装置、计算机设备和存储介质
CN108537235A (zh) * 2018-03-27 2018-09-14 北京大学 一种低复杂度尺度金字塔提取图像特征的方法
CN109522906A (zh) * 2018-10-23 2019-03-26 天津大学 基于fpga的低复杂度快速sift特征提取方法
CN111009004A (zh) * 2019-11-24 2020-04-14 华南理工大学 一种加速图像匹配的硬件优化方法
CN111899180A (zh) * 2019-05-05 2020-11-06 上海闻通信息科技有限公司 一种图像关键像素方向定位方法
CN112348032A (zh) * 2019-08-09 2021-02-09 珠海市一微半导体有限公司 一种基于硬件电路的sift算法关键点检测方法
CN112837225A (zh) * 2021-04-15 2021-05-25 浙江卡易智慧医疗科技有限公司 一种立位全脊柱图像自动无缝拼接的方法及装置
CN113112394A (zh) * 2021-04-13 2021-07-13 北京工业大学 一种基于cuda技术的视觉slam前端加速方法
CN113486729A (zh) * 2021-06-15 2021-10-08 北京道达天际科技有限公司 基于gpu的无人机影像特征点提取方法
CN117994856A (zh) * 2024-03-06 2024-05-07 东莞晋杨电子有限公司 一种用于vr电子玩具的姿态识别方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8131038B2 (en) * 2007-08-21 2012-03-06 Siemens Aktiengesellschaft System and method for global-to-local shape matching for automatic liver segmentation in medical imaging
CN103150730A (zh) * 2013-03-07 2013-06-12 南京航空航天大学 一种基于图像的圆形小目标精确检测方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8131038B2 (en) * 2007-08-21 2012-03-06 Siemens Aktiengesellschaft System and method for global-to-local shape matching for automatic liver segmentation in medical imaging
CN103150730A (zh) * 2013-03-07 2013-06-12 南京航空航天大学 一种基于图像的圆形小目标精确检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘进峰: "几种CUDA加速高斯滤波算法的比较", 《计算机工程与应用》 *
王蓓蕾 等: "基于CUDA加速的SIFT特征提取", 《东北大学学报(自然科学版)》 *

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9984433B2 (en) 2014-03-27 2018-05-29 Hitachi, Ltd Image filtering method and CT system
WO2015144069A1 (zh) * 2014-03-27 2015-10-01 株式会社日立医疗器械 图像滤波方法及ct***
WO2015168362A1 (en) * 2014-04-30 2015-11-05 Siemens Healthcare Diagnostics Inc. Method and apparatus for processing block to be processed of urine sediment image
US10115195B2 (en) 2014-04-30 2018-10-30 Siemens Healthcare Diagnostics Inc. Method and apparatus for processing block to be processed of urine sediment image
CN104331696B (zh) * 2014-09-28 2017-10-31 苏州新视线文化科技发展有限公司 一种基于图形处理单元的图像特征快速提取方法
CN104331696A (zh) * 2014-09-28 2015-02-04 苏州新视线文化科技发展有限公司 一种基于图形处理单元的图像特征快速提取方法
CN104732490A (zh) * 2014-12-03 2015-06-24 南京理工大学 基于cuda的快速双边滤波方法
CN104778471A (zh) * 2015-04-17 2015-07-15 华中科技大学 一种基于gpu的多尺度空间特征提取方法
CN105894494A (zh) * 2016-02-05 2016-08-24 中国科学院西安光学精密机械研究所 基于gpu技术的三线阵立体航测相机并行谱段配准方法
CN107358238A (zh) * 2017-03-01 2017-11-17 郑州云海信息技术有限公司 一种提取图像特征信息的方法及***
CN106920239B (zh) * 2017-03-08 2019-10-18 福建师范大学 一种基于改进sift算法的图像关键点检测方法
CN106920239A (zh) * 2017-03-08 2017-07-04 福建师范大学 一种基于改进sift算法的图像关键点检测方法
CN107657582A (zh) * 2017-09-29 2018-02-02 郑州云海信息技术有限公司 一种信息获取方法及获取装置
CN107945098B (zh) * 2017-11-24 2022-03-01 腾讯科技(深圳)有限公司 图像处理方法、装置、计算机设备和存储介质
CN107945098A (zh) * 2017-11-24 2018-04-20 腾讯科技(深圳)有限公司 图像处理方法、装置、计算机设备和存储介质
CN107845096B (zh) * 2018-01-24 2021-07-27 西安平原网络科技有限公司 基于图像的行星三维信息测定方法
CN107845096A (zh) * 2018-01-24 2018-03-27 西安平原网络科技有限公司 基于图像的行星三维信息测定方法
CN108537235A (zh) * 2018-03-27 2018-09-14 北京大学 一种低复杂度尺度金字塔提取图像特征的方法
CN108537235B (zh) * 2018-03-27 2020-09-08 北京大学 一种低复杂度尺度金字塔提取图像特征的方法
CN109522906A (zh) * 2018-10-23 2019-03-26 天津大学 基于fpga的低复杂度快速sift特征提取方法
CN111899180A (zh) * 2019-05-05 2020-11-06 上海闻通信息科技有限公司 一种图像关键像素方向定位方法
CN111899180B (zh) * 2019-05-05 2023-11-17 上海闻通信息科技有限公司 一种图像关键像素方向定位方法
CN112348032A (zh) * 2019-08-09 2021-02-09 珠海市一微半导体有限公司 一种基于硬件电路的sift算法关键点检测方法
CN112348032B (zh) * 2019-08-09 2022-10-14 珠海一微半导体股份有限公司 一种基于硬件电路的sift算法关键点检测方法
CN111009004A (zh) * 2019-11-24 2020-04-14 华南理工大学 一种加速图像匹配的硬件优化方法
CN111009004B (zh) * 2019-11-24 2023-05-23 华南理工大学 一种加速图像匹配的硬件优化方法
CN113112394A (zh) * 2021-04-13 2021-07-13 北京工业大学 一种基于cuda技术的视觉slam前端加速方法
CN112837225A (zh) * 2021-04-15 2021-05-25 浙江卡易智慧医疗科技有限公司 一种立位全脊柱图像自动无缝拼接的方法及装置
CN112837225B (zh) * 2021-04-15 2024-01-23 浙江卡易智慧医疗科技有限公司 一种立位全脊柱图像自动无缝拼接的方法及装置
CN113486729A (zh) * 2021-06-15 2021-10-08 北京道达天际科技有限公司 基于gpu的无人机影像特征点提取方法
CN117994856A (zh) * 2024-03-06 2024-05-07 东莞晋杨电子有限公司 一种用于vr电子玩具的姿态识别方法

Similar Documents

Publication Publication Date Title
CN103593850A (zh) 一种在cuda平台上基于递归高斯滤波的sift并行化***及方法
CN112254656B (zh) 一种基于结构表面点特征的立体视觉三维位移测量方法
CN104376564B (zh) 基于各向异性高斯方向导数滤波器提取图像粗边缘的方法
CN103679702A (zh) 一种基于图像边缘矢量的匹配方法
CN102982561B (zh) 适用于彩色图像彩色的二进制鲁棒尺度不变特征检测方法
CN104881671A (zh) 一种基于2D-Gabor的高分遥感影像局部特征提取方法
Wu et al. FSANet: Feature-and-spatial-aligned network for tiny object detection in remote sensing images
Ding et al. Improved object detection algorithm for drone-captured dataset based on yolov5
CN103839066A (zh) 一种源于生物视觉的特征提取方法
Sun et al. Vicinity vision transformer
CN116343045A (zh) 基于YOLO v5的轻量化SAR图像舰船目标检测方法
Tao et al. F-PVNet: Frustum-level 3-D object detection on point–voxel feature representation for autonomous driving
CN102254162B (zh) 基于最小直线比率的sar图像机场跑道检测方法
Wang et al. Global contextual guided residual attention network for salient object detection
Zheng et al. Feature enhancement for multi-scale object detection
Xu et al. TransMIN: Transformer-guided multi-interaction network for remote sensing object detection
Liu et al. SRM-FPN: a small target detection method based on FPN optimized feature
Xu et al. Hybrid attention-aware transformer network collaborative multiscale feature alignment for building change detection
Sun et al. Decoupled feature pyramid learning for multi-scale object detection in low-altitude remote sensing images
CN104239854A (zh) 一种基于区域稀疏积分通道的行人特征提取和表示方法
Pang et al. HiCD: Change detection in quality-varied images via hierarchical correlation distillation
CN114596343A (zh) 面向复杂地面场景的跨模态遥感图像智能多尺度配准方法
Bai et al. DMF-Net: A Dual-Encoding Multi-Scale Fusion Network for Pavement Crack Detection
CN113256603A (zh) 一种双流网络二次融合的显著性物体检测方法
Zheng et al. Pillar number plate detection and recognition in unconstrained scenarios

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140219