基于暗原色先验图像去雾算法的研究与改进

2018-03-02 19:24王亮万舟
软件 2017年9期

王亮+万舟

摘要:暗原色先验算法在单幅图像去雾方面有较好的效果,但该算法对处理器要求较高,且耗时长,很难应用于对实时性要求较高的图像去雾。针对这一问题,提出了一种基于暗通道先验的改进算法:首先用高斯滤波替代软抠图方法消除块状效应、平滑透射率,根据给定的雾浓度系数粗略恢复无雾图像;然后增大雾的浓度系数,结合峰值信噪比和暗原色先验算法对图像进行去雾处理,最终恢复无雾图像。与典型的去雾算法相比,改进后的算法运算量显著减少,保证去雾效果的同时计算速度明显提高。

关键词:暗原色先验;图像去雾;高斯滤波;峰值信噪比

0 引言

目前,无人机广泛用于航拍、交通监测、空中侦察和测绘等方面。其轻便、机动灵活、隐蔽性强的特点,使其具有很高的应用价值,越来越受到人们的重视。然而无人机雾天执行任务时,由于大气中气溶胶对光线的吸收和散射作用,造成无人机拍摄图像质量下降。图像的退化和模糊使得图像中基本信息特征失真受损,导致目标识别不清。因此,对无人机图像进行去雾技术研究意义重大。

雾天下由于从目标物体反射的光线与大气粒子的相互作用,发生折射、散射、吸收融合等光学现象,造成能量大幅衰减,感光装置接收到的光线强度发生变化,从而引起图像灰度值分布过于集中、像素间的对比度降低等。目前无人机去雾算法主要分为两类:基于图像处理的图像增强,通过对雾化图像锐化处理提高对比度,凸显图像中的细节信息,但会造成一定的细节丢失,并不能真正地实现去雾。该类方法主要包括gamma校正、直方图均衡、小波变换、对比度拉伸等;第二,基于物理模型的图像复原,通过对整个过程清晰的了解构建物理模型,反演退化过程,获得清晰无雾的图像。该类方法主要包括基于偏微分方程、基于深度关系、基于先验信息等。如基于暗通道先验的图像去雾算法,虽然能获得较好的清晰度和对比度,但该基于先验信息的方法依然存在计算复杂,明亮区域透射率估算不准确,色彩过于饱和等问题。总体而言,利用图像复原的方法具有内在优越性,已成為图像去雾技术研究的热点与难点。因此,提出了一种改进的基于暗通道先验的去雾算法:用高斯滤波代替软抠图处理,平滑透射率,根据给定的雾浓度系数ω获得一组去雾后的图像,结合峰值信噪比和暗原色先验对图像进行进一步的优化。

1 暗原色先验图像去雾算法

1.1大气散射模型

McCartney的大气散射模型广泛的用于在计算机视觉和图形学领域中。根据衰减模型和环境光模型可以得到:

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

(1)

式中,x为图像像素坐标,I(x)为有雾图像,J(x)为无雾图像,A(x)整体大气光值t(x)为透射率。

1.2 暗原色先验

He等人通过对大量的户外无雾图像观察、统计得出暗原色先验规律:绝大多数的户外无雾图像的每个局部区域都存在至少一个颜色通道的强度值很低的像素,其值近似为零。

对于户外图像J(x),用公式定义如下:

其中,Jc表示图像J的某一个颜色通道,c表示图像r、g、b三个通道的任意一个,Ω(x)表示以像素为中心的一块区域,jdark表示图像J的暗通道。

1.3 基于暗原色先验图像去雾算法

He算法主要流程如图1所示:

1.3.1 求解整体大气光值

图像中最不透明、亮度最高的像素被看作大气光。但在实际中,当图像中有大片天空区域、白色建筑物或受到强烈的光照,会导致大气光值A估算不准确。为了提高大气光值估计的准确度,可用暗通道图像排除此类干扰。先在暗通道图像中选取亮度为前0.1%的像素,然后在原始有雾图像中找到该像素位置所对应的最高亮度点的值作为图像的整体大气光值估计。

1.3.2 求解透射率

首先,假设每一个窗口内透射率t(x)为常数,定义为t(x),且A值已给定。对式(1)左右两边同时除以A并求两次最小值(暗通道)运算,得到下式:

根据暗原色先验可知,前暗通道图像近似为零,即(3)式右边第一项为零,因此透射率初始估计为:

现实生活中,空气中存在着一些颗粒,保留一定程度的雾会使图像更加真实,因此在公式(4)中加入一个调整因子ω(0<ω<1)来控制去雾程度。

由此可求出透射率t(x)的初始估计,但对应的透射图存在严重的块效应。为了解决该问题,He采用软抠图的方法经行优化处理,获得更为精确地透射率,通过解线线方程组得到透射率t(x).

式中λ为引入参数,L为图普拉斯描图矩阵。

1.3.3 复原图像

将计算的透射率t(x)和整体大气光值A带入公式(1),就可以恢复出J(x)。

其中,to为设置的阈值,有效解决了将透射率带人公式直接汁算去雾结果得到的J(x)接近于噪声这一问题。

2 改进暗原色先验去雾算法

He提出的暗原色先验理论假设元点邻域具有相同透射率,而实际上各像元的透射率并不相同,所以去雾后图像往往会存在小块状光晕,即所谓的“halo”效应。为提高透射率精度,必须对暗原色理论所求得的透射率(式(4))进行平滑与细化。虽然He采用软抠图的方法能有效消除块状效应,但当图像中有大片天空区域或白色建筑物时,整体大气光值估计依然不够准确。且在用该方法优化透射率即用拉普拉斯矩阵求解线性方程组时,其时间复杂度占用整个去雾算法的80%以上。该方法的缺陷,在一定程度上限制了其在无人机图像去雾方面的应用。因此,提出了一种改进的去雾算法,在基本不影响去雾处理效果的基础上缩短算法耗时,极大地提高了计算速度。

2.1 高斯滤波平滑透射率

图像处理中比较经典的线性平滑滤波技术是高斯滤波,因此本文采用高斯低通滤波器代替softmatting算法。对透射率进行高速的平滑操作,提升暗通道先验去雾算法的速度。高斯滤波就是将图像与正态分布卷积,即将图像中的每一个像元点的值,转化为由该像邻域内所有像元值的加权平均。该传递函数如式(8)所示:endprint

其中:表示高斯卷积模板,表示高斯函数即高斯核。估计透射率通常选取大小为15×15的模板,为保证消除透射率图的块效应和图像不失真,选取模版应与求解暗原色图时分块大小一致。

滤波过程中,权值的定义与像素之间空间距离成正比,因此可用高斯滤波平滑透射率来得到优化后的透射率。该部分算法主要流程如图2所示:

实验比较结果如图(3)所示。其中(a)为有雾图像,(b)为He算法透射率图,(c)为高斯滤波平滑透射率图。通过透射率图像对比可知:经高斯滤波平滑处理过后的透射率,在有效消除块状效应和纹理部分的同时,又保留了场景的轮廓信息,且处处平滑。

2.2 峰值信噪比

图像包含着物体的大量信息,然而在圖像的获取、传输和储存过程中常因噪声的干扰而使图像降质。为了进一步改善图像质量,本文采用使用最普遍、最广泛的评鉴面质的客观量方法PSNR即峰值信噪比。PSNR值越大,表示图像失真越少,保留信息也就越丰富[16]。公式描述为:

式中,MAX,表示图像点颜色的最大值即255,RMSE为标准差。

其中,I(x)为雾化图像,J(x)为改进算法处理后的图像,mxn为图像尺寸。

本文首先根据给定的雾浓度系数初始值∞获得暗通道先验的初始估计透射率;然后对初始透射率进行高斯滤波平滑处理,获得更准确的透射率;再结合整体大气光值A和公式(1)得到一组去雾前后图像I(x)和J(x);根据公式(9)得到去雾前后图像的峰值信噪比PSNR;之后按给定的步长增大∞,代入公式(5)获得一组新的透射率;重复步骤(2)至(7)直至∞为1,获得几组新的去雾前后图像和PSNR值;最后,对各组PSNR值进行比较,选取PSNR最大值并输chu 与此相对应的去雾图像。其流程如图4所示。

(1)根据文献[9],设定雾的浓度初始系数值ω ,且0.8<ω <1:

(2)由公式

(3)由公式A=max(maxr(Idark(x))计算整体大气光值;

(5)由公式I(x)=J(x)t(x)+A(x)(1-t(x))获得去雾后的图像J(x);

(6)结合公式PSNR=20log

和去雾前后图像,计算峰值信噪比PSNR值;

(7)设定ω 的步长(本文为0.05),并增大ω ;

(8)重复步骤(2)至(7),得到几组新的去雾前后图像和PSNR值;

(9)对几组峰值信噪比PSNR值进行比较,选取其中的最大值并输chu 与此相对应的复原图像。

3 改进算法实验与分析

本文在操作系统Windows7,CPU为Inter(R)Core(TM) 15-5200 2.2GHz,内存4G的PC机上运行Matlab2014实验。对三幅典型的实验图像分别采用几种典型的去雾算法和改进算法进行对比,去雾效果如图5所示。

从图5中可以看出He的暗通道去雾、Tarel等人的基于中值滤波的去雾都存在一个普遍问题:即对天空部分处理不好,天空往往会Jq』现较大面积的纹理及分块现象;Retinex理论在一定程度上对颜色信息进行补偿,但该算法参数设定过于复杂且白适应性较差。为了进一步验证改进算法的有效性,对复原图像的质量评价采用标准差、平均梯度和信息熵作为度量指标。其中,标准差反映了像素点的离散过程;平均梯度反映了图像的清晰度;信息熵是图像的平均信息量,反映了信息的多少。本文以图5中三幅不同类型的图像作为讨论对象,其度量结果如表l所示。

从表1中可以明显看出:改进算法的各项性能指标大都优于几种经典算法,表明改进算法保证了图像的去雾效果,且自身保留的信息更加丰富。

He方法中对规模为M的线性方程组求解。M为整个图像的像素总数(对于450×600的图像,M为270000)。虽然矩阵L在系统中以稀疏矩阵的形式存储,但依旧需要大量存储空间和计算时间。虽然He后来采用了导向滤波代替了软抠图处理,但这是在以牺牲图像质量的基础上来提高计算效率。而采用改进后算法则有效避免了这一问题。本文采用了几种典型的去雾算法测试了不同尺寸大小的图片,其时间对比如表2所示。

从表2中可以看出,改进后的算法极大地提高了计算速度,计算时间约为原方法的5%~10%。

4 结论

本文基于暗通道先验在He的算法上加以改进,通过高斯滤波代替软抠图平滑透射率,降低了计算复杂度,提高了算法效率,使之能应用于对实时性要求不太高的无人机图像去雾;将峰值信噪比与暗原色先验理论相结合,在尽量不影响复原图像去雾效果的基础上确保了图像质量。但本文算法并不适用于所有的无人机图像去雾,其算法速度和去雾效果还有待进一步加强。endprint