基于亮区域暗通道矫正和加权聚合引导滤波的图像去雾算法
2021-12-29李洪平金汝宁李炎炎
李洪平 , 赵 波, 金汝宁, 李炎炎
(1.四川大学机械工程学院, 成都 610065;2.先进制造技术四川省重点实验室, 成都 610065)
如今户外图像采集广泛应用于无人驾驶、视频监控和地形勘测等各个领域,但当水蒸气、灰尘或其他微粒在稳定的大气中积聚时,就会出现雾霾[1-2].雾霾中的微粒会散射或者吸收光线,从而导致户外采集的图像出现色彩失真,纹理模糊.这不仅对图像处理等后期工作带来了不便,还会导致户外图像采集设备的工作性能下降.因此,对图像去雾算法展开研究,从有雾图像中复原出清晰的图像具有重要的研究意义.
目前图像去雾算法主要分为图像增强、深度学习和图像复原三类.图像增强去雾的主要算法有CLAHE算法、Retinex算法[3]以及小波变化算法[4]等,但图像增强的本质是利用图像增强技术提升对比度,去除噪点,还原图像的视觉效果,但忽略了雾天图像降质的机理,图像去雾的效果有限.受益于计算资源和计算能力的发展,基于深度学习的图像去雾算法[5-8]得到广泛研究,它主要通过卷积神经网络模型学习有雾图像,从而构建图像去雾模型,但模型的训练需要大量的雾天图像,数据集的采集和模型的可靠性限制了基于深度学习去雾算法的普适性.
近年来,基于大气散射物理模型的图像复原算法受到广泛关注,通过结合假设或先验知识,利用有雾图像反演推导无雾图像.Fattal[9]提出了图像局部透射率与明暗程度不相关的假设,消除了散射光的影响,复原了具有高能见度、高对比度的图像,但在非均匀、浓雾区域不能有效地去雾.Berman等[10]统计大量图片发现雾天图像颜色聚类特性,提出了雾线先验,可根据图像RGB值直接估计透射率,但当图像亮度不均匀、天空色彩不自然时,算法将失效.Zhu等[11]提出了一种简单而有效的颜色衰减先验算法,利用亮度和饱和度的差异来估计雾浓度,建立深度模型进行去雾,但该算法对远景处的去雾效果一般.Liu等[12]利用雾度通常分布在低频域的特征,提出了开放暗通道模型,实现低频雾消除,有效提升了浓雾区域的感知能见度,但复原图像整体偏暗.He等[13]提出了暗通道先验理论,在图像去雾领域一直被广泛关注,但软抠图法时间复杂度高,且暗通道先验在亮区域(天空和白色区域)将会失效.之后,他们又提出了引导滤波代替软抠图法[14],加快了透射率的细化.但引导滤波会导致图像边缘处透射率估计不准确,从而产生Halo效应[15-16].曾接贤等[17]在暗通先验的基础上,同时考虑空域信息和灰度信息,采用自适应双边滤波进行复原图像的边缘保持,但并未彻底解决Halo效应,且在高亮区域复原失效.
针对上述分析,基于He等[13-14]提出的暗通道先验理论在解决亮区域颜色失真和引导滤波引起的Halo效应方面的不足,本文提出了基于亮区域暗通道矫正和加权聚合引导滤波的改进算法.该方法首先基于相对景深阈值分割亮区域,然后采用饱和度和灰度值校正亮区域暗通道,利用加权聚合引导滤波细化透射率,最后将复原图像转化到HSV色彩空间,对亮度进行矫正,并基于雾浓度均值加权聚合得到最终结果.实验结果表明,所提算法亮区域分割准确,复原图像边缘纹理清晰,色彩自然,去雾彻底.
如图1所示,本文算法分为三部分.(1) 亮区域暗通道矫正.基于亮度分量和饱和分量求取输入图像的相对景深图,根据阈值分割出图像中的亮区域,并基于饱和度和灰度值对亮区域的暗通道进行矫正.(2) 加权引导滤波.为解决引导滤波容易导致Halo现象,本文引入加权引导滤波对初始投射率进行细化,在引导滤波的聚合阶段为不同的窗口分配权值,准确求解场景透射率.(3) 亮度矫正.将复原图像J1(x)转换到HSV空间,对V分量进行均衡化后转回RGB空间得到J2(x),利用相对雾浓度均值对J1(x),J2(x)进行线性加权,得到最终的复原图像J(x).
图1 基于亮区域暗通道矫正和加权聚合引导滤波的图像去雾算法流程图
在图像去雾研究领域,Narasimhan等[18-19]提出的大气散射模型被广泛应用,其物理模型如下.
I(x)=J(x)t(x)+A(1-t(x))
(1)
式中,I(x)表示雾天图像;J(x)表示复原后的图;t(x)为场景透射率;A为大气光值;x表示像素点.由此可知,A、t(x)未知,求解复原图像J(x)本身是一个病态问题,因此求解J(x)需要强有力的先验或假设.
大气光值的选取直接影响图像复原的效果,一般定义无穷远处的像素点强度值作为大气光强值.He等[13]选取有雾图像暗通道亮度值前0.1%的像素点,然后找到这些像素点在有雾图像中的最大通道值作为大气光值,但白色建筑或明亮区域的暗通道值一般都较高,容易导致大气光值的误判.Kim等[20]采用四叉树搜索法估计全局大气光,通过将有雾图像分成四个图像区域,随后选取均方差最小的区域继续四分,直至小于阈值,然后在所得到均方差最小的图像区域找出像素强度值最大的像素点.该像素点的RGB三通道值即为环境大气光值.该方法可准确有效地找出环境大气光值,因此,本文采用四叉树搜索法求取大气光值.
暗通道先验理论表明,在一幅彩色图像中,绝大多数非天空区域的像素点,R、G、B三个通道中,总有一个通道强度值很小,近似为0,数学表达式如下.
(2)
其中,Jdark(x)表式像素点处的暗通道值;c表示图像RGB三通道中的某一通道;Ω(x)表示像素x的邻域;y表示领域中的一个像素点.对式(1)两边求取局部最小值,并将式(2)代入式(1),得到透射率的表达式.
(3)
为了防止去雾太过彻底,恢复出的景物不自然,应引入参数ω=0.95,重新定义透射率为:
(4)
暗通道先验在亮区域去雾时,会导致颜色失真,这是因为在亮区域的RGB三通道值均很大,暗通道先验将会失效,因此需对该区域的暗通道值进行矫正.Zhu等[11]根据大量实验表明,景深或雾浓度越大,该处像素的饱和度越小,亮度越大,且与图像亮度和饱和度的差值成正相关.
d(x)∝c(x)∝[v(x)-s(x)]
(5)
式中,d(x)为场景深度;c(x)为雾浓度;v(x)为图像亮度;s(x)为图像饱和度.v(x)-s(x)一定程度可以直接反应场景的深度信息,因此用相对场景深度图D(x)来表示.
D(x)=v(x)-s(x)
(6)
其中,D(x)值越大,像素点的相对场景深度越深,该区域就越接近于亮区域.设置自适应阈值T,用式(7)表示,对图像2(a)的亮区域进行分割,分割结果如图2(b)所示.
T=0.8×max(D(x))
(7)
当像素点处于亮区域时,其透射率应趋于1,由式(4)可知,该处像素点的暗通道值应很低.由于亮区域灰度值均很高,为更好地还原亮区域图像细节,利用Igray(x)×s(x)作为亮区域暗通道矫正值,用式(8)表示,当像素点饱和度增加时,暗通道值自适应增加,对校正后地暗通道进行均值滤波,消除图像中噪点的影响,最终暗通道矫正结果如图2(c)所示.
(8)
式中,Idark(x)表示图像最小值滤波后的暗通道图;Igray(x)为像素点灰度值;s(x)为像素点饱和度值.由图2(b)可知,所提算法可有效地分割出图像亮区域,图2(d)的复原图像亮区域复原色彩真实自然,无色彩失真,表明基于图像亮区域灰度值和饱和度来矫正暗通道值的有效性和鲁棒性.
图2 亮区域自适应分割与暗通道矫正Fig.2 Adaptive segmentation of bright regions and correction of dark channel
2.3 加权引导滤波
由式(4)求取的透射率因最小值滤波会导致“块效应”.为了更好地保留图像边缘细节,He等[14]提出了引导滤波细化透射率.引导滤波是假设在一个很小的,以像素k为中心的局部窗口ωk内,引导图像I与输出图像Q呈线性变换关系,其数学表达式如下.
Qi=akIi+bk, ∀i∈ωk
(9)
式中,ak、bk分别为局部窗口ωk内的线性系数.窗口ωk中的代价函数用于衡量待滤波图像P与输出图像Q之间的差异,其表达式为:
(10)
(11)
(12)
式中,|ω|为窗口ωk内的像素总数;σk2、μk分别为窗口内方差和均值.最后对所有包含像素点i的窗口邻域ωk取均值,得到引导滤波的最终结果.
(13)
引导滤波在平滑透射率时,由于无法兼顾图像全局信息,会使一些弱纹理被模糊,从而导致Halo效应.陈彬等[16]在引导滤波的聚合阶段为不同的窗口分配权值,赋予接近真实值的窗口较大权值,反之赋予较小的权值,在平滑图像纹理的同时,清晰地保留了图像边缘信息,有效地解决了引导滤波导致的Halo效应.其数学表达式如下.
(14)
(15)
其中,ek为窗口ωk的均方误差;η是一个很小的常数[16].
(16)
采取加权聚合引导滤波对初始透射率进行细化,其中滤波半径r= 35,正则化参数ε=0.001,通过反复试验,当η取经验值0.03时,复原图像的保边性能最好.聚合权值βk随窗口均方误差ek的变化关系如图3所示.当ek较小时,该窗口与像素点i的整体相似度大,因此所占权重应越大,即βk也就越大,反之越小;当ek增大时,βk下降迅速,说明加权聚合引导滤波对图像边缘处像素差异响应灵敏,能有效地保护复原图像的边缘纹理信息.
基于加权引导滤波细化透射率的复原效果如图4所示,其中图4(a)为原图.对比图4(b)、图4(c)和图4(d)可知,基于引导滤波复原图像边缘模糊,有明显雾感;基于双边滤波复原图像边缘相对清晰,但在树干等细节复杂处仍存在部分伪影.对比局部放大图可知,加权聚合引导滤波的复原图像,边缘无Halo效应,其保边性能明显优于引导滤波和双边滤波.由此可知,基于加权引导滤波可有效准确地细化场景透射率,消除边缘伪影,复原出纹理清晰、去雾彻底的图像.
图3 加权聚合权值与均方误差的变化关系
图4 引导滤波复原效果Fig.4 Restoration effect of the guided filter
采用四叉树搜索法求取大气光值A,将大气光值A和加权聚合引导滤波细化后的透射率t(x)带入式(1),得到最终复原图像.为保留一定的雾感,透射率下限值设定为t0=0.1,得到复原图像J1(x).
(17)
2.4 亮度调整
针对图像去雾后图像整体偏暗,Lee等[21]将复原图像转换到HSV色彩空间,对V分量进行均衡化处理,然后再转化到RGB空间得到亮度矫正后的复原图像,并基于雾浓度对矫正前后的图像进行线性拟合.但文中没有给出与雾浓度相关的权值系数表达式.由式(5)可知,雾浓度与景深成正比,D(x)越大,说明此处像素点受雾的影响越大;当D(x)<0时,说明此处像素点受雾的影响程度很小.为综合表示相对雾浓度的分布情况,提出相对雾浓度分布图C(x),且C(x) =D(x).对于受雾影响较小的区域,C(x)取下限值0.01,如下式所示.
(18)
采用相对雾浓度C(x)的均值α表示图像整体的雾浓度情况,考虑到薄雾天气,设定α的下限值为0.1,如式(19)所示.
α=max(0.1,mean(C(x)))
(19)
将复原图像转到J1(x)转换到HSV空间,对亮度分量进行均衡化处理,然后在转化到RGB空间得到亮度矫正后的复原图像J2(x),并基于加权系数α进行线性加权,得到最终的复原图像J(x),如式(20).
J(x)=(1-α)J1(x)+αJ2(x)
(20)
3 实验结果与分析
仿真实验的硬件环境如下:Intel Core i7-8750H CPU@ 2.20 GHz; 8 GB RAM,操作系统为64位Windows 10.仿真软件环境MATLAB R2019a.
本文分别选取含建筑近景、少量天空、大量天空、浓雾天气和人物5幅不同场景下的有雾图像,分别记为Image1~Image5,并与文献[11-12,14,17]等经典算法对比,实验结果如图5所示.文献[17]算法复原图像去雾较好,但在细节复杂的图像边缘处轻微模糊,且在高亮区域去雾将会失效,如图5(b)的Image4.文献[14]算法可以去除大部分雾,但在景物边缘处会出现模糊,产生Halo效应,且天空等亮区域去雾后出现失真,如图5(c).文献[12]算法近景处复原效果明显,相对于文献[14]算法有效地解决了天空等亮区域失真的问题,但对远景出的复原效果一般,如图5(d).文献[11]算法去雾彻底,近景、远景去雾后图像复原自然,但整体偏暗,如图5(e).对比图5第一行可知,本文算法复原的图像边缘无Halo现象,纹理清晰且去雾彻底;对比图5第二和第三行,可有效解决天空等亮区域暗通先验失效问题,在少量天空、大量天空条件下均能有效复原,有较强的鲁棒性;对比图5第四行可知,在浓雾天气下,恢复细节能力强,效果明显优于对比算法;对比图5第五行可知,复原图像色彩真实自然,很好地保留原图像的色彩纹理信息,可靠性强.
3.2 实验结果的客观性评价
为更加综合地评价所提算法的去雾性能,选取峰值信噪比、平均梯度、信息熵和算法运行时间作为指标对图5进行客观评价,评价结果如图6所示.峰值信噪比(PSNR)反应对去雾前后的图像进行差异性比较,其值越大,失真程度越低,去雾效果越好.平均梯度反映图像对微小细节反差的表达能力,平均梯度越大,说明图像越清晰,去雾的效果越好.信息熵反映图像的信息量,信息熵越大,去雾的效果越好.
从图6(a)~6(c)可以看出,本文算法复原图像的峰值信噪比和平均梯度整体优于其他算法,说明复原的图像色彩保持好,失真程度低,有更清晰的轮廓.在Image2中,峰值信噪比和平均梯度有最大提升,分别为34.46%、99.49%.信息熵显著高于其他经典算法,说明本文算法复原图像有更丰富的细节,复原效果好.在Image4中信息熵提升最大,为21.18%.由图6(d)可知,本文所提算法在引导滤波阶段引入了加权聚合步骤,执行效率略低于文献[17]和文献[14]算法,但优于其他经典算法,有较高的执行效率.
图5 各算法去雾效果对比图Fig.5 Comparison of the effect of each algorithm on fog removal
图6 各算法去雾客观评价结果图Fig.6 Objective evaluation results of each algorithm for fog removal
4 结 论
为解决暗通道先验在亮区域失效和引导滤波引起的边缘模糊的现象,本文提出了一种基于亮区域暗通道自适矫正和加权引导滤波的图像去雾算法.首先利用有雾图像的亮度和饱和度得到相对景深图,自适应得到亮区域分割阈值;其次基于像素灰度值和饱和度对亮区域暗通道进行矫正;然后利用加权引导滤波细化透射率;最后基于相对雾浓度均值矫正图像亮度,得到复原结果.实验结果表明,所提算法亮区域分割准确,解决了引导滤波引起的边缘模糊问题,去雾彻底.算法具有较强的可靠性和鲁棒性.同时与经典算法对比,本文所提算法复原结果的峰值信噪比、平均梯度与信息熵的最大提升分别为34.46%、99.49%和21.18%.如何进一步提高本文算法执行效率,保证图像去雾的实时性,需要后续进一步深入研究.