基于FPGA的红外成像系统及图像处理算法
2021-04-12高美静彭春阳李时雨张博智祖振龙
高美静,彭春阳,李时雨,张博智,祖振龙
(1.燕山大学 信息科学与工程学院,河北 秦皇岛 066004;2.河北省特种光纤与光纤传感重点实验室,河北 秦皇岛 066004)
0 引言
近年来,红外成像技术发展迅速,红外成像系统在军事、航空航天、工业生产、通信及医学等领域得到诸多的应用[1-3]。相较于可见光成像领域,由于当前红外传感器工艺技术缺陷和红外成像特性,红外图像噪声较高、图像对比度较小,使得红外图像质量往往并不理想,而且在红外图像处理领域并没有形成完善的理论体系[4]。同时,对于红外系统整体而言,红外成像系统往往无法在提升红外成像效果的同时兼顾图像的处理速度,为此,本文首先研究改进的红外图像处理方法,包括一种改进的中值滤波算法去除图像噪声;一种伽马变换与直方图均衡化组合算法对红外图像进行增强;一种改进的红外图像伪彩色变换算法提高人眼视觉效果。然后基于FPGA搭建了硬件系统,并完成了改进的红外图像处理算法的硬件实现。以FPGA为核心处理器的红外系统不仅具有体积小、可靠性强、重量轻等ASIC芯片的特点,还具有并行执行、开发周期短、成本低、编程升级灵活等特点[5]。仿真数据和实验结果表明了本文红外图像处理算法的优越性和系统的有效性。
1 改进的红外图像处理算法
本章研究了一种改进的红外图像处理方法,包括改进的中值滤波算法、伽马变换与直方图均衡化的组合算法以及改进的伪彩色变换算法,用于完成图像的去噪、增强和伪彩色变化功能,获取在图像质量上优于传统算法处理后的红外图像。图1为该算法的流程图。
1.1 改进的中值滤波算法
传统的基于3×3模板的中值滤波算法虽然能对噪声进行有效的滤除,但是该算法每处理一个像素时,会重复利用邻域内的6个像素,占据模板像素个数的2/3。这意味着系统每次进行中值滤波时会进行一半的重复操作[6]。所以,本文提出一种改进的快速中值滤波算法,其原理图如图2所示。B2、C2为待处理的像素,改进的中值滤波算法执行的步骤为:
1) 取3×4模板中对角线上的像素值,A1、C1、B2、C1、C3和B1、D1、C2、B3、D3。
2) 比较步骤(1)中两条对角线灰度值的大小,分别得出中值:Med_dia1和Med_dia2。
3) 将步骤(2)中得到的中值Med_dia1和Med_dia2,分别与剩下的两个像素A2和D2进行比较,得出Med1和Med2。
4) 将Med1和Med2替换模板内待处理的B2和C2,完成滤波过程。
图1 红外图像处理算法流程图Fig1 Infrared image processing algorithm flowchart
图2 改进的中值滤波算法原理Fig.2 Improved median filtering algorithm principle
为了验证算法的有效性,采集实验室人员作为待处理红外图像,图3为改进中值滤波算法、传统中值滤波算法和冒泡法分别对带有椒盐噪声的图像的处理结果图。改进中值滤波算法在处理带有椒盐噪声的图像时,既保证了图像的清晰度,又消除了大部分图像噪声,处理效果与传统中值滤波算法在处理结果目视上一致。但是,从算法的复杂度来看,改进算法的相关度较传统算法降低50%,既减少了重复操作的次数,又降低了比较次数,增强了算法的实时性,更适合硬件平台的实现。
表1是不同中值滤波算法复杂度的比较。假如算法比较一次消耗时间为20 ns,如果一幅640×480像素的待处理红外图像,3种算法消耗的时间约为2.211 s、1.290 s与0.614 s;如果是一幅2 560×1 080像素的待处理红外图像,3种算法消耗的时间约为19.906 s、11.612 s与5.616 s。算法消耗时间随图像中像素个数增加呈线性变化,如果待处理为多帧图像甚至是视频流,算法处理过程消耗的时间差别更为明显,由此可见,本文提出的算法的实时性最好。
图3 不同算法处理后的效果对比图Fig.3 Comparison of the effects of different algorithms
表1 不同算法的复杂度比较Tab.1 Comparison of the complexity of different algorithms
表2给出了采用冒泡法、传统中值滤波算法和改进中值滤波算法的峰值信噪比,PSNR0代表原始红外图像经3种方法处理后的峰值信噪比,PSNR1代表原始红外图像添加10%椒盐噪声后3种方法处理结果峰值信噪比。可见在两种情况下,本文改进的中值滤波算法的峰值信噪比最低,本文提出的改进方法是有效的。
表2 不同算法处理结果峰值信噪比Tab.2 PSNR of different filtering algorithms
本文改进的中值滤波算法的效果总结为三点:第一是算法复杂度低,该算法采用3×4缓存窗口,窗内进行10次比较即可输出滤波结果;第二是算法耗时少,该算法在对单个红外图像处理时,消耗4个时钟周期;第三是该算法可以滤除大部分椒盐噪声,处理效果与传统中值滤波算法相当。综上,本文提出的改进的中值滤波算法是以上几种算法中最优的。
1.2 伽马变换与直方图均衡组合算法
完成图像滤波后,为了增强图像细节对比度,需要对红外图像进行图像增强处理,最常用的红外图像增强算法为直方图均衡法,然而传统的直方图均衡化会损伤原图的某些细节,影响图像处理效果[8]。考虑到算法应用平台为FPGA,要求算法复杂程度较低且实时性要好,本文提出一种伽马变换与直方图均衡化的组合算法。
首先对红外图像进行直方图均衡化处理,然后根据该原始图像中要凸显的图像目标的位置与图像细节,来选取不同的伽马值进行伽马变换得到最终的处理结果。按照图4所示的原理,本文完成了仿真。
图4 组合算法原理图Fig.4 Schematic diagram of the combined algorithm
图5是组合算法处理后的效果图与原图像的对比图。从图5中可以看出,组合算法在不损害目标细节的情况下,最大程度地拉伸了背景,增强了对比度,视觉效果明显优于单独的伽马变换和传统的直方图均衡化方法,达到了预期处理目标。
图5 组合算法处理的效果图Fig.5 Effect diagram of the combined algorithm processing
1.3 改进的伪彩色变换算法
传统伪彩色变换算法在处理背景复杂的红外图像时,会造成处理后的图像不清晰,对比度降低[10]。因此,本文提出一种改进的伪彩色变换算法。算法中各个温度区间的映射关系为
(1)
G(x)=255x/4t,
(2)
(3)
式中,R、G和B分别代表图像的红、绿和蓝色分量,t为图像灰度级阈值,映射图如图6所示。图6(a)表示传统伪彩色灰度级彩色映射关系,而图6(b)为改进的灰度级彩色映射关系。
图6 伪彩色变换映射关系Fig.6 Pseudo color transformation mapping
按照图6所示对红外图像进行仿真处理,处理结果如图7所示。可以看出传统的伪彩色变化算法在处理红外图像时,会造成图像清晰度下降,对比度降低,而新方法测量后的图像色彩变化连续,温度变化又暗到明,细节更为清晰,对比度更高。
图7 伪彩色变换处理效果图Fig.7 Pseudo-color transformation processing diagram
2 基于FPGA的视频红外成像系统
2.1 系统结构与功能
本文基于FPGA的红外成像系统,核心控制芯片选用Intel公司生产CYCLONE Ⅳ系列EP4CE10F17C8型FPGA,红外图像采集部分选用FLIR公司生产的PHOTON320热成像机芯,视频信号解码芯片采用ADI公司生产的ADV7180视频解码芯片,图像的缓存芯片采用华邦公司生产的64M SDRAM芯片,外部显示终端采用的是TFT液晶屏[11]。本文系统组成框图如图8所示,系统正常工作时,外部红外摄像头采集到的红外图像信号,经过视频解码芯片解码后,进行缓存与图像处理,随后将视频信号传送到液晶屏进行显示。
图8 基于FPGA的红外成像系统框图Fig.8 FPGA-based infrared imaging system block diagram
其中,ADV7180芯片进行寄存器配置,视频解码模块为ITU656视频解码格式[3], ITU解码模块的有两个功能:1)将视频控制信号与视频有效数据信号分离,并且通过计算行列坐标,确定像素的具体位置。2)通过计算水平像素坐标,将图像分辨率修改为640×480以便在TFT中显示。SDRAM作为系统的外部存储器用于储存图像[6]。显示设备为TFT数字液晶显示屏,可以直接显示数字视频信号的颜色信息。
2.2 改进的红外图像算法的FPGA实现
完成系统搭建后,需将改进的红外图像算法在系统中实现。红外图像的硬件实现流程按照滤波、增强和伪彩色变换的顺序进行。
首先改进的中值滤波算法基于FPGA的实现方案如图9所示,该方案主要分为两部分:3×4缓存窗口模块以及快速中值滤波模块。当外部Tft_de显示使能信号有效时,首先建立3×4缓存窗口并判断当前像素是否处在奇数列;随后将图像数据送入改进的中值滤波模块完成滤波操作。
图9 改进中值滤波算法实现方案Fig.9 Improved median filtering algorithm implementation
伽马变换和直方图均衡化组合算法实现主要分为三步:首先建立灰度统计直方图;其次根据统计结果实现统计结果均衡化;最后将均衡化的结果进行伽马变换。这种组合增强算法实现算法容易,对红外图像增强的效果好,并且在硬件中资源消耗较低。
改进的伪彩色变换算法按照图10所示的原理图进行操作。经过前期处理后的红外图像灰度值首先经过多路选择器进行温度分区;随后,在不同温度区间进行改进的线性变换;最后,将变换后的数据送给TFT控制模块用于显示。图11为系统伪彩色处理效果图。
图10 改进伪彩色变换算法实现的模块图Fig.10 Diagram of improved pseudo color conversion algorithm implementation
图11 伪彩色变换效果图Fig.13 Pseudo-color transformation effect diagram
通过系统处理结果与原始红外图像和传统伪彩色变换对比可知,本文搭建的红外成像系统,在最大限度保持目标细节的同时,能够更多地显示背景区域、增强图像的对比度,从图像处理视觉效果来看,清晰度、对比度要比传统算法好。
同时二者在硬件资源上的消耗基本一致,可见,本文提出的改进的伪彩色变换算法,在未增加FPGA中资源的使用量的情况下,最大限度保持了原始图像的细节,增强了图像的清晰度以及对比度。
3 结论
本文首先针对红外图像噪声多和对比度低的问题提出了改进的红外图像处理方法,包括改进的中值滤波算法、伽马变换和直方图均衡化组合算法、改进的伪彩色变换算法。结果表明改进的中值滤波算法在保持滤波效果的同时减少了代码的复杂程度,缩短了运算时间;组合算法以较小代码量提升了红外图像的对比度,增强了图像细节;改进的伪彩色变换算法在未增加硬件资源消耗的情况下增强了彩色图像的清晰度和视觉效果。最后本文搭建了基于FPGA的红外成像硬件系统并依次实现了红外图像滤波、增强和伪彩色变换等功能,并且达到实时处理的要求。本文搭建的基于FPGA的红外成像系统体积小,成本低,性能和实时性较好,可以适应绝大多数应用场合。论文的研究对于红外成像系统搭建和红外图像处理领域具有一定的参考价值,虽然整体系统搭建成功,但是依然存在着红外图像处理算法适应性较低,受环境影响大和伪彩色效果评价具有主观性等问题。通过后续进一步对这些问题展开研究和实验,有望获得性能更优的红外成像系统。