基于FPGA的红外图像细节增强算法设计与实现

2018-08-08 06:54
激光与红外 2018年7期
关键词:双边直方图亮度

陈 峥

(中国空空导弹研究院,河南 洛阳 471009)

1 引 言

红外热成像系统在实际工作中,随着器件工作温度、环境温度的改变,光信号在传输过程中受到的随机干扰,电路中的随机噪声等多重因素的共同影响,致使红外图像普遍存在目标与背景对比度低、细节模糊等问题[1]。因此,有必要采用红外图像细节增强处理算法对图像进行加工,改善图像目标细节与场景间的对比度,突出图像中的特征信息,削弱或者消除干扰信号[2]。

传统的图像增强方法中,分空域图像增强和频域图像增强。空域图像增强包括直方图均衡化、平台直方图均衡化等;频域图像增强中,常用的有高通滤波器、同态滤波[3-4]等。这类算法简单有效、易于硬件实现,但对于低对比度红外图像的细节部分增强效果有限,更难以为后续图像处理工作提供高效识别。而效果较好的红外图像处理算法通常计算量较大,不易实时实现。近年来,随着FPGA技术的发展,器件性能不断提高。由于其灵活高效、并行处理能力强的优点,广泛应用于信号处理领域。本文结合双边滤波算法和平台直方图均衡算法的优点,在FPGA中实现了一种实时红外图像细节增强算法,能够有效提升红外图像的清晰度和对比度。

2 平台直方图均衡算法

平台直方图均衡算法是常用的图像增强算法之一,它是对直方图均衡化法的一种改进。该算法的基本原理是:通过选择一个合适的平台阈值P,对统计直方图进行修正,如果某直方图的灰度级小于平台阈值P,就保持不变;如果大于平台阈值P,则将其直方图值置为P。对于目标成分较少的图像,平台值P可以取得适当低一点,而对于目标成分较多的图像,P值可以适当取得高一点,以突出目标的对比度[5]。

图像的平台直方图[6]:

(1)

图像的累积直方图:

(2)

图像的平台直方图均衡化后的灰度值:

(3)

式中,k表示图像的灰度级,k∈[0,L-1],PT(k)是图像的平台直方图,Ρ(k)是图像的统计直方图,Ρ为平台阈值。式(2)中,FT(k)即为图像的累积平台直方图;式(3)中,DT(k)是灰度为k的像素经过平台直方图均衡化后的灰度值,DT(k)∈[0,255],⎣ 」表示取整。

3 双边滤波算法

双边滤波器的概念最早是由Tomasi和Manduci在1998年提出的,它是一种非线性的边缘保持平滑滤波器。双边滤波器利用局部的加权平均,在2维邻域内的加权系数由两部分因子乘积组合而成,一部分由像素间的空间距离决定,称之为空间邻近度因子;另一部分由像素间的亮度值之差决定,称之为亮度相似度因子[7-8]。

考虑到在数字图像处理系统中的实现,离散型的双边滤波的算法公式为:

(4)

其中,Sx,y表示中心点(x,y)的(2N+1)×(2N+1)大小的邻域。公式等号右边就是中心像素点邻域内像素亮度值的加权平均。对该邻域内的每一个像素点g(i,j),其加权系数W(i,j)由两部分因子的乘积组成:

(5)

(6)

权重因子核函数WS(i,j)和Wr(i,j)均为高斯函数,WS(i,j)是空间邻近度因子,Wr(i,j)是亮度邻近度因子。

从式(4)~(6)可以看出,双边滤波器的加权系数是空间邻近度因子WS和亮度邻近度因子Wr的非线性组合。前者随着像素点与中心点之间欧几里德距离的增加而减小,后者随着两像素亮度值之差的增大而减小。在图像变化平缓的区域,邻域内像素亮度值相差不大,双边滤波转化为高斯低通滤波器,在图像灰度值突变的区域,滤波器利用边缘点附近亮度值相近的像素点的亮度值平均代替原来的亮度值。因此,双边滤波既平滑滤波了图像,又保持了图像的边缘,图像增强效果良好[9]。

4 基于FPGA的算法设计与实现

4.1 双边滤波处理过程

原始红外图像数据进入FPGA后,首先经过双波滤波算法处理。算法流程如图1所示。

图1 算法FPGA设计流程图

探测器输出的14位原始图像先储存于图像存储RAM中,然后按列读出图像数据,计算在3×3邻域中每个像素点与中心点的灰度差值,在亮度相似度因子查找表中查找到该灰度差值对应的亮度相似度因子;然后与已知的空间临近度因子对应相乘,得到3×3的滤波系数矩阵。然后计算出3×3图像数据与滤波系数之乘积作为分子,滤波系数之和作为分母,二者相除得到处理后的图像。

4.1.1空间邻近度因子WS计算

根据式(5),σs的值控制着空间邻近度因子WS的衰减程度,一般选择图像对角线像素数量的2.5%。在此,根据选用探测器的像元数,选择σs=20。而且,考虑到运算的复杂度及可编程器件的运算能力,选取3×3掩膜来实现。对于卷积运算,可以调用FPGA乘累加器IP来实现。如图2所示,空间临近度因子为一恒定系数矩阵,可事先计算好,直接存储在FPGA的ROM中以供调用。

图2 空间邻近度因子的系数矩阵

4.1.2 亮度相似度因子Wr计算

根据式(6),σr的值控制着亮度相似度因子Wr的衰减程度。由于当前像素参与计算,Wr需要实时产生,指数运算在FPGA中可通过映射表的方式实现,即在1个时钟周期内查表得到指数运算结果,并将结果寄存。采用3×3的矩阵进行处理,要求缓存三行数据。如图3所示,在FPGA内部建立三个FIFO用于缓存数据和进行计算。

图3 数据和缓存示意图

如图4所示,设定当前点的数据为reg5,采用多个寄存器,通过一个乘法器和指数的查找表即可获得3×3的亮度相似度因子Wr矩阵。查找表深度为16384,位宽16。

图4 Wr计算时序

4.2 算法处理时序设计

4.2.1 图像数据I/O时序

该平台的热像仪采用ULIS公司生产的640×480像元多晶硅探测器,该探测器可以配置为单路或者双路数据输出。

采用合理的时序设计将双边滤波算法作为数据模块嵌入到FPGA中,适当提高主时钟频率,能够在一幅图像传输完成后,即可获得灰度映射表,保证数据的输出显示。在数据处理时,采用乒乓切换技术对SRAM进行复用。如图5所示,采用两片大容量SRAM交替缓存输入原始图像,数据交替输入输出过程。

图5 数据交替输入输出过程

在目前的数据流中,双边滤波算法涉及大量的乘加运算,对FPGA的资源需求和时序优化提出了很高的要求。根据设计要求,需要在40 ms内完成一幅图像的处理,为了尽量提高图像处理速度,处理方式采用了流水线设计。

4.2.2 流水线设计

如图6所示,双边滤波图像处理算法流水线。算法共分为以下7个步骤:读取列数据、计算灰度差值、查表得Wr和Ws、计算Wr和Ws乘积、计算公式(4)分母以及因子W与灰度值乘积、计算公式(4)分子、分子分母相除得到灰度值。所以在FPGA中用7级流水线实现。

图6 流水线设计双边滤波图像处理算法

由于每次载入一列新数据后需要对3×3邻域的周围8个点进行空间临近度因子Ws和亮度相似度因子Wr的计算,所以每8个周期可以完成1个像素值的滤波运算,并载入一列新的图像数据。由于除法运算延时较大,所以流水线总延时为30个周期。采用的图像处理时钟速率为80 MHz,完成一幅图像处理的总时间为30.72 ms,满足实时性要求。

4.2.3 PE模块

如图7所示,PE模块处理流程设计。完成双边滤波处理的14位图像数据先存储于RAM中,得到整幅图像数据后,从RAM中将数据逐个读出进行PE算法处理。首先对所有数据进行直方图统计,得到图像直方图数据并存入平台直方图RAM。然后对每个灰度级进行平台直方图运算,得到新的8 bit灰度级并存入RAM建立灰度查找表。最后从图像存储RAM中将每个数据读出,根据原始灰度从查找表中查找出新灰度并输出。PE模块同样采用80 MHz时钟,总处理时间为7.88 ms。

图7 PE模块流程图设计

5 实验结果与分析

综上所述,红外图像细节增强算法在FPGA中采用流水线设计,可在40 ms内实现完成。器件采用Xilinx Virtex-5系列XC5VLX50 FPGA芯片,该芯片片内资源丰富,包含7200逻辑单元、48×36 Kb的ram容量以及48个乘法单元,完全能够满足资源需求。

实验验证中,分别采用平台直方图均衡算法和本文提出红外图像细节增强算法对14 bit原始图像进行增强。实验结果如图8所示,采用凝视型中波640×480红外热像仪采集原始红外图像。由于平台直方图均衡算法在处理大动态范围的图像时,无法同时保留图像低温区和高温区的细节信息,因此均衡后的细节损失较大(大多数是被合并掉的灰度级),图像对比度较小,目标的边缘部分不清晰;而经过红外图像细节增强算法处理后,目标图像与场景间的对比度要明显优于单独用PE算法处理的图像,而且在滤除图像噪声时不会由于过度压缩而导致视频图像细节的丢失。

图8 平台直方图均衡算法和本文算法图像显示效果对比

6 结 论

本文提出的基于FPGA的红外图像细节增强算法能够有效提升红外图像的清晰度和对比度,处理后图像具有良好的视觉效果。在算法实现中,充分利用FPGA并行运算的特点,通过乒乓操作、多级流水线设计等,能够满足红外视频图像处理的实时性要求,具备良好的应用前景。

猜你喜欢
双边直方图亮度
符合差分隐私的流数据统计直方图发布
远不止DCI色域,轻量级机身中更蕴含强悍的亮度表现 光峰(Appptronics)C800
基于FPGA的直方图均衡图像增强算法设计及实现
亮度调色多面手
用直方图控制画面影调
电子产品回收供应链的双边匹配策略
亮度一样吗?
基于不确定性严格得分下双边匹配决策方法
基于不确定性严格得分下双边匹配决策方法
中考频数分布直方图题型展示