基于FPGA的图像中值滤波处理技术研究*
2014-07-10何德军
何德军
(中国人民解放军92941部队,辽宁 葫芦岛 125001)
0 引言
红外制导目前已经成为导弹常用的寻的制导方式之一[1-2],实际应用中,需要对红外导引头获取的图像进行处理以提高图像信噪比,增强对隐身类目标的捕获能力,其中,最常见的处理技术就是中值滤波[3]。中值滤波是由Tukey发明的一种非线性信号处理技术,早期应用在一维信号处理领域,后来被应用在二维数字图像平滑领域[4-5]。它是一种基于排序统计理论,能有效抑制噪声的非线性处理技术。如果使用线性低通滤波,在滤除噪声的同时,也往往会对图像中原有的清晰轮廓产生模糊效果[6],而中值滤波除了具有运算简单、处理速度快的优点外,还能很好地保护信号的细节信息,对噪声尤其是脉冲噪声有效滤除,非常适用于数字图像处理[7]。
传统的中值滤波方法,是排序整个邻域窗口内所有的像素值,然后对数值进行排序滤波[8-9],占用资源量大,计算耗时多,不适合实时图像处理系统。本文指出了传统中值滤波方法的不足,通过改进中值滤波算法直接找出像素值中的最大值、中间值和最小值,从而找出需要的中间值。与传统方法相比,该方法减少了逻辑资源的占用和计算量,节省开发成本,同时也方便在现场可编程门阵列FPGA(field-programmable gate array)上实现。
1 FPGA模块设计
现场可编程门阵列(FPGA)模块是整个数字图像信息处理机预处理的核心,所有的数据都经过FPGA控制,并且FPGA还直接承担着图像处理底层的大量卷积和乘加运算[10],所以该模块的设计直接决定着整个系统的运算速度。系统选定Virtex4系列中的XC4VSX35作为FPGA处理芯片,中值滤波在FPGA的图像预处理模块中设计实现。FPGA模块功能框图如图1所示。
2 传统中值滤波算法
一个大小为N×N(N取奇数)的滤波窗口W作用于二维序列图像{Xij,(i,j)∈Z2},此时中值滤波器可定义为
yij=Med{XijW}=Med{Xi+r,j+s,(r,s)∈W},
(i,j)∈Z2.
(1)
(2)
对于3×3的数组,需要作30次运算,而对于5×5的数组,则需要作234次二值比较。可见,随着模板数组的增大,运算量急剧增加,使得图像处理速度明显下降。并且,随着需要的寄存器不断加大,资源占用率激增,容易使后继程序处理资源不足,有时甚至需要考虑选用高成本的处理器,延长开发周期。
3 改进的中值滤波算法
改进算法基于三输入排序单元(每个三输入单元由若干二输入单元构成),共进行了三级排序操作,每一级采用了流水线缓存技术,使得每一组3×3滤波窗口内的输入像素值在每一时钟节拍都得到处理,极大地提高了算法的处理效率。该算法分3个步骤找出中值:
(1) 使滤波窗口中每列的像素值按最大值、中间值和最小值排列(垂直排序);
图1 FPGA模块功能框图Fig.1 Function block diagram of FPGA module
(2) 使滤波窗口中每行的像素值按最小值、中间值和最大值排列(水平排序);
(3) 使滤波窗口中对角线的像素值按最大值、中间值和最小值排列(对角排序)。
最后处于该滤波窗口中心的值即为中值,改进算法示意图如图2所示。
图2 中值滤波改进算法示意图Fig.2 Improved algorithm diagram for median filtering
3.1 二输入排序单元
二输入排序单元是构成三输入排序单元的基础。二输入排序单元内部结构如图3所示,由一个幅度检测子模块和一个交换输出子模块组成。幅度检测子模块根据2个输入数据的比较产生一个数据交换的信号(‘0’或‘1’),交换输出子模块根据此信号决定是否交换输入数据,使较大的输入数据和较小的输入数据分别由高、低2个输出端口输出。
图3 二输入排序单元Fig.3 Two-input taxis unit
3.2 三输入排序单元
三输入排序单元由3个二输入排序单元组成,经过3次两两输入比较,即可找出最大值、中间值和最小值。由于二输入排序单元由组合逻辑电路构成,三输入排序单元要用到3个二输入排序单元,如果3个二输入排序单元直接连接,电路耗时会很大,为保证系统时钟可靠工作,整个电路的时钟频率就不可能太高,否则会造成数据传输的紊乱。本模块采用了3级流水处理,其组成及流水线处理如图4所示,这样,经过3个时钟周期的延时,在其后的每个时钟周期都会完成3个像素的排序,整个电路可以工作在较高的时钟频率。
3.3 中值滤波改进算法
中值滤波具体改进算法流程如图5所示。图中实线表示3×3单元中每列排序后最大值输出,短虚线表示中值输出,长虚线表示最小值输出。在中值滤波设计中,运用了流水线设计的思想,由于中值滤波的整个数据处理是“单流向”的,即没有反馈或者迭代运算,前一个步骤的输出是下一个步骤的输入,采用流水线设计方法提高了系统的工作频率,因为虽然流水线方式会引入延迟,但经过延迟后,每个时钟周期都可以输出一个处理后的像素数据,大大提高了系统的工作频率。
图5中,最开始的三输入排序模块通过复用,将3×3邻域窗口内像素每3个按大小排序,经过缓存后,9个像素分3组(3个最大值、3个最小值和3个中值)并行输出,又使用3个排序模块,找出最大值组的最小值,最小值组的最大值和中值组的中值并比较,最终找出中值,与传统计算方法相比,计算量减少约60%。
图4 三输入排序单元Fig.4 Three-input taxis unit
图5 改进算法流程Fig.5 Improved algorithm flow
4 实验结果
实验仿真数据从定制的ROM中依次读出。从图6中值滤波仿真波形时序图可以看出,该设计模块正确地实现了中值滤波功能。其中,clk为仿真时钟,lar为对最大值的排序,mid为对中值的排序,lit为对最小值的排序,在统一的时钟节拍下进行数据处理后,输出中值data_med,完成图像的中值滤波。
为检验改进后的FPGA快速中值滤波实际处理效果,选取一幅桥梁灰度图像作为典型处理图像,在灰度图像中加入椒盐和高斯噪声,然后使用快速中值滤波对加入噪声的图像进行处理,与原灰度图像进行比对,实际处理效果如图7所示。
图6 仿真波形时序图Fig.6 Wave mode time series diagram of simulation
图7 快速中值滤波处理效果图Fig.7 Fast median filtering processing effect diagram
从改进算法后的图像实际处理效果来看,该方法能在滤除噪声的同时保留图像的边缘信息,提高红外图像的动态范围并消除非均匀性等影响,有效改善图像质量。相较于中值滤波的传统算法,大幅减少逻辑资源的占用和计算量,提高图像处理速度。
5 结束语
本文提出了基于FPGA的图像中值滤波改进算法,采用直接找出像素值中最大值、中间值和最小值的方法,快速找出需要的中间值,从而大幅减少逻辑资源的占用和计算量,起到缩短图像处理时间的效果,有效改善了传统算法占用资源量大、计算耗时多的不足。该方法能有效抑制图像噪声,改善图像质量,提高图像处理速度,降低开发成本。
参考文献:
[1] 罗海波,史泽林.红外成像制导技术发展现状与展望[J].红外与激光工程,2009,38(4):565-573.
LUO Hai-bo,SHI Ze-lin.Status and Prospect of Infrared Imaging Guidance Technology[J].Infrared and Laser Engineering,2009,38(4):565-573.
[2] 杨卫平,沈振康.红外成像导引头及其发展趋势[J].激光与红外,2007,37(11):1129-1136.
YANG Wei-ping,SHEN Zhen-kang.Infrared Image Seeker Technique and Its Development Trend [J].Laser & Infrared,2007,37(11):1129-1136.
[3] 蔡毅,胡旭.短波红外成像技术及其军事应用[J].红外与激光工程,2006,35(6):643-647.
CAI Yi,HU Xu.Short Wave Infrared Imaging Technology and Its Defence Application[J].Infrared and Laser Engineering,2006,35(6):643-647.
[4] 陈兆峰,李勇.红外搜索跟踪技术发展研究[J].现代防御技术,2009,37(2):116-118.
CHEN Zhao-feng,LI Yong.Research on Development of Shipborne Searching and Tracking Technology [J].Modern Defence Technology,2009,37(2):116-118.
[5] 钟坚.红外成像制导武器的装备与发展[J].舰船电子工程,2008,168(6):27-29.
ZHONG Jian.Equipment and Development Tendency of the Infrared Imaging Quidance Weapon[J].Ship Electronic Engineering,2008,168(6):27-29.
[6] 周军龙,吕相银,周元璞.舰艇红外隐身技术的探讨[J].现代防御技术,2012,40(6):113-117.
ZHOU Jun-long,LÜ Xiang-yin,ZHOU Yuan-pu.Investigation on the Infrared Stealth Technique of Naval Vessels[J].Modern Defence Technology,2012,40(6):113-117.
[7] 李飞飞,刘伟宁,王艳华.改进的中值滤波算法及其FPGA快速实现[J].计算机工程,2009,35(14):175-177.
LI Fei-fei,LIU Wei-ning,WANG Yan-hua.Improved Median Filtering Algorithm and Its Fast Implementation in FPGA[J].Computer Engineering,2009,35(14):175-177.
[8] 赵超,杨号.红外制导的发展趋势及其关键技术[J].电光与控制,2008,15(5):48-53.
ZHAO Chao,YANG Hao.A Survey on Development Trends and Key Technologies of Infrared Guidance Systems[J].Electronics Optics & Control,2008,15(5):48-53.
[9] 石艳霞,蔡辉,姜娜.弹载红外成像制导技术若干问题分析[J].红外与激光工程,2007,36(6):225-227.
SHI Yan-xia,CAI Hui,JIANG Na.Analysis of Some Problems on Missile Borne Infrared Imaging Guiding[J].Infrared and Laser Engineering,2007,36(6):225-227.
[10] 王燕峰,吴新建.一种基于FPGA的系数对称3×3卷积器的设计[J].光学与光电技术,2004,2(3):41-43.
WANG Yan-feng,WU Xin-jian.Design of Coefficient Symmetry 3×3 Convolver Based on FPGA [J].Optics & Optoelectronic Technology,2004,2(3):41-43.
[11] 田佳琳,郑宾,李琴.基于FPGA的实时红外图像处理方法研究[J].工业计量,2011,21(1):5-8.
TIAN Jia-lin,ZHENG Bin,LI Qin.Research on Realtime Infrared Image Processing Method Based on FPGA[J].Industrial Measurement,2011,21(1):5-8.
[12] 章毓晋.图像处理和分析技术[M].北京:高等教育出版社,2002:58-75.
ZHANG Yu-jin.Image Processing and Analysis Technology[M].Beijing:Higher Education Press,2002: 58-75.