APP下载

基于构造简化模型和局部大气光遮罩的去雾算法

2021-03-11张国强李一菲

测控技术 2021年2期
关键词:复原大气滤波

张国强, 杨 燕, 李一菲

(兰州交通大学 电子与信息工程学院,甘肃 兰州 730070)

随着我国工业化进程的快速发展,其面临的环境问题日益突出,特别是近年来秋冬季节经常出现的雾霾现象。在这种情况下,户外监控系统捕获到的图像细节信息不明显,许多特征被覆盖或显示模糊,并且信息的可识性严重降低。同时,色彩保真度降低,出现严重的色偏现象,这严重阻碍了户外监控系统获取有用信息和捕获目标源位置的能力。因此,对于如何有效去除雾气干扰的研究具有极其重要的实际意义和研究价值。

目前,针对单幅图像去雾算法的研究已经取得了一定的研究成果。这些不同的算法主要可以分为基于图像增强的方法和基于物理模型的图像复原方法。其中,基于图像增强的方法不考虑图像是因为何种因素而发生退化,不能做到真正意义上的去雾,主要是使用数字图像处理的方法对有雾图像中需要增强的细节进行增强,并提高其对比度。这种方法在去除雾气的同时会造成部分细节丢失,使部分复原的图像失真;基于图像复原的方法将大气散射模型作为理论基础,通过反演假设或先验条件评估在模型中起到重要作用的未知参数,然后将这些未知参数代入模型进行求解,从而获得清晰的无雾图像,这种方法复原的图像比较自然,可以满足更多的场景需求。目前,基于物理模型复原算法已经取得了显著的成果。He等[1]通过对大量无雾图像进行统计,提出暗通道先验算法进行图像去雾,但是该方法依然存在一定的不足,当存在大片天空区域时,暗通道先验假设不成立,同时由于最小值滤波的使用,导致块状效应和景深突变的边缘出现Halo现象,随后He等[2]又提出引导滤波的算法进行优化,取得了一定效果,但是依然存在时间复杂度较高的问题。Zhu等[3]通过颜色先验的方法,利用局部大气光的思想获取大气光值,该方法可以准确地估计大气光值,但是由于两次使用滤波的原因导致时间复杂度较高。Meng等[4]提出一种边界约束方法,该方法通过对边界进行相应的约束,并通过迭代细化透射率,进而复原无雾图像,该算法虽然有效,但是对于浓雾图像处理效果不佳。刘海波等[5]提出一种结合暗通道先验和Retinex理论的图像去雾算法,该方法通过Retinex理论获取反射分量,进而复原出无雾图像,但是该方法时间复杂度较高,在景深剧烈变化区域失效。杨燕等[6]通过光补偿算法将沙尘图像转化为雾图进行处理,然后利用逐像素的方法得到透射率,该方法解决了块状效应问题,但是对于大气光值的选取依然存在不准确的问题。Cai等[7]利用卷积神经网络的思想,通过训练优化透射率进而达到良好的去雾效果,但是由于训练集较少且模型不完善导致去雾效果不彻底。

通过对单幅图像去雾算法进行研究,本文以大气散射模型为依据,通过构造雾浓度检测函数获取准确的大气光评估区域,然后对大气散射模型进行简化;其次,构建局部大气光遮罩,通过计算拉依达准则下限值的策略获取引导图,然后利用引导滤波进行区域平滑并保持边缘特性,结合简化模型获取场景反照率;最后,根据Land成像模型,得到复原的无雾图像。实验结果表明,所提出的方法可以取得良好的去雾效果。

1 暗通道先验

大气散射模型广泛如图1所示,它被应用于计算机视觉研究领域,可以用来描述雾成像过程,该模型可表示为

I(x)=J(x)t(x)+A(1-t(x))

(1)

式中,J(x)t(x)为直接衰减模型;A(1-t(x))为环境光成分,为环境光增强项。

图1 大气散射模型

根据Land成像模型[5]可知,一幅有雾图像可以由全局大气光和场景反照率两者之间的乘积得到,具体的表达式为

J(x)=Aρ(x)

(2)

将式(2)代入到式(1)中可得:

I(x)=Aρ(x)t(x)+A(1-t(x))

(3)

式中,I(x)为有雾图像;J(x)为待复原的清晰无雾图像;t(x)为介质传输率,即透射率;A为全局大气光值的强度;ρ(x)为场景反照率。

式(3)中,透射率t(x)的表达式为

t(x)=e-βd(x), 0≤t(x)≤1

(4)

式中,β为大气散射系数,假设雾均匀分布,此时β近似为常数;d(x)为成像设备到场景点支架的距离,即场景深度。

He等[1]通过对大量无雾图像进行统计发现,对于晴天天气条件下的无雾图像,可将其分解成若干个局部区域,在每个局部区域内至少在一个颜色通道中存在灰度值很小的像素点,并且其中大多数强度值趋于0,从而提出暗通道图像中各像素点的值可以通过式(5)获得。

(5)

2 本文算法

针对雾天条件下图像降质的问题,提出一种基于构造简化模型和局部大气光遮罩的单幅图像去雾算法,本文算法流程图如图2所示,主要分为3步:① 构造雾浓度检测函数,检测出准确的大气光值选取区域;② 对大气散射模型进行简化,并设计局部大气光遮罩估计算法,通过计算拉依达准则下限值的策略获取引导图,然后利用引导滤波算法进行区域平滑并保持边缘特性,接着结合简化模型获取场景反照率;③ 根据Land成像模型得到复原的无雾图像。

图2 本文算法流程图

2.1 大气光估计

大气光估计值的准确性直接影响最终的复原效果,大气光值的选取大于其真实值会导致复原的图像整体偏暗,大气光的取值小于其真实值会导致复原的图像整体偏亮,从而丢失部分细节。目前的图像去雾算法研究中,对于大气光值选取方面的研究不是很多。

He等[1]通过选取暗通道图像中前0.1%的高亮像素点对应的有雾图像的最大值作为大气光值,该方法容易受到白色物体和强光源的影响导致选取的大气光值偏大;Sulami等[8]通过对大气光矢量的方向进行判断,自动获取大气光值,该方法在矢量方向判断不准确时会导致大气光值的选取出现偏差。大气光值的选取区域一般定义为雾最不透明区域,本文提出一种雾浓度检测函数,利用该函数选取准确的大气光值选取区域,从而提高大气光值的准确性,减少大气光值估计偏差给复原图像带来的影响。

首先,结合HSV颜色通道的相关特点,通过式(6)构造雾浓度检测函数:

d(x)=‖Ihsv(x)-B‖

(6)

式中,B为HSV颜色通道中像素值最高的像素点。通过分析可知,d(x)的取值越小,则表示该点的雾浓度越大,反之亦然。同时考虑到白色物体对检测区域的影响,通过对式(6)进行最小最大操作,可获得如下表达式:

(7)

通过上述操作可以使局部平滑,同时消除纹理效应的影响。最小最大操作可以通过形态学开操作来代替实现,即:

(8)

为了确保大气光值选取区域的准确性,通过大量测试实验设定阈值范围τ∈[0.2,0.3],可准确地检测出雾最不透明区域。在d(x)∈τ的区域选取0.1%像素的均值作为全局大气光值A。

对于大气光值的选取,A的取值不会小于有雾图像对应的灰度均值图像。因此,可以进一步约束大气光值的选取。

(9)

式中,Igray为原始有雾图像所对应的灰度图像;W和H分别为图像的宽和高。通过该方法得到的大气光值可以消除白色物体和强光源的影响,提高其鲁棒性。

2.2 构造简化大气散射模型

本文通过白平衡处理,即通过对原始有雾图像除以大气光值A[5],将大气光照度的颜色分量校正到灰度轴方向,利用R,G,B颜色分量的最大值来估计光照颜色。结合式(1)和式(2)可以得到:

(10)

考虑到图像中的高亮度像素强度大于大气光A,则产生I(x)/A>1, 本文将白平衡校正的图像I(x)/A限制在[0, 1]范围内,用I′(x)进行表示,采用下式约束:

(11)

局部大气光遮罩定义为

V(x)=1-t(x)

(12)

因此,大气散射模型简化为

I′(x)=ρ(x)t(x)+V(x)

(13)

根据上述分析,通过式(13)可以得出,此时的大气光被固定为常数,即大气光的取值为[1,1,1]T,通过该操作不仅简化了模型,而且减少了时间复杂度,提高了准确性。

2.3 局部大气光遮罩估计

由于暗通道先验算法使用了最小值滤波操作,这使得到的透射率出现块状效应、边缘信息估计不准确等问题。若采用Soft Matting算法进行优化,其时间和空间复杂度过高,运算时间长,不能应用于实时处理。尽管He等[2]又提出引导滤波算法对初始透射率进行优化,虽然可以在降低时间复杂度的同时具有良好的边缘保持特性,但是在景深突变的边缘会出现遗留少量残雾的现象。本文结合简化后的大气散射模型,通过构造局部大气光遮罩的方法来达到图像去雾的目的。

2.3.1 粗估计

根据暗通道先验原理和Land成像模型可知,在RGB三个颜色通道中,至少存在一个通道的反射率趋近于0,因此可以得到式(2)中ρ(x)→0,结合式(13)可以得出:

假设满足ρ(x)→0,再根据暗通道先验理论,局部大气光遮罩可以粗略地从式(14)获得:

(14)

但是ρ(x)→0不能满足每个像素点,因此采用形态学操作的策略来腐蚀掉局部灰度级过高的像素。本文算法过程图如图3所示。粗局部大气光遮罩如图3(b)所示。可以看出,所得到的粗局部大气光遮罩边缘细节模糊,边缘信息严重丢失。而在物体景深突变的边缘会出现Halo效应,因此需要保持景深突变的边缘细节。

图3 效果过程图

2.3.2 基于引导滤波细化

由于大气光遮罩仅是关于景深的函数,对局部大气光遮罩进行区域平滑操作,这可以看作一个滤波问题。文献[1]中使用原有雾图像作为引导图,造成恢复图像近景去雾不彻底,并且明亮区域色彩失真。文献[9]选取最小值图像的局部最大值作为引导图,这种方法依然存在远景区域去雾不彻底的现象,并且在景深突变处出现Halo效应。通过上述两种方法得到的引导图,其边缘细节部分细节丢失,无法保留景深特性,使得复原的图像无法保留引导图的变化细节,这是造成景深处去雾不彻底的主要原因之一。

本文对引导图进行深度滤波处理,首先用高斯分布对I′(x)做预处理,这样局部区域内所有像素都服从高斯分布,得到预处理后的最小值图像V(x),然后计算得到局部区域的拉依达准则下限值,该准则是一种判断误差的方法,判断式为

|x-μ|>3σ

式中,μ,σ为局部均值和方差。本文用测量值x的下限值μ-3σ得到引导图G(x)。对V(x)进行双边滤波得到局部均值图μ(x):

μ(x)=FBF(V(x))

(15)

对最小值图像和局部均值图像差值的绝对值再次进行双边滤波操作就可以得到其对应的标准差:

σ(x)=med((V(x)-μ(x))2)

(16)

利用双边滤波可以保持图像平滑,保留图像边缘特征,但双边滤波只能较好地滤除低频成分,对最小值图像与局部均值进行差值操作后,会在局部区域内产生脉冲噪声,而中值滤波可以用来消除脉冲噪声。所以对标准差求解选取中值滤波。采用双边滤波和中值滤波计算局部均值和方差,既能保持图像平滑,又能保持边缘特征,因此可以得到引导图:

G(x)=μ(x)-3σ(x)

(17)

式(15)~式(17)中,μ(x)和σ(x)为使用快速双边滤波计算的均值和方差;G(x)为引导图;FBF(*)表示快速双边滤波处理。

引导滤波[2]可以克服双边滤波产生梯度反转的弊端,具有良好的局部平滑和保持边缘的特性。在引导图G(x)的引导下使输出的图像与输入的图像差异最小化,以G(x)为引导图滤除V(x)中的纹理细节,剔除区域内的异常值,保证有效像素的使用。通过以上操作,可以保留输入图像的总体特征,结合引导图的变化细节,可以得到边缘保持良好且局部平滑的局部大气光遮罩,从而有效抑制了恢复结果中由于景深边缘突变而引入的Halo效应,即

Vdc(x)=guidefilter(G(x),V(x))

(18)

式中,Vdc(x)为对V(x)引导滤波后得到的局部大气光遮罩,而且由于引导图G(x)是灰度图像,故可以降低算法复杂度并提高运算速度。

2.4 图像复原

从上述分析中已经获取了局部大气光遮罩Vdc(x),通过式(12)~式(14)和式(18)就可以得到场景反照率ρ(x),可以看出恢复的场景反照率细节明显。然后结合Land成像模型,复原出无雾图像J(x)。复原效果图如图4所示。具体的数学表达式为

(19)

图4 恢复过程效果图

3 实验对比与分析

本文算法是在Windows 10操作系统下的Matlab R2014a上运行,硬件配置环境为Intel®CoreTMi5-6300HQ CPU@2.30 GHz,8.0 GB RAM。为了验证本文所提出的算法的性能,与近几年具有代表性的经典方法进行比较,并分别从视觉效果(主观评价)和客观评价两个方面进行对比验证。

3.1 图像去雾视觉效果分析

视觉效果分析以人的感性认知为基础,通过对去雾效果的主观分析可以快速看出复原图像效果的优势与不足,但是主观分析往往具有一定的片面性。本文选取文献[1]He等的暗通道先验算法、文献[9]算法,文献[10]算法进行对比。图5给出了相应的实验结果。图5(b)为暗通道先验去雾效果,该算法复原的图像在景深突变的边缘存在遗留残雾的现象,并且图像明显偏暗,这主要是大气光值选取的误差导致的,其次部分远景细节丢失,如图5(b)中的红色框所示。图5(c)为文献[9]算法的去雾效果,远景存在大量残雾现象,如图5(c)中的红色框所示,这主要是由于引导图选取不当引起的。另外,前面两种算法复原出来的无雾图像亮度不足,效果偏暗,这主要是由于大气光值的估计大于其真实值引起的。图5(d)为文献[10]算法的去雾效果,基本上去除了雾气的干扰,但是在部分图像中出现过饱和、颜色失真的现象,这主要是两次使用形态学操作引起的,如图5(d)中的红色框所示。本文方法复原的图像结果如图5(e)所示,本文所提出的算法恢复的图像细节明显增多、对比度高、亮度适宜,相比较于暗通道先验去雾算法,所提出的算法复原的图像细节多,尤其在远景区域。相比较于文献[1]、文献[9]方法,本文方法具有更好的色彩保真度性能,可以有效地除掉雾气的干扰,并且图像明亮度适宜。相比文献[10]方法,本文实现效果在对比度和恢复细节上都有一定的优势。综上所述,本文方法在视觉效果上取得了一定的成果。

图5 实验效果对比

3.2 图像去雾客观分析

(20)

(21)

(22)

式中,nr和n0分别为无雾图像和有雾图像中可见边数目的集合;ri为Pi处无雾图像和有雾图像的平均梯度比;r为无雾图像的可见边集合;ns为复原图像的饱和像素点数;W和H分别为原始有雾图像的宽和高。实验对比数据如表1所示。

表1 客观评价(实验图像为图5(a)图像,依次从左到右)

从表1的客观评价数据中可以看到,文献[9]方法复原的图像出现负值,本文算法在可见边上相对于文献[1]、文献[9]、文献[10]有相对的优势;对于归一化平均梯度值,本文算法相比较文献[1]、文献[9]有一定优势,但是对于文献[10]来说,本文算法对于图3、图4略显不足;对于饱和像素点,本文算法相比较于文献[1]、文献[9]有一定的优势,但是相对于文献[10]存在一定的不足,这主要是因为形态学的使用,导致对雾浓度估计过高,从而出现颜色饱和、平均梯度减小的问题,但是在可接受的范围之内。综合考虑,本文算法具有一定的优势。

4 结束语

针对雾天环境下捕获的图像严重降质的问题,本文提出一种基于构造简化大气散射模型和局部大气光遮罩的去雾算法。该算法首先通过构造雾浓度检测函数,检测出准确的大气光选取区域;然后,利用简化大气散射模型的思想,构造局部大气光遮罩估计算法;最后,结合大气散射模型复原出场景反照率,进而根据Land成像模型复原出清晰的无雾图像。从主观评价和客观评价两个方面对该算法的可行性进行了验证,表明该算法具有一定的优势。

猜你喜欢

复原大气滤波
温陈华:唐宋甲胄复原第一人
宏伟大气,气势与细腻兼备 Vivid Audio Giya G3 S2
浅谈曜变建盏的复原工艺
毓庆宫惇本殿明间原状陈列的复原
如何“看清”大气中的二氧化碳
大气古朴挥洒自如
基于自适应Kalman滤波的改进PSO算法
RTS平滑滤波在事后姿态确定中的应用
基于线性正则变换的 LMS 自适应滤波
基于四元数互补滤波的无人机姿态解算