黄治勇 李震 李良荣
摘 要: 针对现有去雾算法在天空区域易失真和复原图像整体偏暗的问题,提出一种结合天空区域分割的图像去雾算法。该算法首先利用图像局部香农熵将原图像分割为天空区域与非天空区域;然后对相应的透射率分别进行求取,并利用快速引导滤波对最终的透射率进行细化处理,再采用四叉树搜索算法求取大气光值,最后利用暗原色先验模型恢复出无雾图像;另外对于整体偏暗的复原图像,则利用改进的局部对比度保留的非线性增强方法进行亮度调整。实验结果表明,与其它去雾算法相比,所提算法能更有效地复原图像;复原后的图像无颜色失真和光晕效应,而且清晰度和亮度更佳,整体视觉效果更加符合人眼视觉特性。
关键词: 图像去雾; 局部香农熵; 快速引导滤波; 四叉树搜索; 暗原色先验; 亮度调整
文章编号: 2095-2163(2021)07-0013-07中图分类号:TP391.41文献标志码: A
Image dehazing algorithm based on sky region segmentation
HUANG Zhiyong, LI Zhen, LI Liangrong
(College of Big Data and Information Engineering, Guizhou University, Guiyang 550025, China)
【Abstract】Aiming at the problem that the existing defogging algorithm is invalid in the sky area and the restored image is overall dark, this paper proposes an image defogging algorithm combined with sky area segmentation. The algorithm first uses the local Shannon entropy of the image to divide the original image into sky and non-sky regions; then calculates their transmittances separately, and uses fast guided filtering to refine the final transmittance, and then uses the quad-tree search algorithm to obtain the atmospheric light value, finally uses the dark channel prior model to restore the fog-free image; in addition, for the overall dark restored image, the improved local contrast preservation nonlinear enhancement method is used to adjust the brightness. The experimental results show that compared with other dehazing algorithms, the proposed algorithm can restore the image more effectively; the restored image has no color distortion and halo effect, has better clarity and brightness, and the overall visual effect is more in line with human vision characteristic.
【Key words】image dehazing; local Shannon entropy; fast guided filtering; quad-tree search; dark channel prior; rightness adjustment
0 引 言
由于戶外拍摄易受到大气中水汽、烟尘、微水滴等各种微粒子散射物的影响、在雾霾等恶劣天气的条件下拍摄的户外图像的质量往往会出现比较严重的退化,如图像整体模糊、对比度变差、色彩失真等。致使后续图像在特征提取、目标识别、视频监控[1]等领域的应用比较困难。因此,对图像去雾技术的研究非常具有实用价值[2]。
目前,图像去雾技术主要分为图像增强、图像复原及深度学习的图像去雾算法。图像增强去雾方法主要有直方图均衡化[3]、Retinex[4-5]和小波变换[6-7]等,这些方法通过增强对比度来改善图像视觉效果,虽然图像的清晰度有一定的提升,但没有从图像降质的根源分析,易造成信息的丢失和相应噪声的引入,并出现过饱和和光晕效应等失真问题[8]。图像复原的本质是根据雾霾环境下成像的物理特征,基于大气散射物理模型提出假设或先验信息等来求解模型中的参数,从而复原出无雾图像[9]。其中,文献[10-11]提出暗原色先验的假设,大气光值与场景透射率通过暗原色先验来求取,此方法对于不含有天空区域的户外图像来说去雾效果还不错。但当图像中有天空等明亮区域时,假设就不成立了,会偏大大气光值的估计,而且透射率也不能精确地求出,此外,图像的视觉效果也会因图像整体偏暗而降低。文献[12]提出场景透射率固有的边界约束算法来细化透射率,然而某些区域的透射率会因约束条件的局限而被错误地估计,导致复原图像出现色彩失真。文献[13]提出一种以颜色簇为先验的非局部透射率估计方法,此方法估计物理参数的准确性不理想,复原结果中局部容易产生过饱和现象。
近年来,随着深度学习的发展,深度学习在图像去雾方面广为应用。如文献[14]提出一种端到端的网络DehazeNet来估计透射率,该方法在去除雾边缘上有比较好的效果,但去雾不彻底,复原后的图像表面还有雾气残留,而且图像整体偏暗。文献[15]利用多层感知器来估计透射率,该方法虽然提高了去雾效率,但对含有天空的图像去雾后有失真,去雾效果并不理想。
上述的一些主流去雾算法虽然均能取得较好效果,但针对含有天空的图像时,去雾效果普遍不佳,而且复原后的图像整体偏暗。为此,本文针对含有天空的户外有雾图像常规去雾后天空区域易失真等问题,提出一种结合天空区域分割的图像去雾算法。主要根据天空区域的特点,利用图像局部香农熵将天空区域分割出来进行单独处理,这样在消除雾气的同时避免了天空区域出现色彩失真等负面效应;针对传统方法估计大气光值的弊端,则是采用了鲁棒性更强的四叉树搜索法来估计,以更准确地估计大气光值;最后采用一种改进的具有局部对比度保留的非线性增强方法对复原图像进行亮度调整,使得最终的恢复图像色彩还原和亮度效果更佳。
1 理论基础
1.1 大气散射模型
根据大气散射理论, 雾化图像的退化过程可用大气散射模型[7]来表述:
其中,I(x)、J(x)、A、t(x)分别表示输入原雾图像、复原后的图像、大气光强、透射率。I(x)为已知,J(x)需通过估计参数A和t(x)来求得。
1.2 暗原色先验理论
暗原色先验理论指出:对于绝大多数不含天空区域的户外无雾图像,总存在大量像素在至少一个颜色通道上的亮度值很小并趋于0[10]。即:
其中,Jc是无雾图像的某一颜色通道;c∈{r,g,b}表示3个颜色通道;Ω(x)表示以x为中心的局部区域块;Jdark是图像J的暗原色;min(·)是最小值滤波函数。对式(1)两边运用最小值运算符,并利用式(2)可得到透射率t(x):
真实场景中,从人的视觉角度出发,雾的存在可以让人们感受到景深的存在,为了体现图像深度而避免去雾效果不自然,引入一个去雾因子σ(σ∈[0,1])来保证少许雾的存在,通常,σ=0.95,以改善深度感知。式(3)则进一步写成:
式(4)得到的透射图中通常会出现块效应, 文献[11]使用引导滤波法来细化透射率t(x),求得透射率t(x)和大气光值A后, 再根据式(1)就可得去雾后的图像J(x)。其表达式为:
文献[10]通过取暗原色Jdark中前0.1%亮度最大的像素,并将其对应在原图中的最大值作为A的估计值。其中,J(x)会因t(x)的值过小而偏大,直接恢复的无雾图像容易产生噪声,故引入一个下限约束值(通常取0.1)对t(x)进行约束。
该方法对于不含天空的雾图具有良好的去雾效果。但实际应用中,采集到的户外图像更多的是包含天空的,由于天空区域的暗原色值并不趋于0,不满足暗原色先验理论成立的前提条件,会导致天空区域出现色块以及偏色等现象,导致去雾图像质量不高,因此暗原色先验去雾在实际应用中具有一定的局限性。
2 本文算法
针对暗原色先验在天空区域会失效的缺陷,本文对天空区域的特点进行分析,利用图像局部香农熵进行天空区域分割,将原图像划分为天空和非天空两区域,采用文献[10]的方法求取非天空区域的透射率,利用天空区域归一化亮度图像直方图中处于中心区域的亮度值來代替天空区域的透射率,然后采用快速引导滤波[16]对最终的透射率进行细化处理;针对文献[10]求取大气光值A时易受到大块白色建筑或者物体的干扰,本文利用更具鲁棒性的四叉树搜索法来估计大气光值;对于去雾复原图像整体偏暗问题,利用改进的局部对比度保留的非线性增强方法来调整,使得最终的去雾图像有良好的视觉效果。
2.1 天空区域分割
图像香农熵是一种统计形式,可以用来度量图像中平均信息量的多少。在图像邻域中局部香农熵和强度变化有关,图像局部香农熵越小,代表该区域越平滑。天空区域整体来说是较为均匀的,即相邻像素之间没有太大的变化,在均匀区域中,通过梯度大小计算出的局部香农熵具有较低的值,而且通过梯度计算出的局部香农熵抗噪声能力强。因此用局部香农熵则更容易识别平滑区域。
对于一幅M×N的灰度图像,取其任意点(x,y)的邻域为Ωk,Ωk=n×n,n=3,5,7,…。像素灰度值邻域内分布的混乱程度可以用香农熵来描述。方形窗口上的局部香农熵被定义为:
其中,P(k)表示邻域内像素的灰度值为k的概率。
天空区域分割算法的具体步骤为:
(1)为方便计算,将原始彩色有雾图像转化为灰度图像Igray(x,y)。
(2)利用Sobel算子计算Igray(x,y)的梯度G(x,y)。对应的数学公式为:
其中,Gx和Gy分别表示G(x,y)在x和y方向的梯度。
(3)[JP2]因为越小的图像局部香农熵代表的区域越平滑,所以根据天空区域就较平滑均匀的特点,设局部香农熵映射在天空区域上的Ei→0,取领域Ωk=5×5,梯度阈值T=0.05,利用式(6)和G(x,y)>T计算局部香农熵Ei,Ei=entropyfilt(G>T,Ωk),其中entropyfilt(·)为计算局部香农熵的函数。
(4)对Ei进行二值化处理得到二值图像E′i:
(5)利用数学形态学运算将二值图像E′i中非天空区域的较小噪声区域去除,然后选取最大的连通域作为最终分割出的天空区域。
通过图像局部香农熵和形态学处理对天空区域分割的结果如图1所示。图1(a)为2幅待处理的原始图像,图1(b)为局部熵图,图1(c)为二值图像,图1(d)为分割结果图,其白色部分代表天空区域,黑色部分代表非天空区域。
2.2 求取透射率
[JP2]由于天空区域亮度比较高,三颜色通道的最小像素值并不趋于0,因此根据式(2)求得的天空区域的暗原色值并不趋于0,违背了暗原色理论的前提条件,大气光值A一般接近于天空区域的像素值[10],因此在去雾因子取σ=0.95的情况下,根据式(4)求得的天空区域透射率即使在下限阈值t0=0.1的限制下依然太小,[JP3]这样会放大天空区域的噪声,故需要适当增大天空区域透射率以改善此缺陷,鉴于天空区域归一化亮度图像直方图中处于中心区域的亮度值M大小适中,因此本文用M来代替天空区域的透射率,而非天空区域的透射率则按照式(4)来求,其最终表达式为:
修正后的透射率任然比较粗糙,直接使用会影响去雾效果,故采用文献[16]中提出的快速引导滤波算法对t'(x)进行细化处理,该滤波方法除了具有保边去噪的效果外还可以提高算法效率。
[JP3]改进后的透射率图以及用快速引导滤波优化后的透射率图如图2所示,可见其对于天空区域,改进后的透射率与原来的透射率相比明显得到了改善,解决了原透射率t因趋近于非常小的值而不满足暗原色先验理论成立的前提条件的弊端,另外,由快速引导滤波优化后的透射率边缘细节更加完整,整体更加平滑。
2.3 估计大气光值
对于大气光值,单纯采用最大值求取的方式会存在一个弊端:当非天空区域存在大块白色建筑或者明亮物体时,大气光值就会被错误估计,从而影响透射率的准确求取,进而影响去雾效果。
在有雾图像中的朦胧区域(如天空)中像素方差值一般较小,方差较小代表像素之间的差异较小,这样可以将那些高亮物体而且细节比较多的丰富的的像素点排除掉。为使大气光值的估计更加准确合理,本文利用四叉树搜索法来估计大气光值。具体步骤为:将输入图像分成大小相同的4块,分别计算各块的平均强度[AKV-]i和亮度均方差Std(i),各块的得分定义为Score(i),Scorei=[AKV-]i-Stdi,将得分最大的块继续分为4个更小的块,并循环之前的步骤,当分值最大块的尺寸小于阈值300时停止迭代,最后取得分最高、即雾浓度最高的块区域的强度均值作为大气光A的值。
大气光值估计如图3所示,在不同场景下,用四叉树分解法获得的大气光值更加合理,用所选的红色块区域估计大气光值,有效地避开了非天空区域大块白色建筑或者高亮物体的影响,提升了准确性和鲁棒性。
2.4 亮度调整
为了让去雾图像色彩还原和亮度效果更佳,对去雾图像亮度和色调进一步优化,文献[17]提出一种具有局部对比度保留的非线性图像增强算法,该算法有2个独立的过程,通过使用非线性传递函数来实现像素强度变换,以实现适当的亮度增强。在亮度增强后,对图像对比度增强。算法首先将RGB图像I(x,y)转换为灰度图像并规范化得Iin (x,y),然后通过专门设计的非线性传递函数对其进行亮度增强。传递函数的表达式为:
通过该传递函数增强后得到的I′inx,y在一定程度上对输入图像的整体强度水平进行了调整,不能很好地同时增强图像的所有部分,在增强之后,图像细节被降级,而且增强过程难以自适应。为此,本文对非线性传递函数进行改进并引入一个图像明暗程度系数Z。改进后的表达式为:
传递函数的形状取决于参数Z, Z是图像相关的参数,通过图像直方图计算得到,依据所得到的灰度图像的累积分布直方图定义原图像明暗程度系数。Z的表达式为:
其中,L是灰度图像的灰度累积分布函数等于0.1时对应的色阶,表示有10%或更多的像素灰度低于50,则认为图像很暗,此时Z取0;当90%或更多的像素灰度大于175时,则认为图像比较亮,此时Z取1;别的情况Z则根据L的值线性插值。这样大大提高那些暗区域的亮度,而太亮区域有较低、甚至负的增强。图像的亮度可以根据原图像的明暗程度系数进行自适应调整。
由文献[17]可知,图像动态范围被压缩会使对比度变差,为此进行邻域相关的局部对比度增强,局部对比度增强的表达式为:
其中,R(x,y)是对比度增强后的图像,Qx,y=I τx,y/Iinx,y是增强系数,I τ(x,y)通过对Iin(x,y)进行高斯卷积获得,卷积结果包含相邻像素的亮度信息,如文献[17]中所述,如果中心像素比周围像素更亮,则Q(x,y)小于1,因此像素的对比度被拉高。另一方面,如果中心像素比相邻像素暗,则比率Q(x,y)大于1,像素的对比度降低。通过这种方法,可以在保持图像质量的同时充分改善压缩亮度图像的对比度和细节。为了增加图像效果,最终输出是基于多尺度的对比度增强结果的线性组合,可以表示为:
其中,wi代表每一尺度的对比度增强的输出图像Ri(x,y)的权重系数。默认情况下wi=1/n,i=1,2,3,…,基于本文的图像增强实验,n=3是典型值,通过3阶卷积进行图像增强具有良好的效果。本文中主要使用的3个尺度为25、85、220。经过前几步的处理,然后通过线性颜色恢复过程来得到增强后的彩色图像,彩色恢复公式为:
其中,j=r,g,b分别表示R、G和B光谱带,Rjx,y,j=r,g,b是增强彩色图像的三原色分量。
最终去雾图像亮度调整结果如图4所示,将去雾图像分别用文献[17]算法和本文算法对其进行亮度调整。可以看出,本文改进后的亮度调整方法能更合理地提高图像亮度,更好地保持图像细节信息和色彩保真度。
3 实验结果分析与比较
为验证本文算法的有效性,从互联网中随机选取多张去雾领域中的典型雾天户外图像进行仿真实验,并将本文算法与主流算法进行实验对比分析,主流算法選用:文献[10]算法、文献[13]算法、文献[14]算法和文献[15]算法。实验平台为64位的Windows10操作系统,处理器为Inter(R)Core(TM)i7-6700K CPU@2.7 GHz 4.0 GHz,所用软件平台为Matlab 2018a。
3.1 主观评价
本文选取了6张不同场景的有雾图像进行仿真,如图5(a)所示,其从左至右第1~6幅图中物体形状和颜色状态、天空面积大小以及含雾程度等方面均不同;第2至6行分别是文献[10]算法、文献[13]算法、文献[14]算法、文献[15]算法以及本文算法的去雾效果图。从图5中可以看出,文献[10]算法、文献[13]算法、文献[14]算法等处理后的图像都有不同程度的失真,尤其是文献[10]算法和文献[13]算法在天空区域出现了严重色差、过增强和光晕效应;文献[14]算法避免了过增强、过饱和等问题,但对于浓雾情形,去雾后仍有少量雾气罩着,而且图像局部偏暗,其影响了图像细节,如从左至右第3、第6幅图的房屋附近的景物因为亮度太暗完全看不清;文献[15]算法在近景和远景的去雾效果较好一些,但图像整体偏暗,而且在天空部分有过度增强,部分天空区域还出现色偏,如从左至右第4、第5幅图的天空区域因过度增强而出现色偏。
相比于其它算法,本文算法无论是在近景、远景、天空还是非天空区域都取得了非常好的去雾效果。
3.2 客观评价
为了进一步验证本文所提算法的有效性,项目组又采用平均梯度、标准差和对比度评价方法进行图像处理效果评价。图像中微小细节反差和纹理变换特征通常用平均梯度来表述,平均梯度越大,图像清晰度越高[18]。平均梯度公式为:
其中,M×N表示图像大小;fx表示水平方向的梯度;fy表示垂直方向上的梯度。
标准差反映了灰度相对于灰度均值的离散程度。标准差越大,图像质量就越好[19]。标准差的计算公式为:
其中,M×N表示图像的大小;P(i, j)表示第i行、第j列的像素值; μ表示均值。
圖像去雾主要目的就是恢复被雾霾掩盖的图像细节。图像的对比度越高,图像的细节越丰富[20]。对比度的计算公式为:
其中,δi, j=i-j,即相邻像素间灰度差,Pδ(i, j)为相邻像素间的灰度差为δ的像素分布概率。
几种算法对不同图像的去雾能力的客观评价指标比较结果见表1~表3。
从表1可以看出,第1~6幅图像中,本文算法在平均梯度指标上均优于其它算法,表明本文算法恢复后的图像更加清晰。从表2和表3可以看出,对于大部分场景,本文算法处理后的图像的标准差和对比度指标均是最优的,表明本文算法恢复后的图像质量更好、对比度高、细节更丰富、整体视觉效果更佳。在处理图5中的第1幅和第3幅图像时,本文算法的标准差和对比度指标稍次于文献[15]算法,但对应到图5,第1幅图像经文献[15]算法处理后天空区域有伪影现象,第3幅图像天空有过度增强,天空部分出现色差,而本文算法处理后的色彩更加均匀、天空区域更加自然。
综上分析,本文算法恢复的图像效果,特别是天空区域更佳,符合人的视觉效果,总体指标优于其它几种算法。
4 结束语
本文针对暗原色算法去雾后图像天空区域失真和整体偏暗等问题,提出一种结合天空区域分割的图像去雾算法,主要根据天空区域的特征进行分割,对分割后的天空和非天空区域的透射率单独计算,对大气光采用更具鲁棒性的四叉树搜索算法来估计,并利用改进的亮度调整算法对偏暗图像进行亮度调整。最后通过实验,从主观和客观指标方面对几种经典去雾算法和本文算法的处理效果进行评价,以说明本文算法得到的复原图像避免了色差、光晕效应、颜色失真等现象;图像亮度、清晰度和整体视觉效果更佳。虽然本文算法在单幅图像去雾方面取得了一定成果,但仍需对算法做进一步优化,如减少算法时间复杂度,并将算法应用于视频图像去雾。
参考文献
[1]LISANI J L, MICHEL J, MOREL J M, et al. An inquiry on contrast enhancement methods for satellite images[J]. IEEE Transactions on Geoscience and Remote Sensing, 2016, 54(12): 7044-7054.
[2]WANG Z D, JING X, SUN G D, et al. Dark channel image dehazing based on regional contrast constraints[J]. Chinese Laser, 2019, 46(8): 276-281.
[3]崔莹. 基于直方图的图像去雾方法[D]. 长春: 吉林大学, 2018.
[4]LIU J, ZHU J X, PEI Y, et al. Adaptive depth map-based retinex for image defogging [C]// Proc. of the International Conference on Audio, Language and Image Processing. Los Alamitos: IEEE Computer Society Press, 2016: 318-322.
[5]BINDHU A, UMA M O. Color corrected single scale retinex based haze removal and color correction for underwater images[J]. Color Research & Application,2020, 45(6): 1084-1093.
[6]董静薇, 赵春丽, 海博. 融合同态滤波和小波变换的图像去雾算法研究[J]. 哈尔滨理工大学学报, 2019, 24(1): 66-70.
[7]LIU X, ZHANG H, CHEUNG Y, et al. Efficient single image dehazing and denoising: An efficient multi-scale correlated wavelet approach[J]. Computer Vision and Image Understanding, 2017, 162: 23-33.
[8]YANG Y, ZHANG G Q, Li Y F, et al. Adaptive gaussian attenuation defogging algorithm based on edge preservation[J]. Laser & Optoelectronics Progress, 2018, 55(8): 223-229.
[9]LI Y M, ZHANG X J, XIE B W. Improved dark channel prior image defogging algorithm based on brightness model fusion[J]. Progress in Laser and Optoelectronics, 2020, 57(22): 67-63.
[10]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.
[11]HE K M, SUN J, TANG X O. Guided image filtering[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2013, 35(6): 1397-1409.
[12]MENG Gaofeng, WANG Ying, DUNG Jiangyong ,et al. Efficient image dehazing with boundary constraint and contextual regularization [C]// Proc of IEEE International Conference on Computer Vision. Sydney, Australia:IEEE, 2013: 617-624.
[13]BERMAN D, TREIBITZ T, AVIDAN S. Non-local Image Dehazing [C]// Proc of the IEEE conference on computer vision and pattern recognition. Las Vegas, NV, USA :IEEE, 2016: 1674-1682.
[14]CAI B, XU X, JIA K, et al. DehazeNet: an end-to-end system for single imagehaze removal[J]. IEEE Transactions on Image Processing,2016,25(11): 5187-5198.
[15]SALAZAR-COLORES S, CRUZ-ACEVES I, RAMOS-ARREGUIN J-M. Single image dehazing using a multilayer perceptron"[J]. Journal of ElectronicImaging, 2018, 27(4):043022.
[16]樊英. 霧霾天气下车牌检测与识别算法研究[D]. 西安:西安科技大学, 2020.
[17]LI T, VIJAYAN A. An integrated neighborhood dependent approach for nonlinear enhancement of color images[C]//International Conference on Information Technology: Coding and Computing, ITCC 2004. Las Vegas, NV, USA:IEEE,2004:138-139.
[18]李熙莹, 朱肯钢. 结合天空分割和局部透射率优化交通图像去雾算法[J]. 计算机与现代化, 2019(5): 51-58.
[19]江巨浪, 孙伟, 王振东, 朱柱, 郑江云. 基于透射率权值因子的雾天图像融合增强算法[J]. 电子与信息学报, 2018,40(10):2388-2394.
[20]张燕丽, 柯旭. 结合天空区域检测的图像去雾算法研究与实现[J]. 重庆工商大学学报: 自然科学版, 2017, 34(5):37-42.
基金项目: 国家自然科学基金(61361012)。
作者简介: 黄治勇(1996-),男,硕士研究生,主要研究方向:图像处理; 李 震(1987-),男,博士研究生,主要研究方向:电路与系统、密码学; 李良荣(1963-),男,教授,主要研究方向:电路与系统、电磁场与微波技术。
通讯作者: 李良荣Email:1392599321@qq.com
收稿日期: 2021-04-28