2. 吉林大学 物理学院,吉林 长春 130012
2. College of Physics, Jilin University, 130012, Changchun, P.R.China
近年来中国雾霾天气频出,雾霾不仅影响监控视频效果,而且影响交通监控、高空测绘等工作的正常进行。因此,快速有效的去雾方法对于提高交通安全、增强视频系统的可靠性有着十分重要的作用。
去雾的算法主要有基于图像增强算法和基于大气散射算法两大类。前者对于景深变化较大的图像往往会造成失真;后者与现实雾天中光线被大气中微粒散射削弱的过程符合,在原理上具有优越性。但是,这类方法需要获得场景深度或者大气条件信息。于是,一些研究者使用同一场景无雾时的图像进行景深和大气条件参数的提取,来辅助图像恢复处理[1]。即便这样,基于大气散射模型算法的运算量仍旧较大,对图像的采集和处理系统的要求较高。
He[2]等人发现,绝大多数地面图像中,总有一些像素点,一种原色数值趋于零,利用这些点可以较容易的计算出透射率,然后利用透射率计算原始图像的颜色值,这种方法被称为暗原色先验法。暗原色先验法和拉普拉斯矩阵抠图法[3]相结合,能够消除暗区域扩张现象,对于大部分户外的图像去雾效果很好,同时引入明亮区域的容差阈值[4]能够消除对大块明亮区域的误判。但是拉普拉斯矩阵抠图法的运算量较大。因此,人们使用各种滤波法,如均值滤波[5]、Weiner滤波[6]、双边滤波[7-8]或几种滤波法的综合运用[9]来加快运算速度,以及在去雾前后进行图像处理使得色度和亮度等更加自然[10-11]。最近,一些以暗原色为基础的新方法不断出现,Ullah等[12]利用图像颜色和雾中的褪色情况来改进暗原色法,Naik等[13]人将暗原色法应用范围扩展到了浓雾和强光的环境中,Li等[14]使用内容自适应的方法进一步增加去雾的灵活性和效果,游谦等[15]在双边滤波的基础上结合RGB通道估计图像景深进行去雾处理,张冰冰等[16]通过改进透射率修复算法提高运算速度。总之,基于暗原色去雾的研究主要有2个方向:增加图像细节信息和加快处理速度。
在大气散射光学模型和暗原色先验法的理论基础上,提出了一种解决暗区域扩张的新算法-差分分层法。这种算法的运算过程比滤波法更加简单,从理论上能够具有更快的处理速度和更高的细节信息。其主要原理是利用相邻像素暗原色的差分值来区分不同景深的像素,分别对于不同景深的像素求出透射率。首先简介暗原色先验去雾法的基本原理,在其原理上提出差分分层法,并对其进行理论分析,最后通过实验和其它去雾算法进行比较。
1 暗原色先验去雾算法传统的暗原色先验算法基于大气散射模型,此模型中,像素在雾气中的退化公式为
| $ I(p) = J(p)t(p) + A(1-t(p)), $ | (1) |
其中:I(p)为观测到图像的强度;J(p)为景物反射光线的强度;t(p)为大气的透射率,其自变量p=(x, y)为像素坐标,是一个二维数对;x与y分别表示图像的横、纵坐标;A为无穷远处大气光强。第一项为衰减项,表示景物的反射光到观测处光线通过雾层的衰减,后一项为干扰项,表示大气散射对像素的干扰,去雾就是从观测到的图像强度I(p)出发,得到景物反射光线的强度信息J(p)。
1.1 传统的暗原色去雾算法He的暗原色先验算法基于一个统计规律,即几乎所有的无雾图像的局部区域中,至少有一个原色具有很低的像素,公式为
| $ {J^{{\rm{dark}}}}(p){\rm{ = }}\mathop {\min }\limits_{c \in (r, g, b)} (\mathop {\min }\limits_{q \in \Omega (p)} ({J^C}(q))), $ | (2) |
其中:JC(q)是景物反射原始光强的3个原色之一;C代表原色,可取r、g、b3值,表示红、绿、蓝;q为以p为中心的一个小正方型区域Ω(p)中的像素坐标。对于Jdark(p),由于其值很小,带入(1)中,可以忽略衰减项,得到透射系数的公式
| $ t(q) = 1-\mathop {\min }\limits_{q \in \Omega (p)} \left( {\frac{{{I^C}(q)}}{A}} \right), $ | (3) |
其中:t(q)是在区域Ω(p)内某原色为最小值的像素的透射率,将其带入公式(1)可得J(p)的公式为
| $ J(p) = \frac{{I(p)-A}}{{t(p)}}-A, $ | (4) |
这样就计算出了景物反射光线的强度信息。
1.2 暗区域扩张和明亮区域失真的修正He的暗原色先验法模型简单,去雾效果较好,但是有2个缺点。第一个是对于明亮区域会产生色彩失真,对于这种情况,可以引入容差阈值,使
| $ t'(p) = \max (\frac{K}{{\left| {I(p)-A} \right|}}, 1){\rm{min}}(t(p), {t_0}), $ | (5) |
然后用t′(x)代替t(x)计算景物色彩值,这样可避免了这部分区域场景深度的错误估计;第二是在景深差别较大的区域会产生暗区域扩张的现象,在He的算法中,采取了软抠图法,使用公式
| $ (\boldsymbol{L} + \lambda \boldsymbol{U})t = \lambda \widetilde t, $ | (6) |
其中:L是拉普拉斯抠图矩阵,U是单位矩阵,
从大气散射模型可以发现,对于景深不同的部分,大气的透射率是不一样的,得到的暗原色也不同。对于一般的区域,都存在暗原色接近0的点,但是在不同景深的区域内,接近0的暗原色值也有差别,而且景深越浅,暗原色的值越小,如果相邻部分景深不同,会选择较近像素点作为暗原色参考点,这是暗区域扩张的原因。
从图 1中可以看出,(a)为原始图像,很明显距离观测点较近的数值比较远的建筑颜色更深,选取区域大小为15×15像素,生成暗原色图(图 1(b)),可以看到近处的暗原色覆盖了远处的景物,这是由于近处景物的暗原色数值小于远处景物,在包含远近两种景深的区域中得到的暗原色是近处景物的暗原色值。
|
图 1 有雾图像和景深图 Figure 1 Hzae image and map of depth of field |
对于两种景深的交界处,其差异主要来自暗原色值的突变,如果能够利用此突变,分别在区域Ω(x)找出属于较近景物和较远景物的像素点,分别用两者的暗原色来计算其透射率,就可以将两种不同透射率的景深区分开。
利用差分公式:
| $ \frac{{\partial {I_{\min }}}}{{\partial x}} = \frac{{I_{\min }^C(x + 1, y) + I_{\min }^C(x, y)-I_{\min }^C(x-1, y)-I_{\min }^C(x - 2, y)}}{4}, $ | (7) |
其中:IminC(x, y)表示在坐标p点处观察像素的3原色中的最小值,由于取的区域较小,因此在一个区域之上一般存在2种景深的像素,虽然颜色不同会引起的像素值差异,但是变化最大的还是在不同景深交界处的变化,得到差分的极值后,取两边的值作为参考,其分界点为
| $ {I_0} = \frac{1}{4}[k(I_{\min }^C(x + 1, y) + I_{\min }^C(x, y) + (1-k)(I_{\min }^C(x-1, y) + I_{\min }^C(x-2, y)))], $ | (8) |
其中:k为调节系数,当k在0.4到0.7范围内取值时,能够得到较合适的像素阈值I0,这样,基本上可以将不同景深的像素分离开。每个区域内的像素分为2个部分,颜色通道极小值小于I0的为近景像素,大于I0的为远景像素,分别对近景和远景像素求透射率值,并带入式(4)求出景物反射光线的强度值。
对于大部分Ω(x)景深比较接近,当含有景深差别不大时,得到的近景和远景的透射率差别不大,即使分开来算对结果也没有影响,实际运算中只需要在编写程序的过程中进行优化,对速度没有明显的影响。
2.2 小面积浅色像素的亮原色修正由于本身较亮(浅色)的小面积区域,其原色的最小值本身就和周围像素有差别,但是没有达到容差阈值的像素,这些部分有可能产生较大的差分值,从而产生误判。例如图 1(a)中,建筑物中的白色窗户虽然和周围的墙景深相同,但是其暗原色差别较大。针对这一现象,加入其“亮”原色-即比较3原色中数值最大的原色-与周围像素的差分来修正其景深,其公式为
| $ \frac{{\partial I}}{{\partial x}} = (1-\Delta )\frac{{\partial {I_{\min }}}}{{\partial x}} + \Delta \frac{{\partial {I_{{\mathop{\rm m}\nolimits} {\rm{ax}}}}}}{{\partial x}}, $ | (9) |
其中:Δ为相邻4像素不同原色插值之和,其形式为
| $ \Delta = \Delta (x + 1) + \Delta (x)-\Delta (x + 1)-\Delta (x), $ | (10) |
等号右边每项的形式为
| $ \Delta (x) = I_{\max }^C(x, y)-I_{\min }^C(x, y), $ | (11) |
ImaxC(x, y)为在点p=(x, y)处3原色中最大的值,而IminC(x, y)为此处最小原色的值;而(10)中第二项
| $ \frac{{\partial {I_{\max }}}}{{\partial x}}{\rm{ = }}\frac{{I_{\max }^C(x + 1, y) + I_{\max }^C(x, y)-I_{\max }^C(x-1, y)-I_{\max }^C(x - 2, y)}}{4}, $ | (12) |
为最大值差分。加入修正项后,可以将一部分由于亮色产生的景深误判修正,需要强调的是,这种方法只是用来修正小面积亮色的景深的判定,当此点的3原色较接近时才使用,而且并不用它对透射率进行修正。此方法得到的修正的暗原色分层如图 1(c)所示。
对于明亮区域,仍旧采用加入容差阈值的方法。由于去雾过程本身降低了图像整体的亮度,在得到还原图像后,可以适当的增加亮度,使图像显示效果更好。
3 实验结果数据与分析 3.1 数据结果算法在大量户外雾霾图像的还原上都有较好的效果,从图 1(a)和图 1(b)的比较中能够明显地看出雾霾的影响基本上被去除,场景的颜色和对比度有明显的提高,一些细节也能够体现出来,而且在不同景深交界处边界清晰,没有光晕或暗区域出现。
由于主要工作是去雾算法的研究,因此, 只和纯粹的去雾算法如He的原始算法、均值滤波法和双边滤波法进行比较,不考虑去雾前后的图像处理对图片带来的影响。
图 2是在Intel codei5处理器上,对300×200的图片进行去雾处理。可以看出,He的算法,均值滤波的算法深度过于饱和,在景深差别较大处有光晕出现;而He的算法远处的效果不明显,且运算时间较长;而本文的算法有效地避免了Halo效应,去雾后的对比度较He和均值滤液法更自然,景深较深处的图像细节信息比联合双边滤液法更丰富。
|
图 2 Hzae image and map of depth of field Figure 2 Hzae image and map of depth of field |
现在,去雾领域的盲评方法[17]主要是可见边梯度法,此方法用有雾图像和去雾图像的可见边集合数之比和平均梯度比来评价图像的去雾效果,其公式为
| $ e = \frac{{{n_r}-{n_0}}}{{{n_0}}}, $ | (13) |
| $ \overline r = \frac{{{g_r}}}{{{g_0}}}, $ | (14) |
其中:n0和nr分别表示去雾前后中可见边的数目,gr分别表示去雾前后的平均梯度。从运算时间、可见边集合数比和平均梯度这3个方面对几种算法进行比较,结果见表 1。
| 表 1 几种不同算法的比较 Table 1 Comparison of differeut algorithms |
可以看出,算法在运算速度上较其它算法有一定的优势,其可见边的集合数和平均梯度比明显优于原始算法和均值滤波法,略优于双边滤波法。
4 结论在暗原色先验算法的基础上提出一种新的消除暗区域扩张的算法。此算法利用了大气散射公式透射率的原始公式,用暗原色差分的方法处理图像中不同景深分割的问题,从单幅图像出发,能够自动恢复场景的反射率。对雾霾图像进行实验,实验结果验证了算法能够有效地去除雾霾对图像的影响,和现在的其他基本去雾方法比较具有较快的处理速度和更多地细节信息。同时,算法在程序上还可以进行进一步优化,使之可以接近实时去雾的处理的要求。
| [1] | Kopf J, Neubert B, Chen B, et al. Deep photo: modelbase photograph enhancement and viewing[J]. ACM Transactions on Graphics, 2008, 27(5): No.116. |
| [2] | He K M, Sun J, Tang X O. Single image haze removal using dark channel prior[C]// IEEE Conference on Computer Vision and Pattern Recognition, June 20-25, 2009, Miami, FL, USA: Institute of Electrical and Electronics Engineers Inc, 2009: 1956-1963. |
| [3] | Levin A, Lischinski D, Weiss Y. A closed form solution to natural image matting[J]. IEEE transactions on pattern analysis and machine intelligence, 2008, 30(2): 228–242. DOI:10.1109/TPAMI.2007.1177 |
| [4] |
蒋建国, 侯天峰, 齐美彬.
改进的基于暗原色先验的图像去雾算法[J]. 电路与系统学报, 2011, 16(2): 7–12.
JIANG Jianguo, HOU Tianfeng, QI Meibin. Improved algorithm on image haze removal using dark channel prior[J]. Journal of Circuits and Systems, 2011, 16(2): 7–12. (in Chinese) |
| [5] | Tarel J P, Hautiere N. Fast visibility restoration from a single color or gray level image[C]//Proceeding of IEEE Conference on Computer vision, Sept 29-Oct 2, 2009, Paris, France: Institution of Engineering and Technology, 2009: 2201-2208. |
| [6] | Shuai Y J, Liu R, He W Z. Image haze removal of wiener filtering based on dark channel prior[C]// 2012 Eighth International Conference on Computational Intelligence and Security (CIS), Nov 17-18, 2012, Guangzhou, China: Institute of Electrical and Electronics Engineers Inc, 2012: 318-322. |
| [7] | Xu H R, Guo J M, Liu Q, et al. Fast image dehazing using improved dark channel prior[C]//2012 International Conference on Information Science and Technology (ICIST), March 23-25, 2012, Hubei, China: Institution of Engineering and Technology, 2012: 663-667. |
| [8] |
陈龙, 郭宝龙, 毕娟, 等.
基于联合双边滤波的单幅图像去雾算法[J]. 北京邮电大学学报, 2012, 35(4): 19–23.
CHEN Long, GUO BaoLong, BI Juan, et al. Algorithm of single image fog removal based on joint bilateral filter[J]. Journal of Beijing University of Posts and Telecommunications, 2012, 35(4): 19–23. (in Chinese) |
| [9] | Chen Z, Shen J H, Roth P. Single image defogging algorithm based on dark channel priority[J]. Journal of Multimedia, 2013, 8(4): 432–438. |
| [10] | Pei S, Lee T. Effective image haze removal using dark channel prior and postprocessing[C]// 2012 IEEE International Symposium on Circuits and Systems (ISCAS), May 2023, 2012, Seoul, Korea: Institute of Electrical and Electronics Engineers Inc, 2012: 2777-2780. |
| [11] | Pei S C, Lee T Y. Nighttime haze removal using color transfer preprocessing and Dark Channel Prior[C]//2012 19th IEEE International Conference on Image Processing (ICIP), Sept 30-Oct 3, 2012, Orlando, FL, USA: Institute of Electrical and Electronics Engineers Inc, 2012:1522-4880. |
| [12] | Ullah E, Nawaz R, Iqbal J. Single image haze removal using improved dark channel prior[C]// 2013 Proceedings of International Conference on Modelling, Identification & Control (ICMIC), Aug 31, Cairo, Egypt: Institution of Engineering and Technology, 2013: 245-248. |
| [13] | Naik D K, Rout D K. Outdoor image enhancement: Increasing visibility under extreme Haze and lighting condition[C]//2014 IEEE International Advance Computing Conference (IACC), Feb 21-22, 2014, Gurgaon, India: Institution of Engineering and Technology, 2014:131-140. |
| [14] | Li B, Wang S H, Zheng J, et al. Single image haze removal using content-adaptive dark channel and post enhancement[J]. Computer Vision, 2014, 8(2): 131–140. DOI:10.1049/iet-cvi.2013.0011 |
| [15] |
游谦, 黎英, 李玉成, 等.
基于双边滤波的RGB通道去雾算法研究[J]. 计算机工程与应用, 2014, 50(6): 157–160.
YOU Qian, LI Ying, LI Yucheng, et al. Research on fogdegraded image restoration based on bilateral filter of RGB channel[J]. Computer Engineering and Applications, 2014, 50(6): 157–160. (in Chinese) |
| [16] | Zhang B B, Dai S G, Sun W Y. Fast image haze-removal algorithm based on the prior dark-channel[J]. Journal of Image and Graphics, 2013, 18(2): 184–188. |
| [17] | Hautiere N, Tarel J P, Aubert D, et al. Blind contrast enhancement assessment by gradient ratioing at visible edges[J]. Image Analysis and Stereology Journal, 2008, 27(2): 87–95. DOI:10.5566/ias.v27.p87-95 |
2015, Vol. 38

