第3章图像去雾 图像在采集过程中,会受到各种环境因素(包括不良气象条件)的影响而发生质量退化。雾霾是一种常见的自然现象,它是由悬浮在大气中的微小颗粒对光线的散射和吸收作用而产生的。大气中悬浮的粒子主要有空气分子、水汽/水滴和气溶胶3种。这些粒子所导致的图像质量退化程度与大气粒子的种类、成分、尺寸、形状等密切相关。水滴和气溶胶的半径和密度都比较大,对光的散射作用比较强,而且在一定范围内,散射作用随着粒子半径的增大而增大,使得退化加剧。 雾霾天气中微小悬浮颗粒的散射对成像质量的影响包括: (1) 散射衰减了来自室外场景的反射光,使能见度下降,所成像的对比度降低、画面模糊,影响观测者的视觉感受,妨碍信息的提取; (2) 散射干扰了大气环境光,混合到观察者接收的光线中,从而使人眼看到的景物模糊不清,所成像的清晰度降低、景物难以辨别; (3) 散射会使景物颜色发生偏移失真,色彩值分布比较窄,动态幅值范围也较窄,导致观测者难以辨别景物,所成像的质量变差。 雾霾对成像质量的影响有可能导致严重的后果。例如,雾霾不仅会直接危害人类自身的身体健康,还会对社会安全构成威胁。因为如果摄像头无法穿透厚厚的颗粒层而有效地成像,安全监控系统的作用就会大打折扣。又如在雾霾天,较低的能见度会严重影响车辆行驶过程中驾驶员的行车视程,极大地增加道路交通事故发生的频率。 虽然雾和霾常相提并论,但事实上它们在视觉感知和物理成因上均有所不同。从视觉感知的角度,在雾和霾两种环境下获得的图像是有区别的。直观地说,雾在空间的浓度分布一般是不均匀的,所以雾天图像并不是随着景深的增加而愈显模糊的。另外,由于雾滴比较大,肉眼可辨,因此有雾的地方很难看到原有的景物。与此相反,霾在空间的浓度分布常常比较均匀,因而可见度基本随着景深的增加而逐渐降低。而且霾的粒子很小,肉眼难以分辨,它还会导致一定程度上的色彩失真。 在物理成因上,因为组成霾的粒子的尺寸只有0.01~1μm,与可见光的波长(0.38~0.78μm)可以比拟,所以瑞利散射和米氏散射都会发生[苗2017]。瑞利散射在粒子尺寸小于光波波长的1/10时发生,散射率与光波长的四次方成反比。米氏散射在粒子尺寸大于光波波长时发生,散射率与光的波长基本没有关系,散射方向几乎完全沿着入射方向。由于米氏散射,远处的亮度会降低; 而由于(多次)瑞利散射,到达成像设备的短波光绝大多数被散射掉了。因为人眼对0.55μm左右的黄绿色光较为敏感,因此有霾图像中较远处的部分和天空部分主要显示出黄色。相比之下,组成雾的微小水滴的尺寸多为1~10μm,只会导致产生米氏散射,虽然亮度会降低但不会产生色彩失真。 在讨论消除雾霾对图像的影响时,常常不刻意区分雾和霾,用图像去雾作为一个统称。图像去雾一般指利用特定的图像处理方法和手段,降低或消除空气中的悬浮粒子对图像的降质影响,改善图像的视觉效果,使之对比度增加,清晰度提高,模糊度减少,从而提升图像的质量,以更好更有效地获取图像中的有用信息。本章在后面的介绍和讨论中,也用雾统一表示雾和霾。 3.1图像去雾方法概述 实现图像去雾的方法已提出了许多,而且研究还在不断深入,新的方法仍在不断涌现。 目前针对图像去雾采用的方法根据其作用机理可分为两大类: 基于图像增强的方法和基于图像恢复的方法。也可以把它们分别看作非模型的方法和基于退化模型的方法。这里退化模型主要指描述大气散射规律的物理模型。 1. 基于图像增强的方法 一般来说,雾霾天气导致图像降质后比较明显的问题是图像的对比度有所下降。基于图像增强的方法直接从提升对比度入手进行处理,试图削弱或去除某些有影响的或不需要的干扰,突出有用的细节以提高图像的视觉质量。 基于图像增强的方法不太考虑图像退化降质的物理原因,典型的方法包括直方图变换(如直方图均衡化)、同态滤波、伽马校正、小波变换、基于视网膜皮层(Retinex)理论的方法等[苗2017]。 直方图均衡化是提升图像对比度的有效方法,它可将原本聚集在某个较小灰度区间里的灰度直方图加以扩展,使之在全部灰度动态范围内均匀分布,从而达到提升图像对比度的目的[章2018]。如果雾霾场景比较简单、图像中没有大范围景深变化,直方图均衡化可以改善对比度,提升图像视觉效果。不过,实际雾霾图像中的对比度减弱区域往往不是均匀分布的,更集中于远景处被雾霾影响较为严重的地方。由于这些区域的像素灰度值比较高,当其面积只占整幅图像较少比例时,由于全局直方图均衡化方法仅对整幅图像进行宏观操作,因此常常得不到期望的效果。改进的方法之一是使用局部直方图均衡化的方法,以对图像局部细节进行增强。 基于视网膜皮层理论的方法主要利用了人眼对颜色具有恒常知觉(即人对物体的色彩感受受光照非均匀性的影响较小)的特点,来改善由于光照差异造成的图像对比度降低的问题。早期人们多使用单尺度视网膜皮层(SSR)理论,即将图像分解为入射光分量(即对物体上的照度决定了图像灰度的动态范围)和反射光分量(成像设备采集物体反射的部分,体现了物体的内在属性),如果降低入射光分量的影响,就可增加反射光分量而使处理后的图像更加接近保留物体本质的反射光分量。近期人们更关注使用多尺度视网膜皮层(MSR)理论,以同时保证图像的高保真度和对图像的动态范围压缩。例如,用幂次变换压缩图像的动态范围,用非线性变换抑制图像的高光区域,并用反锐化掩模滤波消除图像模糊,可以取得较好的效果。 使用同态滤波的方法基于类似的思路[章2018],也将图像分解为入射光分量和反射光分量,借助对数变换将它们的乘性关系转换为加性,然后再进行高通滤波,从而抑制低频、增强高频。 基于小波变换图像增强的基本思想与上述的同态滤波有相似之处,只是借助小波变换将降质图像转换为多尺度表达,根据频率特征对非低频的子块进行增强处理。由于小波分析在空域和频域都具有良好的局部特性,有利于锐化图像的细节,增强图像的清晰度。 基于图像增强的方法简单、快速,适用于场景比较单一的情况,能直接提高模糊图像的对比度和颜色饱和度。但这类方法可能会导致处理后图像的颜色失真,或处理后图像的远景部分不够清晰但近景部分又会因过度增强而反差过大。由于不能有针对性地去雾,这类方法也难以使图像在对比度、颜色和亮度等视觉指标方面同时调整到人眼视觉满意的范围。 2. 基于图像恢复的方法 图像恢复处理通过分析雾霾图像的退化机理,利用图像退化的先验知识或假设,建立图像降质或图像退化的物理模型或估计雾霾的属性,从而有针对性地实现图像去雾并且恢复场景。这类方法去雾的效果比较自然、失真较小,目前成为图像去雾技术领域中的主流方法(有些也结合了增强的方法,在图像基本恢复的条件下调整对比度和颜色等)。 雾霾天气下的图像退化与大气传输和环境光照都密切相关,所以据此进行大气物理建模应是一种有效的方法。实际中,由于大气物理模型里有较多的未知参数,利用这样的模型来求解无雾霾图像,本质上是一个不定方程的求解问题(见3.2节)。因此,在求解时需要通过各种方式利用可能的先验知识,建立合理的假设,以获得更多的信息来将模型求解中的非适定性转换为适定性。 更多的信息可以来自场景图像的外部,也可以来自场景图像的内部。利用内部信息的方法又可分为基于几何先验的方法和基于统计先验的方法。 在利用基于几何先验的方法中,一般是根据场景成像特点,利用从3D到2D成像过程中的透射模型来计算景深信息。这里的基本思路是认为图像中目标的姿态或方位与其景深有紧密的几何约束关系,借此来获得像素点景深的几何计算公式,并帮助确定考虑了大气传输特性的图像。 在利用基于统计先验的方法中,最有代表性的是基于暗通道先验(DCP)的方法(见3.2节)。该方法先从统计学角度证明自然场景条件下成像目标的存在近似为黑体,然后利用黑体的吸光特性并借助暗通道先验来估计图像中的大气传输率,从而可进一步求解大气物理模型。当然,这种方法在某些条件下也会失效,对它的一些改进将在3.4节介绍。 利用外部信息较为简单的一种办法是假定其中的某些未知量对场景有一定限定或者场景知识可以从其他渠道获得。例如,大气物理模型里传输率是一个关键参数,能反映图像中场景的深度信息。这些相关信息一方面可借助用户交互输入来加入模型,另一方面也可从诸如地理信息系统中抽取后嵌入模型。 通过多幅图像之间的差别也可以获取图像的景深信息,而景深可以提供去雾的重要线索。目前主要有3类方法,使用了对应雾的不同属性的多幅图像。 (1) 利用同一地点不同时间和天气下的多幅图像之间的差异。 (2) 利用同一场景不同偏振角度下获取的多幅图像之间的差异。 (3) 利用RGBN相机,获取普通彩色图像与近红外图像之间的差异。 上述方法均使用多幅图像,主要是因为从单幅图像获得深度信息比较难以实现。但是,实际中获取同一场景多幅图像的条件较为苛刻,一般不适用于实时应用的场合,也不适用于动态的场景。 由于采集多幅图像常在实际应用中受到限制,近年的工作主要集中在单幅图像的去雾上。已有的方法中,有些是利用了单幅图像中所包含的先验信息,也有些是建立了若干比较合理的假设,以实现图像去雾。本章后面的介绍均围绕单幅图像去雾进行。 3.2暗通道先验去雾算法 基于暗通道先验的去雾算法是一种比较有效地利用图像恢复思路进行图像去雾的典型方法,已得到了比较广泛的关注和应用。 基本的基于暗通道先验的图像去雾算法利用了大气散射模型,又借助暗通道先验来确定模型的参数。 3.2.1大气散射模型 描述雾霾环境下图像退化(降质)的物理模型为[Narasimhan 2003]: I(x)=I∞r(x)e-kd(x)+I∞(1-e-kd(x)) (3.2.1) 式中,x表示空间位置(x=[xy]T),I(x)代表雾霾图像,I∞表示无穷远处的天空辐射(环境光或全局大气光)强度,r(x)代表反射率,e-kd(x) 代表大气透射率,k表示散射系数(雾浓度影响系数),d(x)代表x处的场景深度(景深)。该模型表明,退化主要有两个因素: 对应式(3.2.1)右边第1项的空气中浑浊介质对成像物体反射光的吸收和散射(这导致光照的直接衰减),以及对应式(3.2.1)右边第2项的空气中大气粒子和地面反射光在散射过程中对成像过程造成的多重散射干扰。该模型可用图3.2.1来表示,即原本应清晰的图像受到两个因素的影响而退化了。 图3.2.1雾霾图像退化模型 上述模型可简化为如下大气散射模型[He 2011]: I(x)=J(x)t(x)+A[1-t(x)](3.2.2) 式中,J(x)代表无雾(无环境干扰)图像或对应场景辐射; t(x)为媒介传输图,也称为大气透射率,其值随景深呈指数衰减。对均匀同质的大气,大气透射率可表示为 t(x)=e-kd(x),0≤t(x)≤1(3.2.3) 式(3.2.2)中,A代表整体环境光,简称为大气光/天空光,一般假设为全局常量,与局部位置x无关。式(3.2.2)右边第1项对应入射光的衰减,称为直接衰减,描述了场景辐射照度在大气中的衰减(从场景点到观测点传播中的衰减); 第2项对应大气散射的成像,称为大气散射图(也有称为大气散射函数或大气耗散函数),表示在对场景成像时由于大气散射所导致的对观测点光强的影响,就是它导致了场景的模糊和颜色的失真等雾霾的效果。 式(3.2.1)~式(3.2.3)中各量以及它们之间的联系示意如图3.2.2所示,其中小圆点代表大气中的微粒,远处场景辐射J(x)经散射掉J(x)[1-t(x)]后仅有J(x)t(x)进入摄像机,而大气光A中有A[1-t(x)]被散射进入摄像机。需要注意,与反射率r(x)相关的各个量由于衰减或反射并不直接出现在进入摄像机/观察者的图像中。 图3.2.2大气散射模型的细节 根据式(3.2.2),图像去雾的主要工作就是要估计出A和t(x),从而可恢复出无雾图像J(x): J(x)=A-A-I(x)t(x)(3.2.4) 为恢复出无雾图像J(x)需要分别获得整体环境光A和大气透射率t(x)才有可能,这在实际中是很难同时做到的。换句话说,这是一个不定方程的求解问题。 3.2.2暗通道先验模型 基于对大量无雾图像的统计观察发现[He 2009]: 对于自然图像中非天空部分的局部区域里的某些像素点,至少其有一个颜色通道的亮度值很低(趋于0)。据此,可得到暗通道先验模型/假设(也有人称为暗原色先验理论[於2014]),即对于任意一幅自然无雾图像J(x),其暗通道图像满足 Jdark(x)=miny∈N(x)minC∈{R,G,B}JC(y)→0(3.2.5) 式中,JC(y)代表J(y)的某一个R、G、B颜色通道; N(x)表示以像素点x为中心的邻域(半径为r),可记为Nr(x)。假设在Nr(x)邻域内的大气透射率值为常数,记为tN(x),将式(3.2.2)两边除以AC并进行最小化运算(即将暗通道值代入),可得到: miny∈N(x)minC∈{R,G,B}IC(y)AC=miny∈N(x)minC∈{R,G,B}JC(y)ACtN(x)+[1-tN(x)](3.2.6) 如果大气光值A为已知常量,取JC(y)=0,则可得到Nr(x)邻域中大气透射率的估计值tN(x): tN(x)=1-miny∈N(x)minC∈{R,G,B}IC(y)AC(3.2.7) 根据暗通道先验模型,通常无雾图像的暗通道像素亮度很小,基本趋近于0,所以含雾图像中暗通道像素的亮度值实际上基本就是雾的浓度值。因此,可以利用图像的暗通道值来估计大气光值A,并进而由式(3.2.7)得到大气透射率。 上述基于暗通道先验模型的方法为求解大气散射模型提供了一条可行的路线,成为利用图像恢复技术实现图像去雾的一种基本方法。 利用这种方法进行图像去雾的一个实际效果可见图3.2.3的示例,其中左图为有雾的原图,而右图是去雾后的结果图。可见去雾效果还是很明显的。 图3.2.3基本方法去雾的效果示例 3.2.3实用中的一些问题 上述基于暗通道先验去雾的基本方法在实际应用中会遇到一系列技术问题。下面列出该算法几个比较典型的问题。 (1) 首先,实用中需要选取一定的像素来估计暗通道值,基本方法中选取暗通道图里最亮的前0.1%像素作为对原图大气光的估计点(即A的值为最亮的前0.1%像素灰度的平均值)。但这种方式并不能保证选出真正的最亮点,尤其是当场景中有灯光等出现时常会受到干扰。同时,这种做法也会导致去雾后图像的平均亮度低于原图像。 (2) 其次,如果直接将式(3.2.7)代入式(3.2.2)进行反演去雾,则实际去雾后的图像常常会出现明显的光晕现象或效应(即在景物边缘出现模糊的虚影,也称晕轮伪影),直接影响图像的分辨率和信噪比。为解决这个问题,可采用软抠图算法对媒介传输图进行优化[He 2011],不过软抠图算法会消耗很多的内存从而导致计算速度比较慢,达不到实时处理的要求。进一步的改进是利用引导滤波(也称导向滤波,见3.3.5小节)来替换软抠图算法[He 2013],但这样容易出现去雾效果不够彻底的现象。 (3) 另外,暗通道先验假设大气透射率在局部图像块内为常量,但当图像块跨越场景中的景深边界时,也会产生“光晕”现象。减轻“光晕”现象的方法之一是利用图像分割方法将图像按景深进行分块,并假设每个块内的景深不变来求解大气透射率[Fang 2010]。不过,采用这种分块的操作会产生块效应,后续还须对大气透射率进行优化调整。 (4) 最后,利用暗通道先验模型时常会出现噪声放大的现象,为此还需采用对有雾图像和去雾图像进行双边滤波以抑制噪声的方法,如[王2013]。 3.3改进思路和方法 为解决上面基于暗通道先验去雾的基本方法遇到的一些具体问题,人们已提出了许多改进的思路和方法。这些改进对解决图像去雾中的一些其他问题也有启发意义和帮助。下面具体介绍一些典型的改进思路和具体做法。 3.3.1大气光区域确定 对大气光的估计在实现去雾中起关键作用。为对大气光进行估计,基本方法选择暗通道图像中最亮的前0.1%像素进行统计计算。但是很多时候图像中的最亮点并不是实际上雾浓度最大的地方。基本方法有时会使估计点落到前景区域中,而并不一定能得到大气光的准确值。事实上,这些亮点常常源自场景中的白色物体或其他人工光源,其灰度值往往高于真实的大气光值。 为解决这个问题,已提出了多种改进方法,下面介绍两种。 1. 根据物理意义确定大气光估计点 根据式(3.2.1),大气光的物理意义是景深为无穷远处的背景辐射。根据这一描述,可推断对大气光的估计点应满足以下条件[宋2016]。 (1) 大气光作为环境光源,应该具有较高的亮度。 (2) 对大气光的估计点应落入背景区域。 可以从这两个条件(之一)出发来确定具有较高亮度的大气光估计点,并使这些点鲁棒地落到场景的背景区域中。 针对条件(1),可设置一个亮度域值Ith。采用视网膜皮层理论对照度图像的估计方法[Jobson 1997]来获得原图像亮度分量Iint的照度图像,然后取照度图像的最大值作为亮度域值Ith。 Ith=max{Gaussian(x)Iint(x)}(3.3.1) Gaussian(x)=exp-‖x‖22σ2(3.3.2) 式中,σ为卷积高斯核函数的尺度,可取为σ=0.1min(H,W),H和W分别为图像的高和宽。 针对条件(2),可借助对二值化边缘图Icanny(对用坎尼边缘检测算子得到的边缘阈值化)进行形态学闭运算操作的结果Iclose,取Iclose(x)=0的点来对应背景区域。 由条件(1)和(2)得到的约束条件可分别用模板的方式来表示: Mask1=(Iint≥Ith) Mask2=(Iclose=0) (3.3.3) 用这两个条件对暗通道图DC(x)进行过滤,得到的非零点即是最有可能成为大气光估计的点: DCp(x)=Mask1(x)Mask2(x)DC(x)(3.3.4) 考虑一下极端情况。如果Mask1(x) ∩ Mask2(x)=,即原图中不存在亮度较高的背景区域,则可令DCp(x)=DC(x),算法退化为采用暗通道图来估计大气光。接着,再从DCp(x)中迭代扩大半径找到平均亮度最高的图像块(块半径r=rth + n·step,具体可参见3.3.4小节),并以这个块对应的原图中像素的平均颜色作为大气光的估计值,此处以局部最亮块而非最亮的单个像素来估计大气光是为了进一步滤除不能被Mask1和Mask2过滤掉的前景点。以上步骤可以使大气光的估计点比较鲁棒地落到背景区域。 2. 借助四叉树计算最浓雾区域 为避免对大气光值A的不合理估计,需要确定图像中雾的浓度最高的区域。事实上,在雾浓度越高的区域,像素值也越高,且像素之间的差异也会越小,而均值与标准差的差值会越大[杨2016]。下面定义区域i的这个差值为S(i): S(i)=|M(i)-C(i)|(3.3.5) 式中,M(i)和C(i)分别为该区域的均值和标准差。 借助对图像表达的四叉树结构,可先将图像递归式地划分成4个相同大小的矩形区域,分别计算4个区域的差值S(i),i=1,2,3,4。选择其中差值最高的区域,继续进行递归式分解并分别计算其4个子区域的差值。重复上述过程直到矩形区域的大小满足预先设定的阈值,最后选取出来的区域就是雾浓度最高的区域,记为R(x),可在此区域内较准确地估计大气光的值。 3.3.2大气光值校正 估计大气光值不仅要选对区域,还要合理地进行估计。对大气光值估计的不准确,会导致去雾图像的亮度发生偏移。由式(3.2.2)可知: 在I(x)和t(x)已知的情况下,如果对A的估值变高,会导致去雾图像J(x)的幅值变小而偏暗。下面介绍两种对大气光值估计进行校正的方法。 1. 大气光值加权校正 为了更鲁棒地获取大气光的值,在获得雾浓度最高的区域R(x)后,不直接取R(x)中最亮点的像素值而是采用加权估计来进行调整[杨2016]。 将R(x)中所有的像素点划分为两部分: 所有灰度值大于均值的点属于亮区,所有灰度值小于均值的点属于暗区。设亮区和暗区的像素点个数分别为Nb和Nd。选取3×3的块,分别计算亮区和暗区中暗通道值的最大值M b和Md。设Mb和Md分别在点R(y)和R(z)处取得,则大气光值A为 A=WbR(y)+WdR(z)(3.3.6) 式中,Wb=Nb/SR,Wd=Nd/SR,且满足Wb + Wd=1; 这里SR为R(x)的尺寸(即Nb + Nd)。这样,当亮区像素点比较多时,A由R(y)主导,当暗区像素点比较多时,A则由R(z)主导,但是无论何种情况,R(y)和R(z)都是共同发挥作用,相互制约,相互补偿,从而给出一个较合理的大气光值,帮助获得视觉上较自然的去雾图像。 总结一下,估计大气光的值A的具体步骤如下。 (1) 将图像分成4个相同大小的矩形区域,分别计算每个区域的差值S(i)。 (2) 选取差值最大的区域,重复步骤(1),直到满足预先设定的阈值,获得雾浓度最高区域R(x)。 (3) 将区域R(x)内的像素点分别划分到暗区和亮区,分别获取两个区域内暗通道值的最大值。 (4) 确定两个最大值在图像中的位置,通过加权求取大气光的值A。 2. 大气光颜色值校正 当背景为蓝天时,如果直接由式(3.2.4)求解去雾图像,将会产生色彩失真。下面具体分析产生色彩失真的原因并介绍一种解决办法[宋2016]。 由瑞利定律可知,蓝天是由于大气散射对波长的选择性而形成的,散射系数与入射光的波长存在如下关系[Narasimhan 2003]: k(λ)∝1λγ(3.3.7) 式中,γ的取值与大气悬浮颗粒的尺寸有关,通常情况下,0<γ<4。在晴朗的天气,γ→4,短波长的蓝光散射系数最大,天空呈现蓝色; 在浓雾天气,γ→0,散射系数可近似地认为与波长无关,所有波长的光散射系数几乎相等,天空呈现灰白色。换句话说,蓝天是大气光经大气散射后呈现的颜色,并非大气光本来的颜色。因此,当估计点落入蓝天区域时,为了得到大气光本来的颜色,应对大气光的估计值进行修正。一种修正大气光颜色的方法是减小彩色的饱和度,主要步骤如 下。 (1) 求得A的估计值在HSI空间中的3个分量: 色调AH、饱和度AS和亮度AI。 (2) 设置饱和度阈值Sth。它的取值应尽量小,但同时还能保持原图像的色彩氛围(即不能直接取Sth=0)。与亮度域值的求解过程(见式(3.3.1))类似,取雾霾图像饱和度分量经高斯卷积()平滑后的最小值作为Sth: Sth=min{Gaussian(x)Isat(x)}(3.3.8) (3) 保持AH和AI不变,计算 A′s=min(Sth,As)(3.3.9) 用A′S更新AS,并将3个分量由HSI空间转换回RGB空间,得到修正后的大气光的色彩值。 3.3.3尺度自适应 暗通道先验模型假设大气透射率在Nr(x)邻域内为常量,此时r的取值会对去雾的效果产生影响。下面先分r值较小和r值较大两种情况分别讨论。 (1) 当r较小时,在图像里对应前景的大部分区域会有0tN(x),即暗通道先验对大气透射率的估计值将小于其实际值。另外在A为常量的情况下,由式(3.2.4)可知t(x)在Nr(x)内也为常量,且0I,可见去雾的实质就是通过放大雾霾图像中各颜色通道的幅值变化来提升对比度。如果对t(x)的估值变小,则会过度放大Nr(x)内像素的颜色变化,使得恢复图像产生过饱和失真。同时,由式(3.2.4)还可知,当I(x)rth(x位于亮度较高区域),则对x的尺度进行修正,首先从r=rth+step开始,逐渐增大尺度,即取r=[rth+step,rth+2·step,…,rth+n·step],直到在Icanny图中以x为中心,r(x)为半径的块内包含边缘点为止,此时的rth+(n-1)·step即为x点修正后的尺度。如此递增进行,求解块Nr(x)应不会跨越景深边界,从而可减小出现“光晕”现象的可能。上面的参数step和n决定了尺度的自适应范围。统计表明,可选取step=2,n=5以将尺度的自适应范围限定在1~rth+n·step(1≤rth<10,rth+n·step<20),这个范围对于大多数自然场景的图像都能取得很好的去雾效果。当rth+n·step>20后,去雾效果改善不多,但计算时间会偏长。 如果x点正好在边缘上,且满足01000(3.3.22) 在有雾的天气条件下,空气中存在着大量半径值为1~10μm的粒子,此时的能见度L∈[50,1000](以m为单位)。根据雾天退化模型,导致图像降质的一个重要原因就是空气中粒子对成像物体反射光的米氏散射,而粒子的散射特征由粒子的尺度特征α所决定,且α=2πr/λ,其中,r为粒子的半径,λ为入射光的波长。根据大气光中可见光的波长范围和空气中粒子的半径,可以得到粒子的尺度特征范围: α∈[8,157]。在这个范围内,大气能见度L和大气消光系数e有如下关系[龙2016]: L≡-lnTe(3.3.23) 式中,T为视觉对比阈值,L代表具有正常视力的人在当时的天气条件下能够看清楚目标轮廓的最大距离。根据气象部门对浓雾条件下人的视觉对比阈值的规定,此时人的视觉对比阈值的取值为0.05[龙2016]。令式(3.3.23)中T的取值为0.05得到 L=2.99/e(3.3.24) 根据散射理论,在不考虑雾粒子对光线吸收的情况下,大气消光系数e与消光效率因子Qe、雾粒子浓度n、雾粒子半径r之间存在如下关系: e=πnr2Qe(3.3.25) 式中,消光效率因子Qe随雾的变化一般在Qe=2附近波动,所以下面取Qe=2。根据式(3.3.24)和式(3.3.25)可知,雾粒子浓度n以及雾粒子半径r均为影响大气消光系数e的因素,同样也就是影响能见度L的因素。而且,雾浓度与n或r都是正相关的,所以可定义能见度L的雾浓度因子GL为 GL=Gαnαr2α(3.3.26) 式中,系数Gα对给定的尺度特征α是常数,将式(3.3.24)和式(3.3.25)结合进式(3.3.26)可以得到: GL=2.99Gα2πL(3.3.27) 从式(3.3.27)可知,如果以能见度在1000m以内作为有雾天气,当能见度L∈[50,1000]时,雾浓度因子GL和能见度L之间成正比例关系。此时取1000m作为参考标准,得到: GL=1000G1000L(3.3.28) 也就是说,当以1000m的距离作为有雾的标准距离时,雾浓度因子GL与1000/L之间存在着正比例关系。由于Gk同样是描述雾浓度因子的参数,所以根据式(3.3.22)定义的能见度范围下的雾浓度因子的取值,可以得到雾浓度因子Gk与能见度L的关系式: Gk=8L<50 0.36×1000/L+0.6450≤L≤1000 1L>1000(3.3.29) 3. 基于引导滤波的大气光估计 在修复雾霾图像时,除了需要获取雾浓度因子Gk的值,还需要估计大气光的值。这可借助具有边缘保持特性的引导滤波来实现。 引导滤波是一种线性可变滤波,利用其估计大气光的基本思想如下[He 2013]。 记输入图像为P,引导图像为I,滤波输出图像为Q,则在第k个半径为r的方形图像块Wk中存在如下线性关系: Qi=akIi+bki∈Wk(3.3.30) 式中,ak与bk为块中的局部线性系数,在给定块中为固定值; i是块中的像素索引。为了让引导滤波的效果达到最好,必须使得输出的图像Q与输入的图像P之间的差异最小,此时需要代价函数E(ak,bk)满足: E(ak,bk)=min∑i∈Wk[(Qi-Pi)2+εa2k](3.3.31) 为得到E(ak,bk)的最小值,可利用最小二乘法的思想求解线性系数ak与bk: ak=covk(I,P)vark(I)+ε(3.3.32) bk=p′k-akI′k(3.3.33) 式中,ε为正则化平滑因子,covk(I,P)为引导图像I和输入图像P的协方差,vark(I)为I的方差,p′k为p在单元块Wk内的均值,I′k为I在单元块Wk内的均值。在利用最小二乘法求得满足代价函数最小值的ak与bk的值后,通过对图像进行滤波得到大气光幕值,即大气光A可以表示为: A=F1|W|∑k∈WiakPi+1 |W|∑k∈Wibk(3.3.34) 式中,Pi为输入图像中的像素点,Wi表示以像素Pi为中心的单元块,|W|为单元块里的像素个数,F表示对每个像素点做滤波处理。该种滤波方法采用最小二乘法的思想,借助盒滤波器和积分图像技术进行快速运算,在执行滤波操作时其执行速度与滤波块的尺寸无关。 3.4改善失真的综合算法 图像去雾的目的是希望改善图像的视觉质量,所以除了提高去雾图像的清晰度外,还要避免处理所导致的失真。这里介绍的一种去雾算法,也对基本方法进行了综合改进[李2017]。它的特点是在试图提高算法去雾效果的同时,还着重考虑了能使去雾图像失真较小、比较自然的手段。 下面先给出改进算法的流程,接下来依次介绍其中的各个步骤。 3.4.1综合算法流程 再回到描述雾霾图像退化的大气散射模型,即式(3.2.2)。图像去雾是在只知道I(x)的条件下,先估计出A和t(x),最后要得到J(x)。这里,将对J(x)的恢复公式表示为[He 2011] J(x)=I(x)-Amax[t(x),t0] +A(3.4.1) 这里为防止分母出现0,分母上加了一个下限阈值t0。 综合改进的基本思路是在透射率(T)空间计算大气散射图以进行去雾。主要步骤如下。 (1) 将图像转换到T空间。 (2) 利用引导滤波得到大气散射图。 (3) 确定天空区域。 (4) 进行对比度增强和亮度调整。 整个算法流程如图3.4.1所示。 图3.4.1综合改进算法的流程 3.4.2T空间转换 对彩色图像,其RGB三个通道之间有一定的相关性,或者说三个通道中的彩色之间存在着耦合。如果能削弱各通道之间的耦合,会使暗通道先验模型更容易得到满足。为此,可利用地物波谱特性和人眼视觉模型等计算出耦合程度更低的透射率空间,即T空间[史2013]。T空间与RGB空间的转换为: T=MC(3.4.2) 式中,T=[T1 T2 T3]T,表示透射率空间的3个通道; C=[R G B]T,表示原彩色空间的3个通道。如此得到的M为(这里为使RGB空间中的[255; 255; 255]转换到T空间后仍为[255; 255; 255],对每一项都乘了255): M=0.0255-0.12751.0965 -0.33151.5045-0.1785 0.56100.38250.0510(3.4.3) 将RGB空间中的图像I(x)转换到T空间后记为IT(x)。实验表明,在T空间中暗通道像素所占的比例更高[史2013]。在RGB彩色空间与在T空间中进行去雾,所得到效果的一个对比示例如图3.4.2所示,其中图3.4.2(a)为有雾的原图,图3.4.2(b)为在RGB空间中的去雾结果,图3.4.2(c)为在T空间中的去雾结果,相对来说其颜色失真更小一些。 图3.4.2在RGB空间和T空间去雾结果的比较 3.4.3透射率空间的大气散射图 根据暗通道先验和雾天图像退化模型,可计算T空间中颜色通道最小值: DT(x)=mind∈(T1,T2,T3)IdT(x)(3.4.4) 记式(3.2.2)右边的第2项为大气散射图G(x)=A[1-t(x)]。对DT(x)借助引导滤波消除细节后得到G(x)的一个模糊版本Gm(x),这样对G(x)的计算公式为: G(x)=max{min[p×Gm(x),DT(x)],0}(3.4.5) 式(3.4.5)中的p与式(3.3.20)中的p的作用一样(见3.3.4小节)。 根据G(x)=A[1-t(x)],从G(x)得到的透射率t(x)为: t(x)=1-0.95×G/A(3.4.6) 这里将G和A的平均值代入式(3.4.6)以使分子分母均只有一个颜色通道。 根据式(3.4.5)和式(3.4.6),当p较大时G(x)也可能会较大,而t(x)会较小。在式(3.4.1)中,由于一般I≤A,所以第一项为负。这样t较小时恢复出的J较小,更容易出现过于饱和的颜色,从而导致颜色失真。为此,取系数p=0.75,这样比采用较大的p值更能降低颜色失真和边缘失真。图3.4.3给出一组示例,其中图3.4.3(a)为有雾原图; 图3.4.3(b)为p取0.9时得到的去雾结果,总体颜色过于饱和,楼房的色调偏黄; 而图3.4.3(c)为p取0.75时得到的去雾结果,颜色比较自然。 图3.4.3p取不同值时的去雾结果 3.4.4天空区域检测 基本方法中简单地把阈值t0定为0.1有可能会引起天空区域失真,如图3.4.4所示,其中图3.4.4(a)为一幅有雾原图,图3.4.4(b)为取t0=0.1时得到的去雾结果,由于t0过小,有明显的颜色失真。 如果用暗通道来表示深度d(x),则可以使用式(3.2.3)来计算大气透射率。试验表明当系数k为1.5时,得到t(x)≥e-k=e-1.5=0.2231,这就能抑制天空区域的部分失真,得到的结果如图3.4.4(c)所示。不过,系数k是根据经验选取的,普遍意义不太强。 由于一般天空区域中细节较少,所以可考虑将图像中暗通道较亮且边缘较少的部分判断为天空,这部分里最亮的像素值为A。为此,可设计两个阈值[褚2013]: 一个是暗通道阈值Tv,它可定为0.9×暗通道的最大值; 一个是边缘个数阈值Tp,它可定为邻域内边缘个数的最小值/0.9。这样,只有暗通道值≥阈值Tv且邻域内边缘数≤ Tp的部分才是天空区域。 进一步还可采用动态阈值t0[方2013],并适当放松Tv来扩大天空区域,从而得到更准确的天空区域和t0。具体做法是对一般图像可将Tv放松为0.88×max[d(x)],而对天空部分较多的图像,还可以放松到0.6×max[d(x)],Tp则保持不变。这样,当取暗通道的邻域尺寸为120而边缘邻域尺寸为60时,得到的天空区域如图3.4.4(d)所示,相对比较完整。天空区域中最亮的像素值给出大气光的A。如果采用文献[方2013]提出的天空区域透射率的0.99分位求出透射率阈值t0,得到t0=0.6643。最终的去雾结果如图3.4.4(e)所示。 图3.4.4天空区域检测及效果 3.4.5对比度增强 在T空间去雾后还可进行对比度增强[史2013]。设R,G,B分别是去雾结果图J0(x)在RGB空间的3个通道,令a=[max(R)max(G)max(B)]T为最大值向量,b=[min(R)min(G)min(B)]T为最小值向量,可如下计算出T空间的增强向量(这里为向量元素对应相除,即数组相除): C=M(a-b)M255255255T(3.4.7) 式中,M见式(3.4.3)。 在T空间中,增强结果图JT(x)是用去雾结果图JT0(x)的各个分量除以增强向量C的各个分量而得到的。对比度增强效果的一个对比如图3.4.5所示,其中图3.4.5(a)是原始有雾图像; 图3.4.5(b)是对比度增强之前的去雾结果,有些偏红; 图3.4.5(c)是对比度增强之后的去雾结果,颜色偏红的天空变得更蓝、更晴朗、更加自然,图像的主观视觉质量有所提高。 图3.4.5对比度增强前后的去雾结果比较 需要注意,对比度增强会使原本偏暗的地方变得更暗,所以还要注意提高暗处的亮度来恢复这些细节。这时可以使用一种如下的亮度映射的曲线q=f(p)[甘2013]: q=255lg256×ln(p+1)ln2+8p255lnsln0.5(3.4.8) 式中,s是一个可调参数,其值与亮度调整幅度(特别在图像中较暗部分)呈反比关系,一般可取5。上述亮度调整需对每个通道分别进行。 将亮度调整后的结果转换回RGB空间就得到最终的去雾图像。 3.5去雾效果评价 随着众多图像去雾算法的提出,为了衡量不同算法的有效性,以判断和选择合适的算法用于特定的场合,需要对去雾的效果进行评价。 对去雾效果的评价与一般对图像质量的评价或对图像恢复效果的评价有所不同。实际中,与有雾图像场景完全相同的真实清晰图像常常很难获得,所以常常没有理想图像作为评价参考。评价时只能对去雾图像自身进行评测,或者与有雾图像进行对比。另一方面,采用主观视觉评价的方法容易受到观测者个人因素的影响,而且人类的视觉感受本身就不是一个确定性的过程。所以,主观视觉评价需要与客观视觉评价结合才比较有意义。 下面先分别介绍了一些用以评价去雾效果的客观指标和考虑了视觉感知的客观指标,然后介绍一个主客观相结合的评价实例。 3.5.1客观评价指标 目前还没有大家公认的评价图像去雾算法或去雾图像质量的客观指标。 在图像处理中,现有的图像客观评价方法按照对参考信息的需求程度可分为全参考、半参考和无参考三大类。其中前两类需要借助参考图像。针对图像去雾的效果评价这一具体应用而言,上面已说明参考图像很难获得,所以前两类指标不太适用。 1. 无参考评价指标 运用无参考的客观评价方法,常用的评价指标可分4类[吴2015]。 (1) 基于像素: 比较有雾图像和去雾图像的对应像素,计算它们像素值之间的差异,从而可判断失真的程度。为此,可使用峰值信噪比(PSNR)、均方误差(MSE)等指标。 (2) 基于图像组成: 比较有雾图像和去雾图像之间在景物结构上的差异,计算不同组成部分和细节保持的能力。在这个方面,结构相似度(SSIM)是一个常用指标。 (3) 基于图像对比度: 比较有雾图像和去雾图像之间在局部对比度方面的变化,分析景物特征被识别的提高程度。虽然使用这类指标的方法无法正确评价存在过度增强的图像去雾效果,但由于比较直接地与人类视觉感知相关,仍得到广泛应用。 (4) 基于图像保真度: 比较有雾图像和去雾图像之间在景物色彩方面的保持情况,计算色彩偏移的程度。这可借助图像直方图的相似度(相关系数)来衡量。 2. 可见边缘梯度 当人观察图像时,首先会发现和关注其中的边缘。可见边缘梯度法 [Hautière 2008]是一种在去雾的领域中常用的盲评价方法。它借助能见度(VL,也称可视度)的概念来评价去雾图像的视觉质量。能见度与目标和背景之间的亮度差异有关,是一个相对的概念。借助能见度可将对图像对比度的性能评估问题转化为对一个相关对比度系数R的求取问题。R可表示为 R=ΔVLJΔVLI=ΔJΔI(3.5.1) 式中,VLJ和VLI分别代表去雾图像和有雾图像中目标物的能见度水平,ΔJ和ΔI分别代表去雾图像J和有雾图像I中属于可见边缘像素的梯度(灰度差异)。可见,R借助了去雾图像和有雾图像之间的相关梯度来衡量去雾方法所导致的能见度水平的提升程度(对应对比度的增加)。 借助去雾图像和有雾图像可计算相关对比度图,这里定义了以下3个评价(对比度的)指标。 (1) 去雾后新增可见边缘之比例E E=NJ-NINJ(3.5.2) 式中,NJ和NI分别代表去雾图像和有雾图像中可见边缘的数目。E的值越大,表明去雾图像中可见边缘的数量增加得越多。 (2) 可见边缘的梯度均值G G=exp1NJ∑qi∈QJlogGi(3.5.3) 式中,QJ为J中可见边缘的集合,qi为J中一个具体可见边缘,Gi为在qi处ΔJ与ΔI的梯度比值。G的值越大,表明去雾图像中可见边缘的强度越大。 (3) 饱和的黑色像素或白色像素的百分比S S=NsN(3.5.4) 式中,Ns为J中饱和的黑色或白色像素的数目,实际中可通过计算灰度化后去雾图像中像素亮度值为255或0的像素数目之和来确定; N为相关对比度图中的像素总数。S的值越小,表明去雾图像的对比度越高。 这3个指标中,前两个反映了去雾图像中视觉效果改善的情况,越大越好; 后一个对应于去雾图像中被过度处理的情况,越小越好。但需要注意,实际中这3个指标常常不能同时得到最优值。另外,有时最优值并不一定对应最好的视觉效果。 3. 视觉感知计算 人在观察图像时,感知的舒适和愉悦程度除与图像中的对比度有关外,还与图像的色彩自然程度和丰富程度有关。前面讨论的三个评价指标均围绕图像对比度计算,主要反映了去雾算法的对比度复原能力。然而,人类视觉系统在判断算法的去雾效果时,还要考虑去雾图像的色彩质量。这里可借助人类视觉所感知的色彩自然度和色彩丰富度来判断图像色彩质量。将对比度、自然度和丰富度结合起来就可以进行考虑人眼感知的对比度自然度丰富度(CNC)评价[Huang 2006]。它具体也有3个指标: 对比度增强指标(CEI),色彩自然度指标(CNI),色彩丰富度指标(CCI)。 对比度增强指标仍然基于可见边缘(参见式(3.5.2)的参数定义),可写为: CEI=NINJ(3.5.5) 对色彩自然度指标的计算需要一系列的步骤: 先计算图像的亮度L、色调H和饱和度值S; 保留亮度值为20~80、饱和度值大于0.1的彩色; 考虑3个范围的色调值: U对应[25 70],V对应[95 135],W对应[185 260]; 对3个范围分别计算平均饱和度值SUa、SVa、SWa和像素个数NU、NV、NW; 然后计算3个范围内像素的局部CNI值: CNIU=exp{-0.5[(SUa-0.76)/0.52]2}(3.5.6) CNIV=exp{-0.5[(SVa-0.81)/0.53]2}(3.5.7) CNIW=exp{-0.5[(SWa-0.43)/0.22]2}(3.5.8) 最后,计算总的CNI值: CNI=(NU×CNIU+NV×CNIV+NW×CNIW)/(NU+NV+NW)(3.5.9) 色彩自然度指标是一个反映人类视觉度量图像场景是否真实自然的指标,主要用于对去雾图像J的色彩自然程度进行评判,其取值范围为[01]。CNI越接近于1,图像越自然。 色彩丰富度指标是一个衡量色彩鲜艳生动程度的指标。在sRGB彩色空间中,一幅图像的CCI可用如下公式计算[Hasler 2003]: CCI=σrgyb+0.3μrgyb=σ2rg+σ2yb+0.3μ2rg+μ2yb(3.5.10) 式中,下标rg和yb表示sRGB彩色空间中根据对立色理论计算得到的分量: rg=R-G(3.5.11) yb=12(R+G)-B(3.5.12) 色彩丰富度指标同样用于评判去雾图像J。当CCI在某一个特定取值范围内时,人类视觉对图像色彩的感知最为适度。注意CCI与图像内容相关,适合用于衡量同一场景、相同景物在不同去雾效果下的色彩丰富程度。 将去雾后新增可见边缘之比例的指标CEI与色彩自然度CNI和色彩丰富度CCI结合就可对去雾效果进行较全面的定量评价,总体流程如图3.5.1所示[郭2012]。 图3.5.1基于视觉感知的综合评价流程 综合评价函数的确定要考虑各个指标在不同雾霾情况下的数值变化情况,从而确定不同指标的各自权重。为此,可通过模拟不同程度的雾霾情况(从浓雾、大雾到薄雾,直到无雾)以及不同程度的去雾情况(从去雾不足、逐步清晰到去雾恰当,甚至到去雾过度),并计算和统计各个指标的数值,以得到各个指标的总体变化趋势。实验表明,三个指标都基本呈现其数值随着去雾程度先由小到大然后又由大到小的变化(虽然有一些波动起伏)。其中,指标CEI和CCI的值在波动中稳步上升,直到过度增强达到一定程度后才急剧下降(即最佳去雾的效果在曲线达到峰值前取得)。而指标CNI的值在波动中上升较快,在到达最佳去雾的效果前就会出现几个局部峰值,而且到达最佳去雾效果后就开始下降。由于现实中存 在少量雾气时图像的色彩可能反而较为自然,所以最自然的图像并不一定是清晰化效果最好的图像,但最清晰的图像必定具有较高的CNI值。综合看来,要使综合评价函数的曲线峰值与图像实际最佳去雾的效果相接近,需要使CEI和CCI曲线在达到最佳去雾的效果后直到其峰值之间的高数值尽可能地被CNI曲线在这段范围内的下降变化所抵消。所以,可取综合评价函数为如下形式: CNC=CEIk×CNI+CCIh×CNI(3.5.13) 式中,k和h是小于或等于1的常数,用来调节CEI和CCI相对于CNI的权重。 3.5.2主客观结合的评价实例 主观评价指标反映视觉质量更直接,而客观评价指标更便于定量计算。选用比较符合主观质量的客观评价指标(即两者相关比较密切的指标)是一种思路。 1. 评价指标和计算 这里考虑采用结构相似度(SSIM)[Wang 2004]作为客观评价图像质量的指标。结构相似度借助了图像中的协方差等信息,对图像中的结构有一定的描述作用。由于人眼对结构信息比较敏感,所以结构相似度应反映一定的主观视觉感受。结构相似度衡量的是两幅(灰度)图像结构之间的相似度,其值可归一化到[01]区间,两幅图像相同时,有SSIM=1。对彩色图像,可将图像转换到CIELab空间[赵2013],并计算L通道的SSIM,这是因为L通道的SSIM相比a通道和b通道的SSIM更有代表性。 为衡量结构相似度与图像主观视觉质量之间的相关性,可考虑对原始图像采取加雾的方法来获得不同的加雾图像作为参考,从而计算各种情况下的结构相似度。具体可使用蓝色通道[Wang 2014]加雾算法对去雾的结果进行加雾。归一化的蓝色通道 B(x)与图像景深之间存在对数关系,可表示为: d(x)=-log(1-B(x))(3.5.14) 用引导滤波去掉B(x)的细节(虚化)得到Bd(x)。根据式(3.2.3)和式(3.5.14),透射率与蓝色通道为线性关系。透射率可写为: t(x)=1-0.95×Bd(x)(3.5.15) 选图中最亮的像素值为A,再利用式(3.2.2)就可得到恢复图像I′。 一个图像加雾示例如图3.5.2所示,其中图3.5.2(a)是I(x),图3.5.2(b)是J(x),图3.5.2(c)是Bd(x),图3.5.2(d)是I′(x)。 图3.5.2图像加雾效果 利用加了不同程度的雾的图像进行的实验表明,去雾的结果与原图像之间的SSIM值越大(即越相似),加雾的结果与原图像之间的SSIM值也越大。这说明SSIM越大则图像失真越小,主观质量更高。加雾前后的SSIM数据点标在图3.5.3中,其中横轴指示去雾图像与原图像之间的SSIM,竖轴指示加雾图像与原图像之间的SSIM。图3.5.3最右的一串红色点指示原图像经过加雾后得到的SSIM,其横轴坐标为1(雾被完全去除了)。 图3.5.3加雾前后的SSIM数据点 如图3.5.3所示,蓝色点表示的去雾图像的SSIM与加雾图像的SSIM的相关系数高达0.8708。当去雾图像的SSIM较大时,加雾图像的SSIM的增长变慢。根据红色的数据点,如果去雾图像的SSIM继续增加,加雾图像的SSIM增长会进一步变慢甚至下降,直至红色点。虽然SSIM过高时的图像主观质量可能下降,但在蓝色点区间,即各种实际去雾结果中,SSIM越大,失真越小,图像有更高的主观质量。这表明结构相似度与图像的主观视觉质量具有较强的正相关。 2. 实验和结果 为进行实验,使用了文献[He 2009]网站和PPT中展示的图像作为测试图像的一部分,这些图像的大小约为400×600。另外,还在PM2.5约为300时拍摄了一些有雾霾的图像来扩展数据集,这些图像的大小为2448×3264。从这两部分中共选了50幅测试图像。测试图像内容种类比较分散,其中有自然风光也有城市景象,也有存在高光区域的图像和逆光条件下拍摄的图像。 为具体进行主客观评价,选择了5个算法参与比较实验: 算法A[甘2013](参见3.4.5小节),算法B[褚2013](参见3.4.4小节),算法C[史2013](参见3.4.2小节),算法D(结合了算法A和算法B),算法E[李2017](参见3.4节)。 求大气散射图时引导滤波的引导图和输入图均为归一化到[0,1]的DT(x),滤波后将结果映射放大回[0,255]区间。令Wr表示半径为r的方形引导滤波窗口,对400×600的图像取Wr=12,正则化平滑因子ε=0.04; 对2448×3264的图像,取Wr=70,ε=0.04。计算天空区域时,对400×600图像,取Tv=0.88×max[d(x)]; 对2448×3264图像,取Tv=0.6×max[d(x)]。对400×600的图像,取暗通道的邻域大小为30,边缘邻域的大小为15; 对2448×3264图像,取暗通道的邻域大小为120,边缘邻域的大小为60。图像加雾时,对400×600的图像,取Wr=5,ε=0.04; 对2448×3264的图像,取Wr=30,ε=0.04。 取上述50幅有雾测试原图作为参照,使用5个实验算法分别进行去雾,一共得到了250幅去雾结果图。请了10人对这些图像进行了主观评价[李2017]。每次呈现1幅有雾原图和分别使用5个算法对该图获得的去雾结果图。为保证公平性,随机打乱了各个算法结果显示的顺序。对每幅结果图,均分别根据对失真和去雾两个方面的评判进行打分。每个打分标准都分为低、中、高3档。失真越低越好,去雾越高越好。为拉开3档之间的差距,将低、中、高失真项的权重分别设为3,2,1; 将低、中、高去雾项的权重分别设为1,2,3。两项的得分都是越高越好。失真总分和去雾总分的权重均为1。 实际中,由于结果图的质量总体较好,所以参与评价的人对图像的质量比较容易达成共识。最后,打分结果较集中,峰值较明显。这说明10人已经能帮助找到打分的统计分布。 参与比较的5个算法的失真评分如图3.5.4所示,5个算法在L通道中的SSIM值如图3.5.5所示。由这两幅图可见,SSIM对最高分和最低分的识别较好。SSIM值最高的粉色点在失真得分图中也排在前面,SSIM值最低的蓝色点在失真得分图中也排在后面。在参与比较的5个算法中,这两个算法(排名最前的算法E和排名最后的算法A)平均有40%的图的SSIM值与失真得分排序相同。 图3.5.4比较5个算法的失真得分 图3.5.5比较5个算法在L通道中的SSIM值 3.6近期文献分类总结 下面是2015年、2016年、2017年和2018年在中国图像工程重要期刊[章1999]上发表的一些有关图像去雾的文献目录(按作者姓氏拼音排序),全文均可在中国知网上获得。 [1]毕笃彦,眭萍,何林远,等.基于Color Lines先验的高阶马尔科夫随机场去雾.电子与信息学报,2016,38(9): 24052409. [2]陈丹丹,陈莉,张永新,等.修正大气耗散函数的单幅图像去雾.中国图象图形学报,2017,22(6): 787796. [3]陈书贞,任占广,练秋生.基于改进暗通道和导向滤波的单幅图像去雾算法.自动化学报,2016,42(3): 455465. [4]戴声奎.去雾算法中天空区域直方图分析与模式识别.信号处理,2015,31(12): 15981604. [5]方帅,赵育坤,李心科,等.基于光照估计的夜间图像去雾.电子学报,2016,44(11): 25692575. [6]郭璠,邹北骥,唐琎.基于多光源模型的夜晚雾天图像去雾算法.电子学报,2017,45(9): 21272134. [7]何林远,毕笃彦,熊磊,等.基于亮度反馈的彩色雾霾图像增强算法.电子学报,2015,43(10): 19781983. [8]何人杰,樊养余,等.基于非局部全变分正则化优化的单幅雾天图像恢复新方法.电子与信息学报,2016,38(10): 25092514. [9]胡子昂,王卫星,陆健强,等.视觉信息损失先验的图像分层去雾方法.中国图象图形学报,2016,21(6): 711722. [10]江巨浪,孙伟,王振东,等.基于透射率权值因子的雾天图像融合增强算法.电子与信息学报,2018,40(10): 23882394. [11]鞠铭烨,张登银,纪应天.基于雾气浓度估计的图像去雾算法.自动化学报,2016,42(9): 13671379. [12]李加元,胡庆武,艾明耀,等.结合天空识别和暗通道原理的图像去雾.中国图象图形学报,2015,20(4): 514519. [13]刘海波,杨杰,吴正平,等.基于暗通道先验和Retinex理论的快速单幅图像去雾方法.自动化学报,2015,41(7): 12641273. [14]刘海波,杨杰,吴正平,等.基于区间估计的单幅图像快速去雾.电子与信息学报,2016,38(2): 381388. [15]刘杰平,黄炳坤,韦岗.一种快速的单幅图像去雾算法.电子学报,2017,45(8): 18961901. [16]刘万军,赵庆国,曲海成.变差函数和形态学滤波的图像去雾算法.中国图象图形学报,2016,21(12): 16101622. [17]刘兴云,戴声奎.消除halo效应和色彩失真的去雾算法.中国图象图形学报,2015,20(11): 14531461. [18]麦嘉铭,王美华,梁云,等.特征学习的单幅图像去雾算法.中国图象图形学报,2016,21(4): 464474. [19]南栋,毕笃彦,马时平,等.基于景深约束的单幅雾天图像去雾算法.电子学报,2015,43(3): 500504. [20]沈逸云,邵雅琪,刘春晓,等.结合天空检测与纹理平滑的图像去雾.中国图象图形学报,2017,22(7): 897905. [21]汤红忠,张小刚,朱玲,等.结合最小颜色通道图与传播滤波的单幅图像去雾算法研究.通信学报,2017,38(1): 2634. [22]汪云飞,冯国强,刘华伟,等.基于超像素的均值均方差暗通道单幅图像去雾方法.自动化学报,2018,44(3): 481489. [23]王平,张云峰,包芳勋,等.基于雾天图像降质模型的优化去雾方法.中国图象图形学报,2018,23(4): 605616. [24]温立民,巨永锋,闫茂德.基于自然统计特征分布的交通图像雾浓度检测.电子学报,2017,45(8): 18881895. [25]肖进胜,高威,邹白昱,等.基于天空约束暗通道先验的图像去雾.电子学报,2017,45(2): 346352. [26]邢晓敏,刘威.雾天交通场景中单幅图像去雾.中国图象图形学报,2016,21(11): 14401447. [27]杨爱萍,王南,庞彦伟,等.人工光源条件下夜间雾天图像建模及去雾.电子与信息学报,2018,40(6): 13301337. [28]曾浩,尚媛园,丁辉,等.基于暗原色先验的图像快速去雾.中国图象图形学报,2015,20(7): 914921. [29]曾接贤,余永龙.双边滤波与暗通道结合的图像保边去雾算法.中国图象图形学报,2017,22(2): 147153. [30]张登银,鞠铭烨,王雪梅.一种基于暗通道先验的快速图像去雾算法.电子学报,2015,43(7): 14371443. [31]赵锦威,沈逸云,刘春晓,等.暗通道先验图像去雾的大气光校验和光晕消除.中国图象图形学报,2016,21(9): 12211228. 对上述文献进行了归纳分析,并将一些特性概括总结在表3.6.1中。 表3.6.1近期一些有关图像去雾文献的概况 编号增强/恢复技术关注主要步骤特点 [1]恢复 (暗通道) 大气光区域先利用暗通道先验获取传输图,对不符合暗通道先验的天空等大块白色区域进行校正。这里采用基于RGB颜色空间1D分布的统计先验进行,最后利用高阶马尔科夫随机场优化传输图,得到最终去雾图像 续表 编号增强/恢复技术关注主要步骤特点 [2]恢复 (暗通道) 大气散射图在基于暗通道先验得到大气散射图的粗估计值基础上,通过构造一个修正函数来调整暗通道先验失效的明亮区域的大气散射图。然后,对修正后的大气散射图和求得的初始透射图分别利用引导滤波进行优化,再用估计的大气光恢复图像 [3]恢复 (暗通道) 大气光区域引入了混合暗通道,通过对混合暗通道进行映射处理,从而得到大气耗散函数粗估计值。再利用导向滤波方法优化大气耗散函数粗估计值,进而求解环境光值和初始传输图,并利用全变差正则化方法对初始传输图进行优化,改善平滑性 [4]恢复 (暗通道) 大气光区域利用天空区域在图像的直方图中(最亮处)表现为一个显著可分离尖峰分布的特点,设计实现了一种简单的模式识别方法以判决图像中是否存在天空区域并计算其置信度指标,从而自适应地设置相关参数 [5]恢复大气透射率 照度估计针对夜晚雾天图像具有整体亮度低、光照不均匀、偏色等特点,通过估计光照图来去除不均匀光照的影响。避免使用暗原色先验,采用了适用于夜间雾天图像的媒介传输图估计方法 [6]恢复大气散射模型在传统大气散射模型中定义发光因子项,构建了一个专门针对夜晚雾天图像的去雾模型。算法将原输入图像分解为新雾天图像层和发光图像层,对新雾天图像层进行色偏纠正和引导滤波操作以得到最终的去雾结果 [7]增强快速计算基于亮度反馈增强彩色图像,在结合人眼视觉特性的基础上,先对亮度信息进行处理,进行区域适应性调整和细节提升,再将结果用作对色度信息处理的约束条件,保持了两者间的相关性.实现了对图像的自适应增强 [8]恢复大气散射图先基于非局部全变分正则化优化的对比度增强算法对大气散射图进行估计,然后通过优化Bregman分离迭代法求解非局部ROF模型并获得准确的大气散射图,进而通过雾天成像模型复原出场景无雾图像 [9]恢复大气透射率先通过输入图像的视觉特性将图像划分成含雾浓度不同的3个视觉区域。然后根据含雾图像的视觉先验知识构造视觉信息损失函数,采用随机梯度下降法求解局部最小透射率图。最后将细化后的全局透射率图代入大气散射模型求解去雾结果 [10]增强+恢复大气透射率先分别采用基于引导滤波的暗通道先验去雾算法和基于HSV色彩空间的直方图均衡化算法处理雾天图像; 然后,基于修正的透射率图构造权值因子,将上述两种处理结果加权融合,得到合理兼顾去雾与对比度增强的输出图像 [11]恢复大气光强度 大气透射率先基于雾气浓度估计模型计算雾气浓度量化图,利用模糊聚类算法在量化图中识别出雾气最浓区域并估计大气光。然后,对其他非雾气最浓区域再次进行聚类处理,根据最优透射率评价指标估计出每个聚类区域的透射率,并将大气光与透射图以及有雾图像一起导入散射模型 续表 编号增强/恢复技术关注主要步骤特点 [12]恢复 (暗通道) 大气光区域借助天空识别,将有雾图像划分为天空与非天空部分,对其分别估计透射率图,再通过大气散射模型得到复原图像。还对色彩进行重映射,以增加图像亮度,提升图像视觉效果 [13]恢复 (暗通道) 大气透射率在对大气透射率初始估计的基础上,借助视网膜皮层理论,利用高斯滤波获得大气透射率的粗略估计,再将两个估计进行像素级融合,同时通过参数自适应调整对有雾图中大片天空区域的大气透射率进行修正 [14]恢复 (暗通道) 大气透射率先对大气光值进行区间估计,得到大气透射率的初始估计值,并通过白平衡处理对大气散射模型进行简化。然后,根据简化大气散射模型和大气透射率的初始估计值进一步调整,并结合图像融合、双边滤波等得到大气透射率的最终估计值 [15]恢复大气光强度 大气透射率先基于HSI彩色空间进行粗略的大气光和透射率的估计,然后用引导滤波对粗略的透射率进行平滑,再利用阈值法对明亮区域的透射率进行修正,得到最终的透射率。最后,借助色彩映射进行色彩调整 [16]恢复 (暗通道) 大气散射图 大气透射率先利用变差函数获取较准确的大气光值; 然后对最小通道图采用多结构元素形态学开闭滤波获取粗略的大气散射图,进而估计大气透射率并进行修正; 接着采用双边滤波对其进行平滑操作; 最后根据大气散射模型得到恢复图像 [17]恢复 (暗通道) 颜色值校正 尺度自适应从大气散射光与纹理信息无关的角度出发,利用相对总变差分离图像主结构和图像纹理信息,以准确估计大气耗散函数。另通过引入一个自适应保护因子来避免复原图像的色彩失真问题 [18]恢复景深计算先通过稀疏自动编码机对有雾图像进行多尺度的纹理结构特征提取,同时抽取各种与雾相关的颜色特征。然后采用多层神经网络进行样本训练,得到雾天条件下纹理结构特征及颜色特征与场景深度之间的映射关系,并估算出有雾图像的场景深度图。最后结合大气散射模型,根据场景深度图恢复无雾图像 [19]恢复景深变化对大气传输图像构建变分模型,即在引入变分求解大气传输图像的基础上对景深进行约束。并结合人眼视觉的对比敏感度和图像先验特性来进一步约束。在实现远景去雾的同时,保证了对近景动态范围调整和细节复原的效果 [20]恢复 (暗通道) 大气光区域 大气透射率先进行天空检测,以天空区域亮度值较低的像素为依据估计大气光值,以避免天空色彩失真; 其次,对输入图像进行纹理平滑预处理以保持同一平面内的像素颜色一致性,并精确化计算透射率使之更符合深度信息的变化趋势 [21]恢复 (暗通道) 大气透射率先基于双区域滤波实现对大气透射率的初始估计,然后引入最小颜色通道图作为参考图像,采用传播滤波优化初始透射率,以避免图像景深突变边缘像素点处透射率估值出现偏差,同时去除初始透射图中冗余的纹理信息。最后自适应恢复大气光矢量,基于大气散射模型恢复无雾图像 续表 编号增强/恢复技术关注主要步骤特点 [22]恢复均值均方差暗通道先通过超像素分割得到景深恒定的小区域,接着在每个区域内计算均值均方差暗通道: 用均值替代最小值抑制景深突变处的光晕效应,同时采用均方差纠正景深无限远处的偏色问题,使生成的透射率在超像素内保持不变 [23]恢复 (暗通道) 大气光强度 大气透射率考虑到大气光强度和透射率的相关性,将这两个物理量作为互相影响的整体,采用多元优化策略进行迭代优化。为保持去雾图像颜色真实、自然,基于对无雾图像的统计特性,将多阈值融合的约束条件作为迭代停止的条件,控制优化去雾程度 [24]增强/恢复雾浓度度量将图像分解为子块,建立图像局部对比度及熵的自然统计特性向量,求解待检图像和标准图像子集之间最佳期望及协方差的最大似然估计。分别计算待检图像与有雾和无雾标准子集之间的马氏距离,以二者的比值作为场景雾浓度的度量 [25]恢复 (暗通道) 大气光强度 大气透射率将引导滤波用于天空区域的细化分割,以准确估计包含天空区域图像的大气光强度,消除天空色彩失真; 利用中值滤波获得边缘信息,得到清晰的透射率,以抑制景物边缘光晕问题; 针对去雾后图像偏暗的问题,在HSV空间对V通道增强 [26]恢复 (暗通道) 大气光区域先利用基于最大类间方差法的图像分割算法来自动分离天空区域,然后将天空区域的平均强度值作为大气光值,从而改进对大气透射率的估计,克服暗通道先验在明亮区域估计透射率偏小的问题 [27]恢复大气光区域构建了一个含有人工光源的夜间雾天图像成像模型,相应的算法针对光照不均问题,基于低通滤波估计环境光,用于预测夜间场景传输率; 针对去雾后存在光源光晕问题,根据图像色度估计场景点属于近光源区域的程度,自适应地处理光源区域和非光源区域; 针对非一致色偏问题,利用直方图匹配方法进行颜色校正 [28]恢复 (暗通道) 快速计算采用逐像素处理的方法估计透射率,并对估计值过低的透射率进行适当的增强来减少计算量。大气光采用效率高的四叉树算法以提高求解速度 [29]恢复 (暗通道) 快速计算 大气透射率利用双边滤波方式对大气透射率求解,采取先估算出较精确的大气散射函数及大气光值,然后间接求出透射率,可避免采用软件抠图的方式对大气透射率进行细化的过程,提高了算法的时效性 [30]恢复 (暗通道) 快速计算用“边缘替代法”代替软抠图处理,以降低计算复杂度。针对明亮区域暗通道失效情况,采用基于双阀值的明亮区域识别方法和透射率修正机制,提高了暗通道先验的适用范围 [31]恢复 (暗通道) 大气光区域采用支持向量机对候选大气光进行可靠性判断,排除车灯等误判大气光。采用基于块偏移的策略对粗糙透射率计算进行改进,保持透射率中的边缘信息以减弱无雾图像中光晕的产生,并对残留光晕进行进一步校正细化 由表3.6.1可看出以下几点。 (1) 图像去雾采用恢复技术的是主流,其中使用暗通道先验的又居大多数。 (2) 从研究思路看,重点多集中在对大气光区域、大气光强度、大气透射率等的准确估计上。另外,对夜间场景,也考虑了一些改进模型。 (3) 从具体实现方法看,除结合应用场合的特殊性,有针对性地进行改进外,结合多种措施或将几个步骤联合进行优化是一个趋势。