APP下载

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

2017-09-29郭云云徐伯庆

软件导刊 2017年9期

郭云云 徐伯庆

摘 要:目前,基于暗通道先验原理的图像去雾能够取得较好效果,但仍存在图像景物交界处产生光晕、天空及白色物体区域去雾后色彩失真等问题。鉴于此,提出改进的基于暗通道先验去雾算法:首先,对暗通道图进行非重叠式滤波,消除最小值滤波导致图像交界边缘产生的光晕;然后,对输入雾霾图像进行直方图分析,能够自适应获得分割天空区域的亮度阈值;再对透射率图天空区域进行像素变换,去雾后可消除颜色失真;最后,采用非线性亮度提高的方法提升去雾图像的视觉效果。结果表明,改进算法去雾后的图像真实、天空自然。

关键词:图像去雾;暗通道原理;像素变换;天空分割

DOI:10.11907/rjdk.171527

中图分类号:TP312 文献标识码:A 文章编号:1672-7800(2017)009-0046-04

Abstract:Now, image haze removal based dark channel prior principle has acquired good effect, but there still are many problems that halo at the junction of scenery and color distortion of the sky and the white area. The improved algorithm: first compensating the dark channel image could eliminate halo at the junction of scenery caused by min filter; secondly, analysis of the haze image through its histogram could obtain brightness threshold to distinguish the sky self-adaptively; then, the pixels of transmissions sky area are transformed, after haze removing , color distortion is not there; finally, the nonlinear brightness increase was used to enhance visual effect of the haze removal image. Experiments show that the improved algorithm remove image haze, the image is more real, the sky is more natural.

Key Words:image haze removal;dark channel prior; pixels conversion;sky division

0 引言

随着科技的不断进步,计算机视觉系统在人们的生活中扮演着越发重要的角色,如交通监控、目标追踪、无人机航拍等。但近年来,由于环境变化,雾霾天气时有发生,视觉系统获得的图像清晰度不高,给社会生活造成极大不便。因此,图像去雾成为迫切需要研究的问题。

去雾算法大致可分为两类:基于图像成像物理模型的去雾算法和非物理模型的去雾算法。非物理模型算法主要包括基于颜色恒常性原理的Retinex算法[2]和综合提升图像亮度、对比度的算法[3]。非物理模型算法只考虑从视觉上增强图像的清晰度和辨识度,物理模型从更加客观可靠的图像成像原理出发,逆推出被雾霾退化的原始图像。Tan[4]利用无雾图像对比度高于有雾图像,在马尔科夫随机场(MRF)模型的基础上构造边缘代价函数,使去雾图像的局部对比度最大,但复原出来的图像饱和度过高且有光晕效应。Fattal[5]假设物体表面色度和介质传播局部不相关,使用独立分析的方法估计局部反照率。由于雾图像的物体表面色度信息量有限,最终该算法复原的图像容易失真。Tarel[8]假设大气耗散函数在局部区域内可近似估计为最大值,采用中值滤波的变形形式估计大气耗散函数,但去雾后图像易有光晕效应。He提出暗通道先验规律,先后采用软抠图(Soft Matting)算法[6]和引导滤波[7]细化透射率图,两者都能够取得较好的去雾效果。然而He算法对不满足暗通道先验规律的天空和白色物体区域,去雾后出现严重失真,并且交界边缘产生光晕现象。

针对上文提到的问题,提出一种改进的基于暗通道先验的去雾算法。首先对经最小值滤波使交界边缘处暗通道估计不准确之处进行修复,然后对天空等白色区域对应透射率圖像作变换,使这些区域满足暗通道先验原理,最后对透射率图细化并增强输出图像亮度对比度。

1 基本介绍

1.1 大气散射光照模型

在计算机视觉和计算机图像处理中,米氏散射物理模型被用来表示雾天图像的成像原理。该模型的物理表达式为:I(x)=Aρ(x)e-βd(x)+A(1-e-βd(x))

(1) 式中:I为输入雾图像,A为大气光值,d为景深,β为大气散射系数,x为输入图像像素点坐标。

将式(1)简化为式(2):I(x)=J(x)t(x)+A(1-t(x))

(2) 其中:J即为去雾后的图像,t表示透射率图。

1.2 暗通道先验去雾算法

1.2.1 暗通道先验

He统计了5 000多幅图片发现,彩色图像非白色区域的每个像素点的RGB三通道中至少有一个通道具有很低的灰度值。根据这一共性,可将输入图像的暗通道定义为:Jdark(y)=minΩ(x)(minc∈{r,g,b}(Jc(x)))

(3) Jc为三通道图像,然后以Ω(x)大小的模板对三通道最小值图像进行滤波,得到暗通道图Jdark,Jdark被认为趋于0。endprint

1.2.2 去雾步骤

He算法假设大气光值A是定值,透射率在每个窗口内为常数。基于这些假设及暗通道先验原理,推得透射率如式(4):t(x)=1-minx∈Ω(x)(mincIc(x)Ac)

(4) 为了保持空间透视,引入参数ω,取ω=0.95。修正后为式(5):t(x)=1-ωminx∈Ω(x)(mincIc(x)Ac)

(5) 这即是粗糙的透射率图。然后对粗糙的透射率进行细化,带入式(2),推得去雾后图像J。J(x)=I(x)-Amax(t(x),t0)+A

(6) t0为防止透射率值偏小而设定的下限值,取0.1。

2 改进算法

2.1 暗通道补偿

在获得粗糙透射率图的过程中,首先要得到输入图像的暗通道,关键步骤是对三通道最小值图像以Ω(x)大小的卷积模板进行最小值滤波。He假设一个局部区域内的透射率是恒定不变的,在图像平滑区域内可以这么认为,但在景物交界处,远景的暗通道实际上大于近景的暗通道,因此造成了交界处的光晕效应。对被估计错误的交界边缘暗通道进行修复,有助于提高透射率图的准确性。

本文在对三通道最小值图像进行最小值滤波时,模板每次移动都以最初三通道最小值图像为基础,这样避免了模板块重叠作用使远近景的暗通道被错误估计。同时模板不宜太大,否则雾气去除不干净。输入图像尺寸m×n,卷积模板block=max(7,(m,n)*0.01),以图1为例,观察左上角的树叶。

2.2 天空阈值分割

对大量包含天空或者大面积白色区域的图像进行研究发现,其直方图灰度值较高区域都会产生累积峰值,该峰值即是图像天空及白色物体区域的灰度值累积区。如图2为图1(a)灰度直方图。

天空与景物的交界线是本算法需要分割的区域。由于景物和天空像素灰度值差别较大,交界线处于景深和像素灰度值突变的边缘地带,因而两者在像素上几乎没有重合。从灰度直方图上看,两者交界区域会产生一个低谷。本文采用基于谷底阈值的天空分割法。

Step1:对输入有雾图像进行直方图变换,得到输入图像灰度直方图。

Step2:遍历整个直方图找到所有峰值灰度级a1,a2,a3,…,an。如果只找到一个峰值,说明图像无天空等明亮区域,直接退出天空阈值分割操作。

Step3:从所有峰值灰度级中找到灰度值最大的峰值灰度级(天空峰值灰度级)。

Step4:对比所有峰值灰度级到天空峰值灰度级的距离,选择距离最小的峰值灰度级,即最近峰值灰度级。

Step5:遍历最近峰值灰度级和天空峰值灰度级之间的灰度级,选择频次对应最少的灰度级作为分隔阈值α。

为检测谷底阈值分割法对天空区域识别的准确性,本文做了大量试验,以图1为输入图,输出天空与景物识别二值图像如图3所示。

2.3 天空去雾

无雾图像的天空等明亮区域是不符合暗通道原理的。图像景物区域像素三通道至少有一个通道值是趋近于0,而天空等白色区域三通道值很大且相近。利用式(5)求取粗糙透射率图时,需要先获得输入图像的暗通道图。暗通道图天空区域的灰度值与原图像天空区域的灰度值几乎相等,因此可以使用原图像天空区域分割得到的阈值对暗通道图操作。本文算法将暗通道图中大于等于阈值的像素,即天空区域改变灰度值为b,b取0~50的定值,这样使天空区域也符合暗通道先验原理。

由于雾图像天空区域像素值和大气光A很接近,根据式(5)求得的透射率值可能趋近于0,导致式(6)得到的无雾图像白场过度,于是设置透射率下限阈值t0。本文对暗通道图天空区域变换像素,让其符合暗通道原理,避免了透射率值的无限偏低,因此不需要设置透射率下限阈值。无雾图像的表达式改为:J(x)=I(x)-At(x)+A

(7) 对于图像上明亮的天空区域,雾气作用在视觉上影响不大。本文方法其实是对天空去雾的弱化处理[9],b值越大天空去雾越明显,经试验,选b值为20。以图1(a)天空局部区域为例,从图4可以看出去雾后天空没有色偏。

2.4 大气光值A

He算法中假设大气光因子A是定值,并且与带雾图像天空亮度值接近。试验检验发现,当A值过大,天空区域去雾后出现严重色偏;当A值过小,天空区域呈现高亮。He方法在暗通道图中找到前0.1%的像素,然后取这些像素在原图中对应像素最大值作为A值的方法,无法避免白色物体的影响。如图5所示,星号点为He算法检测的大气光值。

由于白色物体的亮度值接近250甚至更高,本文采取最简单的屏蔽方法。设置大气光的上限阈值为240,对检测有天空阈值的图像,在其暗通道图中找到位于天空阈值和上限阈值之间的前0.1%的像素,選择这些像素在原图像的最大值作为估计A值;对无天空阈值的图像采用He方法。实验结果显示,在本文算法基础上,使用He方法估计的大气光值,天空区域不再出现色偏等不良现象,如图4(c)所示。

2.5 亮度提升

采用本文算法,在暗通道先验原理的基础上进行去雾后的图像依然整体偏暗。为提升图像亮度,在幂次变换的基础上设计一种非线性亮度增强表达式。O(x)=255*(J(x)/255)γ

(8) 其中,γ表达式为:γ=β(200-J(x))/200

(9) β取0.8。由表达式可知,当去雾后图像亮度较低时,γ小于1,增强暗区域亮度;当亮度较高时,γ大于1,降低亮区域亮度。实验结果表明,图像景物区域亮度得到提高,景物更加清晰自然,天空区域亮度略有提高,如图6所示。本算法保持了天空景物的视觉一体性,提升了去雾图像的视觉效果。

3 实验结果与评价

本算法的图像去雾处理实验中,使用一台联想Z475系列笔记本,其配置为AMD A6-3240M APU with Radeon(th)HD Graphics 1.50GHz ,内存为4.00GB(RAM),64位Win7操作系统。MATLAB R2012a运行代码。endprint

本文涉及的相关参数在上文已基本给出。对于本文得到的粗糙透射率图,细化工作中考虑使用双边滤波或者引导滤波。两者都具有很好的保边去噪功能,但引导滤波相比处理速度更快。因此选用引导滤波,滤波半径为最小值滤波半径的6倍。

由于本算法是在He暗原色去雾基础上的改进算法,扩展了He算法的适用性。本文选取3幅图片与He算法处理效果进行对比,图 7为3组带天空的雾气图像。He算法天空区域出现不同程度的色偏现象。本文方法对天空暗通道图的特殊处理,简单实现了天空去雾,去雾后的天空区域与其它景物自然连接在一起,没有过渡区域。无雾天空亮度并非全部一致,随太阳辐射逐渐减弱。本文算法甚至很好地复原了无雾图像天空亮度,如图7所示,去雾后的天空真实自然。

本算法无需区分有无天空图像的处理。天空阈值分割方法可以很好地检测输入图像有无天空等明亮区域,自适应地对图像进行去雾,极大扩展了He算法的适用范围。

4 结语

本文提出一种改进的暗原色先验图像去雾算法,对He算法进行了适当改进,提高了暗原色先验去雾算法的通用性。首先对暗通道图交界处暗通道值进行补偿,有效消除光晕效应;然后采用谷底阈值方法检测是否为天空图像,若是,求取谷底阈值,若不是,继续进行去雾处理,并对有天空图像进行特殊处理,去雾后的天空没有色偏;最后细化透射率图,输出无雾图像并进行亮度增强,提升去雾图像的质量。实验结果表明,本算法运行速度快,对无天空雾图像、明亮天空雾图像都有很好的去雾效果。但研究发现,本算法对有色天空雾图像处理效果一般,有待进一步研究解决。

参考文献:

[1] 禹晶,徐东彬,廖庆敏.图像去雾技术研究进展[J].中国图象图形学报,2011,16(9):1561-1576.

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

[3] 王守觉,丁兴号,廖英豪,等.一种新的仿生彩色图像增强方法[J].电子学报2008,36(10):1970-1973.

[4] TAN R T.Visibility in bad weather from a signal image[C].Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2008:1-8.

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

[6] HE K M, SUN J, TANG X O.Single image haze removal using dark channel prior[C]. Proceeding of IEEE Conference Computer Vision and Pattern Recognition (CVPR09),2009:1956-1963.

[7] HE K M, SUN J, TANG X O. Guided image filtering[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2013,35(6):1397-1409.

[8] TRAEL J, HANTI N.Fast visibility restoration from a single color or gray level image[C].Proceedings of the IEEE CVPR,2009:2201-2208.

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

[10] WANG G, REN G, JIANG L.Single image dehazing algorithm based on sky region segmentation[J].Journal of Information Technology,2013,12(6):1168-1175.

(责任编辑:孙 娟)endprint