«上一篇 下一篇»
  计算机工程  2022, Vol. 48 Issue (10): 252-261  DOI: 10.19678/j.issn.1000-3428.0062874
0

引用本文  

倪萍, 赖惠成, 高古学, 等. 基于形态学与梯度域导向滤波的图像去雾算法[J]. 计算机工程, 2022, 48(10), 252-261. DOI: 10.19678/j.issn.1000-3428.0062874.
NI Ping, LAI Huicheng, GAO Guxue, et al. Image Dehazing Algorithm Based on Morphological and Gradient Domain Guided Filtering[J]. Computer Engineering, 2022, 48(10), 252-261. DOI: 10.19678/j.issn.1000-3428.0062874.

基金项目

国家自然科学基金(U1803261,U1903213)

作者简介

倪萍(1995—),女,硕士研究生,主研方向为数字图像处理;
赖惠成,教授;
高古学,博士研究生;
谷腾飞,硕士研究生;
贾振红,教授、博士

文章历史

收稿日期:2021-10-08
修回日期:2021-12-22
基于形态学与梯度域导向滤波的图像去雾算法
倪萍 , 赖惠成NI , 高古学NI , 谷腾飞NI , 贾振红     
新疆大学 信息科学与工程学院, 乌鲁木齐 830046
摘要:目前的多数图像去雾方法不适用于浓雾场景,存在去雾后图像亮度偏暗及光晕伪影等问题,提出一种利用图像形态学和梯度域导向滤波的去雾算法。通过暗通道先验算法得到初始透射率,并根据图像形态学闭、开运算细化和平滑初始透射率。运用梯度域导向滤波优化透射率图,以平滑透射率图的边缘和消除矩形块状效应。为更好地估计出大气光值,对雾图的最小强度图进行形态学灰度腐蚀,并经过导向滤波处理,以此结果作为暗通道图,选取其最亮的前0.1%像素点对应到原图中,最高的像素值作为大气光值,得到大气光值后利用大气散射模型求出去雾后的图像。将除雾后的RGB图像转换到HSI颜色空间,利用多曝光融合框架对I通道进行无雾图像整体亮度提高,最终转到RGB颜色空间。实验结果表明,该算法能够恢复更多的细节信息,保证图像具有合适亮度,且颜色自然,无光晕伪影,优于暗通道先验和颜色衰减先验等去雾算法。
关键词图像去雾    形态学    梯度域导向滤波    闭开运算    灰度腐蚀    多曝光融合框架    
Image Dehazing Algorithm Based on Morphological and Gradient Domain Guided Filtering
NI Ping , LAI HuichengNI , GAO GuxueNI , GU TengfeiNI , JIA Zhenhong     
College of Information Science and Engineering, Xinjiang University, Urumqi 830046, China
Abstract: Most current image dehazing methods are unsuitable for dense fog scenes, the image brightness is dark after dehazing, and there are halo artifacts. To solve these problems, this article proposes a dehazing method using image morphological and gradient domain guided filtering. First, the initial transmittance is obtained by using the dark channel prior. Second, this study uses image morphological closing and opening operations to refine and smooth the initial transmittance. Then, to smooth the edges of the transmittance map further and eliminate the rectangular blocky effect, gradient domain guided filtering is used to optimize the transmittance map. To estimate the atmospheric light better, this study first performs morphological grayscale erosion on the minimum intensity map of the fog map. This is followed by the guided filtering process. The result is used as a dark channel map. The first 0.1% of the brightest pixels correspond to the original image, and the highest pixel value is used as the atmospheric light value. After the atmospheric light value is obtained, this study uses the atmospheric scattering model to calculate the haze-free image. Finally, the Red-Green-Blue (RGB) image after dehazing is converted to the Hue, Saturation, and Intensity (HSI) color space. The study uses a multi-exposure fusion framework to improve the overall brightness of the fog-free image on the I channel and then transfers it to the RGB color space. Experiments show that the algorithm can restore more-detailed information and ensure that the image has appropriate brightness, natural colors, and no halo artifacts. It is superior to the dark pass prior, color attenuation prior, and other dehazing algorithms.
Key words: image dehazing    morphological    gradient domain guided filtering    closing and opening operations    grayscale erosion    multi-exposure framework    

开放科学(资源服务)标志码(OSID):

0 概述

在户外拍摄图像时,图像的质量受天气影响很大,如雾霾天气会使得拍摄的图像清晰度和能见度低,甚至导致有用的细节信息丢失,从而使图像质量下降,严重阻碍和影响智能交通、视频监控和目标识别等视觉系统的的工作和效用。因此,对含有雾霾的户外图像做除雾处理以使图像清晰化具有重要意义。

目前,图像去雾的方法主要分为基于图像增强、图像复原和深度学习三大类。基于图像增强的除雾算法较注重图像对比度的增强以及去除图像噪声2个方面。具体算法包括直方图均衡化算法[1-2]、Retinex系列算法[3-5]以及小波变换和同态滤波算法[6]。文献[1]提出一种基于密度的直方图划分和自动确定子直方图的数量并对每个子直方图单独进行均衡化的方法。文献[2]开发一种自适应直方图均衡化的局部对比度保持技术,用于增强在低光和夜间条件下捕获的医学及自然图像。文献[3]提出一种基于Retinex的拉普拉斯金字塔去雾算法。文献[4]提出一种基于Retinex的图像感知对比度增强方法,并使用亮度自适应使增强后的图像具有更好的色彩,但图像的颜色会偏离原来的颜色,整个图像趋于白色。文献[5]提出一种采用粒子群优化(PSO)算法对参数进行优化,然后将有雾图像转化为色调、饱和度、强度(HSI)进行色彩补偿的方法。文献[6]提出一种基于同态滤波和全变分级联的图像去噪算法,力求在最大程度地保留图像边缘特征的同时降低噪声。基于图像复原的去雾算法多数是基于大气散射模型执行去雾,具有代表性的算法是何凯明[7]提出的暗通道先验去雾算法,达到了非常好的去雾效果。随后,暗通道先验算法以及改进算法得到了广泛应用。文献[8]提出一种多尺度深度融合算法,并给出表示非线性滤波随机残差的线性模型。文献[9]提出一种简单但功能强大的颜色衰减先验除雾算法,创建了雾图像深度图的线性模型,然后通过大气散射模型估算透射率并有效去雾。文献[10]提出一种基于暗通道先验和形态重构的方法来快速计算透射率图。文献[11]提出一种使用暗通道和大气光计算双透射率图的策略,然后利用梯度域引导滤波细化透射率图的方法。文献[12]为了避免传统去雾算法带来的噪声扩散和放大问题,提出一种基于非下采样Contourlet变换的单幅图像去雾算法。文献[13]提出一种利用3幅不同光学特征的偏振图像自动估算大气光的偏振度和无穷远处的大气光,从而得到去雾图像的方法。基于深度学习的算法可以对无论是薄雾还是浓雾等不同雾霾天气条件下的图像进行恢复。文献[14]采用深度CNN结构强大的学习能力,提出一种称为DehazeNet的可训练端到端去雾模型,利用神经网络来估计透射率,并给出一种新的非线性激活函数。文献[15]利用GAN提出一个端到端的网络来直接恢复最终的无雾图像,解决了伪影的问题。文献[16]利用一个三尺度残差注意力CNN和集成注意力CNN提出了集成多尺度残差注意力网络(EMRA-Net),可以直接生成无雾图像。文献[17]提出一种基于RefineDNet的两阶段弱监督除雾模型,该模型将除雾分为可见性恢复和真实性改进两个子任务,来合并基于先验和基于学习的优点。

综上所述,当前的去雾算法研究重点在于除雾及透射率图的计算速度,并且不损失图像质量。然而,这些算法仍存在对浓雾图像去雾不彻底、颜色不自然、亮度偏暗、具有光晕伪影现象等问题。为此,本文提出一种基于形态学和梯度域导向滤波的去雾算法。该算法通过暗通道先验求出初始透射率,并利用梯度域导向滤波对透射率进行优化,对雾图最小强度图进行形态学灰度腐蚀和导向滤波操作得到改进暗通道,最终利用大气散射模型得到除雾后的图像。

1 相关理论 1.1 大气散射模型

在计算机视觉领域中,用于描述雾度图像形成的模型[18]如式(1)所示:

$ \boldsymbol{I}(x)=\boldsymbol{J}(x) t(x)+\boldsymbol{A}(1-t(x)) $ (1)

其中:Ix)为有雾图像;Jx)为去雾后的图像;A为大气光值;tx)为透射率。当大气均匀时,透射率tx)可以表示为:

$ t\left(x\right)={\mathrm{e}}^{-\beta d\left(x\right)} $ (2)

其中:$ \beta $是大气散射系数;dx)是场景深度。从几何学上讲,雾度成像方程式(1)表示在RGB颜色空间中,向量AIx)和Jx)是共面的,它们的端点是共线的。从式(1)可知,待恢复图像Jx)的表达式为:

$ \boldsymbol{J}\left(x\right)=\frac{\boldsymbol{I}\left(x\right)-\boldsymbol{A}}{t\left(x\right)}+\boldsymbol{A} $ (3)
1.2 暗通道先验

HE等认为在非天空区域中,至少一个颜色通道在某些像素处的强度极低,甚至趋于零。因此,对于图像I,暗通道$ {\boldsymbol{I}}^{\mathrm{d}\mathrm{a}\mathrm{r}\mathrm{k}} $定义为:

$ {\boldsymbol{I}}^{\mathrm{d}\mathrm{a}\mathrm{r}\mathrm{k}}\left(x\right)=\underset{c\in R, G, B}{\mathrm{m}\mathrm{i}\mathrm{n}}\left(\underset{y\in \mathit{\Omega} \left(x\right)}{\mathrm{m}\mathrm{i}\mathrm{n}}\left({\boldsymbol{I}}^{c}\left(y\right)\right)\right) $ (4)

其中:$ {\boldsymbol{I}}^{c} $$ \boldsymbol{I} $的颜色通道;$ \mathit{\Omega} \left(x\right) $是一个以x为中心的局部色块;y是包含在$ \mathit{\Omega} \left(x\right) $中的像素;$ \underset{y\in \mathit{\Omega} \left(x\right)}{\mathrm{m}\mathrm{i}\mathrm{n}} $是一个最小滤波器。

估算A的过程是:首先选取暗通道中最亮的前0.1%像素,然后在这些像素中,对应输入图像$ \boldsymbol{I} $中具有最高强度的像素,可以代表全局大气光A

将暗通道先验运用于式(1)两边,无雾图像J的暗通道趋于0。假设大气光A已知,进一步假设局部色块$ \mathit{\Omega} \left(x\right) $中的传输是恒定的,最后得出透射率tx):

$ t\left(x\right)=1-\omega \underset{c\in R, G, B}{\mathrm{m}\mathrm{i}\mathrm{n}}\left(\underset{y\in \mathit{\Omega} \left(x\right)}{\mathrm{m}\mathrm{i}\mathrm{n}}\left(\frac{{\boldsymbol{I}}^{c}\left(y\right)}{{\boldsymbol{A}}^{c}}\right)\right) $ (5)

其中:$ \omega \left(0 < \omega < 1\right) $为基于应用的参数,设置为0.95,它的作用是为图像中远处的场景保持非常少量的雾度;c表示3个颜色通道的索引;A是大气光值。

2 本文算法

本文算法流程如图 1所示。具体步骤如下:

Download:
图 1 本文算法流程 Fig. 1 Procedure of the proposed algorithm

1)通过暗通道先验[7]求出初始透射率。

2)利用图像形态学闭、开运算细化透射率。

3)利用梯度域导向滤波[19]优化透射率。

4)对雾图最小强度图进行形态学灰度腐蚀和导向滤波[20]操作得到改进暗通道,求大气光值。

5)利用大气散射模型得到除雾后的图像。

6)将无雾图像转换到HSI颜色空间中,对I通道进行亮度提高,再由HSI颜色空间转换到RGB颜色空间。

2.1 透射率估算

透射率估计示意图如图 2所示。本文利用暗通道先验[7]的透射率tx)作为初始透射率,如图 2(b)所示。可以看到,初始透射率存在明显的矩形块状效应,下文利用形态学闭、开运算平滑透射率图和消除矩形块状效应。

Download:
图 2 透射率估计示意图 Fig. 2 Schematic diagram of transmission estimation

首先,通过形态学灰度闭运算操作,去除结构元素上小的暗或者深色元素,并可以相对地使高灰度部分保持不变,添补含有黑色的微小空洞区域的白色物体,并平滑边界轮廓。形态学灰度闭运算是先灰度膨胀后灰度腐蚀,使用结构元素se对初始透射率图tx)进行闭运算,表示为:

$ {t}_{\mathrm{c}\mathrm{l}}\left(x\right)=t\left(x\right)•se=\mathrm{i}\mathrm{m}\mathrm{e}\mathrm{r}\mathrm{o}\mathrm{d}\mathrm{e}\left(\left(t\left(x\right)\oplus se\right), se\right) $ (6)

其中:$ {t}_{\mathrm{c}\mathrm{l}}\left(x\right) $表示闭运算后的透射率;$ • $表示灰度闭运算;imerode()表示灰度腐蚀;$ \oplus $表示灰度膨胀;se为结构元素,本文采用的是15×15的矩形结构元素。

其次,通过形态学灰度开运算操作,消除暗背景下的亮元素,删除比环境更清晰的小对象,平滑图像中较大的目标物体的边界大体轮廓尽可能不改变其面积的作用。执行形态学灰度开运算,既可消除亮白色物体的干扰,又能基本维持整体亮度不变。先灰度腐蚀后灰度膨胀的过程称为开运算,使用结构元素se对闭运算后的透射率$ {t}_{\mathrm{c}\mathrm{l}}\left(x\right) $进行开运算,表示为:

$ {t}_{\mathrm{o}\mathrm{p}}\left(x\right)={t}_{cl}\left(x\right)\circ se=\left(\mathrm{i}\mathrm{m}\mathrm{e}\mathrm{r}\mathrm{o}\mathrm{d}\mathrm{e}\left({t}_{cl}\left(x\right), se\right)\right)\oplus se $ (7)

其中:$ \circ $表示灰度开运算。经过形态学闭、开运算后的结果如图 2(c)所示,可以看出明显地平滑了初始透射率图,去除了一些暗色、黑色的元素,比如:天空处的云朵,图像中间偏下右边的白色部分和房屋顶处,处理后颜色变淡,但是透射率图还是存在矩形块现象,为了抑制透射率图中的纹理、平滑边缘和消除矩形块现象,接下来使用梯度域导向滤波[19]进行优化。梯度域导向滤波器包含一个一阶显式的边缘感知约束,并且边缘感知因子是多尺度的,该滤波器也避免了梯度反转,因此比导向图像滤波器[20]和加权导向图像滤波器[21]更好地保留了边缘。将透射率图$ {t}_{\mathrm{o}\mathrm{p}}\left(x\right) $作为梯度域导向滤波器的导向图,雾图I的灰度图作为输入图像。在一个以k为中心像素的局部图像块$ {\omega }_{k} $中,输出透射率$ {t}_{\mathrm{G}\mathrm{D}}\left(x\right) $与导向图$ {t}_{\mathrm{o}\mathrm{p}}\left(x\right) $呈线性转换关系,表示为:

$ {t}_{\mathrm{G}\mathrm{D}}\left(x\right)=\frac{1}{\left|\omega \right|}\sum\limits _{k\left|i\in {\omega }_{k}\right.}\left({\stackrel{-}{a}}_{k}{t}_{\mathrm{o}\mathrm{p}}\left(x\right)+{\stackrel{-}{b}}_{k}\right) $ (8)

其中:$ {\stackrel{-}{a}}_{k} $$ {\stackrel{-}{b}}_{k} $为线性变换参数$ {a}_{k} $$ {b}_{k} $的平均值。$ {\stackrel{-}{a}}_{k} $$ {\stackrel{-}{b}}_{k} $计算公式分别为:

$ {\stackrel{-}{a}}_{k}=\frac{1}{\left|{\omega }_{k}\right|}\sum\limits _{k\in {\omega }_{k}}{a}_{k} $ (9)
$ {\stackrel{-}{b}}_{k}=\frac{1}{\left|{\omega }_{k}\right|}\sum\limits _{k\in {\omega }_{k}}{b}_{k} $ (10)

其中:$ \left|{\omega }_{k}\right| $表示$ {\omega }_{k} $的像素总个数。

在式(8)中,为了求解$ {a}_{k} $$ {b}_{k} $,通过最小化输入和输出之间的差值计算代价函数,即在$ {\omega }_{k} $中,有:

$ \begin{array}{l}E\left({a}_{k}, {b}_{k}\right)=\\ \sum\limits _{k\in {\omega }_{k}}\left[{\left({a}_{k}{t}_{\mathrm{o}\mathrm{p}}\left(x\right)+{b}_{k}-{I}_{i}\right)}^{2}+\frac{\lambda }{{\widehat{\mathit{\Gamma} }}_{{t}_{\mathrm{o}\mathrm{p}}}\left(k\right)}{\left({a}_{k}-{\gamma }_{k}\right)}^{2}\right]\end{array} $ (11)

其中:$ {I}_{i} $表示在像素i处的输入图像;$ {\widehat{\mathit{\Gamma} }}_{{t}_{\mathrm{o}\mathrm{p}}}\left(k\right) $为边缘感知加权,作用是测量像素x相对于整个导向图的重要性;$ \lambda $是正则化参数以防止$ {a}_{k} $太大;参数$ {\gamma }_{k} $起到影响$ {a}_{k} $的作用。如果像素x处于边界位置,则$ {\gamma }_{k} $的值将接近1,如果像素x在平滑区域中,则接近0,即如果像素x处于边界位置,$ {a}_{k} $的值将接近1,如果像素x在平滑区域中,则$ {a}_{k} $的值将接近0。根据线性回归,求解式(11)中的$ {a}_{k} $$ {b}_{k} $,得到:

$ {a}_{k}=\frac{\frac{1}{\left|\omega \right|}\sum\limits _{i\in {\omega }_{k}}{t}_{\mathrm{o}\mathrm{p}}\left(x\right){I}_{i}-{\mu }_{k}{\stackrel{-}{I}}_{k}+\frac{\lambda }{{\widehat{\mathit{\Gamma} }}_{{t}_{\mathrm{o}\mathrm{p}}}\left(k\right)}{\gamma }_{k}}{{{\sigma }_{k}}^{2}+\frac{\lambda }{{\widehat{\mathit{\Gamma} }}_{{t}_{\mathrm{o}\mathrm{p}}}\left(k\right)}} $ (12)
$ {b}_{k}={\stackrel{-}{I}}_{k}-{a}_{k}{\mu }_{k} $ (13)

其中:$ {\mu }_{k} $$ {{\sigma }_{k}}^{2} $为透射率$ {t}_{\mathrm{o}\mathrm{p}}\left(x\right) $$ {\omega }_{k} $中的均值和方差;$ {\stackrel{-}{I}}_{k} $表示输入图像I$ {\omega }_{k} $中的均值。

$ {\stackrel{-}{I}}_{k} $计算公式如式(14)所示:

$ {\stackrel{-}{I}}_{k}=\frac{1}{\left|\omega \right|}\sum\limits _{i\in {\omega }_{k}}{I}_{i} $ (14)

$ {a}_{k} $$ {b}_{k} $分别代入式(9)、式(10),再代入式(8)计算后,滤波结果即为本文最终透射率$ {t}_{\mathrm{G}\mathrm{D}}\left(x\right) $,如图 2(d)所示。可以看出,$ {t}_{\mathrm{G}\mathrm{D}}\left(x\right) $保存了导向图$ {t}_{\mathrm{o}\mathrm{p}}\left(x\right) $的大部分边缘信息,还消除了矩形块现象,而且计算开销很小。本文估算透射率过程中闭、开运算可交换顺序,结果一致。

2.2 大气光强度的计算

从式(1)可知,大气光A是一个关键参数,要得到最后的去雾图像,必须求出A。目前求解A的方法很多,如文献[22]直接利用强度最高的像素点作为大气光值,而现实生活中存在很多白色物体,这种方法就很容易将非雾气的白色物体当作最高强度的像素点,文献[7]首先选择暗通道中最亮的前0.1%像素,然后在这些像素中,对应在输入图像中具有最高强度的像素可以代表全局大气光A,但一般获得的大气光值较高且耗时长。现实场景中的大气光并不均匀,如果去雾过程中大气光值比真实大气光值大,则除雾后的图像远景部分会偏暗,近景部分会偏亮;若比真实大气光值小,则除雾后的图像远景部分会偏亮,近景部分会偏暗。因此,本文提出先对雾图的最小强度图进行形态学灰度腐蚀,再将经过导向滤波的结果作为暗通道图,以防止直接使用暗通道得到的大气光值估值过高。本文估计大气类A的步骤如下:

1)对雾图的最小强度图进行形态学灰度腐蚀去除噪声。

2)再经过导向滤波细化,基于式(4),细化后的暗通道图表达式如下:

$ \begin{array}{l}{A}^{\mathrm{d}\mathrm{a}\mathrm{r}\mathrm{k}}\left(x\right)=\\ \left[\mathrm{G}\mathrm{F}\left(\mathrm{i}\mathrm{m}\mathrm{e}\mathrm{r}\mathrm{o}\mathrm{d}\mathrm{e}\left(\underset{c\in R, G, B}{\mathrm{m}\mathrm{i}\mathrm{n}}\left({\boldsymbol{I}}^{c}\left(y\right)\right), se\right)\right)\right]\left(x\right)\end{array} $ (15)

其中:$ {A}^{\mathrm{d}\mathrm{a}\mathrm{r}\mathrm{k}}\left(x\right) $为形态学灰度腐蚀和导向滤波后的暗通道;GF()表示导向滤波操作,imerode()表示图像形态学灰度腐蚀;se为结构元素对象,本文采用的是15×15的矩形结构元素。

3)基于式(15),选择$ {A}^{\mathrm{d}\mathrm{a}\mathrm{r}\mathrm{k}}\left(x\right) $中最亮的前0.1%像素,将前0.1%最亮像素点对应在原图中,最高的像素值作为大气光。大气光值A由下式得出:

$ \boldsymbol{A}=\mathrm{m}\mathrm{a}\mathrm{x}\sum\limits _{c=1}^{3}{\boldsymbol{I}}^{c}\left(\underset{x\in \left(0.1\mathrm{\%}\times h\times w\right)}{\mathrm{a}\mathrm{r}\mathrm{g}\mathrm{m}\mathrm{a}\mathrm{x}}\left({A}^{\mathrm{d}\mathrm{a}\mathrm{r}\mathrm{k}}\left(x\right)\right)\right) $ (16)

其中:hw分别表示输入图像的高度和长度。图 3所示为原始暗通道和$ {A}^{\mathrm{d}\mathrm{a}\mathrm{r}\mathrm{k}} $的对比,通过图 3(b)图 3(c)的比较可以看出,细化后的暗通道$ {A}^{\mathrm{d}\mathrm{a}\mathrm{r}\mathrm{k}} $保留了图像的大体轮廓,并有平滑图 3(b)和有效去除“矩形块效应”的作用;图 3(d)为使用原始暗通道的恢复图像;图 3(e)为使用$ {A}^{\mathrm{d}\mathrm{a}\mathrm{r}\mathrm{k}} $的恢复图像,可以看出,图 3(e)的亮度比图 3(d)要暗一点,颜色更自然一点,比如图像中马的颜色。

Download:
图 3 暗通道估计的对比 Fig. 3 Comparison of dark channel estimation
2.3 退化场景复原

根据上述过程,透射率$ {t}_{\mathrm{G}\mathrm{D}}\left(x\right) $和大气光A都已求出,根据式(3)可计算出无雾清晰图像。但是,当透射率$ {t}_{\mathrm{G}\mathrm{D}}\left(x\right) $接近0时,直接衰减项$ \boldsymbol{J}\left(x\right){t}_{\mathrm{G}\mathrm{D}}\left(x\right) $非常接近0,直接恢复的图像容易产生噪音。因此,将透射率$ {t}_{\mathrm{G}\mathrm{D}}\left(x\right) $设置一个下限$ {t}_{0} $,最终无雾图像Jx)通过以下方式恢复:

$ \boldsymbol{J}\left(x\right)=\frac{\boldsymbol{I}\left(x\right)-\boldsymbol{A}}{\mathrm{m}\mathrm{a}\mathrm{x}\left({t}_{\mathrm{G}\mathrm{D}}\left(x\right), {t}_{0}\right)}+\boldsymbol{A} $ (17)

其中:阈值$ {t}_{0} $是为了减少图像噪声的影响,当$ {t}_{\mathrm{G}\mathrm{D}}\left(x\right) < {t}_{0} $时,$ {t}_{\mathrm{G}\mathrm{D}}\left(x\right)={t}_{0} $,本文$ {t}_{0} $值设置为0.1。

2.4 后处理:曝光增强

在上述去雾过程后,无雾图像亮度偏暗。因此,本文提出将无雾图像转到HSI颜色空间中对I通道进行亮度提高,使增强后图像亮度合适,颜色真实自然。HSI颜色空间使用颜色三要素来描述颜色,即:H定义颜色的频率,称为色调;S表示颜色的浓淡级别,称为饱和度;I表示强度或亮度。其中,图像中的颜色信息与I无关,人类肉眼感受到的颜色信息与H分量和S分量是密切相关的。因此,与RGB颜色空间相比,HSI颜色空间比较符合人类肉眼对场景中颜色信息的感知。基于文献[23]中低光图像增强的多曝光融合框架,融合图像被定义为:

$ R=W\cdot P+\left(1-W\right)\cdot g\left(P, K\right) $ (18)

其中:R表示多曝光融合增强后的图像;W表示多曝光评估器,作用是增强低曝光区域的对比度,同时保留好的曝光区域的对比度;P表示输入图像;g()表示多曝光发生器,将输入图像映射到多曝光图像中;K表示多曝光采样器,作用是确定所生成的图像的最佳曝光比。在HSI颜色空间中实现图像亮度提高处理之后,再转换到RGB颜色空间才可以正确显示出来。

图 4图 5所示为本文算法曝光增强前后以及对文献[11]使用本文后处理方法的对比。可以看出,无曝光增强图像亮度偏暗,如图 4(b)图 4(d)图 5(b)图 5(d)所示,在图 5(d)中尤为明显。文献[11]算法在经过本文后处理后,亮度比本文高,但从图 4(b)图 5(b)可以看出,除雾后图像过增强,导致图像颜色较深,亮度偏暗,从图 5(b)中还可以看到,左上方大水坑的左边和右侧小水坑的水面变成黑色,存在颜色失真现象。本文最终结果可以保持合适的亮度,并且不会过饱和,没有颜色失真,如图 4(e)图 5(e)所示。对文献[11]算法运用本文后处理方法后,如图 4(c)图 5(c)所示,图像亮度明显提高,主观效果得到提升,验证了本文后处理方法的有效性。

Download:
图 4 曝光增强前后对比1 Fig. 4 Comparison before and after exposure enhancement 1
Download:
图 5 曝光增强前后对比2 Fig. 5 Comparison before and after exposure enhancement 2
3 实验结果与分析

为验证本文算法对雾图像增强的有效性,将获得的结果与最近文献中不同方法的结果进行主观效果和客观指标比较。图 6~图 13所示为从LIVE Image Defogging数据库[24]和现有的去雾算法中收集到的现实场景雾图像的主观效果对比。本文选取了4种典型传统算法[7, 9-11]和2种深度学习算法[14, 17]进行对比实验。文献[17]算法采用软件环境配置为Ubuntu 18.04、CUDA10.1、Python3.6、Pytorch1.1.0、torchvision0.3.0、numpy1.19.5实现;计算机配置为CPU:i7-7700K,GPU:GTX1080 8GB X2,内存:64 GB。其他算法都采用Matlab(R2018a)实现。计算机配置为:Intel® CoreTM i7-3537U CPU @ 2.00 GHz 2.50 GHz,8 GB内存。

Download:
图 6 主观结果对比1 Fig. 6 Comparison of subjective results 1
Download:
图 7 主观结果对比2 Fig. 7 Comparison of subjective results 2
Download:
图 8 主观结果对比3 Fig. 8 Comparison of subjective results 3
Download:
图 9 主观结果对比4 Fig. 9 Comparison of subjective results 4
Download:
图 10 主观结果对比5 Fig. 10 Comparison of subjective results 5
Download:
图 11 主观结果对比6 Fig. 11 Comparison of subjective results 6
Download:
图 12 主观结果对比7 Fig. 12 Comparison of subjective results 7
Download:
图 13 主观结果对比8 Fig. 13 Comparison of subjective results 8
3.1 主观效果分析

图 6~图 13可以看出,各算法对不同特征的雾天退化场景复原具有明显的差异性。在图 6(b)~图 13(b)中,文献[7]算法去雾很彻底,但不适用于天空区域,在景深突变区域会出现光晕和伪影,如图 6(b)中树叶、建筑物和天空的连接区域有光晕伪影现象;另外在图 7(b)中,军人衣服和地面颜色较深且军人周围有伪影。在图 6(c)~图 13(c)中,文献[9]算法对薄雾图像有效,但去雾后图像颜色偏深,整体亮度偏暗,如在图 7(c)图 11(c)中人物的衣服,在图 8(c)中人脸肤色偏棕色,显得非常不自然;在雾较多情况下,会低估远处的雾度,出现了明显的去雾不彻底现象,比如图 10(c)图 12(c),能够明显地看到残留的雾。在图 6(d)~图 13(d)中,文献[10]算法去雾后图像整体亮度偏暗,对雾较多的图像去雾效果欠佳,比如图 10(d)~图 13(d),去雾后留有大量的残雾;在图 9(d)中,去雾后图像背景树木几乎全部丢失。在图 6(e)~图 13(e)中,文献[11]算法除雾彻底,但和文献[7]算法出现同样的问题,在景深突变区域会出现光晕和伪影,也会出现信息丢失、颜色不自然和亮度偏暗等问题,比如图 6(e),右上角树叶、建筑物和天空的连接区域有伪影;在图 7(e)中,军人的周围有伪影;在图 8(e)中,人脸肤色颜色已经失真;在图 9(e)中,背景树木偏暗黑色,极其不自然。与深度学习方法相比,从图 6(f)~图 13(f)可以看出,文献[14]得到的结果虽然没有天空失真和光晕伪影的问题,但是这种方法得到的图像并没有完全去雾,无论雾多还是雾少都留有轻微的残雾。从图 6(g)~图 13(g)可以看出,文献[17]去雾效果好,但在图 12(g)中,远处的雾没有去除干净,有图像过增强和颜色偏灰白色现象,如图 6(g)左上角和右下角树叶处偏暗,图 7(g)~图 8(g)整体颜色较深;图 9(g)~图 10(g)图 12(g)~图 13(g)整体颜色偏灰白色,图 10(g)中卡车处理后不是黄色,图 13(g)中山的颜色不自然,天空处偏白色。本文算法对雾图像有很好的增强效果,避免了图像过饱和并保留了去雾有效性,无论是薄雾还是浓雾、近景还是远景都能够有效去雾,增强了图像细节,解决了天空区域失真和在景深突变区域会出现光晕和伪影的问题,去雾后图像有较高的对比度和清晰度,天空和云层自然清晰,且亮度适宜,颜色真实自然。

3.2 客观指标分析

从主观结果分析可以直观地看出本文算法与对比算法的差异与不足,但仍具片面性。为进一步验证本文算法的优越性和有效性,本文从客观指标方面与上述算法进行对比分析。

可见边的规范化梯度均值r可以表示可见边的对比度恢复的质量,定义为[18]

$ r=\mathrm{e}\mathrm{x}\mathrm{p}\left(\frac{1}{{n}_{r}}\sum\limits _{{p}_{i}\in X}\mathrm{l}\mathrm{o}{\mathrm{g}}_{a}{r}_{i}\right) $ (19)

其中:$ {n}_{r} $为复原图像的可见边数;$ {p}_{i} $为属于复原图像中可见边的像素点;$ {r}_{i} $为复原图像与有雾图像在$ {p}_{i} $处的Sobel梯度的比值;X为复原图像的可见边集合。

对比度C表示一幅图像上亮区域和暗区域的层次感,定义为[25]

$ C=\sum\limits _{\delta }\delta {\left(i, j\right)}^{2}{P}_{\delta }\left(i, j\right) $ (20)

其中:$ \delta \left(i, j\right) $为相邻像素间灰度差的大小;$ {P}_{\delta }\left(i, j\right) $为相邻像素间灰度差的大小为$ \delta $的像素分布概率。

平均梯度G可以表示图像的相对清晰程度,定义为[26]

$ G=\frac{1}{\left(m-1\right)\left(n-1\right)}\sum\limits _{i=1}^{m-1}\sum\limits _{j=1}^{n-1}\sqrt{Q} $ (21)

Q的表达式为:

$ Q=\frac{\left[\begin{array}{l}{\left(H\left(i+1, j\right)-H\left(i, j\right)\right)}^{2}\\ +{\left(H\left(i, j+1\right)-H\left(i, j\right)\right)}^{2}\end{array}\right]}{2} $ (22)

其中:H为需要评价的图像;mn为图像的行数和列数;(ij)为像素坐标。

图像信息熵E表示图像中灰度分布的聚集特征所包含的信息量,定义为:

$ E=-\sum\limits _{i=0}^{L}{R}_{i}\mathrm{l}{\mathrm{b}}_{}{R}_{i} $ (23)

其中:$ {R}_{i} $表示图像中灰度值为i的像素在图像中出现的概率;L为图像的灰度级。

表 1~表 4分别给出了图 6~图 13的可见边的规范化梯度均值、对比度、平均梯度和图像信息熵的指标分析。4种指标越大表示图像细节越清晰,去雾效果和图像质量越好。

下载CSV 表 1 可见边的规范化梯度均值r指标的对比 Table 1 Comparison of the normalized gradient mean r index of visible edges
下载CSV 表 2 对比度C指标的对比 Table 2 Comparison of contrast C index
下载CSV 表 3 平均梯度G指标的对比 Table 3 Comparison of average gradient G index
下载CSV 表 4 图像信息熵E指标的对比 Table 4 Comparison of image information entropy E index

表 1数据可知,图 7(e)图 7(g)图 8(g)图 10(g)r值偏大,这是因为去雾后图像存在过增强现象,而本文方法具有较大且合适的r值,表明本文方法具有较好的可见边恢复性能。由表 2可知,文献[7, 9-10, 14]对图 7的处理对比度有下降;文献[10]的恢复效果不是很好,平均值低于原图对比度的平均值,存在退化现象,其他算法的平均值都有提升。有些图像的C值比本文C值大,如文献[11, 17]算法的图 6~图 8图 13,文献[11, 17]算法的平均值分别位于第2位和第3位,本文的平均值最高,表明本文算法无过增强现象,不会有非常大的灰度反差和纹理变化,恢复的图像更清晰醒目,色彩更鲜明。由表 3可知,所选对比算法G值的平均值都有提升,但文献[9]算法中图 6(c)G值比雾图还低,文献[10]算法提升效果不明显,只有图 7(d)图 10(d)图 12(d)有提高;文献[11, 17]算法中图 6~图 8图 13G值比本文大,但是主观效果亮度偏暗,颜色偏深。本文算法G值的平均值最高,说明本文方法处理后的图像清晰度最好。从表 4的数据可以看出,文献[7]算法中图 13(b)出现了少许降质现象,E值的平均值位居第3位。文献[9]算法在选取的8张图片中,E值不存在退化的有图 7(c)图 9(c)图 10(c)图 12(c)。文献[10]的E值平均值比雾图的平均值还要低,只有图 7(d)图 12(d)有提高。文献[11]的E值提升效果不太好,其中,图 6(e)图 8(e)图 11(e)图 13(e)都存在降质现象。文献[14]算法中只有图 6(f)E值有下降。文献[17]和本文算法在图 13中均出现降质,E值平均值分别位于所有算法的第2位和第1位。由此可见,本文算法处理后的图像有较多的信息量。

表 5列出了本文算法和6个对比算法对图 6~图 13进行除雾处理的运行时间。

下载CSV 表 5 不同算法运行时间的对比 Table 5 Comparison of running time of different algorithms 

文献[17]算法在GPU上实现,其他算法均在CPU上实现。整体来看,本文算法的运行速度快于文献[9, 11, 14]算法,慢于文献[7, 10, 17]算法,其中文献[10]算法的运行时间最短,是因为文献[10]算法提出的基于暗通道先验和形态重构的方法能够快速的计算出透射率图。但是,本文算法比文献[7]算法具有更好的亮度,比文献[10]算法具有更高的饱和度和清晰度,比文献[17]算法具有更好的视觉效果。综上所述,本文算法能够较好的增强有雾图像。

为了进一步验证本文算法的有效性,在RESIDE数据集中挑选了38张真实场景的雾图像,并测出6个对比算法和本文算法对38张图像除雾处理后图像的可见边的规范化梯度均值、对比度、平均梯度和图像信息熵的值,并计算出平均值。如表 6所示,本文算法的r值平均值比文献[17]算法低,这是因为文献[17]算法存在普遍的图像过增强现象。本文算法的C值平均值低于文献[11]算法,但文献[11]算法的恢复图像颜色较深,导致灰度反差和纹理变化较大,而本文算法恢复的结果颜色较自然。本文算法G值的平均值与文献[17]算法较为接近,都能显示出更多的清晰细节,但本文算法的主观效果更好;文献[10]算法依然存在退化现象;其他算法在G值上都有提升。本文算法E值的平均值最高,且与文献[17]算法较为接近;文献[10]算法的提升效果不好,E值的平均值存在下降;文献[9, 11]算法的E值平均值均有下降;其他算法E值的平均值都有所提升。整体来看,本文算法具有合适的亮度与对比度,视觉效果较好,且包含的信息量最多。

下载CSV 表 6 38张图像4个指标平均值的对比 Table 6 Comparison of the average value of 4 indicators of 38 images
4 结束语

本文提出一种基于图像形态学和梯度域导向滤波的图像去雾算法。利用暗通道先验求出初始透射率后,经过图像形态学闭、开运算和梯度域导向滤波处理平滑和优化透射率图。通过对雾图的最小强度图根据形态学灰度腐蚀和导向滤波操作得到暗通道图,利用改进的暗通道图计算大气光值。将除雾后的RGB图像转换到HSI颜色空间中,对I通道使用低光图像增强的多曝光融合框架来增强图像的亮度。实验结果表明,本文算法能够保证图像具有合适的亮度,不存在过饱和现象,并且能够恢复更多的细节信息,视觉效果自然,没有光晕伪影。但是,本文算法对浓雾场景的远景部分去雾不彻底,下一步将以图像形态学为基础,引入拉普拉斯金字塔和高斯金字塔,构建多曝光图像融合方法来达到对有雾图像近景及远景部分去雾彻底、无信息丢失且颜色自然真实的目的。

参考文献
[1]
SHAKERI M, DEZFOULIAN M H, KHOTANLOU H, et al. Image contrast enhancement using fuzzy clustering with adaptive cluster parameter and sub-histogram equalization[J]. Digital Signal Processing, 2017, 62: 224-237. DOI:10.1016/j.dsp.2016.10.013
[2]
DAR K A, MITTAL S. An enhanced adaptive histogram equalization based local contrast preserving technique for HDR images[J]. Materials Science and Engineering, 2021, 102: 012119.
[3]
ZHOU J C, ZHANG D H, ZOU P Y, et al. Retinex-based Laplacian pyramid method for image defogging[J]. IEEE Access, 2019, 7: 122459-122472. DOI:10.1109/ACCESS.2019.2934981
[4]
FU Q T, JUNG C, XU K Q. Retinex-based perceptual contrast enhancement in images using luminance adaptation[J]. IEEE Access, 2018, 6: 61277-61286. DOI:10.1109/ACCESS.2018.2870638
[5]
YAO L P, PAN Z L. The retinex-based image dehazing using a particle swarm optimization method[J]. Multimedia Tools and Applications, 2021, 80(3): 3425-3442. DOI:10.1007/s11042-020-09812-7
[6]
FAN Y C, ZHANG L X, GUO H C, et al. Image processing for laser imaging using adaptive homomorphic filtering and total variation[J]. Photonics, 2020, 7(2): 30. DOI:10.3390/photonics7020030
[7]
HE K M, SUN J, TANG X O. Single image haze removal using dark channel prior[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2011, 33(12): 2341-2353. DOI:10.1109/TPAMI.2010.168
[8]
WANG Y K, FAN C T. Single image defogging by multiscale depth fusion[J]. IEEE Transactions on Image Processing, 2014, 23(11): 4826-4837. DOI:10.1109/TIP.2014.2358076
[9]
ZHU Q S, MAI J M, SHAO L. A fast single image haze removal algorithm using color attenuation prior[J]. IEEE Transactions on Image Processing, 2015, 24(11): 3522-3533. DOI:10.1109/TIP.2015.2446191
[10]
SALAZAR-COLORES S, CABAL-YEPEZ E. A fast image dehazing algorithm using morphological reconstruction[J]. IEEE Transactions on Image Processing, 2019, 28(5): 2357-2366. DOI:10.1109/TIP.2018.2885490
[11]
EHSAN S M, IMRAN M, ULLAH A, et al. A single image dehazing technique using the dual transmission maps strategy and gradient-domain guided image filtering[J]. IEEE Access, 2021, 9: 89055-89063. DOI:10.1109/ACCESS.2021.3090078
[12]
ZHANG B W, WANG M L, SHEN X B. Image haze removal algorithm based on nonsubsampled contourlet transform[J]. IEEE Access, 2021, 9: 21708-21720. DOI:10.1109/ACCESS.2021.3056406
[13]
代晴晴, 范之国, 宋强, 等. 全局参数自动估计的彩色图像偏振去雾方法[J]. 应用光学, 2018, 39(4): 511-517.
DAI Q Q, FAN Z G, SONG Q, et al. Polarization defogging method for color image based on automatic estimation of global parameters[J]. Journal of Applied Optics, 2018, 39(4): 511-517. (in Chinese)
[14]
CAI B L, XU X M, JIA K, et al. DehazeNet: an end-to-end system for single image haze removal[J]. IEEE Transactions on Image Processing, 2016, 25(11): 5187-5198. DOI:10.1109/TIP.2016.2598681
[15]
CHEN D D, HE M M, FAN Q N, et al. Gated context aggregation network for image dehazing and deraining[C]//Proceedings of 2019 IEEE Winter Conference on Applications of Computer Vision. Washington D. C., USA: IEEE Press, 2019: 1375-1383.
[16]
WANG J X, LI C F, XU S K. An ensemble multi-scale residual attention network for image dehazing[J]. Multimedia Tools and Applications, 2021, 80(19): 29299-29319. DOI:10.1007/s11042-021-11081-x
[17]
ZHAO S Y, ZHANG L, SHEN Y, et al. RefineDNet: a weakly supervised refinement framework for single image dehazing[J]. IEEE Transactions on Image Processing, 2021, 30(6): 3391-3404.
[18]
陈子妍, 龙道银, 王霄, 等. 基于逆通道与改进引导滤波的暗通道去雾算法[J]. 计算机工程, 2021, 47(6): 245-252.
CHEN Z Y, LONG D Y, WANG X, et al. Dark channel defogging algorithm based on inverse channel and improved guided filtering[J]. Computer Engineering, 2021, 47(6): 245-252. (in Chinese)
[19]
KOU F, CHEN W H, WEN C Y, et al. Gradient domain guided image filtering[J]. IEEE Transactions on Image Processing, 2015, 24(11): 4528-4539. DOI:10.1109/TIP.2015.2468183
[20]
HE K M, SUN J, TANG X O. Guided image filtering[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010, 58(3): 1397-1409.
[21]
LI Z, ZHENG J, ZHU Z, et al. Weighted guided image filtering[J]. IEEE Transactions on Image Processing, 2015, 24(1): 120-129. DOI:10.1109/TIP.2014.2371234
[22]
TAN R T. Visibility in bad weather from a single image[C]//Proceedings of 2008 IEEE Conference on Computer Vision and Pattern Recognition. Washington D. C., USA: IEEE Press, 2008: 1-8.
[23]
YING Z Q, LI G, GAO W. A bio-inspired multi-exposure fusion framework for low-light image enhancement[EB/OL]. [2021-09-01]. https://arxiv.org/abs/1711.00591.
[24]
CHOI L K. Live image defogging database[EB/OL]. [2021-09-01]. http://live.ece.utexas.edu/research/fog/fade_defade.html.
[25]
刘国, 吕群波, 刘扬阳. 基于自适应暗原色的单幅图像去雾算法[J]. 光子学报, 2018, 47(2): 179-186.
LIU G, LÜ Q B, LIU Y Y. Single image dehazing algorithm based on adaptive dark channel prior[J]. Acta Photonica Sinica, 2018, 47(2): 179-186. (in Chinese)
[26]
杨艳春, 李娇, 王阳萍. 图像融合质量评价方法研究综述[J]. 计算机科学与探索, 2018, 12(7): 1021-1035.
YANG Y C, LI J, WANG Y P. Review of image fusion quality evaluation methods[J]. Journal of Frontiers of Computer Science and Technology, 2018, 12(7): 1021-1035. (in Chinese)
[27]
GUO C L, LI C Y, GUO J C, et al. Zero-reference deep curve estimation for low-light image enhancement[C]//Proceedings of 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Washington D. C., USA: IEEE Press, 2020: 1777-1786.
[28]
TU Z G, POPPE R, VELTKAMP R C. Adaptive guided image filter for warping in variational optical flow computation[J]. Signal Processing, 2016, 127: 253-265. DOI:10.1016/j.sigpro.2016.02.018
[29]
ZHANG Y H, ZHANG J W, GUO X J. Kindling the darkness: a practical low-light image enhancer[C]//Proceedings of the 27th ACM International Conference on Multimedia. New York, USA: ACM Press, 2019: 1632-1640.