基于fpga的卷积与时序优化的图像关键点检测的方法
【技术领域】
[0001] 本发明设及图像处理技术领域。
【背景技术】
[0002] 尺度不变特征转换(ScaleInvariantFea1:ureTransform,SIFT)是一种同时具 有平移、旋转、尺度不变性的特征点检测和匹配算法,对光照和仿射变换也具有一定程度的 鲁椿性,因而成为计算机视觉中一种著名的算法。此算法是由化vidG.Lowe于2004年提 出的。利用SIFT算法获取图像特征的主要计算步骤如下:
[0003] 步骤一;尺度空间极值检测;第一步是在全部尺度范围进行捜索,通过高斯差分 方法获得潜在的尺度、方向不变的关键点。
[0004] 步骤二;关键点定位;在每个关键点上都应用一个详尽的模版确定最终的位置与 尺度。关键点根据测量它们的稳定性来选择。
[0005] 步骤关键点方向分配;高斯差分图像的梯度幅值与方向可W通过每个特征点 各自的尺度决定,所有接下来的步骤都是在已知转换图像的方向、尺度W及位置的基础上 完成的,从而提供该些变换的不变性。
[000引步骤四:生成特征描述子;已知图像的梯度可W在已选的每一个关键点的邻域内 进行测量,换言之,可W允许大范围的局部形状崎变和亮度变化。
[0007] 现有的实现方法基本都是基于软件的操作,由于SIFT算法计算量、存储量巨大, 使该算法对图像处理的实时性难W保证。故合理地结合硬件方法进行处理是非常有必要 的。
【发明内容】
[0008] 本发明是为了解决现有的基于软件的图像特征点检测方法由于计算量大导致无 法实时进行图像处理的问题,从而提供一种基于FPGA的卷积与时序优化的图像关键点检 测的方法。
[0009] 本发明所述的基于FPGA的卷积与时序优化的图像关键点检测的方法,该方法的 步骤为:
[0010] 步骤一、构建高斯金字塔:
[0011] 采用标准差0不同的高斯函数G(X,y,0 )分别对待检测图像进行卷积处理,构造 高斯尺度空间函数L(x,y,0 ),将高斯尺度空间划分为0组,每组分为S层;其中,X和y分 别为高斯函数的自变量和变量;0、S均为正整数;
[0012] 采用标准差0不同的高斯函数G(x,y,0)分别对待检测图像进行卷积处理的方 法为:
[0013] 利用高斯核可分离的特性利用FPGA处理器,将二维卷积转化为横纵两个一维卷 积对图像进行处理;二维高斯核分解成为横纵两个一维高斯函数的卷积通过公式:
[0014]G(x,y,〇)=h(x,〇)*v(y,〇)
[0017] 并采用基于FPGA的行卷积模块对待检测图像进行行卷积处理,再经行列转换模 块对行卷积图像信息进行转换,转换后的图像信号经基于FPGA的列卷积模块对图像信息 的列卷积处理;
[0018] 步骤二、构造差分高斯尺度空间函数;
[0019] 高斯尺度空间的每组中相邻尺度图像层的差为差分高斯尺度空间函数 D(x,y, 0 );
[0020] 步骤s、在差分高斯尺度空间中找到极值点;
[0021] 采用基于FPGA的灰度值大小比较模块对每一个采样点的灰度值和它所有相邻的 点灰度值进行比较,若一个点的灰度值如果在差分高斯尺度空间本层W及上层和下层的邻 域中灰度值都是最大或最小值时,采用判断模块对基于FPGA的灰度值大小比较模块输出 的最大或最小值是否位于中间层进行判断,如果是,则该最大值或最小值点作为图像在该 尺度下的极值点输出,如果不是,删除该最大值或最小值点;
[0022] 步骤四、筛选特征点;
[002引在检测到的极值点中,去除对比度低的点和不稳定的边缘响应点,完成基于FPGA的卷积与时序优化的图像关键点检测。
[0024] 本发明在生成图像高斯尺度空间过程中,本发明引入了一种新的时序控制方法, 充分利用了高斯金字塔每组图像采样过程中的空闲时间,可实现同时并行处理所有组图像 的卷积,并且随着处理图像组数的增加,硬件使用资源数大致为恒定值。同时还利用了高斯 核的可分离性,将二维卷积运算巧妙地转化为横纵一维卷积运算,充分利用了FPGA处理信 号的优势,很大程度地节省了系统存储资源,提高了运算速度,可W达到实时图像处理的目 的。
【附图说明】
[00巧]图1是本发明的流程示意图;
[0026] 图2是硬件实现SIFT算法关键点检测部分原理示意图;
[0027] 图3是高斯核可分离性的原理示意图;
[0028] 图4是本发明基于高斯核的可分离性提出的图像卷积模块框图;
[0029] 图5是本发明提出的一维卷积模块示意图;
[0030] 图6是本发明提出的用于连接连个一维卷积模块的横纵卷积转换模块示意图;
[0031] 图7是本发明引入的一种新的时序控制方法原理图;
[0032] 图8是本发明差分高斯空间产生框图;
[0033]图9是本发明的局部极值检测模块整体示意图;
[0034] 图10是本发明的极值检测子模块细节放大示意图。
【具体实施方式】
【具体实施方式】 [0035] 一、结合图1说明本实施方式,本实施方式所述的基于FPGA的卷积 与时序优化的图像关键点检测的方法,该方法的步骤为:
[0036] 步骤一、构建高斯金字塔;
[0037] 采用标准差0不同的高斯函数G(x,y,0 )分别对待检测图像进行卷积处理,构造 高斯尺度空间函数L(x,y,0 ),将高斯尺度空间划分为0组,每组分为S层;其中,X和y分 别为高斯函数的自变量和变量;0、S均为正整数;
[003引采用标准差0不同的高斯函数G(x,y,0)分别对待检测图像进行卷积处理的方 法为:
[0039] 利用高斯核可分离的特性利用FPGA处理器,将二维卷积转化为横纵两个一维卷 积对图像进行处理;二维高斯核分解成为横纵两个一维高斯函数的卷积通过公式:
[0043] 并采用基于FPGA的行卷积模块对待检测图像进行行卷积处理,再经行列转换模 块对行卷积图像信息进行转换,转换后的图像信号经基于FPGA的列卷积模块对图像信息 的列卷积处理;
[0044] 步骤二、构造差分高斯尺度空间值ifferenceofGuassian,DoG)函数;
[0045] 高斯尺度空间的每组中相邻尺度图像层的差为差分高斯尺度空间函数 D(x,y, 0 );
[0046] 步骤S、在差分高斯尺度空间中找到极值点:
[0047] 采用基于FPGA的灰度值大小比较模块对每一个采样点的灰度值和它所有相邻的 点灰度值进行比较,若一个点的灰度值如果在差分高斯尺度空间本层W及上层和下层的邻 域中灰度值都是最大或最小值时,采用判断模块对基于FPGA的灰度值大小比较模块输出 的最大或最小值是否位于中间层进行判断,如果是,则该最大值或最小值点作为图像在该 尺度下的极值点输出,如果不是,删除该最大值或最小值点;
[0048] 步骤四、筛选特征点:
[004引在检测到的极值点中,去除对比度低的点和不稳定的边缘响应点,完成基于FPGA的卷积与时序优化的图像关键点检测。
[0050] 根据说明书附图5具体说明本实施方式,该图表示的是步骤一中采用的横纵一维 卷积的装置框图;由于两次卷积中间采用了横纵转换装置,故此装置中横纵卷积模块相同。 在横纵卷积模块中,输入的图像先W行的形式输入进图中Buffer装置,W实现实时卷积并 输出结果的目的;同时,横纵卷积模块还充分利用了FPGA的优势,W查表的方式代替图像 与高斯核卷积的过程。因为高斯核的每个系数都是小于1大于0的小数,如果在硬件实现 过程中直接用乘法器运算图像像素灰度值与高斯系数的乘积结果,就会带来很大的误差, 同时也会严重影响图像处理速度。而查表的方式是将图像灰度值0~255与高斯核系数相 乘的结果存入一个8bitsX256words的只读存储器ROM中,该就可W完全实现图像卷积的 实时处理目的。
[0051] 根据说明书附图6采用横纵卷积两个一维高斯函数代替二维高斯核对图像进行 卷积,大大减少了计算量。然而,在图像进行该两次卷积中间还需要添加横纵转换装置,W 达到对图像实行横纵卷积的目的。附图6就是本发明中实现图像横纵卷积的转换装置硬件 实现框图。为了实现图像横纵转换,本方法利用FPGA的处理优势,先将与第一个一维高斯 函数卷积后的图像每个像素灰度值按行输入到一个随机存取存储器RAM中,然后按列读取 图像每一列的灰度值,将其输出给下一个卷积模块,对图像进行按列的纵向卷积。
[0052] 本发明采用了如附图1所述的时序对每组高斯尺度空间的图像进行处理;此时序 方式是将第一组的图像采样率降为原来的1/2,然后将其他组的图像按照某种特殊的顺序 在第一组处于空闲时进行工作,该样就能保证装置一直处于工作状态,同时与现有方法相 比也减少了硬件浪费。在该种时序下,第k组图像处理的时刻如下式所示:
[0053] Sk: 3k, 3k+T。? 4\ak+2 (T。? 4气,...,ak+n(T。? 4气,......
[0054] 其中,ak为第k组图像第一次被采样的时刻,T。是第一组图像的采样周期。
[00巧]现有方法在处理高斯尺度空间的一组图像后,图像都是W2倍降采样得到下一组 图像。相邻两组图像的关系如下式所述:
[0056] 1。4 (X,y)=I〇(2x,巧)
[0057] 其中,I。表示高斯尺度空间的第0组图像;
[005引所W每组图像经2倍降采样后图像像素的个数都会减少为上一组的1/4。那么,每 处理一组图像,下一组的采样率就会降为上一组
的1/4。其采样周期如下式所示:
[0059] T(0) =T〇4。
[0060] 其中,T。是第一组图像的采样周期。结合图7(a)和上式可W看出,在处理第一组 图像的时候其他组处理过程中会有很多时间处于空闲状态,该就说明了图7(b)中所述时 序的问题在于浪费了过多的硬件资源。
[0061] 在图7(a)中的时序下,整个装置需要0个采样设备同时工作,效率非常低。而在 本发明图7(b)中的时序下,整个处理装置只需一个采样设备,提高了工作效率,减少了资 源的浪费。
[0062] 根据说明书图8、图9和图10具体说明本实施方式。实现差分高斯空间的局部极 值检测。此局部极值检测模块主要分类两部分:
[006引(1)灰度值大小比较模块;此模块在说明书附图10的中间部分,其功能是进行相 邻几层图像灰度值的比较,求出该几层中的极大极小值输入到后面的模块中。
[0064] 似判断模块;此模块为说明书附图10的flag部分,其功能是判别灰度值大小比 较模块输出的相邻层极大极小值是否来自于中间层。因为检测点要和它同尺度的8个相邻 点和上下相邻尺度对应的9X2个点共26个点进行比较。只有在邻域的该27个点里为极 大或极小值才能作为特征点输出。否则,判别模块会将其舍去。
【具体实施方式】 [0065] 二、本实施方式是对一所述的基于FPGA的卷积与时 序优化的图像关键点检测的方法的进一步说明,本实施方式中,步骤一中构造高斯尺度空 间函数L(x,y,0 ),将高斯尺度空间划分为0组,每组分为S层的过程为;通过公式:
[0066] L(x,y, 〇 ) =G(x,y, 〇 ) (x,y)
[0067]
[0068] 构造高斯尺度空间函数L(x,y,0),其中,I(x,y)为待处理的图像函数;
[0069] 将高斯尺度空间L(x,y,0 )划分为0组,每组的一系列光滑图像包括不同的离散 的0值,对应的每一个0的高斯函数与图像的卷积后结果为该组的一层,0组图像中每组 图像均含有S层卷积结果;第0组的第S层对应的0值则为:
[0070]
[0071] 其中,0。为基本尺度标准差;对于0组图像,每组图像都是由前一组在高斯尺度 空间采用两倍降采样获得,即为建造高斯金字塔。
【具体实施方式】 [0072] S、本实施方式是对一所述的基于FPGA的卷积与时 序优化的图像关键点检测的方法的进一步说明,本实施方式中,去除对比度低的点和不稳 定的边缘响应点的方法为:
[0073] 计算差分高斯尺度空间函数D(X,y,0 )关于X的极值点D(.巧;
[0074]
[00巧]其中,i是差分高斯尺度空间函数D(x,y,0)取X方向极值点D(巧时X的取值;
[0076] 若|〇(刮>〇.〇3,保留该特征点,否则去除该特征点;
[0077] 去除不稳定的边缘响应点;一个高斯差分算子的极值在横跨边缘的地方的主曲率 大于在垂直边缘的方向的主曲率;
[007引通过一个2X2的黑塞矩阵H求出主曲率;
[0079]
[0080]D(X,y, 0 )XX、D(X,y, 0 )。、D(X,y, 0 )。和D(X,y, 0 )yy均由相邻采样点做差获得; D(x,y, 〇)u为差分高斯尺度空间函数D(x,y, 0)在X方向求二次偏导数,D(x,y, 0)。为差 分高斯尺度空间函数D(x,y, 0)先在X方向求导再在y方向求二次偏导数,D(x,y, 〇)xy,为 差分高斯尺度空间函数D(x,y,0)先在y方向求导再在X方向求二次偏导数,D(x,y,〇)" 为差分高斯尺度空间函数D(x,y,0)在y方向求二次偏导数;
[00引]D(x,y, 0 )的主曲率和H的特征值成正比,a和P均为特征值,且a>P,则;
[0082] Tr做=D(x,y, 0 ) 口+D(x,y, 0 )巧=a+P,
[0083] Det(H) =D(x,y,0)J)(x,y,0)巧-值(X,y,0)")2=曰e
[0084] 令曰=丫 0,则;
[0085]
[008引其中,丫为a与P的比例系数,Tr做为矩阵H的迹,Det做为矩阵H的行列 式;(r+l)2/r的值在两个特征值相等时最小,随着r的增大而增大,因此,根据公式:
[0087]
[0088] 检测主曲率是否在阔值r下;
[0089] 如果该特征点存在;
[0090]
[0091] 则去除该特征点。
【主权项】
1. 基于FPGA的卷积与时序优化的图像关键点检测的方法,其特征在于,该方法的步骤 为: 步骤一、构建高斯金字塔: 采用标准差σ不同的高斯函数G(x,y,〇)分别对待检测图像进行卷积处理,构造高斯 尺度空间函数L(x,y,〇 ),将高斯尺度空间划分为O组,每组分为s层;其中,X和y分别为 高斯函数的自变量和变量;〇、s均为正整数; 采用标准差σ不同的高斯函数G(x,y,〇)分别对待检测图像进行卷积处理的方法 为: 利用高斯核可分离的特性利用FPGA处理器,将二维卷积转化为横纵两个一维卷积对 图像进行处理;二维高斯核分解成为横纵两个一维高斯函数的卷积通过公式: G(x, y, σ ) = h(x, 〇 )*v(y, σ )并采用基于FPGA的行卷积模块对待检测图像进行行卷积处理,再经行列转换模块对 行卷积图像信息进行转换,转换后的图像信号经基于FPGA的列卷积模块对图像信息的列 卷积处理; 步骤二、构造差分高斯尺度空间函数; 高斯尺度空间的每组中相邻尺度图像层的差为差分高斯尺度空间函数D(x,y,〇); 步骤三、在差分高斯尺度空间中找到极值点; 采用基于FPGA的灰度值大小比较模块对每一个采样点的灰度值和它所有相邻的点灰 度值进行比较,若一个点的灰度值如果在差分高斯尺度空间本层以及上层和下层的邻域中 灰度值都是最大或最小值时,采用判断模块对基于FPGA的灰度值大小比较模块输出的最 大或最小值是否位于中间层进行判断,如果是,则该最大值或最小值点作为图像在该尺度 下的极值点输出,如果不是,删除该最大值或最小值点; 步骤四、筛选特征点; 在检测到的极值点中,去除对比度低的点和不稳定的边缘响应点,完成基于FPGA的卷 积与时序优化的图像关键点检测。2. 根据权利要求1所述的基于FPGA的卷积与时序优化的图像关键点检测的方法,其特 征在于,步骤一中构造高斯尺度空间函数L(x,y, 〇 ),将高斯尺度空间划分为0组,每组分 为s层的过程为:通过公式:构造高斯尺度空间函数L(x,y,〇),其中,I(x,y)为待处理的图像函数; 将高斯尺度空间L(x,y,〇)划分为0组,每组的一系列光滑图像包括不同的离散的〇 值,对应的每一个σ的高斯函数与图像的卷积后结果为该组的一层,O组图像中每组图像 均含有S层卷积结果;第O组的第s层对应的〇值则为:其中,〇 ^为基本尺度标准差;对于〇组图像,每组图像都是由前一组在高斯尺度空间 采用两倍降采样获得,即为建造高斯金字塔。3.根据权利要求1所述的基于FPGA的卷积与时序优化的图像关键点检测的方法,其特 征在于,去除对比度低的点和不稳定的边缘响应点的方法为: 计算差分高斯尺度空间函数D(x,y,〇 )关于X的极值点/J(i);其中,i是差分高斯尺度空间函数D (X,y,σ )取X方向极值点/)(.?)时X的取值; 若|〇(幻| > 0.03,保留该特征点,否则去除该特征点; 去除不稳定的边缘响应点:一个高斯差分算子的极值在横跨边缘的地方的主曲率大于 在垂直边缘的方向的主曲率; 通过一个2X2的黑塞矩阵H求出主曲率:D (X,y, σ ) xx、D (X,y, σ ) xy、D (X,y, σ ) xjfl D (X,y, σ ) yy均由相邻采样点做差获得; D(x,y,〇)χχ为差分高斯尺度空间函数D(x,y, 〇)在X方向求二次偏导数,D(x,y, 〇)xy为差 分高斯尺度空间函数D(x,y, σ)先在X方向求导再在y方向求二次偏导数,D(x,y, 〇)xy,为 差分高斯尺度空间函数D(x,y,〇)先在y方向求导再在X方向求二次偏导数,D(x,y, 〇)yy 为差分高斯尺度空间函数D (x,y,〇)在y方向求二次偏导数; D(x, y, 〇 )的主曲率和H的特征值成正比,α和β均为特征值,且α > β,则: Tr(H) =D(x, y, 〇)xx+D(x, y, 〇)yy= α+β, Det(H) =D(x, y, 〇)xxD(x, y, 〇)yy-(D(x, y, o)xy)2= α β 令a = γ β,则:其中,γ为α与β的比例系数,Tr⑶为矩阵H的迹,Det(H)为矩阵H的行列式; (r+1) Vr的值在两个特征值相等时最小,随着r的增大而增大,因此,根据公式:检测主曲率是否在阈值r下; 如果该特征点存在:则去除该特征点。
【专利摘要】基于FPGA的卷积与时序优化的图像关键点检测的方法,涉及图像处理技术领域。解决了现有的基于软件的图像特征点检测方法由于计算量大导致无法实时进行图像处理的问题。本发明先构建高斯金字塔,然后,构造差分高斯尺度空间;在差分高斯尺度空间中找到极值点,最后筛选特征点完成基于FPGA的卷积与时序优化的图像关键点检测。本发明适用于进行图像关键点检测。
【IPC分类】G06T7/60, G06K9/46, G06T7/00
【公开号】CN104881877
【申请号】CN201510324631
【发明人】朱庆鹏, 白杨, 郭岩, 邹志国, 尹振东
【申请人】哈尔滨工业大学
【公开日】2015年9月2日
【申请日】2015年6月12日
转载请注明原文地址:https://www.famiwei.com/read-8138199.html