王效灵,胡志杰,徐帅帅,黄浩如
(浙江工商大学 信息与电子工程学院,杭州 310018)
雾霾是常见的大气污染现象,是由空气中的灰尘硫酸还有硝酸等颗粒物组成的溶胶系统造成的视觉障碍,导致雾霾天成像结果低质,不利于计算机视觉的后续研究,因此图像去雾具有重要的研究意义。
目前,图像去雾领域大致有基于图像增强、基于深度学习和基于图像复原三大研究方向。基于图像增强的方法有直方图均衡[1]、基于Retinex 理论[2-4]等,虽然雾图的对比度等得到了增强,也改善了视觉效果,但无法真实地实现图像去雾。基于深度学习的方法是通过训练网络模型实现端到端去雾,缺点是训练耗时,且目前合成的雾数据集多而自然雾数据集少。ZHANG等[5]提出DCPD 模型,结合语义分割的生成器和判别器实现去雾。CHEN等[6]提出一种基于生成对抗网络的无监督学习训练去雾模型GCANet。REN等[7]提出一种多尺度特征的CNN 模型来训练雾图的透射率进行去雾。ZHAO等[8]提出两阶段弱监督RefineDNet 模型,一阶段采用暗通道恢复可见性,二阶段使用未配对的雾状清晰图像进行对抗性学习提高复原真实性。YANG等[9]提出可实现自增强的去雾网络框架,但对过亮区域的透射率估计偏高,引起深度网络对这些区域的深度预测值偏低。LI等[10]提出一种沙漏式结构且基于残差网络的Hourglass-DehazeNet,在多尺度上进行灵活的信息交互和聚合。基于图像复原的方法是使用特定物理成像模型实现雾气的退化,是目前流行的真实去雾方法。LIU等[11]根据亮度和饱和度呈正相关的规律估计透射率,但对于景深处的去雾效果差。HE等[12]提出经典的暗通道先验(Dark Channel Prior,DCP)去雾算法,利用统计先验知识并结合大气散射模型高效复原无雾图,但出现了一定的光晕伪影、色彩偏移等问题,且在天空区域中会失效。RAIKWAR等[13]将透射率估计问题映射为模糊图像与无雾图像间最小值通道差的估计问题。JU等[14]在大气散射模型中增加光吸收系数来提升恢复图像的可见度,但其拉伸策略的全局性较差。何涛等[15]利用可自动调整的雾气保留参数和容差机制改进了暗通道先验算法,改善对天空区域的处理,但容差系数的固定选择无法适用于不同场景的雾图。LI等[16]和王硕等[17]运用暗通道置信度的理论,自适应修正了DCP 不适用区域的透射率,但处理后图像的景深处去雾效果差。王国栋等[18]利用散射介质成像模型,基于低秩分解并结合像素置乱方法进行去雾,但对雾气分布不均匀的图像处理不佳。吴向平等[19]利用深度学习模型得到雾图的物理景深估计模型,基于景深信息进行自适应图像Retinex 操作实现去雾。
本文提出基于结构相似性(Structural Similarity,SSIM)指标和侧重因子的稳定透射率拟合算法和结合非线性规划(Non-Linear Programming,NLP)模型和偏度知识的新大气光值确定方法,结合并调整置信度解决DCP 在天空区域的失效问题,同时对图像进行策略性的增强融合。
计算机视觉和图形图像领域一般利用大气散射模型来描述雾天图像降质的过程,可表示如下:
其中:x表示图像像素;I(x)表示雾图;J(x)表示无雾图;A表示全局大气光值;t(x)表示透射率;A[1-t(x)]表示大气光幕[20]。在均匀介质中,t(x)可表示如下:
其中:θ表示介质散射系数;d(x)表示成像景深。
因此,根据大气散射模型,输入雾图、大气光值和透射率就能反解方程得到去雾图。
除室外无雾图像的非天空区域外,图像的其他部分至少有一个颜色通道强度趋近于0,对于雾图I(x),暗通道可表示如下:
其中:Jdark(x)表示暗通道;Ω(x)表示最小值滤波窗口;c表示R、G、B颜色通道。
结合式(1)和式(3),对于给定的全局大气光值A,计算出雾图的透射率t(x):
其中:ω表示雾气保留系数,一般取为0.95,维持图像的少量雾气以保证真实性。
根据大气散射模型,得出最终的去雾图像J(x)可表示如下:
其中:tω设置为0.1,避免分母为0。
结构相似性[21]从亮度、对比度、结构化3 个层面,对A、B进行相似性的客观评估,可表示如下:
其中:Lig(A,B)表示亮度相似度;Con(A,B)表示对比度相似度;Str(A,B)表示结构化相似度。A、B两图SSIM 的值域为[0,1],SSIM(A,B)越大,说明图像A、B整体越相似。
改进暗通道先验和策略性融合的图像去雾算法流程如图1 所示。首先,获取多窗口下DCP 算法的透射率ti(x)和相应大气光值Ai;接着,使用基于SSIM 的调节因子αi和侧重因子βi拟合透射率;然后,假设一个非线性规划模型,通过系数约束和偏度约束,从Ai组中计算A,继续引入并调整置信度补偿天空区域的透射率,并快速引导滤波细化;最后,反解大气散射模型,转换为HSV 模型增强亮度V,结合置信度特点进行增强前后图像的策略性融合,得到最终的去雾图。
暗通道先验算法去雾效果如图2 所示(彩色效果见《计算机工程》官网HTML 版)。选择15×15 像素的最小值滤波窗口对最小值通道进行处理,具有较好的去雾能力且复原度高,但透射率精细度较低、信息丢失导致去雾图存在光晕现象,如图2(c)所示。通过逐渐缩小最小值滤波窗口的尺寸,虽然透射率越来越高,但复原效果越来越差,图像失真、过饱和严重,如图2(i)所示。
根据不同尺寸的最小值滤波窗口,基于暗通道先验算法可得到不同效果倾向的复原图。因此,本文提出一种基于SSIM 指标的调节和侧重因子并用于拟合多窗口透射率的算法。
首先,选取3×3、6×6、9×9、12×12、15×15 像素的最小值滤波窗口,使用式(3)和式(4)处理雾图,分别得到对应的透射率t0(x)、t1(x)、t2(x)、t3(x)、t4(x)和大气光值A0、A1、A2、A3、A4,其中,t0(x)精细度相对较高但复原度相对较低,t4(x)反之。
接着,结合式(6)定义调节因子αi:
其中:SSSIM[ti(x),t0(x)],i∈[0,4]为相对精细程 度;SSSIM[ti(x),t4(x)]为相对复原程度;αi=1 表示第i幅雾图的透射率在样本组中没有相对信息提供,αi越大,说明能提供越多的相对信息。
然后,计算全局侧重数β:
其中:N=4;β>1 表示在拟合过程中侧重于相对精细程度大的透射率,反之侧重于相对复原效果好的透射率。侧重因子βi可表示如下:
其中:若全局侧重数β>1,当透射率ti(x)对应的相对精细程度大于相对复原程度,则令其侧重因子βi=β,否则保持为1;若全局侧重数β≤1,当ti(x)对应的相对复原程度大于相对精细程度,则令侧重因子否则保持为1。
结合式(7)~式(9),拟合得到新的透射率t(x):
表1 给出了原始雾图的各透射率,可以看出通过αi和βi拟合出的透射率相对信息最多,稳定性更好。
表1 原始雾图的透射性能Table 1 Transmission performance of the original hazy images
利用暗通道先验算法得到大气光值A0、A1、A2、A3和A4,因为理论稳定 或者波动幅度 不大,所以称(A0,A1,A2,A3,A4)为大气光值组。当它们全部相等时,则认为得到稳定可靠的全局大气光值;当它们不完全相等时,则必然存在最大值、最小值导致大气光值误差。
因此,基于NLP 模型求取雾图的全局大气光值A,使A在一定约束条件下保持理论合理性,假设:
其中:Z是待求取符合约束条件的最大值,避免了过小的不准确大气光值;Amin、Aavg和Amax分别是(A0,A1,A2,A3,A4)中的最小值、平均值和最大值;通过差值步长比控制求和权重进行系数约束,增加异常Amin或者Amax情况下的容错性;条件约束是计算偏度PZ并迫使其尽可能靠近0。亮通道原理[22]指出:雾图的像素点的亮通道强度趋近于其无雾时的大气光值强度。雾图亮通道的所有强度值可视作一个大气光值组。从目前规模较大的单幅图像去雾数据集RESIDE[23]中随机取4 000 幅雾图,根据亮通道原理[22]求取各像素的亮通道强度组成大气光值组,利用MATLAB 库函数Skewness 计算各组的偏度值,4 000 幅随机雾图大气光值组的偏度统计分布如图3 所示。
图3 4 000 幅雾图大气光值组的偏度统计分布Fig.3 Skewness statistical distribution of atmospheric light group in 4 000 hazy images
增加样本继续进行统计,可以发现:对于不完全相等的随机大气光值组而言,理论成立的样本光越多,其组元素值表现为相对均匀地分布在均值两侧,即偏度趋近于0。
因此,使用Z对(A0,A1,A2,A3,A4)随机组进行偏度校正。偏度PZ可表示如下:
其中:AZ,i表示新大气光值组(A0,A1,A2,A3,A4,Z)元 素;λZ表示该组的标准差;AZ,avg表示该组的均值。
最后,将式(12)代入式(11)求解NLP 模型符合条件的最优Z值,并取当前组的AZ,avg为全局大气光值A。
暗通道先验算法不能处理天空区域,引入置信度[17]并调整,以补偿这些区域的透射率。首先,结合二维高斯函数,利用HSV 模型的V、S空间信息,计算置信度C(x):
其中:Vmin(x)、Smax(x)是分别对V、S分量进行最小值和最大值滤波的结果;文献[17]令V、S分量滤波窗口的大小等于其计算暗通道时的窗口大小,由于采用多窗口拟合透射率,为了稳定尺寸,选取第2.1 节的中间窗口大小,即9×9 像素;C(x)设定阈值为0.5,防止透射率过补偿;c是自适应调节参数。c可表示如下:
其中:A为全局大气光值,可自动调节c以取得更好的算法效果。
包含不同尺寸的天空区域的雾图和对应图如图4 所示(彩色效果见《计算机工程》官网HTML版)。观察图4(d)并结合像素点值可得一般区域的置信度非常大并接近1,利用该特点进行透射率的快速补偿[如式(15)所示]。采用快速引导滤波器进一步细化得到最终的透射率,反解大气散射模型得到去雾图。对比图4(b)和图4(e)可以看出,在对置信度调整后,既能补偿天空区域的透射率,又能维持一般区域的稳定性,复原效果更佳。
基于暗通道先验算法的复原图像往往整体偏暗,因此将复原图转换成HSV 模型,对亮度V空间进行增强。
在V空间进行对比度受限的自适应直方图均衡化(Contrast Limited Adaptive Histogram Equalization,CLAHE),将对比度限制为0.01 防止图像过增强,使用2×2 像素的滑块进行局部均衡。
如图5 所示(彩色效果见《计算机工程》官网HTML 版),对比图像增强前后,非天空场景的视觉效果得到显著提升,但天空区域出现了一定的伪影和纹理,CLAHE 造成天空失真,反观增强前的天空场景保留完好,因此设计一种图像融合策略。
图5 图像增强前后对比Fig.5 Comparison of images before and after enhancement
首先,将置信图的天空部分(背景色)和非天空部分(前景色)天然粗分割,可直接用最大类间方差法快速进行二值分割。对于置信图C(x),将非天空区域和天空背景的阈值记作k,属于非天空区域的像素点数占C(x)总像素数的比值为φ0,平均像素值为μ0。同理,天空背景有φ1和μ1。类间方差g可表示如下:
遍历C(x)的像素值,得到使g最大情况下的最优阈值k,分割置信图得到二值图K(x),如图6所示。
图6 置信图的二值分割Fig.6 Binary segmentation of confidence image
令CLAHE 前后的去雾图分别为Jbef(x)和Jaft(x),为了减弱K(x)的0-1 突变边缘造成最终图像J(x)在拼接处的明显痕迹以及违和感,采用各向同性的高斯平滑核增加标准差σ来模糊置信度二值图,可表示如下:
设置方形高斯平滑核的尺寸如下:
σ越小,拼接区域越突兀;σ越大,Jbef(x)天空区域的权值越不稳定,且会弱化图像整体增强效果,因此一般取15。最终图像J(x)可表示如下:
融合图像的天空背景真实准确,非天空场景得到很好的视觉性增强且融合效果不突兀。
为了验证所提算法的有效性,搭建实验平台进行验证。硬件平台配置为Intel Core i7-6700HQ@2.60 GHz,12 GB 内存,Windows 10 专业版,软件平台为MATLAB R2019a。实验图片来自去雾领域的相关论文和单幅图像去雾数据集RESIDE[23],混合主观测试子集HSTS 包含了10 张真实雾图以及10 张对应的已知样本真值图片(合成),从主客观角度与其他算法进行比较分析。
通过主观评价能直接快速对复原效果进行分析,所提算法与其他去雾算法的复原效果比较如图7所示(彩色效果见《计算机工程》官网HTML 版)。
图7 不同算法的复原效果比较1Fig.7 Comparison 1 of restoration effects of the different algorithms
如7 图所示,image 1、2、3 是不包含天空区域的雾图,image 4、5、6 雾图分别存在不同尺寸的天空场景。由图7 可以看出:文献[6]算法处理的image 4、5、6 天空区域效果不稳定,其中,image 4 的天空严重失真,处理的image 1、2、3 存在一定的颜色偏移,视觉效果较差;文献[12]算法由于较低的透射率导致image 3、5、6 存在明显光晕效应,因为图像中高亮像素的影响导致image 1 的颜色偏移、image 2、3 图像过暗,image 4、5、6 的天空失真严重;文献[15]算法引入容差机制但由于容差系数过大,导致image 1、2、3、4 的去雾效果不理想;文献[17]算法用自适应校正透射率算法进行去雾,观察image 1、3、5 存在景深突变区域雾气残留问题,image 2、6 颜色过暗,image 4 天空轻微失真。经过大量雾图的测试实验可知,所提算法对包含不同尺寸天空区域的雾图表现良好,能够复原并增强场景细节和色彩,同时不失去图像去雾真实性。
相较于主观评价,客观评价可以更好地分析算法的性能表现。使用HAUTIÈRE等[24]提出的可见边增率(l)、信息熵(H)、平均梯度(G)3 个性能指标进行客观评价。
l计算图像的边缘信息变化程度,值越大,图像复原效果越好[25],可表示如下:
其中:lr和lo分别为恢复图像和原始图像的可见边数。
H计算图像的信息量程度,值越大,包含的信息越多,可表示如下:
其中:M是不同像素点值ai的总数;R(ai)表示每个ai值在所有像素中出现的概率。
G计算图像的纹理复杂程度,值越大,图像越清晰,分辨率越高,可表示如下:
其中:m和n分别是图像的总行数和总列数;G(x,y)为图像第x行和第y列的灰度值。
根据图7,各算法处理得到的图像与各雾图之间的l指标如表2 所示,其中,最优指标值用加粗字体标示。由表2 可以看出,所提算法对不同场景下的雾图均有较高的l值,较其他算法提升约79%~131%,在保护雾图强边缘细节的同时,能够恢复出大量被雾气影响的边缘信息。
表2 不同算法处理各雾图的l 指标比较Table 2 Comparison of l indexes for processing various hazy images using different algorithms
根据图7,各算法处理得到的图像与各雾图之间的H、G指标如表3、表4 所示,其中,最优指标值用加粗字体标示。由表3、表4 可以看出:其他算法的处理导致一些雾图的失真或是本该平滑的区域(如天空)出现过多纹理,存在拉高了H和G指标的情况;所提算法的H、G表现优势明显,较其他算法分别提升3%~9%、39%~81%,同时保留了平滑区域,符合主观评价中图像信息丰富、分辨率高、天空自然的复原效果。
表3 不同算法处理各雾图的H 指标比较Table 3 Comparison of H indexes for processing various hazy images using different algorithms
通过综合比较分析可知,所提算法处理不同场景下的雾图时去雾效果真实、细节丰富、图像清晰,取得了很好的去雾效果。
图8 给出了文献[8,10,19]以及所提去雾算法在HSTS 测试集上的定性结果(彩色效果见《计算机工程》官网HTML 版)。对照各样本真值图8(f)可以看出:文献[8]算法在天空区域有云团和图像阴暗处的处理效果不佳;文献[10]算法的沙漏式多尺度操作会引起一些场景细节的丢失;文献[19]算法的整体色彩还原度欠佳,采用双线性插值映射法减弱块与块间的不连续边缘能力有限。
SSIM 和峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)是两种广泛使用的评价去雾图像质量的指标。各算法处理得到的图像与各雾图样本真值之间的SSIM、PSNR 指标定量比较如表5 所示,其中,最优指标值用加粗字体标示。由表5 可以看出:文献[8,10]算法在若干图上取得了较高的SSIM 或PSNR 指标,该结果是符合预期的,因为文献[8]算法使用场景数据集ITS 的全部样本进行训练,在一定程度上增强了模型对测试子集HSTS 的有效性,文献[10]算法也是类似的;所提算法虽然基于暗通道先验理论,但是对于基于深度学习去雾常用的开源数据集,也具有一定的性能优势。
表5 不同算法处理各雾图的定量比较Table 5 Quantitative comparison for processing various hazy images using different algorithms
为了验证改进模块的有效性,进行消融实验。消融实验进行如下分组:组1(DCP),组2(DCP+透射率拟合模块),组3(DCP+天空区域优化模块),组4(DCP+透射率拟合模块+天空区域优化模块),组5(DCP+透射率拟合模块+天空区域优化模块+策略性融合模块,即所提算法)。消融实验结果如表6 所示,可以看出:设置对照组1、2 和3,透射率拟合模块(增加透射率的相对信息)和天空区域优化模块(解决DCP 不适用于天空、明亮区域的问题)均能提升DCP 算法的性能;设置对照组2、3 和4,模块级联叠加使用效果更佳;设置对照组4 和5,增加策略性融合模块能显著提升l指标(视觉表现),同时维持SSIM 和PSNR 在较高水平上,验证了所提算法能在策略性融合过程中尽可能地减少图像增强环节带来的失真,提高复原质量。
表6 消融实验结果Table 6 Ablation experimental results
为了解决基于暗通道先验去雾算法存在的不足,本文提出一种改进暗通道先验和策略性融合的图像去雾算法,通过定义调节和侧重因子拟合多窗口透射率得到稳定且图像信息丰富的结果,同时利用大气光值组结合非线性规划模型和偏度估计出准确的大气光值,引入置信度快速修正天空区域的透射率,最后对去雾图进行策略性的增强融合。实验结果表明,所提算法复原的图像去雾效果好,天空区域处理真实自然,主观评价较对照算法更具优势,客观性能表现同样较好。但由于算法滤波窗口尺寸选取存在一定局限性,目前计算的调节及侧重因子为全局量,后续将使用雾气块或场景特征块将因子计算改进为局部动态量计算,进一步提升整体去雾效果。