APP下载

改进的暗通道先验图像去雾霾算法

2023-08-24王文庆黄世奇

西安邮电大学学报 2023年2期
关键词:透射率大气滤波

王文庆,孙 柯,黄世奇,卢 莹

(1.西安邮电大学 自动化学院,陕西 西安 710121;2.西安邮电大学 西安市先进控制与智能处理重点实验室,陕西 西安 710121)

在雾霾气候条件的作用下,大气中悬浮粒子数量不断增加,导致光线的正常传输受到影响,会干扰图像采集设备对图像的采集。对遥感图像进行采集时,大气中的粒子散射作用会导致传感器的成像质量下降,遥感图像中的物体模糊不清,信息存在一定的损失。因此,图像去雾的重要性不容忽视[1-2]。

目前,图像去雾方法主要包括基于图像增强的去雾方法、基于物理模型复原的图像去雾方法和基于深度学习的图像去雾方法。基于图像增强的去雾方法原理是通过对比度的增强,突出图像中背景与目标的差别来提高图像的视觉效果,从而达到一个去雾的目的。常见的方法有直方图均衡化[3-4]、基于Retinex的增强算法[5]和基于小波变换的对比度增强去雾方法等[6-7]。这种方法有较高的时效性和广泛的适用性,在图像去雾领域较为常用。但是,该类方法是从人眼视觉效果出发,没有考虑图像降质的根本原因,在处理雾霾较为均匀的图像时能够取得较好的效果,但对于雾霾不均匀的图像往往会产生不可预测的失真。基于物理模型复原的图像去雾方法主要是通过对成像的物理过程进行分析,考虑图像受雾霾影响而退化的主要原因。通过对大量无雾图像和有雾图像观察总结,建立精确的物理模型来呈现有无图像和原始无雾图像的关系,最终从有雾图像反推出无雾图像[8]。该类方法的核心是需要尽可能精确地得到物理模型中的参数值,最终得到复原图像。最经典的方法是He等[9]提出的暗通道先验理论(Dark Channel Prior,DCP)。该理论是根据暗通道统计规律,通过求解大气散射模型的逆过程恢复清晰图像,属于图像复原的范畴。在正常的成像过程中,大气光包括太阳的直射光、场景的反射光及大气的散射光等,而该类方法一般只将大气光作为全局常量,会导致远景去雾效果减弱,并伴随光晕现象。

随着计算机技术以及硬件条件的迅速发展,以数据为驱动的基于机器学习的图像去雾方法,特别是卷积神经网络(Convolutional Neural Networks,CNN)被广泛应用于图像去雾领域中[10]。基于卷积神经网络去雾方法大致分为两类,一类是使用卷积神经网络生成大气散射模型中所需要的大气光、透射率等参数,再通过大气散射模型还原图像。另一类是使用卷积神经网络进行训练,直接端到端地生成无雾图像。文献[11]提出一种基于生成对抗网络(Generative Adversarial Networks,GAN)去雾模型,实现起来较为复杂并且需要大量的样本对。2016年,Cai等[12]首次提出了Dehaze Net去雾网络,该网络用于估计有雾图像的透射率,主要通过特征提取、局部极值、非线性回归和多尺度映射形成的端到端的卷积神经网络系统进行去雾[13-14]。采用GAN实现端到端图像去雾算法[15]可直接从有雾图像恢复出无雾图像。但是,基于卷积神经网络去雾方法在应用于真实雾天图像时会出现过饱和或去雾不彻底的现象。结合神经网络和暗通道先验的去雾方法[16]能够处理偏色图像,但在处理天空区域的室外图像时,天空区域会有明显的光晕现象。

为了改善传统暗通道先验算法对图像去雾霾时会出现估算的大气透过率比实际值偏低,导致恢复影像的色彩与真实情形出现偏差的问题,拟提出一种改进的暗通道先验图像去雾霾算法。基于物理模型复原方法的优点,改善透射率参数选择方法,从图像受雾霾影响而退化的主要原因出发还原图像,以期较好地保持图像色彩和图像质量。

1 暗通道先验原理

暗通道先验是一个统计规律,该规律认为在大多数无雾图像中(不包含天空区域),总存在一个像素值极低、甚至接近于0的通道,将此通道称为暗通道。暗通道去雾是基于物理模型还原的去雾方法,采用McCartney大气散射模型[17],该模型用公式描述为

I(x)=J(x)t(x)+A(1-t(x))

(1)

式中:x为像素的坐标;I(x)为有雾图像;J(x)为去雾后图像;t(x)表示图像的透射率,所描述的是到达成像镜头且未被散射掉的光;A为大气光值。由式(1)可知,利用大气散射模型对图像去雾的关键是求得大气光值A以及透射率t(x),得到这些关键参数后,代入式(1)通过等式的数学变形便可得到J(x)。

暗通道先验理论指出,在大多数非天空局部区域中,几乎每一个像素点都至少一个通道具有特别低的灰度值,这个值接近于零[18]。由此,对于任意一幅输入的图像J,其暗通道Jdark的数学公式可定义为

(2)

大气光值A反映了影像上雾最浓区域的值,通过暗通道图像可获取大气光值。因此,在实际中,将提取暗通道上最亮的前0.1%像素,取出其相对应的原始有雾图像上对应位置具有最大亮度的像素点的值作为大气光值。

得到大气光值A后,对式(1)两端分别计算其暗通道图,得到

(3)

将式(2)代入式(3)可得透射率为

(4)

但是,在实际的户外图像中,即使是在晴朗的天气里,空气中仍存在着一些粒子,使得人们在向远处看的时候会觉得有一些极薄的雾存在,同时,这些雾给人的眼睛以景深的存在。因此,在式(4)的基础上,加入一个调节景深的因子w(取值为0~1),则得到估计的透射率为

(5)

由此得出的透射率是粗估计,还需进一步通过软扣图或引导滤波等方法进一步细化。将求得的大气光值和透射率代入式(1),可还原出原图

(6)

2 改进算法

雾和霾具有不同的形成过程和不同的形态结构。雾是一种常见的自然天气,其实质上是悬浮在空气中凝结的小水珠,具有不均匀的特性。而霾是指悬浮在空气中的细小颗粒,霾的来源也比较丰富,如烟、尘等。暗通道先验算法对图像去雾和去霾均可适用,但对图像去霾有时也会出现估算的大气透过率比实际值偏低,导致恢复影像的色彩与真实情形出现偏差的问题。为了改善该问题,改进的暗通道先验图像去雾霾算法对透射率参数选择方法上进行改善,从而达到较好的去雾霾效果。

2.1 求取大气光值以及粗透射率计算

将传统大气光的求法进行改进,提取暗通道中亮度最高的前0.1%的像素,找出原始有雾图像上对应位置处像素点的平均值。

在计算粗透射率的式(5)中,w的选取一般是根据经验值确定,DCP算法中w取0.95[9],但根据测试,w的选取对最终的去雾效果有较大的影响。文献[19]提出一种结合峰值信噪比(Peak Signal to Noise Ratio,PSNR)信息自适应调节雾气参数w的暗通道先验去雾改进算法。通过设定具体初值和步长采用迭代的方法,求出PSNR最优时所对应的w值。峰值信噪比与原图和处理后的图像都相关,由此特性可通过迭代法求出最优w值。

大量实验验证表明,w的选取在0到1之间且接近于1时去雾效果是最好的,而如果需要对w进行迭代取最优时,w取0.4~0.6时既能够保证不错失最优值,也能够保证算法的运行速度。为尽可能提升迭代算法的运算速度,先选取w的初值为0.6,根据此值得出粗透射率,再计算出此时的PSNR值。然后w以0.01的步长增加,得到一个新的透射率以及新的PSNR,将此时的PSNR与上一步对比,若PSNR增大则继续迭代,直至PSNR不再增大或者增大值小于0.001则认为其是最优的PSNR。而此时也就是最后一步迭代的w值,将作为最终计算粗透射率的w值。

2.2 透射率优化

在透射率优化方面,常用的有软扣图、双边滤波和引导滤波等方法。文献[20]采用的软扣图细化透射率,但是这种方法具有计算复杂度高、耗时长的缺点。随后,双边滤波被提出替代软抠图法修复透过率图,并且达到了较好的处理效果。导向滤波同双边滤波类似,具有边缘保持、图像平滑的特性,但与双边滤波相比,一方面,导向滤波在算法的时间复杂度和空间复杂度都有很大幅度的降低,其时间复杂度与滤波核的尺寸和亮度范围无关。另一方面,导向滤波避免了双边滤波在边缘附近产生的“梯度逆转”伪影效应,其在图像边缘有着更好的处理效果,极大保留了图像边缘特性,且平滑了图像边缘。因此,为使透过率图更加平滑,同时使景物的边缘、轮廓更加突出,改进算法采用导向滤波优化透过率图,改善透过率图存在的缺陷。在得到优化的透射率之后,通过有雾图像物理模型,即将大气光和优化的透射率带入式(6)可复原图像。改进算法流程如图1所示。

图1 改进算法原理流程

改进算法具体步骤如下。

步骤1在暗通道中获取亮度最高的前0.1%的像素,找出原始有雾图像上对应位置处像素点的平均值,作为大气光值A。

步骤2求暗通道图像,依据大量实验和经验,w选取初值为0.6,计算透射率以及PSNR。

步骤3选取步长为0.01增大w。

步骤4再次计算透射率以及PSNR。根据经验w最佳值应当接近于1,而第二步选取的w初值为0.6,因此此时的PSNR值应当大于第二步的PSNR值。故可通过重复第三、四步直到PSNR达到最优值,即当PSNR值开始降低或增量小于0.01时,输出最终的透射率。

步骤5利用导向滤波对初步获得的透射率通过引导滤波进行精细化处理得到细透射率。

步骤6利用获得的大气光值和精细透射率代入物理模型的变形式即式(6)还原图像。

3 实验结果分析

以Matlab 2016a为实验操作平台,选取户外采集的不同时间段不同类型的6个场景雾天图像,通过直方图均衡化算法、DCP算法以及改进算法等3种算法分别对有雾图像进行图像去雾处理仿真,对比结果图像与原始图像的去雾效果。其中,浓雾图像去雾效果分别如图3和图4所示,淡雾图像去雾效果分别如图2和图5所示,含大量天空区域的图像去雾效果如图7所示。

图2 3种算法对场景1的去雾效果对比

图3 3种算法对场景2的去雾效果对比

图5 3种算法对场景4的去雾效果对比

图6 3种算法对场景5的去雾效果对比

图7 3种算法对场景6的去雾效果对比

由图2—图7可以看出,场景1、场景2和场景3为近景图像,且含有较少的天空区域,此类图片经过直方图均衡化算法以及DCP算法处理后都会有色彩偏差的现象,图像的整体色彩与原图不符。而对于场景4、场景5和场景6这类远景且含有大量天空区域的图像,经DCP算法处理后对天空区域的处理效果欠佳,存在较明显的光晕现象以及色彩偏差等现象。这是因为直方图均衡化算法片面地对图像的质量进行增强,并未考虑到图像降质的具体原因,去雾图像的失真严重且去雾效果不明显。采用DCP算法去雾时,有的影像因为受到地面偏亮地物影响,使得大气光值计算出现偏差,导致去雾后颜色发生了偏移,特别是对于含有大片天空区域图像的去雾,会出现光晕现象以及色彩失真等现象。而采用改进算法进行去雾时,不会出现明显的光晕,在处理天空时效果较好,且去雾后的图像符合正常的人眼视觉感受,更接近正常的清晰图像。

为进一步验证改进算法的去雾效果,对比直方图均衡化算法、DCP算法和改进算法等3种算法的图像去雾PSNR和信息熵,结果分别如表1和表2所示。信息熵[21]能够评价图像的细节信息,取值越大,图像细节信息越丰富,去雾越彻底。PSNR[22]描述图像最大像素值与噪声的比值,PSNR值越大,图像越清晰。

表1 3种算法的PSNR对比结果

表2 3种算法的信息熵对比结果

从表1中可以看出,直方图均衡化算法的PSNR指标虽优于改进算法,但对应其处理场景1图像,即图2(b)的去雾效果并不明显,且有颜色失真的现象,视觉效果没有改进算法好。从表2中可以看出,6个场景中直方图均衡化算法的信息熵数据都不太理想,这也是由于直方图均衡化算法只是片面地增强图像质量,而信息熵偏低会导致很难保留较多的图像信息。DCP算法处理后的信息熵数据虽然效果好,但表1中该方法的PSNR值普遍偏低,特别是场景1,而改进算法针对PSNR值选用图像物理模型复原公式,即式(5)中w值经过迭代优化,能够得到较好的PSNR数据。另外,通过导向滤波对透射率进行优化,得到的结果没有明显的光晕现象,信息熵也有不错的效果,能够包含更多的图像信息。因此,改进算法去雾的综合效果优于其他两种方法。

4 结语

结合大气散射模型的物理意义,以暗通道先验为基础,提出一种改进的图像去雾霾算法。该算法选取亮度最大的前1%的像素作为大气光值,采用迭代的思想,求出使PSNR值最大时所对应的w,将w值作为权值代入公式得出粗透射率,再以导向滤波细化透射率。最后,将得到的大气光值和细化透射率带入变形后的有雾图像物理模型中达到还原图像的效果。实验结果表明,改进算法能够更加有效地针对含大片天空的有雾图像进行去雾处理,去雾后的图像细节保持好、有较高的色彩保真度,光晕现象也不明显。

猜你喜欢

透射率大气滤波
大气的呵护
纯色太阳镜镜片耐日光辐照性能试验研究
大气古朴挥洒自如
大气、水之后,土十条来了
RTS平滑滤波在事后姿态确定中的应用
基于线性正则变换的 LMS 自适应滤波
石墨烯光栅太赫兹透射特性的研究
玻璃长波透射率对普通双层中空玻璃热特性的影响
晶格常数对左手材料的能量透射率及负折射率的影响
基于随机加权估计的Sage自适应滤波及其在导航中的应用