APP下载

一种用Sigmoid函数进行加权融合的图像去雾算法

2023-09-18火元莲张乔森张金石范宏栋

计算机工程与科学 2023年9期
关键词:透射率先验大气

火元莲,张乔森,张金石,范宏栋

(1.西北师范大学物理与电子工程学院,甘肃 兰州 730070;2.甘肃省智能信息技术与应用工程研究中心,甘肃 兰州 730070)

1 引言

近年来,由于第二产业的稳步发展,污染物的排放量逐年增多,空气中的水蒸气与污染物结合所形成的雾霾[1,2]影响了人们的正常生活,造成了巨大的社会经济损失。雾霾也会使户外环境中图像采集设备的成像质量下降,所以图像去雾算法研究成为了人脸识别、目标跟踪[3]以及视频监控等应用的热点问题之一,具有重要的现实意义和应用价值。

目前图像去雾方法主要分为基于图像增强、基于图像复原和基于深度学习的方法。基于深度学习的方法大都以卷积神经网络为基础构造去雾模型[4,5],这类方法去雾效果较好,但数据量庞大,成本较高。基于图像增强的去雾方法,主要目的是对图像对比度进行拉伸,对图像像素灰度值进行改变,从而改善视觉效果,主要有直方图均衡[6]、同态滤波[7]、小波变换[8]以及Retinex[9,10]等。直方图均衡是把图像直方图中灰度级分布较窄的区域拉伸到全局范围内来改善视觉效果。同态滤波是对雾图进行对数变换和高通滤波处理,以获取图像的高频分量,达到抑制低频分量、增强图像细节的目的。小波变换是利用小波分解形成不同尺度图像的分布特征,实现图像的细节增强。Retinex主要是分离出图像的反射分量,实现对比度拉伸,从而使图像质量恢复。但是,此类传统方法由于没有考虑雾图的形成原因,处理后的图像中容易产生色彩过饱和、细节丢失以及引入了更多噪声的问题。而基于图像复原的方法从雾图形成的原因出发,结合大气散射模型,从输入雾图中反推导出无雾的图像[11],针对性更强。由于大气散射模型涉及到透射率以及大气光的求解,使得基于概率统计获取无雾图像先验信息的方法成为了该类方法处理图像去雾问题的主要手段。He等人[12]在统计大量清晰图像后发现暗通道的统计规律,直接对单幅图像进行透射率的求解,简化了大气散射模型,对部分雾图有着较好的去雾效果,但在景深突变区域容易产生光晕现象并且在天空区域不满足暗通道规律。Zhu等人[13]统计大量雾图发现,随着场景深度的增加,图像的亮度和饱和度之间的差值与场景深度成正比,因此对深度信息建模,用监督学习方法学习模型中参数,求得深度图,再通过大气散射模型估计得到透射图,恢复出清晰图像。融合亮度和暗通道先验的图像去雾算法[14]考虑到暗通道先验对天空区域不适应,通过观察雾图发现随着场景深度的增加,亮度与场景深度成正比,所以用亮度来代替景深,基于亮度模型来估计天空区域透射率,对前景区域透射率用暗通道来估计,再将2种透射率进行加权融合,最后恢复出清晰图像。融合暗通道先验和颜色衰减先验的图像去雾算法[15]是用颜色衰减先验估计天空透射率,用暗通道先验估计前景透射率,用均值滤波方法对分割边缘处的透射率做平滑处理,并以分段函数的形式表示最终的透射率。但是,使用均值滤波法的平滑处理效果不佳而且融合后的透射率不精确,使得最终恢复出的图像色彩不自然,尤其是边缘处易出现色彩失真。

针对上述融合算法存在过渡区域平滑不佳以及透射率估计不精确等问题,本文提出了一种用Sigmoid函数进行加权融合的图像去雾算法。首先用Canny算子来检测边缘,并根据边缘密度进行天空区域的分割;然后在天空区域采用颜色衰减先验来估计透射率,而在前景区域使用暗通道先验估计透射率;接着将Sigmoid函数作为透射率权重,对估计出的2个区域的透射率进行加权融合,以使边缘过渡更加平滑;同时考虑到不同的波长对应的衰减常数不同,在R、G、B共3个通道上分别选取不同的衰减数值,以进一步提高图像恢复的质量;在大气光估计上,本文将亮度值排在天空部分前0.1%的中值对应像素点作为大气光值的估计值,中值对噪声的鲁棒性较强,可使恢复的图像更加自然。最后用大气散射模型恢复出清晰图像。理论分析以及实验结果表明,本文算法很好地解决了恢复图像色彩不自然以及边缘处的色彩失真等问题,有更好的去雾效果,同时保证了算法的实效性。

2 相关理论

2.1 大气散射模型

目前,广泛采用的大气散射模型[16]的定义如式(1)所示:

I(x)=J(x)t(x)+A·[1-t(x)]

(1)

其中,I(x)表示含雾降质图像中像素x的像素值,J(x)表示原始无雾图像中像素x的像素值,t(x)表示透射率,A表示估计的大气光值。公式右边第1项代表场景辐射光的直接衰减,第2项代表背景光的叠加,二者导致了清晰图像质量的退化。透射率t(x)的定义如式(2)所示:

t(x)=e-β(x)d(x)

(2)

其中,β(x)表示大气散射系数,d(x)表示场景深度。

2.2 暗通道先验理论

暗通道先验[12]表明在清晰图像的很多局部区域,至少在一个颜色通道上某些像素处具有非常低的强度值,即清晰图像的暗通道值接近零。其定义如式(3)所示:

(3)

其中,Jdark是J的暗通道图像,c∈{r,g,b}是3颜色通道,Ω(x)是以像素x为中心的局部区域,Jc(y)表示在Ω(x)区域中的某个像素通道上的值。对式(1)两边进行三颜色通道上的最小值滤波,可得式(4):

(4)

把式(3)代入式(4)可得:

(5)

该方法对于不含天空区域的雾图有较好的去雾效果,但大部分质量退化的户外图像都是含有天空区域的,由于天空区域以及高亮度区域不满足暗通道先验,对这些区域估计得到的透射率误差比较大,所以恢复出来的图像很容易产生失真,恢复效果不佳。

2.3 颜色衰减先验理论

颜色衰减先验[13]表明:图像的场景深度和亮度、饱和度之间存在线性关系。通过观察雾图发现,近景中亮度与饱和度之间几乎无差值,随着场景深度的增大,雾浓度越来越高,亮度与饱和度的差值也越来越大,也就是说,亮度和饱和度的差值与场景深度是呈正相关的。其表达式如式(6)所示:

d(x)=θ0+θ1V(x)+θ2S(x)+ε(x)

(6)

其中,V(x)为像素x处的亮度,S(x)为像素x处的饱和度,θ0、θ1、θ2为系数,ε(x)是随机误差系数,取值分别为θ0=0.121779,θ1=0.959710,θ2=-0.780245,ε(x)=0.041337。显然,获得有雾图像的亮度值和饱和度值之后,即可求得景深值。

3 本文算法

本文算法的流程如图1所示。首先进行天空区域的分割;然后分别估计出天空区域和非天空区域的透射率,并用Sigmoid函数进行加权融合,同时将亮度值在天空部分前0.1%的中值对应像素点的像素值作为大气光值的估计;最后通过大气散射模型恢复出清晰图像。

Figure 1 Flow chart of the algorithm in this paper

3.1 天空区域分割

大部分户外图像都是含有天空区域的,由于暗通道先验对天空区域估计的透射率不准确,导致在天空区域容易产生失真,恢复效果不佳,本文通过颜色衰减先验来弥补暗通道先验在天空区域表现出来的不足。首先用Canny算子检测出雾图的边缘,然后通过判断边缘密度的大小来区分天空与非天空区域。根据天空区域边缘较少、边缘密度小且相对均匀,又位于图像的上方等这些特点,采用一个47×47的小窗口卷积图像的整个边缘并通过自适应阈值来区分该区域是否为天空,最后选择边缘密度小的最大连通区域作为天空区域。天空区域分割效果如图2所示。

Figure 2 Segmentation map of sky area

3.2 大气散射系数β的选择

由式(2)可知,大气散射模型中透射率的求解不仅与场景深度有关系,而且与大气散射系数β也有密切的关系,β取值一般默认为1。但事实上由于图像中每个像素都是由R、G、B共3个通道组成,大气粒子会对不同的光发生不同的散射(此处主要是米氏散射)效果,直接将β默认为1,显然对透射率的估计不准确,进而导致恢复的图像质量不好。考虑到散射系数主要由雾浓度、目标离摄像头距离和相机角度决定,而60°的相机角度足以拍摄含天空区域的图像,所以为了使得透射率的估计更准确,本文使用米氏散射模型[17]中60°角相机对应的散射系数,其定义如式(7)所示:

(7)

其中λ为波长。

图3所示为β=1以及β按式(7)取值时获得的透射图和恢复图的对比结果。从图3中可以看出,β=1时,透射图的天空区域非常暗,而恢复图像也是整体颜色偏暗,不自然。当β按式(7)取值时,明显缓解了去雾后图像整体颜色偏暗的现象。

Figure 3 Comparison of experiment results with different β values

3.3 基于Sigmoid函数的透射率融合

3.3.1 Sigmoid函数应用

由于突变区域的场景深度跨度较大,在此处不能实现透射率的准确估计,导致图像在突变区域过渡不平滑。若将Sigmoid函数作为透射率权重,既能节省算法运行时间又能使天空区域和前景区域的边缘过渡更加平滑。这是因为Sigmoid是一种平滑函数,能够将所有数据映射在0~1。将其作为透射率权重时,场景突变处的所有像素就被拉伸至0~1,从而避免了数据跨度过大的问题,实现突变区域平滑过渡的目的。Sigmoid函数的表达式如式(8)所示,其函数曲线如图4所示。

Figure 4 Sigmoid function curve

(8)

其中,td表示前景透射率,θ3=20/(max(td)-min(td))表示影响曲线倾斜度的参数,θ4=-10-θ3×min(td)表示水平坐标的中心。

3.3.2 透射率的融合

天空区域的分割完成之后,用颜色衰减先验和暗通道先验分别估计天空区域和前景区域的透射率,再通过快速引导滤波进行透射率的细化,然后将Sigmoid函数作为透射率权重,对2个区域的细化透射率进行加权融合,融合表示如式(9)所示:

t(x)=α×td+(1-α)×ts

(9)

其中,t(x)是融合后的透射率,α为透射率权重且α∈(0,1),ts是天空区域透射率。如果图像中的某个像素x∈Ω属于前景区域,则α趋近于1;反之,α趋近于0。

3.4 大气光值的估计和图像恢复

Narasimhan等人[16]推导出当场景深度趋近于无穷时,根据物理现象,大气光值应该从无穷远处的天空区域选择。而暗通道先验算法表现出来的效果不佳和大气光值的选取有很大的关系,该算法选择暗通道中0.1%的最亮像素作为大气光值,对含有天空区域的图像并不适合,如果在前景区域有大片白色区域,此时求得的大气光值明显偏大。文献[15]虽在天空区域采用了颜色衰减先验,但文中将亮度值排在天空部分前0.1%的最大值对应像素点作为大气光值的估计,而最大值容易受极端变量的影响,同样会导致因大气光值的估计不准确而影响到恢复图像的质量。本文算法将亮度值排在天空部分前0.1%的中值对应像素点作为大气光值的估计值,选择中值而不是最大值的原因是它对噪声的鲁棒性强,可使得恢复的图像更加自然。其对比实验结果如图5所示。

Figure 5 Comparison of dehazing images when atmospheric light value selecting the maximum brightness value and the median brightness value of the sky

综上所述,获得大气光值和融合的透射率之后,通过式(10)即可恢复出清晰的图像:

(10)

其中,t(x)表示融合后的透射率,为了保留少量的雾,设置透射率下限t0,使得恢复出来的图像更加真实。

4 实验对比与分析

为了证明本文算法的去雾效果,用几组包含天空区域的有雾图像对本文算法和文献[12]基于暗通道先验的图像去雾算法、文献[13]基于颜色衰减先验的图像去雾算法、文献[14]融合亮度模型和暗通道先验的图像去雾算法、文献[15]融合暗通道和颜色衰减先验的图像去雾算法以及文献[4]一种端到端的图像去雾算法进行比较,并从主观和客观2方面进行评价。实验环境为Matlab R2020a,运行环境为Windows 10,计算机配置为Intel Core i5-7300 HQCPU@2.50 GHz。

4.1 主观评价

主观评价能够很直观地看出恢复后图像质量的好坏。图6是6种算法的对比效果。可见文献[12]的算法,在处理含有天空的雾图时效果不佳,表现为图像整体色彩偏暗,天空区域出现严重色彩失真,部分图在景深突变区域明显产生光晕现象,如第3幅图和第6幅图。文献[13]的算法,虽补偿了暗通道在天空区域以及景深突变区域表现出来的不足,在颜色保真的情况下取得了一定的去雾效果,但是整体成色效果还是偏暗,视觉效果不佳。文献[14]的算法,整体较好地去除了雾气干扰,在近景区域恢复了细节信息,但在天空区域明显颜色过饱和,不自然。文献[15]的算法,由于在天空区域用颜色衰减先验来估计透射率,补偿了暗通道在天空区域的不足,但大气光值和衰减常数值选取不够精确,在场景突变处过渡不平滑,导致恢复后的图像在天空区域颜色偏重(如第1幅图和第2幅图),或出现色彩失真(如第4幅图山面和第6幅图远处高楼处),细节不突出。文献[4]的算法在天空部分有一定的保真效果,近景区域恢复了细节信息但在近景区域成色偏暗。而本文算法去雾效果优于其它5种算法,恢复的图像在天空和近景区域颜色层次清晰,更加自然,在过渡区域有效抑制了光晕现象,明亮适宜并且在远景处保留了少许的雾,细节突出,使视觉效果更佳。

Figure 6 Dehazing results of six foggy images with different dehazing algorithms

4.2 客观评价

为了客观体现本文算法的优越性,本节将采用图像质量客观评价指标中常用的峰值信噪比PSNR(Peak Signal to Noise Ratio)[18]、结构相似性SSIM(Structural SIMilarity)[19]和运行效率(Time)进行评价。PSNR是用于评估雾图处理前后在像素上的差异,值越大,说明恢复出的图像质量越好,失真越小。SSIM反映的是图像恢复前后景物结构的相似性,结果越接近1,说明复原的程度越好。而时间的快慢体现出对雾图处理的效率,自然是越快越好。峰值信噪比和结构相似性的计算公式分别如式(11)和式(12)所示:

(11)

(12)

其中,X和Y分别表示清晰图像和去雾图像,M和N分别表示图像的宽和高,μX和μY分别表示图像X和Y的灰度均值,σX和σY分别表示图像X和Y的方差,σXY表示图像X和Y的协方差,C1和C2表示常数,以避免分母为0的情况发生。

图6中6幅图像的PSNR和SSIM如表1所示。从表1中可以看出,本文算法在多数情况下都能够得到很好的去雾效果,对于图像6,文献[14]的PSNR显示出了最好的结果,但本文算法的结果与其非常接近,且其SSIM优于文献[14]算法的;同时从图6中第6幅图也可以看到,文献[14]算法恢复出来的图像亮度不够,色彩偏暗,而本文算法避免了这种情况的发生。

Table 1 PSNR/SSIM comparison of the above six images

为了进一步说明本文算法的有效性,本文在SOTS(Synthetic Objective Testing Set)数据集[20]上进行了各算法去雾对比实验,表2是各算法进行去雾的平均PSNR和SSIM,其平均运行时间的统计结果如图7所示。

Table 2 Average PSNR/SSIM of each algorithm on SOTS dataset

Figure 7 Run time

由表2可以看出,本文算法在峰值信噪比和结构相似性方面相比较于其他5种算法取得了一定的进步。文献[12]算法和文献[13]算法的2种指标较差,是由于这2种算法存在去雾不彻底的现象,没有复原出色彩,剩余噪声比较多。文献[15]算法和文献[14]算法在结构相似性上与本文算法基本持平,但由于文献[15]算法在场景突变处过渡不平滑以及透射率估计不准确导致噪声略高,使其峰值信噪比略低。文献[4]算法将大气光值A视为一个全局常数,导致估计到的像素点值不准确,去雾不彻底,其结构相似性与峰值信噪比偏低。由图7从运行速度方面进行分析,本文所提算法需要的运行时间比文献[12,13]算法的短,与文献[15]算法基本持平,虽比文献[4,14]算法的略长,但是综合考虑,本文算法在牺牲较少时间的情况下取得了更好的复原效果。综上所述,本文所提算法无论在主观评价还是客观评价中都取得了一定的优势。

5 结束语

本文针对现有的融合的图像去雾算法透射率估计不精确和场景突变处过渡不平滑的问题,提出了如下的改进思路:在R、G、B这3个通道上分别使用不同的大气散射系数,并将Sigmoid函数作为透射率权重,对基于颜色衰减先验得到的天空区域的估计透射率和基于暗通道先验得到的前景区域的估计透射率进行加权融合;同时选用鲁棒性较强的天空区域像素强度前0.1%的中值作为大气光值;最后通过大气散射模型恢复出清晰图像。实验结果表明,无论是主观评价还是客观评价,本文算法对包含有天空区域的有雾图像的处理都有着很好的效果,有效地解决了恢复图像色彩不自然以及边缘处的色彩失真问题,使得恢复出的图像细节更加丰富,场景突变区域的过渡更加平滑,图像色彩鲜明,而且具有较强的实效性。但是,本文算法在处理不包含天空图像的原始雾图时,达不到很好的效果,这将是下一步研究的重点。

猜你喜欢

透射率先验大气
大气的呵护
基于无噪图像块先验的MRI低秩分解去噪算法研究
纯色太阳镜镜片耐日光辐照性能试验研究
基于自适应块组割先验的噪声图像超分辨率重建
大气古朴挥洒自如
大气、水之后,土十条来了
基于平滑先验法的被动声信号趋势项消除
先验的废话与功能的进路
石墨烯光栅太赫兹透射特性的研究
玻璃长波透射率对普通双层中空玻璃热特性的影响