0 引言
在红外图像系统设计中,多采用高速DSP+FPGA的方式对红外图像进行处理。在早期的设计中,DSP承担了大部分的图像处理工作,FPGA只做一些逻辑译码和简单运算的功能。但DSP运算是相当耗时的,当在图像较大、实时性要求较高的场合,用DSP进行处理就有相当的难度了。随着工艺的发展,FPGA片内逻辑资源和处理速度的提高,将一部分图像处理算法移植到FPGA中,可采用流水的处理方式,只占用很少的处理时间,能够大大降低系统对于DSP的负担。
本文介绍一种红外图像预处理的方法,将图像非均匀校正、空间滤波、直方图统计算法移植到FPGA中实现,DSP只完成控制和简单判断的功能,有效的提高了系统的实时性。
1 总体设计
结合FPGA和DSP处理算法的各自特点,本方法中将非均匀校正、空间滤波、直方图统计等功能在FPGA中实现。
首先,红外图像数据以像素为单位按照流水的方式进入到非均匀校正模块中进行红外图像的非均匀校正;之后,校正后的图像进入到空间滤波模块中进行空间滤波处理;空间滤波后的图像数据,被送到直方图统计模块进行处理,同时滤波后的图像数据也被存储在FPGA内部双口RAM中;接下来,直方图统计结果也将被存储在FPAG内部双口RAM中。最终,图像预处理后的红外图像数据及直方图统计结果分别存储在FP GA内部双口RAM的不同区域中。DSP按照预先设定的时序将预处理结果从FPGA内部双口RAM中读取出来,并进行后续处理工作。
同时DSP通过控制指令对整个预处理流程进行控制。
总体设计如图1所示。
Gij和Oij分别是二点校正法的增益校正系数和偏置校正系数,yij为校正后的输出。二点校正法是利用焦平面各阵列元在温度不同的两个均匀辐射的黑体(高温TH和低温TL)下的响应输出计算出Gij和Oij,从而实现非均匀性校正。
首先将预先计算好的系数Gij和Oij存入FLASH中,系统上电后先将系数搬移到外部的SRAM中,再通过FPGA读取,完成非均匀校正的乘加功能。
FPGA算法结构如图2所示。
为了在20MHz时钟的一个周期内能够处理完一个像素的非均匀校正算法,以保证能够流畅的进行,将数据同步时钟clk_20M通过DCM时钟管理器,倍频到60 MHz,以60 MHz时钟进行乘加、缓存,以达到实时处理的目的,省去了对原始图像的缓存。
1.2 空间滤波模块设计
在图像生成和采集的过程中,会叠加各种各样的噪声,这些噪声会使图像质量变差,必须对图像信号进行预处理,抑制背景噪声,增加目标强度,从而提高图像的信噪比,为后续处理奠定基础。在本方法中,采用均值滤波的方式,FPGA算法结构如图3所示。
为了实现流水处理,需要3x3的窗口模版中的3行和3列的数据能够在一个同步时钟输出,在3x3窗口模版的设计中利用了两个FIFO和9个寄存器来实现数据的缓存,其FPGA算法结构如图4所示。
由于均值滤波需要3行的数据,由ISE的IP核生成FIFO_1和FIFO_2,宽度为16 b,深度为256,缓存两行数据。利用9个寄存器Reg_1到Reg_9的缓存值Q11~Q13,Q21~Q23,Q31~Q33,进行均值滤波,得到滤波后的图像数据data_out,计算公式如下:
1.3 直方图统计模块设计
在实时图像处理中,直方图统计是多种空间域图像处理的基础。图像的灰度直方图就是图像中像素分布在灰度等级上的概率密度,它反映不同灰度级的像素在各自灰度级别上个数之和。在本方法中,利用对空域滤波后的图像进行直方图统计,统计结果可作为动态门限设置的基础。
直方图统计涉及到地址索引值累加的功能,利用RAM、有限状态机和DCM模块实现,RAM由ISE中的IP核产生,数据宽度为16 b,深度覆盖所有像素灰度值,深度值为16 384,由有限状态机实现读写信号的控制功能,DCM设置4倍频,直方图统计的FPGA实现结构框图如图5所示。
有限状态机实现整个直方图统计的信号控制功能,在实时处理中需要进行流水处理,将输入的20 MHz时钟信号倍频到80 MHz,有限状态机工作在80 MHz。保证一个周期能够处理完一个像素的统计工作,每个输入信号有4个处理状态,分别是IDLE,READ,SUM和WRITE,状态转换图如图6所示。
各状态工作如下:
IDLE:初始化各信号,等待使能信号有效,输出读使能信号,将像素灰度值输出给RAM的地址线,并转换到READ状态。
READ:读取RAM输出的数值,并转换到SUM状态。
SUM:对读取值加1,转换到WRITE状态。
WRITE:将累加后的值写入RAM中,转换到IDLE状态。
2 应用
在TI公司TMS320C6416T,CPU频率为800 MHz的系统中运行整个处理算法须在3 ms以上,本设计采用Xilinx公司的Virtex-4系列现场可编程门阵列(FPGA)实现,使用流水线的处理方法,只缓存几行图像数据的延时,从而在保证了图像处理质量的同时,提供了系统的实时性。图7,图8为原始图像和预处理后图像的对比。
3 结语
本方法能够有效地对红外图像进行非均匀校正、空域滤波、直方图统计等图像预处理工作。与采用DSP进行处理的系统比较,能够节约将近50%的处理时间。使用FPGA实现的实时图像预处理系统具有广泛的应用价值。