多尺度Retinex 低照度图像增强的ZYNQ 实现*

2023-10-20 08:42王建斌
火力与指挥控制 2023年7期
关键词:灰度级图像增强照度

张 勇,周 斌,王建斌

(1.解放军32181 部队,西安 710032;2.郑州科技学院电子与电气工程学院,郑州 450064;3.河南省智能信息处理与控制工程技术研究中心,郑州 450064;4.北方自动控制技术研究所,太原 030006)

0 引言

由头戴夜视系统获取的低照度图像常存在亮度对比度低、随机噪声大、细节信息丢失等问题[1-2],对夜间观察搜索、场景判断造成不利影响,需要通过图像增强算法提高视觉质量。常用的低照度图像增强算法有伽马变换、小波变换、直方图均衡化、Retinex 算法及它们的改进型等。例如,文献[3]采用融合伽马变换及分数阶的低照度图像增强算法,改善图像亮度和对比度,增强图像纹理细节;文献[4]利用小波变换获得不同频率成分子带图,结合灰度变换、可变阈值降噪处理,实现了图像对比度增强和噪声抑制;文献[5]以自适应子直方图均衡化提升图像对比度,并以边缘信息融合细节增强算法完成图像细节增强。上述研究由于缺乏人眼视觉处理机制,容易存在图像对比度过度增强、局部区域亮度过饱和、部分细节丢失、实时性不强等现象[6-7]。

基于颜色恒常性的Retinex 算法将源图像分解为反射图像和照度图像,通过对照度图像估计,可得到更好的图像对比度和细节信息,是近年来图像增强算法的研究热点[8-10]。目前的研究主要集中于算法仿真分析,不过也有少量工程化案例,如文献[11]在视频监控系统、文献[12]在弹载电视系统上实现了Retinex 算法或其改进型的硬件化。上述系统复杂度低、实时性好,但应用高斯滤波函数估计照度图像,会使输出图像存在光晕伪影现象,同时,在图像增强过程中,由于压缩了源图像的动态范围,使得图像的灰度对比度不足[13-14],降低了细节分辨能力。为此,本文利用具有保边特性的双边滤波函数代替高斯滤波函数估计照度分量,并以灰度级拉伸操作进一步提升多尺度Retinex 的图像增强效果,在仿真验证改进算法有效性的基础上,开展算法的硬件化移植,以满足头戴夜视系统的实时处理需求。

1 基本理论

1.1 多尺度Retinex 算法

Retinex 理论是从真实光照环境出发,结合人眼视觉特性而构建的视网膜皮层模型,由此发展的单尺度retinex(single scale retinex,SSR)算法和多尺度retinex(multi scale retinex,MSR)算法在图像增强、图像去雾等领域效果明显[15-16]。

式中,σ 为尺度参数,通过调整尺度参数,能够获得不同的图像增强效果。

由于SSR 算法在恢复图像高频分量方面的能力有限,人们提出了MSR 算法以实现对源图像低、中、高3 个空间频率尺度上的滤波运算。利用MSR算法得到的反射图像为:

1.2 双边滤波

传统的Retinex 算法运用高斯滤波函数提升图像局部细节特征的同时,会相应增大图像噪声,造成光晕伪影现象。因此,本文采用具有保边去噪特性的双边滤波函数代替高斯函数,对源图像照度分量进行估计。

为减小硬件系统的运算开销,采用了离散双边滤波函数,其表达式为:

1.3 限制对比度自适应直方图均衡化

MSR 算法在图像增强过程中会压缩源图像动态范围,容易造成图像对比度下降和局部细节丢失。为此,考虑在MSR 增强基础上,增加灰度级范围拉伸处理,采用的方法是限制对比度自适应直方图均衡化(contrast limited adaptive histogram equalization,CLAHE),该算法可通过扩展图像的灰度级范围,改善图像局部对比度,获取更多图像细节信息[17-18],主要步骤为:

Step 1 将图像分割成若干互不重叠的矩形区域,各矩形区域直方图为h(k),其中,k 为灰度级,且满足0≤k≤L-1,L 为矩形区域最大灰度值;

Step 2 求矩形区域剪切阈值:

式中,nx、ny分别为矩形区域在x 和y 方向的像素数,c 为决定图像对比度的限制系数;

Step 3 利用阈值δ 对每个矩形区域直方图h(k)进行判别,超出阈值的像素点重新均分到其他矩形区域直方图中。设有p 个像素超出阈值,则:

Step 4 矩形区域直方图均衡化;

Step 5 双线性插值重构灰度级,得到对比度增强的图像。

2 算法设计与实现

2.1 算法的ZYNQ 设计流程

本文选用Xilinx 公司的ZYNQ 嵌入式平台进行硬件开发。ZYNQ 分为FPGA 可编程逻辑端(programmable logic,PL)和ARM 处理器端(processing system,PS),PL 端通过可编程逻辑资源实现图像增强,PS 端通过AXI 总线实现控制信号和数据信号的交互。根据流水线和并行计算过程,本文将算法流程进行划分,如图1 所示。

图1 低照度图像增强硬件划分及流程Fig.1 Hardware composition and process for low-illumination image enhancement

算法模块划分上,本文将计算量大、并行处理任务重的双边滤波、MSR算法增强设置在PL 端,利用流水线、循环展开等操作实现加速;而将后续图像灰度拉伸、视频输入输出放在PS 端,方便灵活控制。

2.2 PL 端处理过程

PL 端处理过程如图2 所示。

PL 端主要由滤波窗口构造、亮度相似度计算、空间相似度计算、归一化输出及MSR 对数域运算和反射分量解算组成。系统首先采用n×n 滤波窗口对输入图像进行分割并依次缓存,实现串行到并行的转换;其次计算滤波窗口邻域中各像素点与中心像素点的灰度差值,在ROM 查找表中得到对应的亮度相似度因子和空间相似度因子,将二者乘积作为滤波窗口的加权系数;最后利用式(5)得到归一化的双边滤波函数,并将其作为中心环绕函数在对数域求解出照度分量,进而利用MSR 得到反射分量。由于式(6)和式(7)的幂指数运算结果为浮点数,因此,需要将原始数据左移12 位即扩大212倍,并取整存入FPGA 的ROM 查找表中,以供使用。

2.3 PS 端处理过程

PS 端处理过程主要为CLAHE 灰度拉伸算法的实现,如图3 所示。

图3 PS 端处理流程Fig.3 Processing flow of PS terminal

系统利用RAM 作为统计表和映射表的存储,以节省更多逻辑资源。首先将前端输入的帧同步、数据同步信号经FIFO 缓存隔离;其次进行图像分区,并同步解算所有区域中心像素灰度值;而后利用RAM 统计各区域灰度值,并设定直方图裁剪阈值,将超出阈值的灰度值均匀分布于所有像素点上;通过查找表将累计量输出到线性插值模块,更新RAM;最后通过插值运算完成图像灰度值更新,形成输出图像。

3 实验及分析

3.1 实验环境

实验选用米联客的ZYNQ-7000 MZ7XA 开发板作为硬件平台,核心FPGA 芯片为Xilinx 的XC7Z020CLG400-2I,DDR 为1 GB,1 066 MHz 数字时钟,摄像头采用OV5640,图像输出分辨率设置为640×480,该分辨率与头戴夜视系统的星光级CCD分辨率一致,视频帧速为60 帧/s。视频一路以像素流形式输入到算法模块进行处理,再通过HDMI 驱动模块输出到显示端;另一路直接输出至显示端,用作实验对比图像,实验设备如图4 所示。

图4 实验设备Fig.4 Experimental device

算法HDL 语言仿真软件采用ModelSim。利用Matlab R2017a 进行对比仿真分析时,PC 机操作系统为Window10(x64),处理器I5-9300H,内存16 G,GPU 为GTX1660TI。低照度图像增强算法代码的仿真结果如图5 所示。

3.2 仿真分析

实验选取两组室外低照度近景图像,利用Matlab 对比分析SSR 和MSR 的增强效果,如图6 和下页图7 所示。在两组场景中,图6(a)和图7(a)为低照度源图像及3 种不同的增强效果,分别为基于高斯滤波的SSR 增强、基于双边滤波的MSR 增强以及本文给出的方法,图6(b)和图7(b)为对应的直方图。经多次调参测试,本文设置SSR 的尺度参数,双边滤波尺度为3×3,式(4)中的高斯环绕函数尺度参数分别为20、80 和300。CLAHE 函数adapthisteq()已经集成于Matlab 中,调用时,矩形区域分块参数NumTiles 设置为[8,6],对比度增强限制系数ClipLimit 设置为0.2。

图6 第1 组场景低照度图像增强效果对比Fig.6 Comparison of low-illumination image enhancement effects in the first group of scenes

图7 第2 组场景低照度图像增强效果对比Fig.7 Comparison of low-illumination image enhancement effects in the second group of scenes

从两组图像的主观视觉效果可以看到,SSR 算法和MSR 算法均能实现源图像亮度的提升。在MSR 算法中,由于加入了双边滤波的保边作用,使得图像细节信息得到更大程度的保留,特别是暗区域细节肉眼可辨。在对应的直方图中,源图像中、低灰度级区域的像元素过于集中,而经各类增强算法处理后,图像直方图峰值均不同程度地向高灰度级方向移动;采用CLAHE 算法对MSR 算法结果进行叠加处理,能够进一步使灰度级延伸到整个灰度范围,表明改进算法在扩大动态范围上效果明显。

在增强效果的客观评价方面,本文分别利用峰值信噪比(peak signal to noise ratio,PSNR)、结构相似性(structural similarity index measure,SSIM)和信息熵(information entropy,IE)[19-20]来表征噪声抑制效果、轮廓边缘保护能力和图像细节信息丰富程度,评价结果如表1 所示。

表1 图像增强质量客观评价指标Table 1 Objective evaluation indicators for image enhancement quality

由表1 可知,本文算法的PSNR、SSIM 和IE 指标值较其他两种算法均有一定程度提高,这表明在双边滤波+MSR 增强基础上,通过加入CLAHE 拉伸处理能够进一步提升动态范围,减少细节损失,恢复出更多的低照度信息,从而验证了本文算法的有效性。

3.3 算法移植效果

下页图8 为本文算法在FPGA 上实现的效果,共选取4 组不同场景进行对比,其中图8(a)为直接输出图像,图8(b)为本文算法增强图像。

图8 图像增强输出效果图Fig.8 The output effect images of image enhancement

由图8 可直观地看到,经过本文算法的增强处理后,夜间图像亮度和对比度得到了较大提升,淹没于低灰度区域的局部细节信息显露出来,目标图像更为清晰,植被层次感更为丰富,可视性得到改善。需要注意的是,在第4 组场景中,由于存在强光源干扰,使得源图像局部区域灰度已经饱和,本文算法难以恢复出亮暗程度。

4 种场景增强效果的客观评价结果如表2 所示,除PSNR、SSIM、IE 评价指标外,本文还利用图像处理帧速(frame rate,FR)对算法运行的实时性进行了评估,单位为ms/帧。为便于比较,表中对应列出了由PC 机处理的评价结果。

表2 ZYNQ 与PC 机图像增强评价指标对比Table 2 Comparison of image enhancement evaluation indicators between ZYNQ and PC

由表2 可知,算法在ZYNQ 平台与PC 机下的图像增强效果比较接近,各类指标值相差不大于10%,且PC 机处理效果略好。分析其主要原因为:为便于系统时钟管理和避免消耗过多资源,硬件方案将浮点运算转换为定点加乘法运算,从而损失了部分对数域运算精度。从处理的实时性看,PC 机图像处理帧速在百毫秒(ms)级以上,而ZYNQ 利用FPGA+ARM 异构架构及AXI 总线的高带宽,使得处理一帧图像仅占用几个毫秒(ms),二者相差近50倍,因此,后者处理速度极占优势。

4 结论

本文基于改进的多尺度Retinex 图像增强算法,利用ZYNQ 异构架构平台,实现了低照度图像增强的硬件化。仿真分析和平台实验表明,测试平台在图像边缘信息保留、噪声抑制、图像对比度和亮度提升等方面均有良好表现,硬件化效果与仿真增强效果基本一致,且单帧图像处理速度较PC 机有明显优势,可完全满足未来头戴夜视系统低照度环境的使用需求。

猜你喜欢
灰度级图像增强照度
图像增强技术在超跨声叶栅纹影试验中的应用
水下视觉SLAM图像增强研究
人眼可感知最多相邻像素灰度差的全局图像优化方法*
虚拟内窥镜图像增强膝关节镜手术导航系统
恒照度智慧教室光环境
电子投影机照度测量结果的不确定度评定
基于灰度直方图的单一图像噪声类型识别研究
基于图像增强的无人机侦察图像去雾方法
基于混沌加密的DCT域灰度级盲水印算法
基于实测校正因子的实时伽马校正算法