结合天空区域检测的图像去雾算法研究与实现*
2017-09-25张燕丽
张燕丽,柯 旭
(1.广东农工商职业技术学院 计算机系,广州 510107;2.华南理工大学 计算机科学与工程学院,广州 510006;3.西安电子科技大学 通信工程学院,西安 710071)
结合天空区域检测的图像去雾算法研究与实现*
张燕丽1,2,柯 旭3
(1.广东农工商职业技术学院 计算机系,广州 510107;2.华南理工大学 计算机科学与工程学院,广州 510006;3.西安电子科技大学 通信工程学院,西安 710071)
针对雾霾条件下拍摄的户外图像,常规去雾后天空区域常常出现的失真问题,提出了一种结合天空区域检测的图像去雾算法;算法先根据暗通道理论估计出大气光强度,使用双边滤波器得到大气光幕,求得透射率图,再结合天空区域检测的结果对透射率进行修正,最后代入雾天成像模型得到复原的图像;实验结果表明:结合天空区域检测的图像去雾算法可以有效地检测出图像中是否存在天空区域,针对检测结果修正的透视率,能够使修复后有天空区域的图像看起来更加自然平滑,没有明显失真,不存在天空区域的图像,图像对比度大大提升,在景深较大的区域恢复出更多的细节;算法对各类图像均可取得较为理想的去雾效果。
图像去雾;双边滤波;暗通道;天空检测;区域生长
在雾霾条件下拍摄的户外图像,由于受到大气中悬浮的微小颗粒散射的影响,其质量往往会出现比较严重的退化,如对比度降低、颜色失真等。图像的视觉效果变差,许多图像的细节被雾霾掩盖而难以察觉。图像去雾就是要消除雾霾的影响,对雾霾天气图像进行清晰化处理,还原雾天场景的细节,增强图像的清晰度。在图像去雾中常用基于大气散射的物理模型来描述有雾图像,由于雾霾与场景深度是相关的,使得单幅图像去雾成为了一个复杂问题。
目前,常见的基于单幅图像的图像去雾算法大多基于一定的先验假设。Tan[1]假设无雾图像的对比度要大于有雾图像的对比度,通过最大化局部对比度来获得去雾效果,该方法首次实现了单幅图像的去雾,但恢复出来的图像颜色过于饱和。Fattal[2]基于透射率与场景表面反射率不相关的假设,利用独立成分分析的方法估计透射率,该方法只适合于薄雾图像,对于雾霾浓度较高时效果较差。He[3]等人首次提出来一种简单而有效的先验规律——暗通道先验(Dark Channel Prior),利用该先验规律直接估计出粗糙透射率,然后利用软抠图算法[4](Soft Matting)获得精细的透射率图。该方法的去雾效果明显,鲁棒性好,但是其算法复杂度过高,运算速度过慢。Tarel[5]基于大气耗散函数在其可行域中逼近最大值的假设,采用滤波的方法来估计大气光幕,进而求得透射率。该方法去雾效果较好,但是结果图像偏暗,且参数过多,设置不当容易引起Halo效应。另外,还有很多基于以上算法的改进算法,提高了算法的速度。
上述常见的图像去雾算法均能取得不错的效果,但当图像出现大面积天空区域时,对天空区域的处理时普遍效果不佳。为此,本文针对雾霾条件下拍摄的户外图像,常规去雾后天空区域常常出现的失真问题,提出了一种结合天空区域检测的图像去雾算法。首先用暗通道理论来估计大气光,然后利用双边滤波器来估计大气光幕,求得透射率图,再进行天空区域检测并根据结果对透射率图进行修正,最后代入得到复原图像。
1 算法
1.1 雾天成像模型
在计算机视觉和计算机图形学领域,广泛使用基于大气散射物理模型的雾天成像方程[6],该模型的表述为
I(x)=J(x)t(x)+A(1-t(x))
(1)
其中,I(x)为输入图像,即观测到的有雾图像,J(x)为复原的图像,即场景辐射,A为大气光,是一个全局常量,t(x)为场景透射率,它随场景深度的不同而变化,x为图像中的像素点的位置。式(1)右边第一项J(x)t(x)称为直接衰减(Direct Attenuation),它随着场景的距离呈指数衰减,第二项A(1-t(x))称为大气散射光或大气光幕(Atmospheric Veil),它的存在会使得场景颜色出现偏移。重写式(1)得到其另一种形式:
(2)
图像去雾就是围绕上述物理模型,在一定的先验假设的基础之上,估计出大气光A和场景透射率t(x),然后代入到式(2)中得到无雾图像J(x)。
1.2 估计大气光
暗通道先验是基于户外无雾图像的一种统计规律:在大多数非天空的局部区域内,存在一些像素点在至少一个颜色通道内的亮度值很低且接近于0,也即是说在这样的一个局部区域内,最小亮度值接近于0。
暗通道的表述形式如下:
(3)
其中,Jc是图像J的颜色通道,Ω(x)是中心点在x的局部块。根据暗通道先验有Jdark趋近于0。对于有雾图像,其暗通道的亮度要比无雾图像的要高,并且雾越浓的地方,亮度越高,因此有雾图像的暗通道可以近似反映雾的浓度大小,而大气光一般在雾最浓的地方取得。所以先从暗通道中选取最亮的前0.1%的像素点,然后在原图像对应的位置中寻找亮度最大的值作为大气光A的估计值。这里的Ω(x)采用的是15×15的邻域。
1.3 估计大气光幕
(4)
估计大气光幕的具体步骤为
(5)
(6)
(7)
(4)V(x)=max(min(pC(x),W(x)),0)
(8)
其中Ω为双边滤波器的窗口大小,p为用来控制去雾程度的调节参数,其大小在0和1之间。
1.4 得到场景的投射率图
得到大气光和大气光幕的估计之后,有大气光幕的表达式V(x)=A(1-t(x))来求出透射率:
(9)
1.5 天空区域检测
在用上一步得到的透射率进行图像复原时,为了防止透射率的值过小而产生噪声,通常会给透射率t(x)限制一个最小值t0,t0的典型值为0.1。但是通过实验发现对于大面积的天空区域,0.1这个值还是过小,导致天空区域噪声过大而出现失真,通过尝试发现当t0=0.3时对天空的处理可以得到较好的效果,但是0.3对于不存在天空区域的图片来说过大,导致图片中景深较大的地方去雾不够彻底,细节不够清晰。因此,透射率的最小值t0是和图片是否存在天空区域有关的,如果图片存在天空区域,则t0=0.3,反之t0=0.1。
户外图片中,明显可以推断天空区域多数位于图像上方区域,亮度较高而且较为平坦。基于这些显著特征,可以将图片转换到梯度域,在梯度域中寻找大片平坦且亮度较高的区域作为天空区域。算法的具体步骤如下:
(1) 将输入图像I(x)转换为亮度图像Y(x),所用公式为
Y(x)=0.299×R(x)+0.587×G(x)+0.114×B(x)
(10)
(2) 用Sobel算子求亮度图的梯度信息并用双边滤波器进行适当的滤波,去除平坦区域中的噪点。
(3) 设定一个阈值ε,将梯度信息转换为二值图像B1(x),如果梯度小于阈值ε,则B1(x)为1,反之则为0。
(4) 对B1(x)进行半径为r的腐蚀得到二值图像B2(x)。
(5) 选取区域生长所需的种子点。本文中选取在暗通道图像中与大气光A值相差5以内的像素点为种子点。这样选取种子点的目的是为了避免有些图片中的天空区域被建筑物或树枝分隔开,若选取单一的种子点会导致分割出来的天空区域不完全,按本文方法则可以将天空区域全部分离出来。
(6) 以上一步所选取的种子点进行区域生长,得到天空区域的可能区域。
(7) 由式(3)计算原图像的暗通道图像Jdark,计算可能天空区域内暗通道的均值,若该均值大于阈值θ,则认为存在天空区域,反之则不存在。对于存在天空区域的图片,由步骤(5)选取的种子点在天空区域,经过区域生长,可能的天空区域基本上在实际天空区域内,而天空区域暗通道的值较大,计算得到均值也较大;对于不存在天空区域的图片,种子点在图片上方的某一处,经过区域生长得到的可能的天空区域通常会近乎覆盖整个图片,而非天空区域暗通道的值通常较小,计算得到的均值也较小。这样可以很容易地判断出是否存在天空区域。
1.6 图像复原
根据前两步的结果,若图片存在天空区域,则将透射率的最小值t0设为0.3,反之则设为0.1,利用式(2)计算去雾后的图像:
(11)
2 实验结果及分析
2.1 主观质量评价
通过多次摸索和尝试发现当Ω=15×15,p=0.95,ε=0.1,r=1,θ=175时可以取得较为理想的结果,本文得到的所有结果图片都是基于这些参数值。
对于有天空区域的图片,本文算法可以较为精确地检测出天空区域,而对于不存在天空区域的图片,经过区域生长后有大片的可能的天空区域,但是由于这些区域的暗通道的值较低,因而不会检测出存在天空区域。
为了验证所提算法的有效性,将本文算法所得到的结果与文献[3]中的算法进行比较。图1—图3分别显示了两种算法的效果图。
图1 建筑物的结果图对比Fig.1 Comparison of the results of buildings picture
图2 纪念碑的结果图对比Fig.2 Comparison of the results of monument picture
图3 无天空区域图片的结果图对比Fig.3 Comparison of the results of picture without sky region
由上述结果图对比可以很明显地看出文献[3]的算法对天空区域的处理效果出现了比较明显的失真。而经过本文算法处理过的天空区域则看起来更加自然、平滑,没有明显的失真。而且由于使用了边缘保留性能较好的双边滤波器来估计大气光幕,有效地抑制了Halo现象,在边缘处看不到光晕。另外对于不存在天空区域的图片,本文算法也能在景深较大的区域恢复出较多的细节。
2.2 客观评价
为客观评价算法有效性,对图像去雾前后对比度变化进行比较。
图像去雾就是要消除雾霾影响,恢复雾霾掩盖的图像细节。图像的对比度越高,图像的细节越丰富。对比度的计算公式如下:
(12)
其中,δ(i,j)=|i-j|,即相邻像素间灰度差,Pδ(i,j)为相邻像素灰度差为δ的分布概率,这里邻域取该像素点的四邻域。
分别测试了5幅雾天图片,如图4—图8所示。
图4 测试案例I去雾效果图对比Fig.4 Comparison of dehazing effect of test case I
图5 测试案例II去雾效果图对比Fig.5 Comparison of dehazing effect of test case II
图6 测试案例III去雾效果图对比Fig.6 Comparison of dehazing effect of test case III
图7 测试案例IV去雾效果图对比Fig.7 Comparison of dehazing effect of test case IV
图8 测试案例V去雾效果图对比Fig.8 Comparison of dehazing effect of test case V
去雾前后的对比度变化见表1。
表1 去雾前后对比度变化比较Table 1 Comparison of contrast changes before and after image dehazing
由表1可以看到,经过本文的算法去雾后,图片的对比度均有了很大的提升,图片视觉质量得到了极大的提高。
3 结 论
提出的结合天空区域检测的图像去雾算法,先根据暗通道理论估计出大气光强度,使用双边滤波器得到大气光幕,求得透射率图,再结合天空区域检测的结果对透射率进行修正,最后代入雾天成像模型得到复原的图像。实验结果表明,结合天空区域检测的图像去雾算法可以有效地检测出图像中是否存在天空区域。针对检测结果修正的透视率,能够使修复后有天空区域的图像看起来更加自然平滑,没有明显失真;不存在天空区域的图像,图像对比度大大提升,在景深较大的区域恢复出更多的细节。因此,本算法对各类图像均可取得较为理想的去雾效果。
[1] TAN R T.Visibility in Bad Weather From a Single Image[C]∥Computer Vision and Pattern Recognition,IEEE Conference on.IEEE,2008:1-8
[2] FATTAL R.Single Image Dehazing[C]∥ACM Transactions on Graphics (TOG).ACM,2008,27(3):72
[3] HE K,SUN J,TANG X.Single Image Haze Removal Using Dark Channel Prior[J].Pattern Analysis and Machine Intelligence,IEEE Transactions on,2011,33(12):2341-2353
[4] LEVIN A,LISCHINSKI D,WEISS Y.A Closed-Form Solution to Natural Image Matting[J].Pattern Analysis and Machine Intelligence,IEEE Transactions on,2008,30(2):228-242
[5] TAREL J P,HAUTIERE N.Fast Visibility Restoration From a Single Color Or Gray Level Image[C]∥Computer Vision,2009 IEEE 12th International Conference on.IEEE,2009:2201-2208
[6] NARASIMHAN S G,NAYAR S K.Contrast Restoration of Weather Degraded Images[J].Pattern Analysis and Machine Intelligence,IEEE Transactions on,2003,25(6):713-724
[7] 彭诚,孙新柱.一种改进的深度图像修复算法研究[J].重庆工商大学学报(自然科学版),2016,33(1):65-69
PENG C,SUN X Z.Study on an Improved Depth Image Restoration Algorithm [J].Journal of Chongqing Technology and Business University(Naturnal Science Edition),2016,33(1):65-69
[8] XIAO C,GAN J.Fast Image Dehazing Using Guided Joint Bilateral Filter[J].The Visual Computer,2012,28(6-8):713-721
[9]TOMASI C,MANDUCHI R.Bilateral Filtering for Gray and Color Images[C]∥Computer Vision,Sixth International Conference on.IEEE,1998:839-846
Research and Implementation of Single Image Dehazing Algorithm Combined with Sky Region Detection
ZHANGYan-li1,2,KEXu3
(1.Department of Computer Science,Guangdong AIB Polytechnic College,Guangzhou 510107,China; 2.School of Computer Science and Engineering,South China University of Technology,Guangzhou 510006,China; 3.School of Telecommunication Engineering,Xian Electronic Science and Technology University,Xian 710071,China)
According to outdoor images taken under hazy condition,sky area after dehazing is often distorted,based on that,this paper proposes a single image dehazing algorithm combined with sky region detection.Firstly,the atmospheric light intensity is estimated based on the dark channel theory,bilateral filter is used to obtain the atmospheric light and transmissivity map,then sky detection procedure is applied to find whether the sky area is existed in image,the transmissivity is modified according to different results,and finally the restored image is obtained by substituting the fog imaging model.The experimental results show that the proposed algorithm can effectively detect the sky area in image,can modify transmissivity according to modified results and can make the image in the sky region look more natural and smooth and no obvious distortion.It can also improve the contrast of the image without the sky areas which recover more details in the depth of field.This algorithm can receive ideal dehazing effect for all kinds of images.
image dehazing; bilateral filtering; dark channel; sky detection; region growth
TP391
:A
:1672-058X(2017)05-0037-06
责任编辑:罗姗姗
10.16055/j.issn.1672-058X.2017.0005.007
2017-03-01;
:2017-04-30.
国家自然科学基金(61372068);广东省农村信息化建设专项资金资助项目(201210112700518).
张燕丽(1975-),女,河南郑州人,副教授,硕士,从事图像处理和软件开发研究.