计算机系统应用  2023, Vol. 32 Issue (2): 303-309   PDF    
结合WLS滤波与还原控制因子的图像去雾
王伟鹏1, 项文杰2, 刘新芳1     
1. 闽南科技学院 光电信息学院, 泉州 362332;
2. 厦门大学 海洋与地球学院, 厦门 361102
摘要:雾天退化图像的复原过程中, 针对大气光幕和大气亮度估计不准确导致光晕效应、偏色现象和对比度不足等问题, 提出一种结合WLS (weighted least square)滤波与还原控制因子的去雾算法. 首先分析WLS滤波器的原理和性能, 并用于大气光幕的有效提取; 其次利用Sobel算子检测二值化图像边缘, 将边缘数目与像素均值同时作为四叉树空间索引的依据, 提高大气亮度的估计准确性; 最后分析天空出现颜色失衡现象的原因, 引入还原控制因子改善视觉效果. 实验结果表明, 去雾后图像的平均梯度整体提高58.03%, 信息熵提高2.88%, 运行时间节省50%以上. 该方法对含有浓雾、薄雾以及天空等深度复杂的远景图像、近景图像均能得到高对比度、可视度和色彩保真度的恢复效果.
关键词: 图像去雾    加权最小二乘法滤波 (WLS滤波)    图像复原    图像增强    大气散射模型    
Image Dehazing Based on WLS Filtering and Restorative Controlling Factor
WANG Wei-Peng1, XIANG Wen-Jie2, LIU Xin-Fang1     
1. College of Optoelectronic Information, Minnan Science and Technology University, Quanzhou 362332, China;
2. College of Ocean and Earth Sciences, Xiamen University, Xiamen 361102, China
Abstract: As the inaccurate estimation of atmospheric light curtain and atmospheric light result in the halo effect, color distortion, and low contrast in the process of haze image restoration, a dehazing algorithm based on weighted least square (WLS) filtering and restorative controlling factor is proposed. Firstly, this study analyzes the principle and performance of the WLS filter, which can be utilized to effectively estimate the atmospheric light curtain. Secondly, with the assistance of the Sobel operator, the binary image edges are detected. The number of edges and the mean value of pixels are taken as the bases of the quad-tree space index, which improves the estimation accuracy of the atmospheric light. Finally, according to the causes of color distortion in the sky area, a restorative controlling factor is introduced to improve visual effects. Experimental results show that the mean gradient obtained by this method increases by 58.03%, and the information entropy increases by 2.88%. In particular, the running time relatively decreases by more than 50%. The proposed method achieves better restoration in terms of contrast, visibility, and color fidelity of the haze image containing complicated near and distant scenes that mixed dense haze, mist, and sky area.
Key words: image dehazing     weighted least square (WLS) filtering     image restoration     image enhancement     atmospheric scattering mode    

雾霾天气条件下, 户外机器影像采集设备所捕捉的画面容易受到大气中微小悬浮颗粒和水滴的干扰, 造成图像信息严重降质, 具体表现为对比度下降、颜色退化. 降质图像不利于安防监控、目标检测与识别等方面的应用, 甚至造成机器设备无法正常工作. 为了消除退化图像带来的不良影响, 提高机器设备的工作效率, 有必要研究高效的图像去雾算法.

当前主流的去雾方法可以分为两类: 基于模型的复原方法和基于神经网络的学习方法. 复原方法建立物理模型, 分析雾天成像及退化机理, 通过求解模型中的未知参量实现图像去雾. He等人[1]首次发现了暗通道先验统计规律, 并用于估计介质透射率, 由于软抠图细化步骤的运算复杂且耗时严重, 采用引导滤波器[2]进行改进, 取得良好的去雾效果. Tarel等人[3]首先将彩色图像的最小颜色分量作为大气光幕的初始估计, 使用中值滤波器对其进行细化修复, 再依次通过大气散射模型和色调映射恢复无雾图像. Kratz等人[4]和Nishino等人[5]结合雾天场景的结构特征与统计特性估算介质透射率, 研究基于贝叶斯理论的图像复原算法. Meng等人[6]提出了一种正则化方法, 结合传输函数的边界约束, 为估计场景透射率的优化问题建模, 以此恢复高质量的无雾图像. Fattal[7]认为RGB颜色空间中, 图像局部像素通常呈现一维分布特征, 利用这一规律估计场景透射率, 实现有效的图像去雾. 王平等人[8]考虑了大气亮度和介质透射率之间的关联性, 将其作为两个相互影响的整体, 利用迭代算法进行优化, 保持复原图像的真实色彩. 杨红等人[9]改进了暗通道先验方法, 将天空区域分割出来, 引入具有保边缘去噪的双边滤波器, 提高了复原图像的对比度, 改善了颜色失真现象. Gayathri等人[10]在多尺度Retinex的基础上, 结合暗通道和引导滤波器实现了雾霾图像的增强, 该方法消除了图像中的雾气影响并保留了有用的细节信息. 李红云等人[11]构造基于Kirsh算子的差分滤波器, 优化介质透射率, 实现多曝光融合的图像去雾. 吴正平等人[12]在引导滤波器的基础上, 采用自适应gamma校正函数估计介质透射率, 再利用高斯相对性优化复原图像.

基于学习的方法通过训练样本使得去雾过程中算法具有学习记忆能力. Cai等人[13]提出一种可深度训练的端到端系统, 用于介质透射率的有效估计, 再通过散射模型恢复图像. Ren等人[14]对雾天图像与透射率之间的映射关系进行深度网络学习, 提出基于多尺度卷积神经网络的去雾算法. Engin等人[15]提出一种循环网络去雾算法, 不依赖于大气散射模型的参数估算, 通过周期一致性和感知损失来增强训练, 提高纹理信息的复原. 肖进胜等人[16]结合深度学习与卷积神经网络进行雾气层的估计, 将雾天图像减去雾气层从而恢复结果. 王高峰等人[17]在Cai等人[13]的基础上改进了端到端训练系统, 采用深度可分离卷积层和膨胀卷积的方式, 有效实现图像去雾. Fahim等人[18]研究深度去雾网络, 采用4个模块实现非线性特征提取, 并引入边缘损耗函数, 获得视觉良好的去雾效果, 且无需后处理操作. 杨燕等人[19]提出阶梯型网络与注意力交融的复原方法, 提高了深度学习的训练速度. 陈平[20]结合明暗通道先验和循环GAN网络, 改进感知损失函数, 有效缩短了训练时长.

上述复原方法在多种不同场景下普遍存在适应性不足的局限, 例如远近景交汇处容易产生光晕效应、边缘残雾现象; 白色目标对大气亮度的提取造成干扰而出现整体偏色; 大面积天空区域的过度处理而导致颜色失真与过饱和现象. 而学习方法需要训练的样本数较多, 效率较低, 且处理自然拍摄的图像时, 效果并不出众. 为了提高场景适应能力, 本文在大气散射模型的基础上提出一种新的复原方法. 通过大量雾天图像的研究实验, 总结了远景、近景、浓雾和薄雾等多场合下的去雾关键技术和解决方法: 一是提取深度信息复杂的大气光幕, 采用平滑效果出众的滤波器, 获得与雾气分布特性相一致的光幕值, 克服场景深度跳变处的光晕效应和对比度不足的局限; 二是解决白色物体对大气亮度的估计影响, 结合边缘检测算子与四叉树空间索引, 可有效排除非天空、非浓雾区域的白色物体干扰, 得到合理准确的大气亮度值, 避免复原结果偏暗以及整体偏色现象的产生; 三是针对大面积天空亮度不足和颜色失真问题, 定义像素级还原控制因子, 结合大气散射模型实现局部区域的有效保护.

1 大气散射模型

在机器视觉和图像处理领域中, 基于模型的图像去雾算法普遍采用大气散射模型, 该模型根据光线经过大气中悬浮颗粒和水滴散射的特性, 将雾化图像描述为:

$ {\boldsymbol{I}}(x, y) = {\boldsymbol{J}}(x, y){{\text{e}}^{ - \beta {\boldsymbol{d}}(x, y)}} + A(1 - {{\text{e}}^{ - \beta {\boldsymbol{d}}(x, y)}}) $ (1)

其中, $ (x, y) $ 表示图像中的像素点坐标; $ {\boldsymbol{I}}(x, y) $ 表示观测到的原始图像(有雾图像); $ {\boldsymbol{J}}(x, y) $ 表示去雾处理后的清晰结果(无雾图像); $\; \beta $ 是大气散射系数, $ {\boldsymbol{d}}(x, y) $ 为景物深度, $ {{\text{e}}^{ - \beta {\boldsymbol{d}}(x, y)}} $ 为介质透射率, 表示光线通过空气介质到达图像采集设备的比例; $ A $ 表示天空亮度或浓雾区域的亮度, 统称大气亮度.

该散射模型中, 等号右边第2项 $ A(1 - {{\text{e}}^{ - \beta {\mathbf{d}}(x, y)}}) $ 定义为大气光幕, 指场景中其他光线对成像造成的影响. 用 ${\boldsymbol{U}}(x, y)$ 表示大气光幕, 式(1)等效为:

$ {\boldsymbol{I}}(x, y) = {\boldsymbol{J}}(x, y)(1 - {{{\boldsymbol{U}}(x, y)} \mathord{\left/ {\vphantom {{{\boldsymbol{U}}(x, y)} A}} \right. } A}) + {\boldsymbol{U}}(x, y) $ (2)

其中, ${\boldsymbol{U}}(x, y)$ $ A $ 至关重要, 估计准确与否将直接影响复原图像的质量. 因此, 本文在该模型的基础上, 结合参数的物理意义和雾化场景的特征进行深入研究, 获取最佳估计值, 实现更加有效的图像去雾.

2 本文算法

基于大气散射模型, 本文重点围绕大气光幕和大气亮度展开研究, 提出一种图像去雾新方法, 实现步骤如下: 1)将有雾图像的3个颜色通道最小值进行分离, 利用WLS滤波器的平滑特性提取大气光幕; 2)结合Sobel算子与四叉树空间分割, 获得大气亮度的准确估计值; 3)定义还原控制因子, 结合大气散射模型实现图像去雾.

2.1 大气光幕的提取

大气光幕既可表示图像中的雾气浓度, 又近似反映了场景中的深度信息. 当前多数算法采用暗通道先验[1]粗略估计大气光幕, 当局部区域处在深度跳变的边缘时将使得估计结果产生较大误差, 造成光晕效应的出现. 为解决该问题, 一般以原始图像的边缘结构为参照, 采用软抠图或引导滤波[2]进行细化修复. 然而软抠图运算量较大, 引导滤波的参数不易调整都将导致效果不理想. 为了克服上述问题, 本文采用滤波效果出众且运行效率高的WLS滤波器[21]用于大气光幕的提取.

首先, 分离出雾天图像中3个颜色通道的最小值, 即:

$ {\boldsymbol{G}}(x, y) = \mathop {\min }\limits_{c \in \left\{ {{{R}}, {{G}}, {{B}}} \right\}} {{\boldsymbol{I}}^c}(x, y) $ (3)

通道最小值 $ {\boldsymbol{G}} $ 图1(a)所示, 该图像保留了丰富的边缘和细节信息. 理论上, 大气光幕位于景深跳变的结构边缘是不连续的, 而处于同等深度下的纹理细节则基本保持一致, 因此准确区分光幕中的主要结构和次要纹理至关重要. 此处将通道最小值 $ {\boldsymbol{G}} $ 设为输入, 利用WLS滤波器进行处理, 输出结果设为 $ {\boldsymbol{U}} $ .

WLS滤波器的本质是互为矛盾的两个目标之间的最优解问题: 一是输出 $ {\boldsymbol{U}} $ 的边缘结构应与输入 $ {\boldsymbol{G}} $ 相同或尽量相似, 二是 $ {\boldsymbol{G}} $ 中边缘梯度明显的区域要保持, 除此以外的细节要尽量平滑. 该滤波过程可表示为寻求式(4)的最小值:

$ \sum\limits_p {\left( {{{\left( {{{\boldsymbol{U}}_p} - {{\boldsymbol{G}}_p}} \right)}^2} + \lambda \left( {{{\boldsymbol{a}}_{x, p}}\left( {\boldsymbol{G}} \right)\left( {\frac{{\partial {\boldsymbol{U}}}}{{\partial x}}} \right)_p^2 + {{\boldsymbol{a}}_{y, p}}\left( {\boldsymbol{G}} \right)\left( {\frac{{\partial {\boldsymbol{U}}}}{{\partial y}}} \right)_p^2} \right)} \right)} $ (4)

其中, 下标 $ p $ 表示像素点的坐标; 第1个数据项 $ {({{\boldsymbol{U}}_p} - {{\boldsymbol{G}}_p})^2} $ 是为了计算滤波前后 $ {\boldsymbol{G}} $ $ {\boldsymbol{U}} $ 之间的差值, 差值越小表明二者的边缘结构越相似; 第2个数据项通过计算 $ {\boldsymbol{U}} $ 的偏导数来实现细节的平滑, 其中规则化参数 $ \lambda $ 用于控制图像的平滑程度, 数值越大意味着输出图像的平滑程度越高. 式(4)可用矩阵形式表示为:

$ {\left( {{\boldsymbol{U}} - {\boldsymbol{G}}} \right)^{\text{T}}}\left( {{\boldsymbol{U}} - {\boldsymbol{G}}} \right) + \lambda \left( {{{\boldsymbol{U}}^{\text{T}}}{\boldsymbol{D}}_x^{\text{T}}{{\boldsymbol{B}}_x}{{\boldsymbol{D}}_x}{\boldsymbol{U}} + {{\boldsymbol{U}}^{\text{T}}}{\boldsymbol{D}}_y^{\text{T}}{{\boldsymbol{B}}_y}{{\boldsymbol{D}}_y}{\boldsymbol{U}}} \right) $ (5)

其中, $ {{\boldsymbol{D}}_x} $ $ {{\boldsymbol{D}}_y} $ 表示前向差分算子; $ {\boldsymbol{D}}_x^{\text{T}} $ $ {\boldsymbol{D}}_y^{\text{T}} $ 表示后向差分算子; $ {{\boldsymbol{B}}_x} $ $ {{\boldsymbol{B}}_y} $ 分别表示含有平滑权重 $ {{\boldsymbol{a}}_{x, p}}({\boldsymbol{G}}) $ $ {{\boldsymbol{a}}_{y, p}}({\boldsymbol{G}}) $ 的对角矩阵, 其中平滑权重定义如下:

$ {{\boldsymbol{a}}}_{x, p}\left({\boldsymbol{G}}\right)={\left({\left|\frac{\partial \ell }{\partial x}\left(p\right)\right|}^{\alpha }+\varepsilon \right)}^{{-1}}\text{, }\text{ }{{\boldsymbol{a}}}_{y, p}\left({\boldsymbol{G}}\right)={\left({\left|\frac{\partial \ell }{\partial y}\left(p\right)\right|}^{\alpha }+\varepsilon \right)}^{{-1}} $ (6)

其中, $ \ell $ 表示对输入图像 $ {\boldsymbol{G}} $ 取对数; $ \alpha $ 用于控制 $ {\boldsymbol{G}} $ 的梯度灵敏度, 一般取1.2–2.0之间; $ \varepsilon $ 是一个很小的正数, 通常取10−4, 目的是防止出现除数为零的情况. 对式(5)进行最小化, 得到 $ {\boldsymbol{U}} $ 是以下线性方程的唯一解:

$ ({\boldsymbol{C}} + \lambda {\boldsymbol{L}}){\boldsymbol{U}} = {\boldsymbol{G}} $ (7)

其中, $ {\boldsymbol{L}} = {\boldsymbol{D}}_x^{\text{T}}{{\boldsymbol{B}}_x}{{\boldsymbol{D}}_x} + {\boldsymbol{D}}_y^{\text{T}}{{\boldsymbol{B}}_y}{{\boldsymbol{D}}_y} $ 表示非齐次拉普拉斯矩阵; $ {\boldsymbol{C}} $ 表示单位矩阵. 式(7)表明从输入图像 $ {\boldsymbol{G}} $ 中可获得平滑后的滤波输出 $ {\boldsymbol{U}} $ , 即:

$ {\boldsymbol{U}} = {({\boldsymbol{C}} + \lambda {\boldsymbol{L}})^{ - 1}}{\boldsymbol{G}} $ (8)

设置参数 $ \lambda = 1 $ , $ \alpha = 1.5 $ , 经计算得到的大气光幕如图1(b)所示, 可以看出, 局部纹理被有效平滑, 深度跳变的边缘被保留下来, 这既与场景中的雾气分布特性高度一致, 又准确反映了图像的深度信息.

图 1 大气光幕的估计

2.2 大气亮度的定位

大气亮度的物理意义是原始图像中雾最浓区域的像素值, 或者阴天天空的像素最大值, 是全局常量. He等人[1]通过寻找暗通道图像中亮度靠前的0.1%像素值坐标, 对应原始图像中相同坐标位置的像素最大值作为大气亮度. Meng等人[6]在暗通道的基础上, 对雾天图像的3个颜色通道分别执行局部最小值滤波, 将滤波结果中的最大值视为大气亮度. 上述基于暗通道或改进方法[22-24]在处理包含亮白色物体的雾天图像时, 容易出现定位误差而导致错误的估计结果. 为了克服这一局限, 本文提出一种融合边缘检测与四叉树空间索引的浓雾定位方法, 具体步骤如下.

1)根据浓雾区域或天空区域具有灰度值相对较高的特征, 在通道最小值的基础上, 首先求取四叉树等分后子图像的归一化均值 $ m $ , $ m $ 越大表明该区域是雾最浓区域的可能性越高.

2)鉴于浓雾区域的边缘信息较弱、细节纹理不明显, 此处采用简单高效的Sobel算子检测子图像的可见边缘数目, 并统计其在整幅图像中所占的比例 $ n $ , $ n $ 越大意味着该区域是雾最浓区域的可能性越低.

3)计算 $ m $ $ n $ 的差值:

$ {s_i} = {m_i} - {n_i} $ (9)

其中, $ i \in \{ 1, {\text{ }}2, {\text{ }}3, {\text{ }}4\} $ . 将差值 $ {s_i} $ 最大的子图像继续通过四叉树等分成4个更小的子图像, 如此持续迭代, 直到子图像的尺寸小于原始图像宽度或高度的10%, 此时的子图像即可认定为雾最浓区域. 本文选取该区域对应雾天图像中3个颜色通道的平均值作为大气亮度 $ A $ .

通过上述方法检测得到的可见边缘如图2(a)所示, 边缘越稀疏意味着细节纹理的表现能力越弱, 存在大气亮度的可能性越高, 结合式(9)计算后的浓雾区域用红色填充标识. 对应雾天图像中大气亮度所在位置如图2(b)所示, 可以看出, 针对含有阴天天空(如图Tiananmen)或白色物体(如图city和图airplane)的雾天场景, 本文均能得到合理准确的定位结果. 图2(c)为暗通道方法[1]得到的大气亮度所在位置, 图Tiananmen的定位结果与本文相似, 然而图city中的白色建筑、图airplane中的白色飞机均造成较大干扰, 使得定位结果出现在白色物体上而非雾最浓区域, 该定位误差将影响后续的复原处理.

2.3 还原控制因子和图像去雾

根据所获取的大气光幕 $ {\boldsymbol{U}}(x, y) $ 和大气亮度 $ A $ , 代入式(2)求出去雾后的清晰图像, 即:

$ {\boldsymbol{J}}(x, y) = \frac{{A({\boldsymbol{I}}(x, y) - {\boldsymbol{U}}(x, y))}}{{A - {\boldsymbol{U}}(x, y)}} $ (10)

图3(a)为有雾图像 $ {\boldsymbol{I}}(x, y) $ , 图3(b)为经式(10)计算的去雾结果 $ {\boldsymbol{J}}(x, y) $ , 可以看出, 雾气去除非常彻底, 对比度和能见度有了很大提升, 但是整体颜色过于饱和, 特别是天空区域由于过度处理而出现颜色失衡, 严重影响视觉效果.

图 2 大气亮度的比较

图 3 本文去雾结果

此外, 通过对大量含有天空区域的雾天图像进行实验, 发现天空色彩均有不同程度的失真现象. 原因在于这些区域亮度较高, 面积较大, 且本身含有的信息量极少, 经式(10)处理时被认定为浓雾区域, 此时较大的去雾力度造成3个颜色通道的像素值被不同程度地拉低, 通道间的微小差异(雾气一般呈灰白色, 3个通道值接近)被异常放大, 导致色彩失真.

为了解决这一难题, 本文根据原始场景的大气光幕值自动调节局部区域的去雾力度, 即数值上接近大气亮度的天空应弱化处理, 尽量维持原始自然的视觉效果; 而远离大气亮度的非天空则应保持较大的去雾力度, 保证清晰无雾的复原结果. 因此引入还原控制因子 $ {\mathbf{\omega }} $ , 定义如下:

$ {\mathbf{\omega }}(x, y) = \min (\mu \left| {{{{\boldsymbol{U}}(x, y)} \mathord{\left/ {\vphantom {{{\mathbf{U}}(x, y)} A}} \right. } A} - 1} \right|, {\text{ }}\eta ) $ (11)

其中, 数据项 $ \left| {{{{\boldsymbol{U}}(x, y)} \mathord{\left/ {\vphantom {{{\mathbf{U}}(x, y)} A}} \right. } A} - 1} \right| $ 表示光幕值与大气亮度的偏离程度, 结合灵敏度调节系数 $ \;\mu $ ( $ \;\mu > 0 $ )对偏离程度较小的天空进行还原控制, $ \;\mu $ 越小意味着保护程度越高, 去雾后的天空与原始图像越接近, 实验中一般取 $\; \mu = 5 $ . 而偏离程度较大的非天空则通过能见度调节系数 $ \eta $ ( $ 0 \lt \eta \lt 1 $ )来保证去雾力度, $ \eta $ 越大表明非天空的雾气去除越彻底, 实验中一般取 $ \eta = 0.9 $ . 式(11)将 $ {\mathbf{\omega }} $ 限定在0.9以内, 是为了避免非天空区域由于过度处理而出现颜色过饱和现象. 对 $ {\mathbf{\omega }} $ 进行数据可视化操作, 如图3(c)所示, 天空边界清晰, 整体亮度较低, 意味着该区域在处理力度上要明显小于非天空. 最终, 将还原控制因子引入复原式(10), 自动修正模型中的雾浓度估计, 得到:

$ {\boldsymbol{J}}(x, y) = \frac{{A({\boldsymbol{I}}(x, y) - {\boldsymbol{\omega }}(x, y){\boldsymbol{U}}(x, y))}}{{A - {\boldsymbol{\omega }}(x, y){\boldsymbol{U}}(x, y)}} $ (12)

图3(d)为经式(12)计算的去雾结果, 不难发现, 非天空区域的细节可见性与图3(b)基本一致, 整体亮度有所提升, 色调更佳; 而天空区域的去雾力度有所保留, 有效克服色彩失真现象, 视觉效果更加真实自然.

3 实验结果与比较

本文算法在Windows 10运行系统下, 使用Intel Core i5处理器, 2.2 GHz主频, 4 GB内存的PC机, 运行Matlab 8.5.0版本测试实验. 实验中部分去雾图像的亮度偏暗, 采用动态范围调整的方法增加其曝光度.

为了验证本文的场景适应能力, 图4选用了城市街景、建筑群和自然风光等多种场合下的近景、远景测试图像, 并给出了本文方法获取的大气光幕、还原控制因子以及去雾结果. 可以看出, 大气光幕近似体现雾气分布特性, 还原控制因子对天空和浓雾区域起到了一定的保护作用, 因此可以得到主观视觉上较为理想的去雾效果, 并且有效避免了光晕效应、整体偏色、天空亮度和颜色失真等现象的产生.

图 4 本文更多去雾结果

下面将给出本文与当前主流的两类方法对比的示例, 从主观视觉和客观指标进行分析和评价. 客观指标采用平均梯度K和信息熵R, K数值越大说明图像的边缘轮廓越清晰, 对微小细节和纹理特征的表现能力越强, R数值越大说明图像含有的信息量越丰富.

3.1 与基于模型的复原方法对比

通过与He等人[1]和Gayathri等人[10]的模型复原方法进行5组图片的对比, 结果如图5所示. 图city和图airplane中, He等人[1]的结果由于获取的大气亮度不准确导致复原结果出现偏蓝色现象; Gayathri等人[10]的结果图中同样存在偏色现象; 本文方法所获取的大气亮度合理准确, 复原结果的色调与原始图像保持一致, 且细节可见性与层次感更强. 图sunset和图mountain存在大面积天空, He等人[1]和Gayathri等人[10]的模型均未采取有效的保护措施, 造成不同程度的色彩失真, 且图mountain远处山峰轮廓出现光晕效应, 严重影响视觉效果; 本文方法得益于对天空的弱化处理, 有效克服了近景、远景中的颜色失真现象, 视觉上更加真实自然. 图train中, He等人[1]和Gayathri等人[10]的模型取得一定的复原效果, 但是去雾力度有待加强, 特别是远处树木之间的雾气没有移除彻底; 相比之下, 本文对远景处的细节恢复更佳, 图像层次感和视见度均优于其他方法.

图5中5组图像的客观指标如表1所示, 可以看出, He等人[1]的方法由于透射率优化步骤的局限导致了客观指标较差; Gayathri等人[10]的方法结合暗通道先验与Retinex理论实现去雾, 客观指标相比He等人[1]的方法有一定优势; 本文的K指标和R指标均为最优值, 意味着恢复图像的质量最高, 边缘轮廓与纹理细节的表现能力最强. 对表1中的数据进行统计平均, 得出本文相比于He等人[1]的方法和Gayathri等人[10]的方法, K指标分别提升了55.30%和30.31%, R指标分别提升了3.75%和4.60%. 客观量化指标进一步验证了本文算法的优越性, 与主观评价的结果相一致.

图 5 实验结果比较

表 1 客观指标比较

3.2 与基于神经网络的学习方法对比

通过与Engin等人[15]和Fahim等人[18]的深度学习方法进行5组图片的比较, 结果如图6所示. 图cliff中, Engin等人[15]和Fahim等人[18]结果的上半部分和右侧存在较多雾气没有去除, 且左侧树叶偏暗, 细节无法分辨. 图pumpkin中, Engin等人[15]结果的远景处仍然有薄雾存在; Fahim等人[18]结果的远处出现偏绿色现象, 与原始图像的色调不符. 图swan中, Engin等人[15]结果的雾气没有完全去除, 视见度较差, 相比之下, 本文的细节更加凸显, 如右侧树干的纹理清晰可见. 图road和图street中, 本文的视觉效果明亮通透, 景物的颜色提升和细节保持有一定的优势.

图 6 实验结果比较

表2给出了图6中5组图像的指标测试结果, Engin等人[15]和Fahim等人[18]的方法需要对大量不同场景的样本进行深度学习, 此类方法处理自然拍摄的图像时, 客观指标并不出众. 根据表2中的对比可知, 本文相比其余方法的优势非常明显. 统计表2中的指标数据, 相比于这两种方法, 本文的K指标分别提升了83.82%和62.72%, R指标分别提升了1.21%和1.96%.

表 2 客观指标比较

对比上述4种方法的运行效率, 处理600×400分辨率的图像, He等人[1]的方法采用引导滤波进行优化, 需要5.23s 的时间, Gayathri等人[10]的方法所需时间为6.75 s, Engin等人[15]的方法所需时间为3.31 s, Fahim等人[18]的方法所需时间为4.64 s, 而本文所需时间仅为1.61 s, 比上述方法节省了50%以上的时间.

4 结论与展望

本文在大气散射模型的基础上, 提出一种结合WLS滤波与还原控制因子的去雾方法. 该方法首先提取雾天图像的通道最小值, 利用WLS滤波器进行边缘结构的提取和纹理细节的平滑, 获得与景深变化趋势基本一致的大气光幕; 接着统计二值化的图像边缘数目作为四叉树迭代分割的依据, 合理定位大气亮度所在区域; 最后在复原图像的过程中引入还原控制因子, 有效解决天空颜色失真的问题. 对大量雾天图像进行验证与比较, 结果表明本文方法在多场景下均能达到高对比度、视见度和颜色保真度的视觉效果, 且客观指标相比主流方法有了一定的提升. 然而本文的局限在于给出的还原控制因子并非对所有图像都有效, 对于少数天空亮度差异过大或边界不明显的场景, 需要手动调整参数才能得到理想的结果. 下一步工作将是针对这一问题进行深入研究, 提高算法的鲁棒性.

参考文献
[1]
He KM, Sun J, Tang XO. Single image haze removal using dark channel prior. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2011, 33(12): 2341-2353. DOI:10.1109/TPAMI.2010.168
[2]
He KM, Sun J, Tang XO. Guided image filtering. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2013, 35(6): 1397-1409. DOI:10.1109/TPAMI.2012.213
[3]
Tarel JP, Hautière N. Fast visibility restoration from a single color or gray level image. Proceedings of the IEEE 12th International Conference on Computer Vision. Kyoto: IEEE, 2009. 2201–2208.
[4]
Kratz L, Nishino K. Factorizing scene albedo and depth from a single foggy image. Proceedings of the IEEE 12th International Conference on Computer Vision. Kyoto: IEEE, 2009. 1701–1708.
[5]
Nishino K, Kratz L, Lombardi S. Bayesian defogging. International Journal of Computer Vision, 2012, 98(3): 263-278. DOI:10.1007/s11263-011-0508-1
[6]
Meng GF, Wang Y, Duan JY, et al. Efficient image dehazing with boundary constraint and contextual regularization. Proceedings of 2013 IEEE International Conference on Computer Vision. Sydney: IEEE, 2013. 617–624.
[7]
Fattal R. Dehazing using color-lines. ACM Transactions on Graphics, 2014, 34(1): 13.
[8]
王平, 张云峰, 包芳勋, 等. 基于雾天图像降质模型的优化去雾方法. 中国图象图形学报, 2018, 23(4): 605-616. DOI:10.11834/jig.170358
[9]
杨红, 崔艳. 基于开运算暗通道和优化边界约束的图像去雾算法. 光子学报, 2018, 47(6): 0610004.
[10]
Gayathri S, Ameena Bibi N. Enhancement of dehaze images using multiscale Retinex. International Journal of Advanced Engineering Science and Information Technology, 2021, 5(5): 39-48.
[11]
李红云, 施云, 高银. 基于显著性权重的多曝光融合的单幅雾天图像复原算法. 电子与信息学报, 2022, 44(1): 261-270. DOI:10.11999/JEIT200931
[12]
吴正平, 岑帅红. 基于自适应gamma校正估计的图像去雾算法. 液晶与显示, 2022, 37(1): 106-115. DOI:10.37188/CJLCD.2021-0182
[13]
Cai BL, Xu XM, Jia K, et al. DehazeNet: An end-to-end system for single image haze removal. IEEE Transactions on Image Processing, 2016, 25(11): 5187-5198. DOI:10.1109/TIP.2016.2598681
[14]
Ren WQ, Liu S, Zhang H, et al. Single image dehazing via multi-scale convolutional neural networks. Proceedings of the 14th European Conference on Computer Vision. Amsterdam: Springer, 2016. 154–169.
[15]
Engin D, Genç A, Kemal Ekenel H. Cycle-Dehaze: Enhanced CycleGAN for single image Dehazing. Proceedings of the 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops. Salt Lake City: IEEE, 2018. 825–833.
[16]
肖进胜, 周景龙, 雷俊锋, 等. 基于霾层学习的单幅图像去雾算法. 电子学报, 2019, 47(10): 2142-2148. DOI:10.3969/j.issn.0372-2112.2019.10.016
[17]
王高峰, 张赛, 张亚南, 等. 基于改进DehazeNet的图像去雾方法. 计算机系统应用, 2021, 30(5): 208-213. DOI:10.15888/j.cnki.csa.007910
[18]
Fahim MANI, Jung HY. Single image dehazing using end-to-end deep-dehaze network. Electronics, 2021, 10(7): 817. DOI:10.3390/electronics10070817
[19]
杨燕, 张金龙, 梁小珍. 基于阶梯网络与交叉融合的端到端图像去雾. 光子学报, 2022, 51(2): 0210004.
[20]
陈平. 基于明暗通道循环GAN网络的单幅图像去雾. 计算机系统应用, 2022, 31(2): 191-199. DOI:10.15888/j.cnki.csa.008278
[21]
Farbman Z, Fattal R, Lischinski D, et al. Edge-preserving decompositions for multi-scale tone and detail manipulation. ACM Transactions on Graphics, 2008, 27(3): 1-10.
[22]
杨燕, 刘珑珑, 张得欣, 等. 结合自适应雾气估计的快速单幅图像去雾. 光学精密工程, 2019, 27(10): 2263-2271.
[23]
宋佳怡, 谢维信, 王鑫. 融合暗通道滤波和空间金字塔的图像去雾算法. 信号处理, 2019, 35(5): 816-824. DOI:10.16798/j.issn.1003-0530.2019.05.012
[24]
吕建威, 钱锋, 韩昊男, 等. 结合光源分割和线性图像深度估计的夜间图像去雾. 中国光学, 2022, 15(1): 34-44.