Orginal Article

Fast Defogging Method Based on Single Image

  • XIAO Zhongjie , 1, 2, * ,
  • LI Baofang 2, 3
Expand
  • 1. School of Astronautics, Beijing University of Aeronautics and Astronautics, Beijing 100191, China
  • 2. Department of Mathematics and Computer Science, Wuyi University, Wuyishan 354300, China
  • 3. College of Sciences, Henan Agricultural University, Zhengzhou 450002, China
*Corresponding author: XIAO Zhongjie, E-mail:

Received date: 2014-05-05

  Request revised date: 2014-07-21

  Online published: 2015-04-10

Copyright

《地球信息科学学报》编辑部 所有

Abstract

Currently, defogging algorithms based on the physical model of a single image become the focus of defogging researches. Compare several classical single image defogging algorithms, the defogging algorithm based on the dark channel prior knowledge of a single image is the most effective and appropriate method. Since the dark channel prior defogging algorithm has high time complexity and space complexity, there are many researchers accordingly contributed significant improvements to reduce the complexity and improve its efficiency. Comparing these improved algorithms and studying the advantages and disadvantages of defogging, we proposed a new dark channel prior defogging fast algorithm for single image. First, through the introduction of the fast, efficient and low-pass Gaussian filter to substitute the soft matting algorithm or other wave filter, we achieved a smooth and refined transmittance figure. Next, during the process of defogging, since the dark colors in the image at the border of different depth of fields may appear a white border phenomenon, we proposed an area median filtering method to adjust its impact. Finally, the detailed algorithm adaptive to meet the requirements of a global atmospheric optical image were presented. Experimental results showed that the improved algorithm based on single image with the combination of the above mentioned three steps can quickly reduce the fog effect from the original image to ensure the quality of the image, while greatly improve the speed of dark channel prior defogging algorithms. The improved method is efficient in pratical, for example in engineering images defogging process and in video real-time defogging.

Cite this article

XIAO Zhongjie , LI Baofang . Fast Defogging Method Based on Single Image[J]. Journal of Geo-information Science, 2015 , 17(4) : 494 -499 . DOI: 10.3724/SP.J.1047.2015.00494

1 引言

近年来,随着雾霾天气的增多,造成户外可见光成像系统的成像模糊、对比度降低、细节或部分信息缺失等。这是由于雾霾天气条件下,大气中的分子,水汽及大量悬浮颗粒组成的气溶胶对光线形成严重的吸收、散射和反射作用导致系统获取的图像质量降低[1]
目前,基于物理模型的单幅图像去雾成为图像去雾算法研究的重点。为达到去雾目的,Tan于2008年提出通过拉升图像局部对比度的方法来恢复图像色彩对比[2],该方法不以真实物理成像模型为出发点,在主观上可以达到效果,但同时也容易造成结果失真;Fattal提出一种假设物体在局部的表面投影与透射率无关[3],但在该假设不成立以及浓雾天气时,这种方法就失效了,并且这种方法在推算景物成像的透射率时,时间复杂度还是很高,所以不具备解决图像去雾的普遍性。2009年,He等[4]“基于暗原色先验的单幅图像去雾”方法被普遍接受为当前最有效的图像去雾算法,该算法的主要不足之处是:求透射率图的精细化过程[5]中,时间复杂度和空间复杂度较高。随后,He等人于2010年又提出比软抠图算法更快,且具有保边缘、平滑及增强等优点的指导滤波器,从整体上提高了图像去雾性能;文献[7][8]也提出利用双边滤波替代软抠图算法;文献[9][10]分别提出通过区分边缘和划分不同雾浓度区域等方法来分别求取透射率图,以提高暗原色先验去雾算法的速度。以上所述算法都是针对暗原色理论的单幅图像去雾算法,在时间复杂度上的改进,并且经过实验验证,皆能在不同程度提升速度。
本文针对暗原色去雾理论中透射率图的平滑与细化操作,提出采用更简单、高效的高斯低通滤波器,以达到更快速的处理目的。同时,对景深变化边缘区域执行中值滤波进行相对修正;且通过一个具有自适应性的算法求解大气光值。经过对多组有雾图像应用本文方法进行的实验验证,本文算法在时效方面大幅提升了原算法性能。

2 暗原色先验(dark channel prior)知识

2.1 光的大气散射模型

光在传播过程中,当它与大气中的悬浮颗粒发生接触时,部分光会被这些颗粒散射,导致光强被削弱。大气中存在大量的悬浮颗粒,它们既会对入射光产生散射,又会对其他悬浮颗粒的反射光产生散射。所以,在成像设备中获取的光强(影像)包含有既来自于景物的反射光(存在衰减)也包含有来自大量悬浮颗粒的散射光强。散射及景物成像过程如图1所示。
Fig. 1 Atmospheric scattering model

图1 大气散射模型

米氏(Mie)散射理论被认为非常适合于研究极端天气条件下(如具有大量浮尘、浓雾、雪花等)的大气散射作用。在Mie(米氏)散射理论基础上,McCartney提出了一个被图像与视觉研究处理领域广泛使用的大气散射模型,其表达式如式(1)所示。
I x , y = J x , y e - βd x , y + A 1 - e - βd x , y (1)
式中,(x,y)表示像元在图像二维空间中的坐标; I 表示原始的雾化图像(如摄像机获取的); J 表示真实场景;d (x,y)表示像元至摄像头之间的距离(即景深);A是全局大气光(Atmospheric light),通常取一个常量;β是大气散射系数。因此,式(1)中j(x,y)e-βd(x,y)即表示景物在传输过程中经过衰减后到达观测者的成像,而A(1,e-βd(x,y))则表示由于大气中悬浮颗粒的散射作用而形成噪声。
对于式(1),可以用传输透射率t(x,y)来表示指数衰减项e-βd(x,y),则式(1)的大气散射模型可简化为:
I x , y = J x , y t x , y + A 1 - t x , y (2)
由式(2)可得求解无雾图像J(x,y)的公式:
J ( x , y ) = I ( x y ) - A 1 - t ( x , y ) ) t ( x , y ) = I ( x , y ) - A t ( x , y ) + A (3)
由式(3)可知,要求出无雾图像J,必须已知透射率t(x,y),大气光A和有雾图像I。显然这是一个病态方程的求解问题。

2.2 暗原色先验知识

所谓的暗原色理论是:He[4]等通过对正常5000幅彩色图像进行统计后发现,除了大片蓝色的天空和白色景物外,如果对构成RGB彩色图像中的每一个像元取该像元的RGB 3个通道中最小值作为该像元的灰度值,可以得到一个灰度图像,可以发现该灰度图像的整体像元值都非常低;如果对该灰度图像作进一步处理(即对每像元的值取为其领域Ω(x,y)内的最小值),则所得到的灰度图像90%的像元灰度值接近于零,这样得到的灰度图像就称为暗原色图像。暗原色图像定义如式(4)所示。
J dark x , y = min c r , g , b min ( x , y ) x , y ( J c x , y 0 (4)
式中, J dark ( x , y ) 即为暗原色图像在像元点(x,y)处的值;C取为RGB中的某一颜色通道;Ω(x,y)为以像元点(x,y)为中心的邻域;Jc(x,y)为窗口邻域中像元点(x,y)的某颜色通道值。
Fig. 2 Darker color strength chart for 5000 images

图2 5000幅图像暗原色强度统计图

3 改进的暗原色先验快速去雾算法

3.1 暗原色先验去雾

He[4]暗原色先验理论认为,暗通道值存在于景物的阴影、黑色物体或表面颜色鲜艳的物体。如果是在有雾的天气下获得图像,由于雾的存在,大气光参与成像,会使得图像各像元点的暗通道值发生改变,即Jdark(x,y)不再趋于零。若从视觉上看,有雾图像暗原色强度恰是雾霭浓度的粗略近似。可见,根据暗原色先验理论可知,雾天情况下,大气光参与成像(雾的浓度)的值在零与有雾图像的暗原色值之间。
根据暗原色先验理论,对式(2)按指定大小窗口方块Ω(x),两边取最小运算,并同除以A,可得式(5):
min c r , g , b min x , y ) Ω x , y ( I c x , y A c ) = t ( x , y min c r , g , b min ( x , y ) Ω x , y ( J c x , y A c ) + ( 1 - t ( x , y ) ) (5)
由式(4)可知, min c r , g , b min ( x , y ) Ω x , y ( J c x , y A c ) 又由于A显然不可能为零,所以,式(5)可变换得式(6),据此推出透射率t(x,y)。
t ( x , y ) = 1 - min c r , g , b min ( x , y ) Ω x , y I c x , y A c (6)
因此,若大气光A和含雾图像I已知,则通过式(3)可求得无雾图像J(x,y),此即为暗原色先验去雾算法的原理。

3.2 改进的暗原色快速去雾算法

He[4]的暗原色理论是假设像元点邻域Ω(x,y)具有相同透射率t(x,y),而实际上各像元的透射率并不相同,所以去雾后图像往往会存在小块状光晕,即所谓的“halo”效应。为提高透射率精度,必须对暗原色理论所求得的透射率t(x,y)(式(6))进行平滑与细化。He采用soft matting算法[4]对t(x,y)进行细化和平滑操作,由于soft matting算法[5]需要计算拉普拉斯矩阵并求解线性方程组,其时间复杂度占用整个去雾算法的80%以上。本文所提单幅图像暗原色先验快速去雾算法针对以上问题进行了改进。
(1)透射率t(x,y)的快速平滑与细化
为提高基于单幅图像的暗原色先验去雾算法速度,文献[6]和文献[7][8]分别提出用导向滤波和双边滤波来代替soft matting算法执行对透射图t的精化操作,文献[9][10]提出区分不同模块和雾浓度进行透射率t的平滑与细化操作等各种有效的改进算法。
本文采用高斯低通滤波器代替soft matting算法对透射率t执行高速的平滑操作,以提升暗原色先验去雾算法的速度。所谓的高斯滤波其实是将图像中每一个像元点的值,转化为由该像元邻域内所有像元值的加权平均,其具有各向同性和均匀特性,该传递函数如式(7)所示:
H ( u , v ) = e - D 2 ( u , v ) 2 σ 2 (7)
式中,D为频谱;σ为标准偏差。
经实验比较(图3),图3(d)是经高斯滤波后的透射率图t,相比于透射率图3(b)、3(c),会丢失更多细节信息,但整体更平滑,速度更快。而图3(c)是采用软抠图算法得到的t,是最精细的,但其平滑和细化操作所消耗的时间也最多。
Fig. 3 Process of image defogging

图3 图像去雾过程示例

图3(e)是雾化的源图像,图3(f)是He[6]去雾后图像,图3(g)是本文仅对t采用高斯滤波后得到的去雾图像,而图3(h)是本文改进算法(在图3(g)的基础上加上自适应算法和边缘修正)最终得到的去雾图像。由图3中指定黄色区域可见:图3(g)在黄色区域中的不同景深边界处有较明显的白边现象(雾未除尽);He[6]也有轻微的一些白边,而经修正后的本文去雾算法基本不会出现白边现象。
(2)暗原色图像边界值修正
去雾后图像在不同的景深交界处,往往会出现白边现象(雾未除尽)[11],这是由于在景深交界Ω(x,y)区域求取暗原色值时,交界处的远景Ω(x,y)/2区域被取为交界处近景Ω(x,y)/2区域的最小值,这样就会得到错误的边界透射率记为t;为此,我们提出对不同景深交界处的暗原色图像执行中值滤波操作,实验证明这可尽量减少白边现象,效果如图3(h)所示。
(3)求取大气光值A
由前述可知,求得透射率t后,如果大气光值常量A已知,则通过式(2)可还原出无雾图像。如文献[2][3]所述,一般文献求取A时,是取雾化图像中最亮的点,He在文献[4]中指出A不一定是整幅图像里最亮的点。
与一般暗通道去雾算法文献中求取A(简单指定一个220-250之间的整数作为大气光值)方法不同,为避免被图像中原有最亮景物影响,本文从He[4]的暗原色原理出发(原图像中最亮的点在暗原色图像中可能就不是最亮的,因为该点顔色很亮,但取其最小通道值后却可能很小,取其领域内最小通道值后则可能更小),提出了一个满足鲁棒性要求的自适应算法。
①对一个M×N大小的雾化原图像I,求取相应的暗原色图Dcp,及Dcp临时变量Dcp_L;
②设置一0矩阵Dcp0,其规格大小与Dcp_L相同;对Dcp_L进行置换运算,每在Dcp_L中求得Dcp_L中一个最大数值时,把该数置零,并置Dcp0中相应位为1)[5];
③利用得到的Dcp0(其相应(M×N)/1000个最大值位置为1,其它位置为0)与临时变量I0(与雾化图像I相等)按位乘(数组乘)[5];
④在I0中求出最大值([R G B])作为图像I的大气光值A。
综合暗原色先验去雾算法原理及以上3点改进之处,本文所提的改进暗原色快速去雾算法的执行步骤可描述如下:
(1)先求取含雾图像的暗原色图像Idark(x,y);
I dark ( x , y ) = min c { r , g , b } ( min y Ω ( x ) I C ( x , y ) ) (8)
(2)对Idark(x,y)景深交界处执行中值滤波修正;
I R dark ( x , y ) = Med ( x , y ) Ω ( x , y ) ( I dark ( x , y ) ) (9)
(3)根据本文自适应算法,求取大气光值Ac;
(4)利用Ac和有雾图像I,由式(6)求取透射率t(x,y);
(5)为保留去雾图像的深度感,对t(x,y)加自适应参数ω进行修正,本文参考已有文献的工作成果并根据实验结果,取值为0.95;
1 - ω min c { r , g , b } ( min ( x , y ) Ω ( x , y ) ( I R dark ( x , y ) A c ) ) (10)
(6)利用高斯低通滤波器H(u,v)对透射率图t(x,y)执行卷积平滑操作得到tR(x,y);
(7)根据求得的Ac,tR(x,y)和有雾图像I,由式(3)恢复得到无雾图像J(x,y):
J ( x , y ) = I ( x , y ) - A c max ( t R ( x , y ) , 0.1 ) + A c (11)
需说明的对暗原色图像边界值进行修正时,是对整个暗原色图像(灰度图像)执行中值滤波处理,其对图像的影响主要在边界处,而对于图像平滑处,中值滤波影响显然没有边界处明显,这样就达到边缘修正的目的。另外,由梯度算子理论也可确定图像的景深边缘。

4 快速去雾算法的实验与分析

本算法实验的软、硬件环境为:Acer Inter(R) Core(TM) i5-3337U@1.80GHz,RAM4.0G;在Windows 8系统下运行64位MatLab2010a[12],对4组有雾图像(第1组为图3(e)-(h)中的彩色图像;第2、3、4组分别为图4(a)-(c)彩色图像)进行去雾测试。其中,第1列是有雾原图像,第2列是采用He[6]去雾后图像,第3列采用高斯滤波去雾后图像,第4列是本文算法去雾后图像。以下从主、客观2个方面对去雾效果进行评价。
Fig. 4 Experimental results of defog comparisons

图4 去雾实验结果对比

主观上,图3(e)-(h)和图4所示,He[6]去雾算法,高斯滤波和本文所提算法都能获得较满意的去雾效果。针对第1组(图3)和第2组图像(图4),在如图中所示的指定区域内,He[6]算法和简单的高斯滤波算法都存在较明显的白边的现象,而本文算法不存在这种雾除不尽的现象;而对于图4中的第3组和第4组图像中的指定区域来说,He[6]、高斯滤波和本文算法都存在白边现象,其中,第3组的天安门图像是在远景处,不太明显;而在第4组图像中简单高斯滤波和本文算法雾未除尽现象较明显,特别是简单的高斯滤波去雾存在明显的雾除不尽,而在部分远景雾去除方面,He[6]算法比本文算法去雾效果更好。
文献[13]-[16]都针对提升图像去雾算法的速度,提出了有效的改进方法。在本机相同软、硬件配置环境下,对图3、4中的4组图像,分别采用He[4]、He[6]、高斯滤波和本文算法在速度方面进行了测试,测试结果如表1所示。这4种单幅图像的去雾算法,在速度上与图像大小有直接的关系;对于文献[4]算法,虽然去雾效果最好,但去雾速度随着图像的增大,去雾时间从几十秒迅速增加到几分钟;而He[6]算法也需要耗费几秒甚至几十秒;相比而言本文所提改进算法在保证去雾效果的同时,去雾时间不会超过几秒。通过实验比较可以发现,本文算法相对于文献[4]、[6],运算速度分别提高9-10倍和4-5倍,速度优势比较明显[17-18]
Tab. 1 Different dark channel prior defog algorithms compare on the time complexity

表1 不同的暗原色先验去雾算法在时间复杂度上的比较

图像文件(大小) 算法[4]时间(s) 算法[6]时间(s) 高斯算法时间(s) 本文算法时间(s)
Canon.bmp(400×600) 56 7.1 1.8 1.8
House.bmp(441×450) 48 6.1 1.8 1.9
Tiananmen.bmp(600×450) 35.6 8.1 2.5 2.6
Boulevard.jpg(1024×768) 152.6 22.6 4.6 4.8

5 结语

本文提出采用简单、高效的高斯滤波代替原暗原色去雾算法中对透射率图执行优化的软抠图算法,大幅度提高了该去雾算法的速度,并能保证去雾效果。同时,给出了暗原色去雾过程中求解大气光值的自适应算法,提出对去雾图像景深不同的交界处会有白边现象进行中值滤波修正的方法。实验结果表明,本文算法在主观去雾效果上可以满足视觉要求,在执行时效上具有较大优势,能够满足工程应用上的实时去雾需求;本文算法对有些类型的图像的去雾效果还有待改善。另外,图像去雾速度的进一步提升还可通过参考文献1920等硬件方式予以实现。

The authors have declared that no competing interests exist.

[1]
祝培,朱虹,钱学明,等.一种有雾天气图像景物影像的清晰化方法[J].中国图象图形学报,2004,9(1):124-128.

[2]
Tan R.Visibility in bad weather from a single image[C]. Proceeding of IEEE Conference on Computer Vision and Pattern Recognition,(CVPR’08). Washington: IEEE Computer Society, 2008:1-8.

[3]
Fattal R. Single image dehazing[J].Acm Transactions on Graphics, 2008,27(3):1-9.

[4]
He K, Sun J, Tang X O.Single image haze removal using dark channel prior[C].Proceeding of IEEE Conference on Computer Visionand Pattern Recognition (CVPR’ 09). Washington: IEEE Computer Society, 2009:1956-1963.

[5]
肖钟捷,余文森,程仁贵,等.基于暗通道先验的快速图像去雾算法[J].吉林师范大学学报,2014,8(3):106-110.

[6]
He K, Sun J, Tang X.Guided Image Filtering[C]. Proceedingof ECCV, 2010:1-14.

[7]
孙抗,汪渤.基于双边滤波的实时图像去雾技术研究[J].北京理工大学学报,2011,31(7):810-813.

[8]
Yu J, Liao Q M.Fast single image fog removal usingedge-preserving smoothing[C].Proceedings of IEEE International Conference on Acoustics,Speech and Signal Processing(ICASSP),2011:1245-1248.

[9]
褚宏莉,李元祥.基于黑色通道的图像快速去雾优化算法[J].电子学报,2013,41(4):791-796

[10]
Xu H R, Guo J M, Liu Q, et al.Fast Image Dehazing using improved dark channel prior[C]. IEEE International Conference on Information Science and Technology, 2012:663-667.

[11]
张冰冰,戴声奎,孙万源,等.基于暗原色先验模型的快速去雾算法[J].中国图象图形学报,2013,18(2):184-188.

[12]
张衍敏. 基于MATLAB图像复原算法研究[J].PLC&FA,2013(8):87-92.

[13]
张筱,吴军,娄小龙,等.新的雾霾退化场景再现快速算法[J].计算机应用,2013,33(7):1995-1997.

[14]
刘巧玲,张红英,林茂松,等.一种简单快速的图像去雾算法[J].计算机应用与软件,2013,30(7):72-76.

[15]
嵇晓强. 图像快速去雾与清晰度恢复技术研究[D].长春:长春光学精密机械与物理研究所,2012.

[16]
周首峰,耿楠.基于暗原色先验的单幅图像去雾方法的优化技术[J].计算机应用与软件,2013,30(7):287-289.

[17]
杨国强. 图像和视频去雾技术的研究[D].天津:天津大学,2011.

[18]
郭璠,蔡自兴,谢斌.基于雾气理论的视频去雾算法[J].电子学报,2011(9):2019-2025.

[19]
黄飞虎,兰时勇,吴健,等.基于CUDA 平台的实时去雾[J].计算机应用,2013,33(S2):183-186.

[20]
梁良. 基于CUDA 加速的运动目标检测[D].北京:北京交通大学,2012.

Outlines

/