基于FPGA的红外图像清晰化系统设计

2021-06-21 10:02刘文进杜育宽陈褒丹
激光与红外 2021年5期
关键词:拉普拉斯算子校正

李 娜,刘文进,杜育宽,陈褒丹

(海南大学信息与通信工程学院,海南 海口 570228)

1 引 言

由于红外传感器本身具有的非均匀性的影响,导致红外图像存在对比度低、细节模糊等问题[1]。目前,大部分的红外图像清晰化处理是基于计算机端进行,虽然处理效果较好,但是场地适应性差,对外设条件要求较高。因此,设计一个红外图像清晰化系统以增强对比度、突出红外图像细节特征的同时能够集成在相机机芯实时地处理红外图像是十分必要的。

传统的红外图像增强算法分为空间域增强和频域增强。频域增强的算法有基于傅里叶变换、小波变换、轮廓波变换等[2-3],文献[2]通过离散小波变换将输入图像分解为低频和高频子带,利用卷积神经网络学习重建高频子带的图像特征进而重建灰度图像,有效丰富了图像细节信息。由于这类算法采用非线性变换函数对系数进行变换,增强图像的细节高频信息,同时抑制噪声的放大,可以取得较好的增强效果,但通常计算量较大,不利于硬件实现。空间域增强的算法有空域滤波、Retinex算法、直方图均衡化(HE,Histogram Equalization)[4-6]及其改进的算法等。这类算法因其简单有效,可实现硬件的实时处理等优势而被广泛地应用于实际。文献[4]提出了一种基于Retinex理论与概率非局部均值相结合的红外图像增强方法,首先通过单尺度Retinex方法调整图像中过暗和过亮部分的灰度级,然后分层对图像进行增强,能够提升图像对比度但算法会出现局部区域过度增强的现象。Wan等提出的自适应平台直方图均衡化算法进行图像增强时效果有一定的改善,但在处理大动态范围的图像时,处理后图像细节损失较大,造成图像模糊。文献[6]提出了一种双边滤波和平台直方图均衡的红外图像增强算法的FPGA实现方法,有效提升了图像清晰度但是占用了较多的硬件资源。拉普拉斯锐化是经典的空域滤波方法,能够有效丰富图像细节信息并且易于硬件实现,但其在增强图像边缘特征的同时会放大图像的噪声,进而影响图像质量。文献[7]通过拉普拉斯滤波实现红外图像细节增强,然后统计增强后图像直方图信息进行灰度映射,有效提高了输出图像的对比度,但是算法设置的参数较多,场景自适应能力较弱。

本文设计的红外图像清晰化系统为了解决图像在拉普拉斯锐化后产生噪声放大的问题,首先采用均值滤波器对输入红外图像进行平滑滤波。然后通过拉普拉斯算子进行图像细节增强,最后利用Gamma校正曲线平衡增强后红外图像的灰度,使其更加适应于人眼视觉。对硬件系统的可操作性进行了分析,并在FLIR公司的非制冷长波红外相机和FPGA处理电路上进行实验验证。结果表明,硬件系统处理后的红外图像对比度高,目标景物的轮廓和细节特征突出。

2 红外图像清晰化算法

2.1 基于拉普拉斯滤波的红外图像增强

拉普拉斯滤波是常用的图像增强方法,能较好的增强图像细节信息,同时便于硬件实现,缺点是容易放大噪声。拉普拉斯算子是最简单的各向同性微分算子,具有旋转不变性[8]。对于离散的数字图像f(x,y),定义拉普拉斯算子∇2f为:

(1)

根据二阶微分的定义,有:

(2)

(3)

将式(2)和式(3)代入式(1),可得到:

∇2f=f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x,y)

(4)

由式(4)可以看出在一幅灰度图像中,任一像素点的拉普拉斯算子计算结果为该像素点与其上、下、左、右各像素点的差的累加值。根据拉普拉斯算子的旋转不变性得到拉普拉斯运算扩展模板,如表1所示。

表1 拉普拉斯运算扩展

扩展模板增加了拉普拉斯算子两个对角线方向的边缘信息。红外图像的边缘特征为该图像中灰度值发生跳变的区域,可以使用红外图像的灰度值叠加所在位置的拉普拉斯算子描述增强后的红外图像。定义增强后的红外图像z(x,y)为:

z(x,y)=f(x,y)+α|∇2f|

(5)

式中,α为自定义参数,可根据人眼视觉效果或者外界环境变化取合适的值,取值范围为[0,1],α值越大图像增强效果越明显。由式(5)可知,如果在一幅图像中出现灰度值较大的点,叠加拉普拉斯算子会进一步增加该像素点的灰度值。

2.2 Gamma校正

Gamma曲线校正是常用的平衡图像灰度的方法,能够有效补偿图像暗部的灰度值。Gamma曲线的表达式[9]如下:

f(I)=Iγ

(6)

式中,I为归一化后红外图像的灰度;f(I)为校正后图像的灰度值;γ为校正参数。当γ<1时,在低灰度值区域内,动态范围变大,图像对比度增强;在高灰度值区域内,动态范围变小,图像对比度降低,图像的整体灰度值变大。当γ>1时,与之相反。

2.3 文中算法

拉普拉斯滤波在突出图像边缘方面能够取得较好的效果,但会产生更多的噪声,可以通过均值滤波对输入图像进行平滑处理避免噪声的放大。因此,文中清晰化方法将平滑处理后的图像叠加拉普拉斯算子进行细节增强,然后利用Gamma曲线均衡增强后图像灰度值,具体流程如下:

步骤1:对输入原始红外图像数据取8×8窗口的平均值进行平滑滤波处理。

步骤2:计算处理后图像的拉普拉斯算子,结合平滑后图像数据进行细节增强。

步骤3:对增强后图像进行Gamma曲线校正,进一步平衡灰度。

在输入灰度级为0~255范围内,我们将Gamma曲线校正后的灰度数据放入16×16的查找表Gamma_table中,一方面可以得到校正后的灰度值,另一方面可以将查找表数据添加至硬件语言中,使得硬件算法能够直接获得经Gamma曲线校正后的灰度,从而降低硬件算法的计算复杂度,节约硬件资源。选取纹理细节较为丰富的图像验证清晰化算法的处理效果,如图1所示。图1(b)为原始图像直接进行拉普拉斯锐化后的效果,近处桌子的边缘及远处物体的轮廓都得到增强,同时噪声也被放大;将原始图像首先进行平滑滤波后有效抑制了噪声的放大,增强后图像变化平滑,适合人眼观察识别,如图1(c)所示。

图1 红外图像清晰化算法结果

3 红外图像清晰化系统设计

3.1 硬件系统的搭建

红外图像清晰化系统采用美国FLIR公司的TAU2长波红外相机,输出图像大小为640×512像素,以及Xilinx公司ZYNQ系列的FPGA芯片作为核心处理器。在相机端输出数字信号遵循Camera Link协议,输出图像为8bits灰度数据,配置电平转换芯片DS90CR288将相机输出的低压差分信号转换为TTL/CMOS信号作为FPGA的输入。FPGA内部运行的时钟与相机的工作时钟保持同步,均为21 MHz。电平转换芯片DS90CR287将FPGA处理后的图像信号转换为LVDS信号,使用加拿大Matrox公司SOL 2M EV CLB型号图像采集卡接收DS90CR287输出的差分信号并在显示设备显示清晰化后的红外图像。

3.2 算法的硬件语言实现

在Xilinx公司ISE14.7平台上,使用VHDL语言描述红外图像清晰化算法,图2为硬件语言功能模块框图。在control模块生成控制信号,将原始红外图像按照Camera Link协议输入,在smooth filter模块,对输入灰度图像平滑滤波,detect模块对滤波后的图像进行基于拉普拉斯算子的细节增强,最后利用Gamma校正曲线平衡增强后红外图像的灰度。enhance模块用于子功能模块间数据的传输,处理后的图像数据从顶层模块control输出。

图2 硬件语言功能模块框图

3.2.1 红外图像的输入输出控制

红外图像清晰化系统适用于Camera Link接口的红外相机,因此需设计符合Camera Link协议的图像输入输出时序,硬件算法通过状态机生成图像输入输出的控制信号,具体如下:

S0状态:帧有效信号fram_valid清零;行有效信号hor_valid清零;数据有效信号data_valid清零;行、列计数清零;

S1状态:帧有效信号fram_valid为1;

S2状态:行有效信号hor_valid为1;

S3状态:数据有效信号data_valid为1,同时列计数器col开始计数;

S4状态:数据有效信号data_valid为0;

S5状态:行有效信号hor_valid为0,同时行计数器row开始计数;当row小于图像高度时,状态机进入S3状态,否则状态机进入S6状态;

S6状态:控制信号清零,状态机返回S0状态。

3.2.2 平滑滤波模块

对输入图像进行平滑滤波,需要调用7个FIFO缓存7行数据,再加上当前行构成8行数据进行8×8窗口的行列相加。为了提高运算速度,滤波采用流水方式,假设当前时钟有效时,8行数据分别为d11~d18,首先计算行相加的串并行流水,具体结构如图3。利用4路并行完成8行数据的分组相加,构成并行流水。输出结果d21~d24利用2路并行加法,得到d31~d32,再使用一个加法器完成d31+d32运算,得到最后行相加运算结果sum。由于不同级别的加法运算在不同时钟完成,从而构成了3级并行流水。

图3 行相加串并行流水

将加法运算的结果sum延时,延时后的信号分别用sum1~sum7表示,图4为列相加串并行流水。同样将延时后生成的7列数据采用3级串并行流水方式得到最终64位数据的和,再除以64得到图像平滑滤波后的结果avg。

图4 列相加串并行流水

3.2.3 基于拉普拉斯算子的细节增强

采用3×3窗口对平滑滤波后的图像数据计算拉普拉斯算子,需要在FPGA内部建立两个FIFO用于缓存两行数据,FIFO输出数据为dout1和dout2,再加上当前行数据datain,形成3×3的矩阵,如图5所示。

图5 数据缓存示意图

假设当前时钟有效时,3行数据分别为G2、G5和G8,首先计算3行数据的和为sum,计算2×G5-G2-G8为sub;然后将sum和sub的值做延时,根据时序的配合计算出以G5为中心的拉普拉斯算子;再使用一个乘法器将拉普拉斯算子乘以一个自定义参数α,用以调节细节增强效果的强弱,使其更加适应于环境的变化(参数α可以在control模块进行调整);最后将乘以参数后的拉普拉斯算子的值与G5相加,得到G5增强后的灰度值。

为了节约硬件资源,提高FPGA运算速度,本文将C语言生成的经Gamma校正后的0~255灰度范围的查找表Gamma_table添加至硬件语言中。将拉普拉斯增强后的图像灰度乘以一个自适应参数β(0<β≤1,β值通常为1,当红外图像过暗或者过亮可以在control模块适当增加或减少β值),得到的乘积在查找表中对应找出Gamma校正后的灰度值即为处理后图像灰度值。

4 实验结果及分析

4.1 硬件资源占用情况

红外图像清晰化硬件系统选取型号为XC7Z020的Xilinx ZYNQ系列的FPGA芯片作为核心处理器。在ISE14.7平台上,采用Synplify工具综合后,最高频率为228.05 MHz,如表2所示,远远高于所使用红外相机的工作频率21 MHz,能够实时地处理视频图像。表3为综合后的FPGA资源占用情况,其中Slice registers占用率为2 %,Block RAMs占用率为5 %,LUT占用率为5 %,所选器件完全可以满足清晰化硬件系统的资源需求。

表2 时钟周期

表3 硬件实现方案对比

表3将所提的硬件实现方案在逻辑资源占用、运行时钟方面与其他方案做了对比分析。文献[10]通过计算输入图像的直方图,然后乘以比例因子达到图像增强的目的,计算复杂度较低占用了较少的LUT和register资源。文献[11]采用改进的神经网络算法对红外图像进行非均匀性校正,需要进行大量的累加、乘除运算,同时为保证计算精度,所处理的数据涉及小数部分,因此会占用大量的LUT和register资源。所提的红外图像清晰化硬件实现方案利用FIFO缓存7行图像数据后进行均值滤波,通过将软件生成的Gamma校正查找表直接添加至硬件语言中,避免了整幅图像数据的缓存以及Gamma校正时的非线性运算,消耗了最少的Block RAM和较少的LUT资源。并且,所提硬件实现方案的运行时钟周期最短,更加适合实时地处理视频图像。

4.2 图像主客观质量评价

红外图像清晰化软件算法实现平台为Intel(R)Xeon(R)E5-2680 v3,2.50GHz CPU,内存64GB,使用软件为Dev-C++5.11,文中软件语言实现所使用的输入原始图像均由FLIR相机输出经图像采集卡捕获的红外图像。为了验证红外图像清晰化硬件系统的性能,将WNNM(Weighted Nuclear Norm Minimization,加权核范数最小化)算法[12]、Wan算法、Tarel算法[13]与本文软硬件算法处理后的图像对比分析,并从主客观角度对图像质量进行评价。

图6是一组纹理细节丰富的红外图像,从图6(b)可以看出WNNM方法能够降低原始图像的噪声从而达到改善图像整体视觉效果的目的,但是没有突出更多的细节特征。Wan方法采用自适应平台直方图均衡图像的灰度信息,在处理图像边缘时效果不理想,如图6(c)所示。Tarel方法基于大气散射模型能够有效恢复原始图像一定的纹理细节特征,但容易出现局部过增强或局部增强不足的现象,如图6(d)方框所示。

图6 图像1数据比较

图6(e)和图6(f)为本文红外图像清晰化方法处理后的结果,从图中可以看出,算法增强了目标景物的细节信息,如近处树叶的纹理特征、远处墙体的轮廓特征都得到增强。同时,算法在细节增强之前对原始图像进行平滑滤波处理,有效避免了图像噪声的放大。

图7是一组热辐射较为均匀的红外图像,可以看出本文方法能够更好的突出图像的边缘特征,同时提高了图像整体的对比度,这是在细节增强后加入Gamma校正的结果,并且硬件算法处理后图像效果逼近软件算法。当原始图像全局像素值较高、噪点较少时,WNNM方法处理效果不明显。Wan方法由于自适应参数选取较为简单,没有突出较多的图像边缘。由图7(d)方框所示,Tarel方法使得图中部分区域出现失真现象,这是由于对透射率估计不准确的结果。

图7 图像2数据比较

为了客观评价各算法的性能,采用2个经典的图像质量评价指标进行对比分析。可见边对比度能够反映图像处理前后的清晰化程度[14],新增的可见边之比为:

(7)

式中,no和nr分别为图像处理前后的可见边数目。较大的e值说明对应算法有更好的纹理细节恢复能力。峰值信噪比(PSNR,Peak Signal to Noise Ratio)是衡量图像是否失真的指标,其表达式为:

(8)

式中,MSE为图像的均方误差。图像PSNR值越高,表示图像的质量越好[15]。由表4可见,所提方法获得的e值最高,PSNR值也接近于其他方法,并且所提硬件方法处理后图像的PSNR和e值均接近软件方法。因此,所提方法能够有效丰富图像细节信息,提高图像对比度。

表4 红外图像不同算法处理定量评价结果

5 总 结

本文设计实现的基于FPGA的红外图像清晰化硬件系统符合camera link数据传输协议。首先对输入图像进行8×8窗口的均值滤波得到平滑后的灰度图像,然后叠加拉普拉斯算子进行细节增强,有效解决了传统拉普拉斯锐化产生的噪声放大问题。最后利用Gamma校正曲线调整增强后图像的亮度,使其更加适合人眼观察与识别。处理后的红外图像边缘特征清晰,整体对比度得到提升。在硬件算法实现中,充分利用FPGA的FIFO资源进行串并行流水运算,能够提高硬件系统的运算速度。同时将软件算法生成的Gamma校正后的灰度查找表添加至硬件语言中,使得硬件算法能够直接获取校正后的图像灰度,有效降低了硬件计算复杂度。硬件测试时,系统处理一幅图像耗时0.1152 ms,满足实时处理视频图像的需求。

猜你喜欢
拉普拉斯算子校正
与由分数阶Laplace算子生成的热半群相关的微分变换算子的有界性
拟微分算子在Hp(ω)上的有界性
劉光第《南旋記》校正
各向异性次Laplace算子和拟p-次Laplace算子的Picone恒等式及其应用
一类Markov模算子半群与相应的算子值Dirichlet型刻画
一类具有校正隔离率随机SIQS模型的绝灭性与分布
机内校正
基于超拉普拉斯分布的磁化率重建算法
位移性在拉普拉斯变换中的应用
具有吸收项和局部源的一维p-拉普拉斯方程解的熄灭