APP下载

基于改进暗通道和自适应容差的图像去雾算法

2022-11-02仲会娟廖一鹏

液晶与显示 2022年11期
关键词:处理结果透射率复原

仲会娟,廖一鹏

(1.河北工程技术学院 网络与通信学院,河北 石家庄 050091;2.阳光学院 人工智能学院,福建 福州 350015;3.福州大学 物理与信息工程学院,福建 福州 350108)

1 引言

随着通信技术、计算机技术、网络技术的日新月异,图像处理技术的应用已经无处不在,如移动通信、自动驾驶、遥感遥测、医疗领域等。高质量的清晰图像有利于图像的后续研究,如图像分割、特征提取、图像分类与识别、目标跟踪与检测等。但是,在雾霾、大雾、雨天等天气条件下,获取的图像会出现颜色失真、对比度低、图像退化等问题,严重时会导致计算机视觉系统失灵。因此,图像去雾算法成为图像处理和机器视觉领域中学者和专家们关注和研究的热点。

当前,国内外主流的图像去雾方法包括两种:一种是基于图像增强的图像去雾算法,另一种是基于大气散射模型的图像去雾算法。其中,图像增强算法可以抑制图像中无用信息,增强有用信息,达到图像去雾的目的,如直方图均衡化[1-2]、Retinex去雾[3-6]和同态滤波[7]等。此类方法未考虑图像退化的原因,因此去雾后会丢失大量图像细节[8]。图像复原方法首先建立图像退化数学模型,并据此进行逆变换获取无雾图像,此类方法从图像降质的本质出发,去雾后不易产生信息丢失,处理结果更加逼近清晰图像[5]。文献[9]对众多户外清晰图像进行统计分析,由此总结得到了暗通道先验原理,同时联合大气散射物理模型设计出简单高效的单一图像去雾算法,但去雾后明亮区域存在失真现象。文献[10]通过容差策略可以有效抑制图像中明亮区域的失真问题,但其他区域会出现误补偿问题。文献[11]引入引导滤波算法来解决处理结果中细节缺失的问题,同时提高了算法效率,但处理结果中的明亮区域仍存在失真现象。文献[12]首先识别有雾图像中的天空区域,并对其透射率进行修正,但处理效率低下,且存在天空区域误识别的问题。文献[13]引入混合暗通道来克服处理结果中明亮区域暗通道原理失效的问题。

针对以上问题,本文将传统暗通道去雾算法进行改进,并结合自适应容差策略实现图像去雾。首先,根据图像尺寸得到3种最小值滤波窗口尺寸r1、r2、r3,利用3种不同尺寸的最小值滤波器分别计算暗通道图和透射率估计。接着,对3种不同滤波器尺寸下的透射率估计展开有效融合,得到多尺度透射率图。引导滤波器使得处理后图像与引导图像的边缘保持一致,有效增强透射率估计的边缘、纹理等细节信息。自适应容差策略可以依据有雾图像中明亮区域的尺寸获得相应的容差参数,补偿明亮区域的透射率估计,有效抑制了明亮区域处理后存在失真的问题。最后,对上述处理结果的亮度和对比度分别进行补偿完成图像去雾。

2 暗通道先验去雾算法

2.1 大气散射模型

大气散射物理模型用来刻画有雾图像的形成过程和原理,被广泛应用于图像去雾领域[14-15],具体表示为:

其中,I(x)是实际有雾图像;A是大气光值;J(x)是待复原的无雾图像;t(x)是透射率,表示光线从对象传到观察者期间未被散射的成分。公式(1)中,J(x)t(x)是直接衰减项,表示光线在传输期间的辐射或衰减分量;A(1-t(x))称为大气光成像,由大气散射现象引起,易造成图像颜色偏差。

由大气散射物理模型可以看出,图像去雾的本质是根据获取的有雾图像及强有力的先验知识,准确估计A和t(x),进而获得复原效果较好的J(x)。

2.2 暗通道先验算法原理

暗通道先验原理认为无雾图像(不包含明亮区域)的大多数局部区域中,最少会有一个颜色通道的亮度趋向于零[9]。其数学表述为:

文献[9]中,He等人假设单幅图像的A值是确定常量,在Ω(x)邻域内的透射率t(x)也是常数,记为(x)。在A已知的情况下,先后计算公式(1)等号两边中RGB三通道的最小值和局部最小值,变形后获得透射率粗估计:

实际生活中,即便是阳光明媚的午后,大气里仍然会不可避免地夹杂一些杂质。同时,雾是人体获取图像景深的要素,所以在式(4)中添加约束参数θ,控制去雾程度,去雾同时留有少许覆盖在远景的微量雾气,让处理复原图像更加真实,具体表述为:

其中,透射率约束参数θ取值范围为(0,1)。将式(5)直接代入式(1)实现图像去雾。在式(5)中,当t(x)取值逼近0时,去雾图像整体白场过度,几乎为噪声,因此设置透射率最小值t0,要求透射率值不小于t0,一般取0.1,透射率表达式修正为:

用式(6)计算得到的透射率估计,其中有较为明显的块效应,容易引起复原图像边缘模糊。因此,He等利用软抠图[16]、引导滤波[11]对式(5)中的透射率图进行细化,得到了更好的去雾图像。

2.3 暗通道先验算法的问题

暗通道原理中最小值滤波窗口尺寸的选取对去雾效果有重要影响,文献[9]首先对输入图像进行尺寸归一化处理,然后采用固定尺寸的滤波窗口获得透射率估计。在实际图像处理技术的应用中,不同系统对输入图像的大小要求往往不同,且变换范围较大。若滤波窗口尺寸设置太大,则邻域内有暗通道的几率更大。然而在图像的景深突变区估计的透射率有明显的块效应,易引起复原图像中白边缺陷。若滤波窗口尺寸设置太小,则在该邻域内出现暗通道的几率很小,造成去雾图像中出现明显的色彩偏移。在天空、白云等图像中明亮区域,像素点各颜色通道强度都很大,因此暗通道原理失效,导致所得透射率偏小,去雾图像出现明显失真现象。

在暗通道原理中引入软抠图机制,虽然实现了透射率的优化处理,有效避免了复原图像的白边缺陷,但算法运算量和复杂度迅速增大,算法效率无法保证。结合引导滤波来细化透射率图,虽然对原始传输图进行保边平滑,但固定的正则化参数会造成复原图像产生光晕效应。

3 本文算法

本文提出了一种改进的多尺度暗通道去雾算法,并结合引导滤波和自适应容差策略,实现了更为高效的图像去雾。首先,根据输入图像尺寸选取3种不同大小的滤波窗口,计算得到3种不同尺度的透射率粗估计,并进行线性拟合得到多尺度透射率粗估计;然后,采用引导滤波处理多尺度透射率粗估计,计算输出细化后的多尺度透射率估计;最后,引入自适应容差策略来修正明亮区域的多尺度透射率估计。

3.1 多尺度融合优化透射率

在传统的暗通道去雾算法中,最小值滤波窗口尺寸单一,而滤波窗口的大小与去雾图像的质量紧密相关。本设计根据输入图像尺寸计算得到3种不同的滤波窗口尺寸,并分别计算相应的透射率估计。本文采用线性拟合方法,计算得到多尺度透射率估计。本文选取的3种窗口尺寸分别为:

式中,H和W分别为图像的高度和宽度。在3种不同窗口尺寸下,由式(2)分别计算其对应暗通道图。然后,分别带入式(5)计算3种不同窗口下的透射率t1(x)、t2(x)和t3(x)。根据式(8)展开线性拟合获得多尺度透射率粗估计t(x),具体表述为:

其中,ω为调节因子,设计中选取ω1=ω2=ω3=13。透射率结果如图1所示。

图1 不同滤波窗口下的透射率估计Fig.1 Transmittance estimation under different filter windows

由图1实验结果可知,图1(b)中滤波窗口尺寸过大,透射率估计存在块效应;图1(a)中滤波窗口尺寸过小,造成透射率估计整体色调偏暗,多尺度融合可以有效避免以上问题,同时图1(c)中为固定尺寸的滤波窗口,保证了透射率图的整体有效性。

文献[9]在暗通道图内获取强度最大的0.1%像素,并在原图像对应像素点上挑选亮度最大的像素值就是大气光值A。本文以此为基础,分别计算Jdark1(x)、Jdark2(x)、Jdark3(x)的大气光值A1、A2和A3,并以其均值作为本文算法的大气光值A。

3.2 引导滤波细化透射率

多尺度透射率与单一窗口透射率相比,其稳健性得到较大改善,然而多尺度透射率图的边缘细节有着明显不足。引导滤波在平滑图像的同时可以有效保持图像边缘细节,且计算速度快,因此采用引导滤波对多尺度透射率进一步细化。引导滤波的核心是局部线性关系假设模型:

式中,q与I的梯度呈线性关系,其中I是引导图像,q是滤波输出图像,ωk是以像素k为中心r为半径的方形窗口,ak和bk是方形窗口下的线性系数,通常该系数由最小代价函数E(ak,bk)获得:

式中,ε为正则化参数,可以防止线性系数ak过大。利用线性回归求解代价函数,可以得到线性系数:

其中,uk和σ2k分别为引导图I在窗口ωk中的均值和方差,|ω|是窗口ωk的像素数目,pˉk是在方形窗口内输入图像p的均值。因为每个像素点i都会出现在具有不同中心点的不同窗口内,而每个窗口对应的ak和bk不同,因此将所有与像素点i相关的线性系数进行算术平均,得到引导滤波的最终结果,具体表示为

算法中,将原图的灰度化处理结果作为引导图I,多尺度透射率图的引导滤波处理结果如图2所示。

图2 引导滤波前后的透射率图Fig.2 Transmittance maps before and after guided filtering

3.3 天空区域透射率补偿

在图像的明亮区域中暗通道原理不适用,因此本文采用自适应容差策略对明亮区域的透射率做出补偿,且容差参数随着图像中天空区域的大小自适应地调整,而其他区域则保持原透射率不变[17]。因此,该算法既可以对复原图像中明亮区域的透射率进行补偿,又保证了非明亮区域的透射率不被误补偿或过补偿,较好地克服了去雾图像中明亮区域失真问题,获得处理效果更好的复原图像。

首先,定义容差调节图Mapc(x)如下:

式中,Ic(x)是实际有雾图像的一个颜色通道;对应图像的明亮区域;α与像素被判定为明亮区域的概率有关,称为调节因子,当α=1时像素被判为明亮区域的概率最小;α=0时原图本身被认为是明亮区域,本文设置α=0.95。

定义容差参数K为:

式中,Scnum是Sclight中不为0的元素数目,即被判定为明亮区域的像素总数,Ic(x)num是输入图像的像素总数。K选取过大易造成非天空区域被误判为天空区域,使得透射率不准确,因此为K设定上限值,避免非天空区域的透射率被误补偿。经过多次实验本文设置容差参数的上限值为0.3。

透射率补偿机制为:

式中,tnext(x)是输出的修正透射率,将满足|IA|<K的部分判定为图像中明亮区域,并对此区域透射率进行修正;反之透射率保持不变。

有雾情况下,光线被大气中的颗粒物吸收和散射,使得有雾图像中像素点亮度相较晴朗天气中更大,造成复原图像的整体亮度偏暗,所以,需要对上述结果做出色彩补偿。本设计在Hue、Saturation、Value(HSV)模型中,通过调整S和V分量,实现去雾图像的颜色补偿。

4 实验结果与分析

为说明算法的有效性,将本文算法与经典算法应用于多种图像的仿真实验,从主观和客观两个维度展开论述。本文仿真实验的软件环境为64位Matlab R2018b,运 行CPU是Inter(R)Core(TM)i5-7300HQ@2.50 GHz,内存为8G,显卡为4G。

透射率约束参数θ用来控制图像去雾程度,θ数值越小表示保留的雾气越多。为了使复原图像更加真实,一般只需留有少量远景雾分量,通常设置θ=0.95[9]。ω为多尺度融合调节因子,取值大小反映了不同尺度窗口对透射率图的影响程度,值越大说明该尺寸下的透射率图对多尺度透射率的贡献越大,本文选取ω1=ω2=ω3=13。引导滤波窗口半径r与有雾图像尺寸有关,本文选取r=4(r1+r2+r3)/3。正则化参数ε是一个微小的值[12],一般在(0,0.01]范围内滤波效果较好,本文设置ε=10-6。

4.1 主观评价

在保持其他网络参数不变的情况下,分别采用多尺度透射率与8×8单一尺寸透射率实施图像去雾实验,透射率估计如图3(a)所示,复原图像如图4(b)所示。对引入自适应容差机制实施透射率补偿和无透射率补偿进行图像去雾实验,无补偿透射率估计和复原图像如图3(b)、图4(c)所示,本文算法的透射率估计和去雾结果如图3(c)和图4(d)所示。

图3 不同算法的透射率估计Fig.3 Transmittance estimation for different algorithms

图4 不同算法的去雾图像Fig.4 Defogged images with different algorithms

以上结果表明,在引入多尺度透射率后,透射率估计更加细致,复原图像中色彩更加真实,细节更加清晰。在引入自适应容差透射率修复机制后,降低了天空等明亮区域的透射率偏差问题,避免了复原图像中天空区域失真问题,复原图像的视觉效果更好。

将本文所提去雾算法与多尺度暗通道去雾算法(算法1)、文献[9]和文献[11]算法分别应用于相同带雾图像进行仿真实验。其中,算法1对比本文算法未引入自适应容差机制,其他网络参数设置相同。分别对没有天空区域的图像图5(a1)、有少量天空区域的图像图5(a2)、有较多天空区域的图像5(a3)和有大量天空区域的图像5(a4)进行仿真验证,实验结果如图5所示。对包含大量天空区域的广州塔图像图6(a1)和CCTV大楼图像图6(a2)进行去雾实验,实验结果如图6所示。

图5 不同场景下去雾效果Fig.5 Defogged images in different scenes

图6 大量天空区域场景下不同算法的去雾效果Fig.6 Defogged images of different algorithms in scenes with a large number of sky

实验结果表明,以上算法在一定程度上都实现了图像去雾复原,但去雾效果不同。文献[9]算法处理结果中白边缺陷明显;文献[11]算法处理结果中天空处通常会有失真问题;算法1和本文算法没有出现失真,但相较于其他算法,本文算法在景深突变部分过渡更加自然,色彩更加真实,复原质量更高。

4.2 客观评价

本文采用信息熵、峰值信噪比(Peak Signal to Noise Ratio,PSNR)、平均梯度、结构相似性指数(Structural Similarity Index,SSIM)和处理时间多种指标论证算法有效性。其中,信息熵说明了图像具有的信息量,越大表示处理结果中有用信息越多,复原质量越优秀[18];平均梯度说明了图像的细节质量,越大对应图像的细节轮廓越清楚,算法的细节保持特性越优秀[19];PSNR为信号最大值的平方与处理前后图像的均方误差之比,再取对数,越大表明处理结果的失真越小;SSIM从亮度、对比度和结构三维度刻画平均图像相似性,取值在[0,1]之间,值越大表示处理后失真度越小。

表1、表2和表3数据表明,在不含、含少量和含较多天空区域的情况下,本文算法复原的图像PSNR有较大提高,说明该算法能有效抑制图像失真;本文算法的信息熵最高,说明处理后图像含有更多有用信息;同时,本文算法的平均梯度相对比较高,表明图像中细节相对清晰,因此处理结果更加逼近相同场景下的无雾图像,整体质量更佳。

表1 图5(1)各算法的客观评价Tab.1 Objective evaluation for Fig.5(1)

表2 图5(2)各算法的客观评价Tab.2 Objective evaluation for Fig.5(2)

表3 图5(3)各算法的客观评价Tab.3 Objective evaluation for Fig.5(3)

表4、表5和表6中数据表明,在含大量天空区域情况下,本文算法与文献[9]算法复原图像的信息熵和平均梯度相当,表明处理结果中有更多有用信息,细节更清晰;同时,本文算法的处理结果中PSNR和SSIM指标分别提高了3 dB和0.1左右,表明该算法处理结果中结构信息保留更加完好,更接近于同场景下的无雾图像。

表4 图5(4)各算法的客观评价Tab.4 Objective evaluation for Fig.5(4)

表5 图6(1)去雾算法的客观评价Tab.5 Objective evaluation for Fig.6(1)

表6 图6(2)去雾算法的客观评价Tab.6 Objective evaluation for Fig.6(2)

5 结论

本文针对天空等明亮区域中暗通道无效及传统暗通道算法易出现白边缺陷的问题,提出一种基于图像尺寸的多尺度暗通道算法,并结合自适应容差策略实现图像去雾。该算法采用由图像尺寸确定的不同尺寸滤波窗口计算透射率估计,并进行线性拟合,获得鲁棒性和适应性更好的多尺度透射率图,并采用引导滤波进一步精细化处理,获得更为精准的透射率图,克服了处理结果中的白边问题。采用自适应容差策略,对明亮区域的透射率做出补偿,避免了明亮区域处理后的失真现象。实验结果表明,采用不同算法对不含和少量天空区域的图像去雾,信息熵提高约0.2 bit/symbol,平均梯度提高约0.5,PSNR提高约8 dB;对较多和大量天空区域图像去雾,PSNR提高约3 dB,SSIM提高约0.1。本文结果实现了去雾图像细节清晰,明亮区域去雾效果良好,整体视觉效果更好等要求。

猜你喜欢

处理结果透射率复原
温陈华:唐宋甲胄复原第一人
告作者
浅谈曜变建盏的复原工艺
毓庆宫惇本殿明间原状陈列的复原
纯色太阳镜镜片耐日光辐照性能试验研究
间接正犯与教唆犯的异同
基于偏度、峰度特征的BPSK信号盲处理结果可信性评估
石墨烯光栅太赫兹透射特性的研究
玻璃长波透射率对普通双层中空玻璃热特性的影响
晶格常数对左手材料的能量透射率及负折射率的影响