张丽华,孙钢灿,酒明远
(1.郑州大学 河南先进技术研究院;2.郑州大学 信息工程学院,河南郑州 450001)
雾霾是一种常见的大气现象,出现雾霾时空气中悬浮各种颗粒物,比如微小水滴、冰晶、灰尘等,不仅使大气变得浑浊,而且会吸收、反射和散射来自大气和物体的光,令场景能见度大幅降低,导致采集的图像质量变差,图像中有用信息急剧减少。作为计算机视觉系统处理图像的源头,采集的图像质量对后续的图像处理至关重要,图像质量的优劣影响应用系统的安全性和稳定性。图像去雾技术能减小雾霾对图像造成的负面影响,增强图像对比度,恢复图像颜色或场景深度,使图像更加清晰,达到后续处理要求。因此,对图像去雾算法进行深入研究具有重要意义。
近年图像去雾理论和算法研究成果颇丰,现将图像去雾算法分类介绍如下。
(1)基于图像增强去雾算法。这类去雾算法通过最大限度地去除图像噪声减小对图像的干扰,进而增加图像对比度,最后达到图像去雾目的。代表性方法有直方图均衡化、Retinex 理论、小波变换等。杨骥等先将图像的颜色空间从RGB 转换到HIS,然后利用模块间具有相似性的特点进行自适应更新,最后定义阈值裁剪直方图;张赛楠等利用中心自适应调节拟合函数改进的SSR算法增强图像对比度,进而实现图像去雾目的。
(2)基于图像复原去雾算法。这类算法主要依据大气散射模型,通过对大量不同场景中的有雾图像和清晰无雾图像进行实验观察和数据分析,发现其中存在的某些映射关系,然后根据雾霾图像的形成过程进行逆向运算,复原出无雾图像。Tan在马尔科夫随机场框架中构建代价函数,明显提升了图像的对比度,但图像颜色会出现严重失真;Tarel 等在求取大气光值A
时使用经典中值滤波器,该滤波器可以保留景物边缘细节,但同时也保留了城市建筑、树木等物体拐角处的残雾或伪影;利用一种传统的直线中值滤波器,既可以保留边缘又可以保留钝角,但图像颜色会过饱和;Wang 等提出基于多尺度深度融合(MDF)的去雾算法,去雾图像具有较好的场景深度,能有效缓解去雾图像的光晕效应和白色物体问题,不足的是算法处理速度较慢;He 等提出暗通道先验理论,在非天空区域具有明显的去雾效果,但景物边缘存在明显的光晕效应且在景深处去雾不彻底。使用软抠图法优化透射率,可以较好地抑制光晕效应,但是这种方法耗时长,在实际场景中应用非常有限;张晨等利用图像融合并通过构造高斯函数,对不同景深处的暗通道设置不同的权值。该算法在远景处去雾效果明显,但随着权值的增大,近景的物体颜色会过饱和;Jackson 等利用瑞利散射理论和折射率系数估计初始透射率,采用快速导频滤波器对初始透射率进行细化处理。使用该算法能得到不错的去雾结果,但去雾后图像仍存在少量伪影;Salazar 等利用形态学重建来估计透射图,保留了处理过程中各阶段的重要结构,但是不适用于处理天空区域;Sun 等采用局部大气光估计方法,弥补了全局大气光值在取值方面较为单一的问题。(3)基于深度学习去雾算法。这类方法需要对大量的仿真雾天数据集进行训练,然后将得到的网络结构用于图像去雾。Cai 等提出可训练的端到端系统,采用基于神经网络的深度架构,设计专门的层来提取图像特征,并提出双边校正线性单元这一新的非线性激活函数来提高复原图像质量;Li 等提出基于深度卷积神经网络(CNN)的图像去雾算法,它包括一个感知雾霾的去除子网和一个细化子网,分别用来重建和优化去雾图像;Yin 等采用变分图像去雾,通过创建彩色转移图像去雾模型进行去雾,并设计基于CNN 的深度学习框架作为监督学习策略获取模型系数信息。
受到以上去雾方法启发,本文针对传统暗通道先验算法去雾程度不彻底、景物边缘存在光晕效应以及处理速度慢等问题,提出一种基于暗通道先验去雾的改进算法。首先,对原始最小通道图进行底帽变换得到图像的轮廓图,并与原始最小通道图的灰度反转图融合,补偿暗通道的像素值;然后,将归一化处理的最小通道图进行双边滤波和开、闭运算,将得到的透射图与改进的暗通道得到的透射图进行融合,优化透射率。实验结果表明,本文算法能够有效保留图像边缘信息,复原图像清晰明亮,可以实现图像的实时处理。
空气中飘浮的大量颗粒物对光的散射作用是产生雾霾的一个关键原因。在图像处理领域中,常用大气散射模型描述雾天降质图像,其数学表达式为:
其中,χ
=(x
,y
)表示像素坐标点,I
(χ
)表示有雾图像,J
(χ
)表示无雾图像,A 为全局大气光值,t
(χ
)表示介质透射率,t
(χ
)=e
,d
(x
)表示场景深度,β
为大气散射系数。t
(χ
)的值与场景深度密切相关,其值越小表示雾的浓度越大。根据式(1)可知,获取无雾图像J
(χ
)的关键在于从有雾图像中估算出透射率t
(χ
)和大气光值A
,但t
(χ
)显然无法从式(1)中直接获取,因此需要使用一些先验和假设来提供更多条件。t
(χ
)的估计和大气光值A
的获取提供了方向,其基本思想是:在大多数室外无雾图像的RGB 三个颜色通道中,总有一些像素至少有一个颜色通道在非天空区域中具有较低甚至接近于0 的像素值。暗通道先验理论的数学表达式为:其中,J
(χ
)表示暗通道图像,J
(χ
) →0。J
表示有雾图像某一个颜色通道的值,Ω
(χ
)表示以像素(x
,y
)为中心的矩形滤波窗口,本文中Ω
(χ
)=15。首先假设透射率t
(χ
)为一个常数,根据已知条件求出大气光值A
,然后结合式(1)和式(2)可得到透射率的表达式如下:实际应用中,为了让去雾后的图像更接近真实世界中的场景,复原图像需要保留轻微的雾气,所以需要引入一个系数ω
,本文中ω
=0.95。当透射率t
(χ
)值很小时,J
(χ
)将会很大,复原图像会向白场过度,造成图像失真,所以需设置一个阈值t
,使复原图像的亮度值在一个正常范围内。最终去雾图像表达式为:其中,当t
<t
时,令t
=t
,t
的取值设为0.1。在图像处理中,形态学处理是使用范围最广泛的技术之一,在简化图像、保留物体形状主要特征等方面发挥着重要作用。本文中用到的形态学处理主要有开运算、闭运算和底帽变换。
形态学腐蚀指以结构元素为模板,寻找在结构元素邻域范围内图像像素值与结构元素之差的最小值。形态学膨胀则是以结构元素为模板,寻找在结构元素邻域范围内图像像素值与结构元素之差的最大值。形态学腐蚀和膨胀的数学表达式分别为:
其中,I
(χ
)表示输入图像,B
表示结构元素。形态学处理中,开运算的过程可描述为先对输入图像进行腐蚀运算后进行膨胀运算,根据噪声和需要消除的目标特点,选取形状合适的结构元素,消除图像中的孤立区域和毛刺,保持图像亮度基本不变;闭运算的过程可描述为先对输入图像进行膨胀运算后进行腐蚀运算,对图像中物体内的细小空洞具有填充作用,也可用来连接物体中相邻区域之间被断开的部分和平滑物体边界。开、闭运算表达式分别为:
暗通道先验算法虽然可以消除大部分雾气,但在复原图像的景物边缘处往往存在明显的光晕效应,且在景深处未能彻底去雾。本文针对这些问题进行改进,主要包括暗通道改进和透射率优化两个部分,图1 为本文算法流程。
I
(χ
),根据式(2),可将原始最小通道表示为:Fig.1 Flow of the proposed algorithm图1 改进算法流程
底帽变换是闭运算与原图之差。底帽变换的作用是突出图像轮廓周围亮度较暗的区域,得到较好的轮廓图。底帽变换还可以校正不均匀光照对图像的影响,将最小通道图的整体亮度调整到一个合适的范围,以便对全局大气光值进行更精确的估计。根据式(8),底帽变换可以表示为:
图像融合指利用图像处理和计算机技术等手段处理将两幅或多幅图像整合成一幅图像,以便最大程度地提取和利用每幅图像中的有利信息。将经过底帽变换得到的轮廓图和最小通道的灰度反图进行融合,可以增强图像边缘像素的像素值,优化图像边缘细节。本文采用像素级的加权平均算法融合上述两幅图像,如图2 所示。图2(d)为图像融合后的最小通道图。
Fig.2 Calculation of dark channel图2 暗通道计算
式中,1-I
(χ
)表示对最小通道图进行灰度反转,w
、w
为加权系数,两者之间的关系满足w
+w
=1。经过反复实验,w
、w
的取值分别为w
=0.56,w
=0.44。对融合后的图像再次使用灰度转换,然后进行最小值运算,便可得到最终的暗通道图。
选择经过改进的暗通道图来估计大气光值。在暗通道图中寻找亮度值前0.1%的像素点,将这些像素点的强度平均值作为全局大气光值。
式中,h
和w
分别表示暗通道图的高和宽。对输入图像进行归一化处理:
归一化后最小通道表示为:
透射率优化过程:首先利用改进的暗通道和式(3)求出透射率t
(χ
),然后经过双边滤波器和形态学处理得到透射率t
(χ
),将t
(χ
)和t
(χ
)融合,得到最终透射率t
(χ
),最后使用导向滤波对t
(χ
)进行精细化处理。初始透射率可以表示为:
其中,a
为常数,作用是给图像做线性变换从而增加图像对比度,本文a
取值为1.15。双边滤波是一种常用的非线性滤波,在对图像空间邻近度和像素值相似度进行折中处理的同时,也考虑了图像的空域信息和灰度相似性。本文采用双边滤波对初始透射率图进行滤波处理,目的是减少噪声对图像的干扰,平滑并保留图像物体边缘信息。双边滤波表示如下:
根据式(7)、式(8),对滤波后的透射图进行开、闭运算,结果如图3(d)、图3(e)所示。
为了降低算法复杂性,仍然采用像素级加权平均算法对t
(χ
)和t
(χ
)进行融合,其数学表达式为:其中,k
和k
为加权系数,同样k
、k
满足k
+k
=1,经过试验,当k
=0.4、k
=0.6 时图像去雾效果最好。引导滤波不仅可以保持边缘,还能够降低图像噪声,因此本文使用引导滤波对透射率t
(χ
)进行精细化处理。最终的透射率t
(χ
)表达如下:最后,利用前面求出的最终透射率t
(χ
)和全局大气光值A
,结合大气散射模型得到复原图像。去雾结果如图4(b)所示。Fig.3 Calculation of transmissivity图3 透射率计算
Fig.4 Haze removal results图4 去雾结果
本文实验编译环境为Python3.7,计算机操作系统为Windows10,CPU 为3GHz,运行内存为8GB。
为验证本文算法的去雾性能,选取8 幅在室外自然场景下拍摄的经典雾天图像,3 幅室外自然场景的合成加雾图像和3 幅室内场景的合成加雾图像进行实验观察和分析,并将文献[8]Tarel 等算法、文献[10]He 等算法和Zhu等的结果与本文算法实验结果进行主观分析和客观对比。本文中室外场景合成图像选自O-HAZE 数据集,室外场景合成图像选自D-HAZY 数据集。
主观分析是通过人的视觉对图像优劣进行最直观的评价。图5 分别给出了本文中不同去雾算法的去雾结果,图5(a)是从自然环境中采集的有雾图像,图5(b)是经过He算法处理后的去雾结果,可以看出,虽然图像中的雾能够基本清除,去雾后图像整体色彩也较为自然,但是去雾不够彻底,在第1、2、3、6 等几幅图中可以很直观地看出在物体边缘处和景深突变处存在光晕效应。图5(c)是Tarel算法结果,该算法整体看去雾程度很高,但景物边缘处有明显残雾,如第2 幅图像中有明显的雾气残留在树叶周围;从图5(c)中可以看出Zhu 的算法去雾程度不均匀,在同一幅图片不同景深处去雾效果差距很大,如第2、4、8 这3 幅图中,中间部分去雾效果明显比其他区域好。此外,Zhu算法复原图像颜色出现过饱和,如第3 幅图像建筑物颜色相对其他几种算法明显偏深;Tarel算法和Zhu算法复原图像亮度变暗,导致图像景物细节模糊,如第5 幅图像中,由于使用这两种算法去雾后的图像比较昏暗,进而导致无法得到较多的有用信息。图5(e)为本文算法去雾结果,经过几种算法去雾效果对比,能够明显发现本文算法更加出色,如第1 幅图像,在景物边缘几乎看不到明显的光晕效应,且在景深处去雾程度较为彻底,细节恢复程度高,如第6 幅图像,可以清楚看到远景处的楼房细节。另外,对比其他3 种算法,本文算法的去雾图像亮度合适,如第5 幅图像,图中景物更加明亮清晰。
室外和室内合成图像去雾对比结果分别如图6、图7 所示。实验结果显示,在这两种场景中,本文算法都有较好的去雾表现。虽然室外合成图像的复原结果颜色有轻微偏差,但整体来看本文算法复原图像细节清晰,还原度较高且亮度适中,视觉效果更好。
Fig.5 Comparison of defogging effects of real-world images图5 自然图像去雾效果对比
Fig.6 Comparison of defogging effects of synthetic images(outside)图6 合成图像去雾效果对比(室外)
为了对本文算法作出更准确的评价,采用峰值信噪比(PSNR)、结构相似度(SSIM)和处理时间t 作为评价指标,对复原图像质量进一步分析。PSNR
表示在一幅图像中可能产生的最大功率与噪声功率的比值,PSNR
可以衡量噪声对图像的干扰程度,比值越高表示干扰越小。PSNR
表示为:SSIM
是描述两幅图像之间结构相似性的度量指标,分别从图像亮度l
(χ
)、对比度c
(χ
)和结构s
(χ
)三个方面对复原图像的相似性进行评价。SSIM
的取值范围为(0,1),其值越大,表示复原图像与原图像相似度越高。Fig.7 Comparison of defogging effects of synthetic images(indoor)图7 合成图像去雾效果对比(室内)
表1、表2 分别给出了PSNR
和SSIM
两种评价指标的实验数据,通过对数据分析可知,在对室外合成图像进行去雾时,本文算法复原图像的PSNR
值比其他算法高,表明噪声干扰较小;SSIM
指标的数据值更接近于1,表明本文算法去雾图像与原图的结构相似度更加接近。Table 1 Comparison of PSNR results表1 PSNR 结果对比
Table 2 Comparison of SSIM results表2 SSIM 结果对比
表3 列出了4 种算法处理单幅图像所耗费的时间,从表中可以看出,He算法时间消耗最多,而本文算法处理时间最短。综合3个图像质量评价指标的对比结果可以得出,本文算法的去雾效果更加出色,不仅复原图像的对比度和清晰度大幅提高,图像视觉效果好,而且处理速度也有较大优势。
Table 3 Comparison of running time(seconds)表3 处理时间对比 (s)
本文提出一种基于底帽变换与图像融合的图像去雾算法。首先改进图像暗通道,利用底帽变换和图像融合对暗通道的像素值进行补偿,同时调整图像整体背景亮度,从而能够更加精确地估计大气光值;然后利用双边滤波和形态学处理、改进的暗通道分别对透射率进行估计,再将两者进行图像融合,从而优化图像透射率。实验结果表明,与传统暗通道先验算法相比,本文算法处理后的图像PSNR 和SSIM 指标分别提高了4.3%和8.5%,处理时间减少了98.5%,证明本文算法能够有效恢复图像细节,节约时间成本。本文算法能够运用到视频中实现实时去雾,但此过程会出现轻微闪烁现象,下一步将针对此现象展开研究。