基于fpga的卷积与时序优化的图像关键点检测的方法

文档序号:8905686阅读:677来源:国知局
基于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页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1