APP下载

基于暗通道先验的图像去雾算法改进研究

2016-05-14陶海威王毅沈燕飞

软件导刊 2016年5期
关键词:腐蚀

陶海威 王毅 沈燕飞

摘要:暗通道先验去雾算法求得的的透射率比较精细,去雾效果优于大多数去雾算法。然而在暗通道求取过程中,最小值滤波的处理会使得暗色向外扩张,导致透射率扩张变大,使得去雾后的图像在边缘部分产生“光晕”现象。为了减弱光晕效应,利用形态学理论对粗略透射率进行腐蚀处理,腐蚀掉扩张变大的透射率,然后使用容差机制修复不符合暗原色先验的明亮区域透射率,再使用引导滤波精细化透射率,最后利用去雾模型复原图像。实验表明,改进后的算法去雾效果更佳、去雾速度更快,具有更强的鲁棒性。

关键词:暗通道先验去雾;腐蚀;引导滤波

DOIDOI:10.11907/rjdk.161089

中图分类号:TP312

文献标识码:A 文章编号:1672-7800(2016)005-0030-04

0 引言

雾霾天气不仅影响人们的出行,也给视频监控、自动驾驶等涉及室外图像应用的领域带来了很大挑战,并引起了相关研究人员的重视,如今已出现了不少研究成果。图像去雾的研究方法可分为两大类,基于图像增强的方法和基于物理模型的方法。早期图像去雾研究主要利用图像处理的知识来去雾,Kim[1]提出对雾图进行局部直方图均衡处理的方法,这种方法根据每个像素的邻域对像素进行处理,可以突出图像的特征,但运算量较大,算法复杂度较高。Land[2-3]基于色彩恒常性提出了Retinex即视网膜皮层理论,其后出现了一些基于Retinex的图像增强算法[4-6],与其它图像增强算法相比,基于Retinex的图像增强算法处理的图像,局部对比度相对较高,色彩失真较小。基于图像增强的去雾方法可以利用成熟的图像处理算法来增强图像的对比度,突出图像中的特征信息,但这种方法会造成图像部分信息损失,导致图像失真。图像去雾的另一类是基于物理模型的方法,该方法研究大气悬浮颗粒对光的散射作用,通过大气散射模型来复原图像,恢复的图像效果更真实,图像信息能得到较好保存。Narasimhan等[7]提出了雾霾天气条件下的单色大气散射模型,后来基于物理模型的方法几乎均建立在此模型之上。Tan[8]基于无雾图比雾图有更高对比度的假定来最大化有雾图像的对比度,该算法在很大程度上能复原图像结构和细节,然而Tan的算法趋向于过度补偿降低的对比度,容易产生光晕效应。Fattal[9]把图像场景光分解成反射和透射两部分,然后基于独立主成成分分析来估计场景光强,这种方法可以有效去除局部的雾但不能很好恢复浓雾的图像。Kim等[10]结合局部对比度增强和去雾模型方法,能够抑制伪影的产生,但时间复杂度较高。刘倩等[11]使用均值滤波去雾,对单幅图像去雾效果尚可,但是用于视频去雾时帧之间的过渡就不很自然。王燕等[12]使用中值滤波去雾,其有一定的去雾能力,但图像周边会出现明显的分界。何凯明等[13]提出的暗通道先验去雾算法,可以得到精细的透射率,去雾效果优于大多数的去雾算法,已成为去雾领域的经典。去雾后的图像在景深变化大的地方会产生光晕现象,而导致这一问题的原因是在暗通道计算过程中使用了最小值滤波。在求取暗通道过程中,最小值滤波的处理会使得暗色向外扩张,导致透射率扩张变大,从而使去雾后的图像在边缘部分产生“光晕”现象。为了减弱光晕效应,本文利用形态学理论知识对粗略透射率进行腐蚀处理,腐蚀掉扩张变大的透射率,然后使用容差机制修复不符合暗原色先验的明亮区域透射率,再使用引导滤波精细化透射率,最后利用去雾模型复原图像。为了加快处理速度,本文在降采样图像里寻找大气光,并使用暗点优先膨胀算法求暗通道。另外原文求取大气光值的方法在一些情形下并不是很合理,尤其是场景中出现白色物体时,而使用四叉树细分的分层搜索方法却没有这种问题。实验表明,改进的去雾算法去雾效果更佳,且去雾速度更快。

本文图像去雾流程:求取大气光值→粗略透射率估计→透射率精细化→图像复原。

1 暗通道先验去雾

2 算法改进

2.1 大气光值求取

文献[13]方法过程如下:①从暗通道图中按照亮度大小取前0.1%的像素;②对于这些像素位置,在原始有雾图像I中寻找对应的具有最高亮度的像素点的值,作为A值。

很多去雾相关论文都沿用了这种方法,然而这种取法在一些情况下并不太合理,比如图像中含有白色物体时,往往会在白色物体区域取得大气光值,而不是在真正的浓雾区域取得,这样会造成处理后的图像出现偏色现象。

图像有雾区域像素变化通常比较小,即对比度低。基于四叉树细分的分层搜索方法可以准确地找到浓雾区域并取得合理的大气光值,过程如图1所示,首先将一幅图像等分成4个矩形区域,然后分别用每个矩形区域内所有像素值的平均值减去它们的标准差得到一个结果值,选择结果值最大的那个区域并将它进一步等分成4个更小的区域。重复这一过程直到选择区域的大小比预先指定的阈值小。图1中红色块是最后选择的区域,在该区域,选择能够最小化与纯白光向量(255,255,255)距离的颜色向量作为大气光值,即选取最明亮颜色向量作为大气光值。

2.2 粗略透射率修正

2.2.1 透射率腐蚀处理

在暗通道计算过程中,首先会得到原图RGB三原色最小通道值,然后对最小暗通道值进行最小值滤波处理。对于较小的值,以它为中心的滤波窗口内的点值都会受其影响,如图3(b)所示(正中间数据“198”位置会被赋予较小的数据值50),造成暗色向外扩张。由式(4)可知,明亮区域透射率会相应扩大。这样在景深变化明显的地方,去雾后的“光晕”现象就较明显。为了减弱光晕效应,可以使用形态学腐蚀的方法,将扩张变大的区域进行缩小,达到修复的作用,如图3(c)、(d)所示。实验表明,使用圆形结构元素,半径为透射率图长度和宽度最小值的1%来腐蚀透射率图可以得到较好的去雾效果。

2.3 处理时间优化

为了降低处理时间,在求取大气光值时采取在降采样的图像上寻找,这样并不会降低最后寻找到的大气光值的准确性,因为求取目标是要在最浓雾的区域找大气光值,而要寻找大气光值的周围邻近的像素点值通常都是相同或非常接近的,所以跟在原图上找到的值是一致的,而寻找时间却大大缩短。在暗通道求取过程中,最小值滤波处理比较耗时,本文使用文献[15]提出的暗点优先膨胀算法代替最小值滤波处理,这样可有效降低运算时间。

基于暗点优先膨胀的暗通道计算过程如下:①取得原图RGB三原色最小通道值,形成一幅灰度图;②对灰度图像素值进行排序;③选取一个最小值,将以其点为中心的指定窗口大小内的所有点都设为此值,并记录已处理的点;④依次选择次小的点值进行相同操作,并忽略已处理的点,这样就可以很快完成暗通道的计算过程。

图解示意过程如图4所示,图中最上部分为原图RGB最小通道值形成的灰度图,值从小到大排序为A82≤A77≤…。选择最小的值并以其点位置为中心的3×3窗口内的所有点都设为此值,并记录处理过的点,接下来依次选择次小的值进行相同处理,这样就很快获得了暗通道。

最后将精细化透射率及求得的大气光值代入式(5),就可到得到最后的复原图。

3 实验

实验软硬件环境如下:操作系统为32位Windows7,CPU 为酷睿i3-2100双核(3.10GHz),RAM内存为2G,使用32位matlab2010b编码实现。运行文献[13]和改进算法程序对几种雾图分别进行了测试。

实验图片归一化为420×297大小,名称分别为road.jpg、tree.jpg、mount.jpg,结果比较如图5、6、7、8所示。主观上对比可以看到改进算法减轻了处理后的图像明亮区域偏色现象及景深变化区域的光晕效应,并在细节上更好地保持了原图结构。

在客观评价上选择PSNR和SSIM两个性能指标进行实验,得到的数据如表1、表2所示。PSNR即峰值信噪比,其值越大,则说明处理后的去雾图像失真越小,SSIM可以衡量原图和去雾图的结构相似性,其数值越大说明去雾图对原图结构改变越小,同时光晕效应越弱。比较可知,改进算法取得了更好的去雾效果。

4 结语

暗通道先验去雾是近年来出现的一种优秀去雾算法,然而在暗通道计算过程中的最小值滤波处理会使得暗色扩张,进而引起去雾图产生光晕效应。为了减弱光晕效应,本文利用形态学理论对得到的粗略透射率进行腐蚀处理,腐蚀掉扩张变大的透射率;同时对大气光值的求取方法进行了改造,对不符合暗通道先验的明亮区域透射率进行了修复,并使用多种方法优化处理速度。实验表明,改进后的算法在去雾效果和速度方面都有很大提升,后续会在此基础上继续优化改进,使得该算法能够应用于实时视频去雾中。

参考文献:

[1]KIM T K,PAIK J K,KANG B S.Contrast enhancement system using spatially adaptive histogram equalization with temporal filtering[J].IEEE Transactions on Consumer Electronics,1998,44(1):82-87.

[2]LAND E H.The retinex[J].American Scientist,1964, 52(2):247-264.

[3]LAND E H.The retinex theory of color vision[J]. Scientic America,1977,237(6):108-128.

[4]JOBSON D J,RAHMAN Z,WOODELL G A.Properties and performance of a center/surround retinex[J].IEEE Transactions on Image Processing,1997,6(3):451-462.

[5]RAHMAN Z,JOBSON D J,WOODELL G A.Muti-scale retinex for color image enhancement[C].Lausanne:Proceedings of the 1996 International Conference on Image Processing,1996:1003-1006.

[6]RAHMAN Z,JOBSON D J,WOODELL G A.Retinex processing for automatic image enhancement[J].Journal of Electronic Imaging, 2004,13(1):100-110.

[7]NARASIMHAN S G,NAYAR S K.Vision and the atmosphere[J].International Journal of Computer Vision,2002,48(3):233-254.

[8]TAN R T.Visibility in bad weather from a single image[C].Anchorage:Proceedings of the 2008 IEEE Conference on Computer Vision and Pattern Recognition,2008:1-8.

[9]FATTAL R.Single image dehazing[C]. New York:Proceedings of the 2008 ACM Transactions on Graphics (TOG),2008, 27(3):1-9.

[10]J H KIM,J Y SIM,C S KIM.Single image dehazing based on contrast enhancement[C].IEEE ICASSP,2011:1273-1276.

[11]刘倩,陈茂银,周东华.基于单幅图像的快速去雾算法[C].第25届中国控制与决策会议,2013.

[12]王燕,伍博,谷金宏.一种单幅图像去雾方法[J].电光与控制,2011,18(4):65-67.

[13]KAIMING HE,JIAN SUN,XIAOOU TANG.Single image haze removal using dark channel prior[C].IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2009:1956-1963.

[14]蒋建国,侯天峰,齐美彬.改进的基于暗原色先验的图像去雾算法[J].电路与系统学报,2011,16(2):6-11.

[15]刘夏,陈和平,陈黎,顾进广.一种计算图像暗通道的优化算法[J].计算机应用与软件,2014(7):137-140.

[16]HE K M,SUN J,TANG X O.Guided image filtering[C].Berlin:Proceedings of the 2010 Conference on Computer Vision,2010:1-14.

(责任编辑:孙 娟)

猜你喜欢

腐蚀
铜覆钢技术在输电线路接地装置中的应用探讨
燃煤电厂湿法烟气脱硫的腐蚀与防护
镁合金的腐蚀特性及防护探讨
镀锌产品表面腐蚀现象研究
对核电厂紧固件表面处理措施的讨论