2。2 噪声处理
但是,这里有个需要注意的地方,在文献[12]中提到由于使用矩形模板等原因会增加噪声,因此使用一个光滑的圆形窗口代替,比如高斯算子。但是,由于高斯窗口的大小很难控制,小窗口对虚假角点的抑制力不足,大窗口又会影响到检出角点的位置[27]。因此在设计高斯滤波模板时,需要对模板大小做出控制,通常使用5×5的模板效果较佳。而在Harris算法中通常用模板系数为:的高斯算子,这样一来将会占用25个乘法器,24个加法器以及设计一个除以331的除法器,会占用大量的FPGA资源[25],因此,这里需要对这个高斯滤波模板进行一些处理,简化其运算,使它占用的FPGA资源减少。
高斯滤波的原理是根据高斯函数的形状来选择权值,对于处理图像,常常用二维零均值离散高斯函数作平滑滤波用,其函数表达式如下:
决定图像平滑程度的高斯滤波器宽度取决于参数。在设计高斯滤波器时有两个方法可以选择,其一是由于高斯函数的最佳逼近由二项式展开的系数决定,高斯函数有可分离性,二维高斯滤波器则可以由两个一维高斯滤波器逐次卷积来实现,一个沿水平方向,另一个沿垂直方向,另一个方法是直接从离散的高斯分布中得出模板中各点的值。通常在Harris角点检测中使用,5×5的模板,由离散的高斯分布中得出该模板的系数为:文献综述
[28],根据系数规律以及高斯滤波器的特性,可以将模板处理成。这样处理后的模板近似于一个圆形窗口而非矩形窗口,避免了在自相关检测时带来的噪声。同时也是一个低通滤波器,能够满足预处理阶段抑制噪声的要求。
将低通滤波模板做这样的处理主要是为了方便程序的编写,这样处理后,模板中每一点的系数均为2的整数次方,这样一来,乘法器的功能可以借助向左移位来代替,从而减少了FPGA的占用资源。另一方面,由于系数之和为32,则通过将模板中各点乘上系数后的和连续进行5次向右移位完成,而不必占用大量资源在FPGA中设计一个除法器。
3 Hariss算法在FPGA上的实现
3。1 FPGA设计原则
由于整个角点提取系统的核心部分都在FPGA上运行,这就会造成FPGA的工作量很大,如果对FPGA的设计不合理,会使FPGA内部的资源紧张,影响系统总体性能,所以在FPGA要运行的程序编写过程中,要注意占用面积与工作速度两者之间的的平衡,即面积与速度原则。此处的面积是指的一个工程中消耗的FPGA的逻辑资源的数量,对于FPGA而言,可以根据所消耗的查找表(LUT)和触发器(FF)的数量来判断消耗资源的多少,不过多数情况下可以通过将所设计的程序需要的资源换算成完成同样功能所需要的等价逻辑门数来判断。这里的速度是指的设计的程序在芯片上处于稳定运行状况下,能够达到的最高频率,决定这个频率的是设计中的时序状况。面积和速度两个指标是设计质量评价的终极标准,并始终贯穿于FPGA的设计当中。[29]
在本次基于FPGA的Harris角点检测设计当中,由于总共所需处理的数据量较大,如果采取对灰度数据采取串行逐个处理的方式会导致总共运行时间增加,效率低下。因此在设计阶段,需要采取牺牲面积来换取速度上的提高,即尽量使用并行处理的方式来完成模块功能。这样虽然会占用相当的面积资源,并且有些面积资源是可以节省的,但是,并行处理且同时向后面模块输出可以一方面增加处理速度,另一方面也可以简化前后模块时序的连接。来`自+优-尔^论:文,网www.youerw.com +QQ752018766-
3。2 整体思路 FPGA视频图像角点特征提取算法的硬件实现方法研究(4):http://www.youerw.com/tongxin/lunwen_89923.html