按原理不同,图像去雾算法可以分为基于图像增强的算法、基于机器学习的算法及基于图像复原的算法。
基于图像增强的去雾算法包括基于小波变换[1]、Retinex理论[2-3]、直方图均衡化[4]的去雾算法等,该类算法没有深挖图像降质的内在原因,对退化图像进行全局性处理以提高图像对比度,处理后部分图像会过饱和及丢失部分信息。
近年来,基于机器学习的去雾算法不断涌现。Cai等[5]提出一种端对端的卷积神经网络来估计有雾图像的传输矩阵进行去雾。Chen等[6]提出一种端到端的门控上下文聚合网络,可融合不同级别的特征。Du和Li[7]提出感知优化的生成对抗网络(POGAN)进行去雾,通过递归深度残差学习,直接建立退化图像到清晰图像的非线性映射,算法适应性较好。但该类去雾算法对设备性能要求较高,前期需要对模型进行长时间训练,且对数据集的数量与质量要求很高。
基于图像复原的去雾算法[8-14]考虑雾霾成因建立成像模型,通过估计模型参数反推出清晰无雾的图像,该类算法去雾效果好,且对处理设备要求低。He等[8]提出暗通道先验算法,利用暗通道求取大气光值和粗透射率,并用软抠图算法细化透射率,对大多数图像有效。2010年,He等[9]又提出引导滤波算法以解决软抠图算法耗时长的问题,算法效率明显提升。陈书贞等[10]提出一种暗通道改进算法,引入混合暗通道,结合引导滤波估计大气耗散函数,并利用全变差方法平滑传输图,天空区域去雾效果有一定改善。杨燕等[11-13]提出了一类基于高斯混合通道的迭代优化去雾算法,采用多级透射率,不同程度上提升了去雾效果。
此外,基于融合的去雾算法可以综合图像增强和图像复原的优势进行去雾,通过融合权值的设置突出重要信息,这种策略在图像去雾研究中应用的越来越多。
虽然现有去雾算法已能对图像进行不同程度的清晰化处理,但仍存在对浓雾效果有限、边缘存在残雾、天空区域偏色、算法实时性不够高等问题,需要进行进一步的研究。本文针对暗通道先验算法及其改进算法处理后存在边缘残雾的问题进行了分析,提出一种基于最小值通道和对数衰减的物理模型去雾算法,有效去除了景深突变区域的残雾,去雾效率有所提升。
1 算法基础 1.1 大气散射模型 去雾领域通用的雾天成像物理模型为大气散射模型,由McCartney根据米氏大气散射理论于1976年首次提出[14],该模型描述了雾天降质图像退化的过程,可用公式描述为
(1) |
式中:I(x)为有雾图像; J(x)为无雾图像; A为大气光值;t(x)为像素点x处对应的透射率,其范围规定为(0, 1),代表光源光线在传播过程中除去散射等作用的损耗到达成像设备的部分,表示为
(2) |
其中:d(x)为景深,即处在像素点x的景物到摄像机的距离;β为散射系数。
对于灰度图像,式(1)含有3个未知数,对于彩色图像,方程组含有7个未知数(透射率图、三通道的大气光值及三通道的无雾图像),因此该方程是病态方程,需要增加先验或者约束条件以解决该问题。
1.2 暗通道先验去雾算法 He等[8]通过统计发现,无雾图像的非天空区域RGB三通道中至少一个通道像素强度值都很低,趋近于0,该通道被命名为暗原色或暗通道,表示为Jdark(x)。该理论称为暗通道先验,表示为
(3) |
式中:Jc代表待恢复有雾图像的RGB三个通道;
大气光A的物理意义是无穷远处大气光的强度,文献[8]采用统计暗通道亮度前0.1%的像素点对应原雾图像素点的最大值作为大气光值。又利用暗通道先验消去J(x),结合暗通道求得的大气光值A代入大气散射模型,对透射率进行逐块估计,且假设单个局部窗内透射率为一常数,记为
(4) |
式(4)中引入调整因子ω对很少部分的雾气进行保留以指示景深,适应人眼视觉规律,其中ω∈(0, 1),文献[8]中取0.95。用式(3)得到的透射率较为粗糙,称为透射率的粗估计。用求得的大气光值和透射率粗估计值恢复出无雾图像的去雾效果图如图 1(c)所示, 可以明显看出景深跳变处出现不自然的过渡窄边,去雾不彻底。
图 1 文献[9]去雾过程 Fig. 1 Dehazing process of Ref.[9] |
图选项 |
因此,对粗透射率进行细化是必要的。文献[8]最先采用软抠图算法进行透射率的细化,虽然求出的透射率非常精细,但因其涉及逆求解Matting-Laplacian矩阵,计算的时间复杂度过高;2010年He等[9]用引导滤波算法代替软抠图算法细化透射率,大大提高了算法效率。
设细化后透射率为tgf,最终退化图像可通过式(5)进行恢复:
(5) |
通过max(tgf, t0)将t0设为透射率的下限值,避免分母为0,在文献[8]中该数值为0.1,实际可以设置为更小的大于0的值。经过透射率细化后去雾效果如图 1(e)所示,发现边缘过渡带被消除,但仍然存在残雾。
1.3 暗通道先验去雾算法缺陷 暗通道与引导滤波优化算法存在如下问题:
首先,复原图像仍存在明显Halo效应,去雾不彻底。这是由于景深不连续处基于块的最小值滤波操作导致求暗通道时像素值偏低,使得恢复图像时透射率过大。
其次,对天空区域,复原结果出现偏色及伪轮廓,如图 2所示,左侧为有雾图像,右侧为复原图像。
图 2 暗通道先验对含大片天空区域图像的处理效果 Fig. 2 Dehazing results of dark channel prior when hazy images have a large amount of bright area |
图选项 |
对这一区域,因其不满足暗通道先验理论,不能利用暗通道先验理论消去参数,按照大气散射模型透射率值应使用式(6)计算,而暗通道先验算法利用式(4)近似估计透射率的值,估计过低。
(6) |
最后,引导滤波算法优化透射率后仍存在残雾。其原因:①透射率优化时使用了最小值滤波操作导致的错估像素点的值;②引导滤波在平滑粗透射率时对需保持的边缘部分没有很好地保留。
2 改进算法 本文算法原理框图如图 3所示。首先,求原有雾图像的对数衰减暗通道图,利用暗通道原理求透射率并进行交叉双边滤波消除纹理效应,在滤波前后分别进行下采样和上采样操作以提高运算速度,求出初始透射率。其次,对Canny算子检测最小值通道图得到的边缘进行对数衰减,以抑制像素溢出,得到边缘信息图,将初始透射率与边缘信息图进行加权融合构成优化透射率。最后,结合改进的四叉树搜索法求得的大气光值反解大气散射模型,恢复无雾图像。实验表明,该算法实时性好,能有效去除边缘残雾,复原图像色彩自然。
图 3 本文算法原理框图 Fig. 3 Schematic block diagram of proposed algorithm |
图选项 |
2.1 透射率估计 大气散射模型中, 透射率是一个主要参数,其估算的准确程度会直接影响算法处理效果。He等[8]假设单个局部窗内透射率为一常数,利用式(4)对透射率进行逐块估计,其中存在2次最小值操作,如下:
(7) |
式中:括号内的最小值操作是求最小值通道,即取图像RGB三通道中最低的像素值;括号外的最小值操作是基于窗口Ω(x)的最小值滤波操作。当滑动窗口处在图像边缘时,边缘两侧景物场景深度不同,但最小值滤波将窗口中像素值都用最小值替代,导致边缘处透射率估计过小,细节被覆盖,恢复图像出现明显Halo效应,且文献[9]对透射率用引导滤波算法进行细化后图像仍存在残雾。
因此,本文提出一种基于对数衰减的融合去雾算法。首先,求有雾图像的最小值通道图,其是对彩色有雾图像每个像素的RGB三通道求最小值,存入一幅与原图相同大小的图中,得到一幅灰度图,包含有丰富的图像深度信息。初步估计透射率时,先求出有雾图像的最小值通道图,对其进行以e为底的对数衰减操作,得到的图像称为对数衰减暗通道,如图 4(b)所示。
图 4 暗通道与对数衰减暗通道实验对比 Fig. 4 Experimental comparison between dark channel and logarithmic attenuated dark channel |
图选项 |
图 4分别对原有雾图像分别求暗通道图和对数衰减暗通道图,对比可得对数衰减暗通道图更为精细,利用其进行透射率估计可避免块效应。
结合以上分析,本文利用对数衰减暗通道估计透射率的理论依据如下:
1) 有雾图像的最小值通道图与对数衰减暗通道图在数学上是一一映射关系,因而进行对数衰减操作具有可行性。
2) 对数衰减操作能避免基于局部窗口的最小值滤波操作对透射率的错误估计。
3) 对数衰减速度快,避免了对透射率的细化操作,能有效降低算法复杂度。
相应的,粗透射率估计公式为
(8) |
此时透射率仍存在纹理效应,影响去雾效果。由式(2)中t(x)的表达式可知,透射率只应该与景深有关,与景物纹理等细节无关。为了消除纹理效应,更准确地估计透射率,对
(9) |
图 5 本文算法与文献[9]算法去雾效果对比 Fig. 5 Comparison of dehazing result between proposed algorithm and algorithm in Ref.[9] |
图选项 |
交叉双边滤波的结果使输出图像边缘像素的权值不仅和距离有关,还和该位置的像素值有关。输入图像为对数衰减后的透射率图
以上过程中,采样操作在提高算法效率的同时对透射率边缘有一定的模糊,因此本文选取Canny算子对彩色图像的最小值图像进行了边缘提取,得到的边缘像素值为255(归一化后为1)。为了与透射率求取保持一致,使用以e为底的对数运算进行了像素值范围压缩,得到了边缘信息图ei(x),如图 5(h)所示。最后,对初始透射率ti(x)与边缘信息图ei(x)进行像素级加权融合, 得到优化透射率top, 对图像的边缘信息进行加强,表示为
(10) |
式中:α和ε分别为ti(x)和ei(x)的权值,经多次实验得其最佳值为α=0.9,ε=0.1,为经验值。
下面对本文算法与文献[9]算法进行透射率和去雾效果的细节对比,如图 5所示。可以看出,边缘处本文算法得到的透射率更精细,可以有效去除残雾。
2.2 大气光估计 He等[8]通过选取暗通道图中前0.1%亮度像素点对应到原退化图像中最高亮度的值,作为大气光值A的估计值,这种算法会导致错选白色物体和高亮发光源对应的像素值,使恢复图像偏暗。文献[15]中,将以上算法中的最大值改为选取对应位置有雾图像像素灰度值的平均值作为大气光值。以上估计算法虽然选取简单,但估计不准确。为得到更为准确的大气光值,基于文献[16]中提出的四叉树搜索法进行了改进,在分块搜索前先对有雾图像进行均值滤波,减少亮物体的影响,具体步骤如下:
步骤1??对有雾图像进行均值滤波。
步骤2??将均值滤波的结果均分为4个子矩形区域。
步骤3??分别利用像素平均值减去像素标准差对4个区域进行评分。
步骤4??对评分最高的区域继续均分为更小的4个矩形。
步骤5??重复步骤2和步骤3,直到所选区域面积小于200个像素点,选定这个区域。
步骤6??在选定区域选择R、G、B三通道中满足min‖(Ir(x)-255), (Ig(x)-255), (Ib(x)-255)‖的像素值作为大气光的值。
3 实验比较与分析 本文提出了基于最小值通道对数衰减与Canny边缘信息加强融合的去雾算法,算法复杂度低,能改善引导滤波算法去雾不彻底、出现Halo效应的问题。为验证本文算法的有效性,选取了多组雾霾天气场景图进行实验。使用MATLAB(R2014a)仿真,操作系统为win10,计算机配置为Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz,内存为4GB。采用本文算法与其他经典算法进行对比分析。
3.1 主观视觉效果比较 选取He等[9]提出的暗通道先验去雾算法、Cai等[5]提出的基于端对端的深度学习去雾算法、Zhu等[17]提出的基于颜色衰减先验的去雾算法、Wang等[18]提出的基于线性传输的去雾算法与本文算法进行去雾效果的人眼视觉感受对比。分别选取场景深度突变的雾天图像与场景深度变化平缓的雾天图像、浓雾图像、薄雾图像及含天空区域的有雾图像进行对比。
图 6与图 7为景深发生剧烈变化的雾图处理效果对比,image1为薄雾图像,image2为浓雾图像。可以看出,图 6中,文献[5, 17]算法整体去雾不彻底,且恢复图像偏暗。文献[9]算法远景处理效果较好,但边缘处仍存在残雾。文献[18]算法边缘保持较好,但远景较暗。图 7中,文献[5, 9, 17]算法不能彻底去除雾气,景深突变处留有明显残雾,遮盖了后方的景物。文献[18]算法边缘保持较好,但恢复图像较暗,去雾不彻底,远景失真严重。相较其他算法,本文算法去雾最为彻底,景深突变处无Halo效应。
图 6 image1去雾效果对比 Fig. 6 Comparison of image1 dehazing effect |
图选项 |
图 7 image2去雾效果对比 Fig. 7 Comparison of image2 dehazing effect |
图选项 |
图 8~图 10显示了景深变化缓慢情况下各算法的处理表现,image3为谷堆图像,image4为山峰图像,image5为娃娃图像。可以看出,image3中文献[5, 17]算法远景去雾不彻底,文献[18]算法去雾效果较好,但色彩过于艳丽,出现过饱和。image4中文献[5, 17, 18]算法去雾不彻底,本文算法去雾效果较好。文献[8, 13, 18]算法处理结果天空区域偏色较为严重,本文算法去雾彻底,天空区域复原效果自然。image5中文献[5, 17]算法留有残雾,文献[18]算法出现偏色且亮度较低,文献[9]算法和本文算法去雾最为彻底,且本文算法亮度稍高。整体来看,本文算法的去雾效果具有一定优势。
图 8 image3去雾效果对比 Fig. 8 Comparison of image3 dehazing effect |
图选项 |
图 9 image4去雾效果对比 Fig. 9 Comparison of image4 dehazing effect |
图选项 |
图 10 image5去雾效果对比 Fig. 10 Comparison of image5 dehazing effect |
图选项 |
3.2 客观评价
3.2.1 去雾质量评价指标 本文选取平均运算时间t及文献[19]中总结5个常见去雾质量评价指标对本文算法及文献[5, 9, 17, 18, 20]算法进行对比。
1) 可见边增加率e
可见边增加率属于盲评估指标[21],指示复原图像的边缘增强程度,计算公式为
(11) |
式中:nr为复原图像的可见边条数;n0为原有雾图像的可见边条数;MN为得到图像的大小。
2) 归一化平均梯度r
归一化平均梯度属于盲评估指标,用图像梯度增加程度表示算法复原边缘与纹理信息的能力,计算公式为
(12) |
式中:ri为复原图像与原有雾图像的梯度比;
3) 图像可见度衡量指标IVM
图像可见度衡量指标是一种基于可见边分割的评价指标,由Yu等[22]首先提出,计算方法如下:
(13) |
式中:ntotal为所有边缘的数量;C(x)为均值对比度;
4) 视觉对比度VCM
视觉对比度与局部标准差有关,计算公式如下:
(14) |
式中:Rt为局部区域的个数;Rv为局部区域中标准差比指定阈值大的区域的个数,该阈值由OTSU图像分割算法自适应地确定。
5) 饱和像素数占比δ
饱和像素数占比属于盲评估指标,其计算公式如下:
(15) |
式中:ns表示复原图像比原有雾图像多出像素值为0或255的点的个数。该指标表示新出现的饱和点占整幅图像的比例,可反映出算法出现过饱和的情况。
6) 平均运算时间t
本次实验中,用本文算法与其他经典算法对不同图片进行处理,记录了程序运行时间,分别进行20次实验取其平均值,得到平均运算时间t,该指标能反映出各算法的时间复杂度。
可见,可见边增加率e、归一化平均梯度r、图像可见度衡量指标IVM和视觉对比度VCM这4个指标越大越好,饱和像素数占比δ和平均运算时间t越小越好。
3.2.2 去雾质量客观评价结果 实验共选取了6幅有雾图像进行了对比,包括主观评价中的5幅实验图像,所选经典去雾算法分别为He等[9]提出的暗通道先验去雾算法、Cai等[5]提出的基于端对端的深度学习去雾算法、Zhu等[17]提出的基于颜色衰减先验的去雾算法、Wang等[18]提出的基于线性传输的去雾算法及Meng等[20]提出的边界约束与上下文正则化的去雾算法,实验结果如图 11所示。
图 11 客观评价实验结果 Fig. 11 Experimental results with objective evaluation |
图选项 |
观察图 11可知,对可见边增加率e和归一化平均梯度r,本文算法与文献[20]算法有较大优势,优于其他算法;对图像可见度衡量指标IVM,本文算法与文献[20]算法相当,优于其他算法;对视觉对比度VCM,本文算法优于其他经典算法;对饱和像素数占比δ,文献[5]所提深度学习算法、文献[20]所提边界约束算法处理后该值较高,本文算法处理后该值很低,表明本文算法处理后不易出现过饱和的情况;对平均运算时间t,文献[5, 20]算法耗时较多,本文算法与文献[18]算法耗时最少,但文献[18]算法前期需要训练,且其他评价指标表现一般。综合各评价指标,本文算法复原图像的各客观指标具有一定的优势。
4 结论 1) 本文算法使用对数衰减暗通道进行透射率估计,避免了最小值滤波操作导致的Halo效应。
2) 对数衰减速度快,且避免了后续透射率细化操作,大大降低了算法复杂度。
3) 本文算法使用Canny算子提取最小值通道图的边缘信息与初始透射率融合,增强了透射率图中的边缘信息。
4) 本文算法在估计大气光值时,采用了改进的四叉树搜索法,避免高亮物体影响,更准确地估计大气光值。
5) 实验结果表明,本文算法在边缘及远景处去雾效果均得到提升,图像细节增多,色彩亮度和饱和度适宜,恢复效果自然,且复杂度较低。
本文算法对于融合参数的设置不能做到自适应调节,对于不同的有雾图像均使用这一经验值往往不能达到最好的去雾效果,如何使算法对融合系数自适应调整是下一步的研究目标。
参考文献
[1] | 高若婉, 梅树立, 李丽, 等. 基于小波精细积分与暗通道的农田图像去雾算法[J]. 农业机械学报, 2019, 50(S1): 167-174. GAO R W, MEI S L, LI L, et al. Farmland image dehazing method based on wavelet precise integration and dark channel prior[J]. Transactions of the Chinese Society of Agricultural Machinery, 2019, 50(S1): 167-174. (in Chinese) |
[2] | 刘海波, 杨杰, 吴正平, 等. 基于暗通道先验和Retinex理论的快速单幅图像去雾方法[J]. 自动化学报, 2015, 41(7): 1264-1273. LIU H B, YANG J, WU Z P, et al. A fast single image dehazing method based on dark channel prior and Retinex theory[J]. Acta Automatica Sinica, 2015, 41(7): 1264-1273. (in Chinese) |
[3] | 马忠丽, 文杰. 融合边缘信息的单尺度Retinex海雾去除算法[J]. 计算机辅助设计与图形学学报, 2015, 27(2): 217-225. MA Z L, WEN J. Single-scale Retinex sea fog removal algorithm fused the edge information[J]. Journal of Computer-Aided Design and Computer Graphics, 2015, 27(2): 217-225. (in Chinese) |
[4] | 云海姣, 吴志勇, 王冠军, 等. 结合直方图均衡和模糊集理论的红外图像增强[J]. 计算机辅助设计与图形学学报, 2015, 27(8): 1498-1505. YUN H J, WU Z Y, WANG G J, et al. Enhancement of infrared image combined with histogram equalization and fuzzy set theory[J]. Journal of Computer-Aided Design and Computer Graphics, 2015, 27(8): 1498-1505. (in Chinese) |
[5] | CAI B L, XU X M, JIA K, et al. Dehaze net: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 |
[6] | CHEN D D, HE M M, FAN Q N, et al.Gated context aggregation network for image dehazing and deraining[C]//2019 IEEE Winter Conference on Applications of Computer Vision.Piscataway: IEEE Press, 2019: 1375-1383. |
[7] | DU Y X, LI X.Perceptually optimized generative adversarial network for single image dehazing[EB/OL].(2018-05-03)[2019-10-20].https://arxiv.org/abs/1805.01084. |
[8] | HE K M, SUN J, TANG X O.Single image haze removal using dark channel prior[C]//IEEE Conference on Computer Vision and Pattern Recognition(CVPR).Piscataway: IEEE Press, 2009: 1956-1963. |
[9] | HE K M, SUN J, TANG X O.Guided image filtering[C]//Proceedings of the 2010 Conference on Computer Vision, 2010: 1-14. |
[10] | 陈书贞, 任占广, 练秋生. 基于改进暗通道和导向滤波的单幅图像去雾算法[J]. 自动化学报, 2016, 42(3): 455-465. CHEN S Z, REN Z G, LIAN Q S. Single image dehazing algorithm based on improved dark channel prior and guided filter[J]. Acta Automatica Sinica, 2016, 42(3): 455-465. (in Chinese) |
[11] | 杨燕, 陈高科, 周杰. 基于高斯权重衰减的迭代优化去雾算法[J]. 自动化学报, 2019, 45(4): 819-828. YANG Y, CHEN G K, ZHOU J. Iterative optimization defogging algorithm using Gaussian weight decay[J]. Acta Automatica Sinica, 2019, 45(4): 819-828. (in Chinese) |
[12] | 杨燕, 陈高科. 基于光补偿和逐像素透射率的图像复原算法[J]. 通信学报, 2017, 38(5): 48-56. YANG Y, CHEN G K. Single image visibility restoration using optical compensation and pixel-by-pixel transmission estimation[J]. Journal on Communications, 2017, 38(5): 48-56. (in Chinese) |
[13] | YANG Y, ZHANG C, LIU L L, et al. Visibility restoration of single image captured in dust and haze weather conditions[J]. Multidim System Sign Process, 2020, 31: 619-633. DOI:10.1007/s11045-019-00678-z |
[14] | MCCARTNEY E J. Optics of the atmosphere:Scattering by mole-cules and particles[M]. New York: John Wiley and Sons, 1976: 421. |
[15] | 王泽胜, 董宝田, 赵芳璨, 等. 基于改进暗通道先验的交通图像去雾新方法[J]. 控制与决策, 2018, 33(3): 486-490. WANG Z S, DONG B T, ZHAO F C, et al. Improved dehazing method for traffic images based on dark channel prior[J]. Control and Decision, 2018, 33(3): 486-490. (in Chinese) |
[16] | KIM J H, JANG W D, SIM J Y, et al. Optimized contrast enhancement for real-time image and video dehazing[J]. Journal of Visual Communication and Image Representation, 2013, 24(3): 410-425. DOI:10.1016/j.jvcir.2013.02.004 |
[17] | ZHU Q, MAI J, 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 |
[18] | WANG W, YUAN X, WU X, et al. Fast image dehazing method based on linear transformation[J]. IEEE Transactions on Multimedia, 2017, 19(6): 1142-1155. |
[19] | XU Y, WEN J, FEI L, et al. Review of video and image defogging algorithms and related studies on image restoration and enhancement[J]. IEEE Access, 2017, 4(1): 165-188. |
[20] | MENG G F, WANG Y, DUAN J.Efficient image dehazing with boundary constraint and contextual regularization[C]//IEEE International Conference on Computer Vision(ICCV).Piscataway: IEEE Press, 2014: 617-624. |
[21] | HAUTIERE N, TAREAL J P, AUBERT D, et al. Blind contrast enhancement assessment by gradient ratioing at visible edges[J]. Image Analysis and Stereology, 2011, 27(2): 87-95. DOI:10.5566/ias.v27.p87-95 |
[22] | YU X, XIAO C, DENG M, et al.A classification algorithm to distinguish image as haze or non-haze[C]//Sixth International Conference on Image and Graphics.Piscataway: IEEE Press, 2011: 286-289. |