APP下载

基于暗通道先验的单幅图像快速去雾算法

2021-09-16黄小芬林丽群

计算机工程与设计 2021年9期
关键词:瑞利散射透射率先验

黄小芬,林丽群

(1.福建师范大学协和学院 信息技术系,福建 福州 350117;2.福州大学 物理与信息工程学院,福建 福州 350117)

0 引 言

户外图像会受到诸如雾、烟、霾等不利天气条件的影响,这些烟雾是由可识别性减弱的气溶胶造成的[1],而这些气溶胶会导致颜色变化、图像退化和场景变暗等。因此,图像去雾受到国内外大批研究者关注,近几年已成为多学科交叉领域的研究热点[2]。

近年来,各种针对图像去雾的研究算法主要集中在透射率和大气光的计算复杂度和准确度上,主要分为单图像去雾和多图像去雾。Shen等[3]和夏璞等[4]提出利用偏振迭代和偏振差异的多幅图像去雾方法,由于难以获得特定图像场景的所有所需数据,这些算法的实用性受到限制。而单幅图像的去雾算法发展迅速,例如Meng等[5]将传输函数的固有边界约束与基于L1范数的加权上下文正则化相结合进行去雾,获得了高质量的去雾图像,但该方法处理速度比较慢。Chaudhry等[6]提出混合中值滤波和加速局部拉普拉斯滤波的方法实现图像去雾,然而去雾结果存在光晕效应。肖进胜等[7]提出了一种结合卷积神经网络和残差网络的基于霾层学习的单幅图像去雾算法,获得较优的图像去雾性能,但处理时间耗时较多。梁毓明等[8]和邢小敏等[9]提出了利用生成对抗网络实现图像去雾的方法,无需估计透射率和大气光值,能够直接捕获雾霾图像中的有用信息,去雾图像效果较好,但基于学习的方法训练过程复杂,参数过于依赖训练数据。He等[10]在其暗通道先验(dark channel prior,DCP)理论基础上,提出用导向滤波代替软抠图方法对透射率进行优化,提高了去雾效率,然而处理后依然存在去雾不彻底、处理速度慢等问题。针对He等方法的不足,刘国等[11]提出在暗原色的获取过程中引入自适应阈值,提高了透射率的准确度,但运行效率还是比较低。韩昊男等[12]提出基于四叉树细分的改进大气光估计及加入自适应权重因子的改进引导滤波优化透射率方法,减少了光晕效应,但存在颜色矫枉过正的问题。Jackson等[13]提出利用瑞利散射,建立散射系数模型来估计初始透射率图,并用导向滤波优化透射率图的去雾方法,提高了运算速度,但图像去雾不够彻底。

针对上述问题,本文结合暗通道先验和瑞利散射理论,并用线性高斯滤波器对透射率进行模糊处理,提出一种更直接快速的单一图像去雾方法。最后,验证了所提算法在去雾性能和计算速度上的有效性。

1 理论背景

1.1 大气散射模型

在计算机视觉领域,大气散射模型由两个组成部分:①从场景反射到相机的光源的直接衰减;②到达相机的散射光量。它的数学描述被广泛使用[14,15]

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

(1)

式中:I(x)是待处理的原始雾图强度;A为全球大气光;J(x)是待恢复的无雾图像;t(x)为透射率,它是0到1之间的值,当t(x)=1时,表示一个非常接近的场景,没有任何从场景反射回来的光被任何大气粒子散射,因此所有入射光都到达了相机,入射光不散射,当t(x)=0时代表一个对象离我们很遥远,没有入射光到达相机,而是被物体和相机之间的大气粒子全部散射掉。通过计算透射率t(x)和大气光A,就可以恢复场景图像。

1.2 暗通道先验理论

暗通道先验(DCP)是对无雾图像属性的一种经验观察,在绝大多数非天空的局部区域总会有至少一个颜色通道具有很低的值,并且趋近于0。根据这些统计数据,暗通道用公式表示为

(2)

式中:J(x)为晴天无雾图像;Jdark(x)为晴天无雾图像的暗通道值;Ω(x)是以像素点x为中心的一块方形区域。

暗通道先验去雾方法是图像去雾领域的一个重要突破,为图像去雾的研究人员提供了一个新思路。

1.3 瑞利散射

当大气中粒子尺度远小于入射光波长时,就会发生瑞利散射。散射主要是由于氧和氮分子[13]的存在,这些分子吸收光并以任意方式将其重新传输。不同波长的光以不同的颜色表示,从光谱的紫色端400纳米到红色端700纳米,中间是橙色、黄色、绿色、蓝色和靛蓝色。在光谱中,蓝光比红光有更高的频率和更短的波长。大气粒子将入射光散射到一个特定的方向,瑞利散射模型用数学方法表示为

I=I0S(λ,θ,d)

(3)

S(λ,θ,d)为光的散射量,表示为

(4)

式中:λ为入射光角度为θ的波长;n和N分别是空气的折射率和大气密度。由式(4)可知散射光的强度与光波长的四次方成反比。因此,当可见光谱上的所有颜色光通过空气时,蓝光比绿光和红光更容易散射,这也正是天气晴朗时,天空呈现蓝色的原因。本文根据瑞利散射光谱的这个特点来估算大气光A。

2 本文方法

为了解决传统去雾方法去雾速度慢、色彩失真、去雾不彻底等问题,本文提出一种结合暗通道先验和瑞利散射理论的单幅图像快速去雾的改进算法。算法流程如图1所示。

图1 去雾方法流程

其步骤可总结如下:

(1)基于瑞利散射的改进大气光A估算;

(2)求暗通道,计算初始透射率t1(x)并进行高斯滤波模糊处理,快速得到最终的透射率t(x);

(3)由大气散射模型恢复无雾图像。

2.1 大气光估算

大气光值是图像去雾的一个重要参数,计算量大或误差大将导致整幅图像的去雾性能下降。传统的去雾算法通过选择最大的像素来估计A。然而,这种方法对明亮的物体场景(如白色的汽车和建筑)的大气光估算不准确。He等先选取暗通道中亮度最大的0.1%像素,将输入图像I对应位置中强度最高的像素作为大气光A,这种方法在真实图像出现白色表面物体时会使A的估计失真。因此,为了准确估计像素的亮度表示霾密度,利用瑞利散射理论,蓝光比其它颜色的光更容易散射这个特点,对雾化图像的RGB三颜色通道的B(蓝色)通道取最大值,而另外两个通道R(红色)和G(绿色)分别取最小值。由此提出一种改进大气光计算方法,将最亮的和最暗的像素都纳入计算。主要步骤如下:

(1)根据瑞利散射,式(4)蓝色光在RGB图像中散射最多。在该算法中,为了综合考虑不同景深的图像部分,从输入图像的蓝色通道中按列选取强度最高的像素序列并取序列数据的平均值得到A1用以消除光晕效应,A1表述如下

A1=avg(max(IB列向))

(5)

式中:A1为雾图蓝色通道的平均最大值,IB是雾图的蓝色通道值。

(2)计算红色和绿色通道中最低像素的平均值得A2,进一步消除A1后不必要的纹理信息

A2=avg(min(IG)+min(IR))

(6)

式中:IG为雾图的绿色通道值,IR为雾图的红色通道值,A2为最暗绿色通道和最暗红色通道的平均值。

(3)计算A1与A2的和来估算大气光A

A=A1+A2

(7)

2.2 透射率估算

由上节已求得的大气光A,将式(1)变形为

(8)

式中:上标c代表R、G、B这3个颜色通道。假设在每一个图像中透射率t(x)是一个常数,定义为t1(x)并且大气光A值已经确定,对式(8)左右两边同时取2次最小值,得

1-t1(x)

(9)

根据前述的暗通道先验(DCP)理论,可将式(2)转换为

(10)

将式(10)代入式(9),得到透射率的初始估计值

(11)

在现实生活中,即使是晴天白云,空气中也存在着一些颗粒,另外,雾的存在让人类感受到景深的存在,如果整幅图像都彻底去雾会使图像看起来不真实。因此,为了使去雾之后的图像有层次感,视觉效果更好,根据经验,在式(11)中添加一个系数ω=0.95,让图像在景深处保留有极少量的雾,则式(11)被修正为

(12)

2.3 高斯模糊透射率图

上节中获得的透射率是像素级的,该值受自身灰度影响较大。考虑到透射率在一定范围内变化缓慢,为了使初始透射率图像整体变化平滑,避免相邻像素之间的灰度跳变,以提高其视觉效果,本文采用高斯滤波器对其进行模糊平滑处理,移除最终图像的假纹理和光晕效应。

高斯滤波是以某一像素为中心,在它的周围选择一个局部区域,把邻域内像素的灰度按照高斯正态分布曲线分配相应的权值系数,然后将邻域内所有点的加权平均值代替原来的像素值,其具有各向同性和均匀特性。如二维模板大小为m×n,则模板上的元素(x,y)对应的高斯计算公式为

(13)

式中:σ是正态分布的标准差,σ值越大,表示处理后的图像越模糊。该公式生成的曲面的等高线是从中心开始呈正态分布的同心圆,其权重分布如图2所示。

图2 高斯模糊权重分布

初始透射率的模糊优化处理是将初始透射率t1(x)与高斯滤波器G(x)进行卷积运算,得到模糊后的透射率t(x),用公式表示为

t(x)=t1(x)*G(x)

(14)

式中:*表示卷积。每个像素的值都是它周边邻域内像素的加权平均,原始像素的值与其关系最紧密,所以权重最高,相邻像素随着与原始像素距离的疏远,其权重也越来越低。这种高斯权重的模糊处理方法比其它的均值滤波更好地保留了边缘。另外,利用高斯函数运算的可分离性,一个二维高斯滤波卷积可以由两个一维高斯滤波卷积来实现,具体步骤为:①图像与一维高斯函数卷积;②将卷积结果与方向垂直的相同一维高斯函数卷积。利用2维高斯滤波运算的可分离性计算方法,使其计算量是一种线性增长而不是平方增长,大大降低了初始透射率图的模糊优化计算的计算量,加快了运算速度。

待处理的原始雾图及其初始透射率图像如图3所示,由图可见,初始透射率图像比较粗糙,存在明显的块效应和少量光晕。同时由于在大气光计算时以蓝色通道的最亮均值为主要组成部分,该方法消除了白色物体产生的椒盐噪声,提高了透射率t(x)的准确性。对初始透射率图像进行高斯滤波模糊处理,处理后的透射率图像及其恢复结果如图4所示,He等[10]方法的引导滤波优化透射图及其复原结果如图5所示。

图3 雾图及其初始透射率

图4 高斯模糊透射率及其恢复

图5 引导滤波优化透射率及其恢复

从图3~图5可以看出,经过本文的高斯滤波优化后,使得透射率图像在边界处灰度值过渡平缓,整体变得更加平滑、细腻,同时消除了块效应。He等[10]的引导滤波优化方法在景深处的透射率图像黯淡不清,平滑度也不及本文高斯滤波优化后的透射率图像,由此去雾后的图像整体较暗,去雾不彻底且有些许颜色失真。本文方法得到的去雾图像清晰度和色泽度均更佳。

2.4 图像恢复

计算出大气光A和透射率t(x),利用式(1)就可以恢复出图像J(x)。当透射率t(x)很小,接近于零时,直接导致J(x)偏大。因此,设置一个透射率下界t0,通常取值0.1,以使最终图像更接近原图像。此外,雾天成像受环境和光照的影响,部分图像本身亮度偏低,经复原后整体偏暗,本文利用一个亮度提升因子a,用以提高复原图像的亮度。最终复原函数J(x)表示为

(15)

经大量实验发现,亮度提升因子a的取值在1.3~2.0之间效果更好。

3 实验结果分析

本节在同样的硬件和Matlab软件环境下,对选自去雾领域文献中使用的经典测试图进行实验,从主观和客观两方面评估本文去雾方法的有效性。

3.1 主观定性分析

实验中针对多幅图像,与去雾效果较好的其中4种去雾技术,包括文献[10]He等的暗通道先验引导滤波方法、文献[5]Meng等的结合边界约束和L1范数的正则化方法、文献[6]Chaudhry等的混合中值滤波和拉普拉斯滤波方法以及文献[13]Jackson等的瑞利散射引导滤波方法进行对比分析。对比结果如图6和图7所示。

从图6可以看出,几种方法去雾后,整体的能见度和对比度都有极大改善。从图6的上图可以看出,Meng等方法和Chaudhry等方法的去雾视觉效果相对较好,He等方法在草地和树干的部分颜色偏暗,纹理有缺失,已经分辨不出树干上部和下部的差异,左前方的绿草地颜色也产生失真;图6下图中,He等方法和Chaudhry等方法在几种方法里总体视觉感受上取得最好的效果,Meng等方法去雾后颜色有些许失真。本文方法在上图的树干部分出现了模糊的伪影,下图的远景部分去雾不彻底,但在近景图像的清晰度和色彩的自然度上效果最好。

图6 不同去雾方法结果对比

为了进一步验证本文所提算法性能的优势,图7将Chaudhry等方法换成Jackson等方法[13]继续对比。He等方法对薄雾图像处理效果较好,而对景深突变区域的去雾不够彻底。Meng等方法去雾较彻底,图像清晰度较好,但该算法好的去雾效果是以牺牲色彩保真度为代价换取的,如实例2去雾后图像色彩产生较大失真,另外两幅图像去雾后图像的色彩不够饱满。文献[13]Jackson方法中3幅图去雾总体视觉效果较好,但是颜色偏暗一点。本文方法在图像天空、河流区域及实例1最前方的小土丘部分的去雾效果在色彩上欠佳,其它部分去雾效果相比其它方法,层次感更强,景物更清晰。综上所述,本文方法在局部小区域产生了去雾色彩失真,但绝大部分去雾图像区域的清晰度、纹理及层次感都有极大的改善。

图7 不同去雾方法结果对比

3.2 客观定量评价

(16)

(17)

(18)

其中,nr和n0分别表示无雾图像和有雾图像中可见边数目的集合;ri表示pi处的Sobel梯度与原图像在此处的Sobel梯度的比值;ψr表示无雾图像的可见边集合;ns为饱和黑色和白色像素点的数目;dimx和dimy分别为图像的宽和高。

表1 各种算法客观指标对比

3.3 计算复杂度

为了进一步验证本文方法在处理速度上的优势,本节给出了计算时间的比较如表2和图8所示,对上节给出算法与本文方法进行运行时间对比实验。DCP所采用的窗口大小为7×7。程序代码从读入图像开始,到恢复出无雾图像并显示整个过程进行计时,并记录多次、多幅图像的运行时间,再求运行时间均值。表2和图8表明,本文所提方法运行时间远低于其它方法,在图像分辨率为800×600时,本文运行时间为文献[10]He等方法的11.6%,是文献[13]Jackson等方法的9.4%。并且本文方法运行时间曲线最平坦,增长速度最慢,随着图像尺寸的增大去雾运行效率的优势越明显。这主要是因为本文将暗通道先验理论与瑞利散射理论融合,准确估算了大气光值A,且用运算量随图像宽度线性变化的高斯滤波器代替引导滤波对初始透射率图进行模糊平滑处理,从而既保证了去雾效果又大幅度提高了计算速度。综上所述,本文方法具有很高的运行效率。

表2 时间消耗比较/s

图8 不同去雾算法运行时间变化曲线对比

4 结束语

本文在暗通道先验理论的基础上提出利用瑞利散射理论改进大气光的计算方法,通过对3个颜色通道的最大、最小平均值求和的方法提高了大气光的计算准确度。并将线性高斯滤波器用于初始透射率的优化中,提高了去雾的质量并具有良好的计算速度。最后,通过与其它传统算法定性和时间运行复杂度的比较,表明本文方法具有很高的运行效率。然而,本文方法仍然有一些不足:①在去雾图像中存在少量的伪影;②需要对透射率图进一步优化,以提高去雾图像的整体质量。这些将作为下一阶段的努力方向。

猜你喜欢

瑞利散射透射率先验
等离子体随机分布对THz波传输特性的影响
便携式光电式浊度仪的设计
基于无噪图像块先验的MRI低秩分解去噪算法研究
一种改进的场景透射率修正图像去雾算法
纯色太阳镜镜片耐日光辐照性能试验研究
基于碘分子滤波器的星载高光谱测温激光雷达瑞利散射信号仿真
基于自适应块组割先验的噪声图像超分辨率重建
基于平滑先验法的被动声信号趋势项消除
先验的废话与功能的进路
基于瑞利散射的分布式光纤传感器的研究现状