基于自适应指数加权移动平均滤波的快速去雾算法 下载: 1413次
1 引言
有雾天气下,户外图像采集设备将会受到影响,使获取到的有雾图像对比度较低、层次感不强、质量退化严重,进而导致一些与图像相关的系统(室外监控系统、交通导航系统、卫星遥感系统等)性能下降。为提高雾天条件下的系统性能,可对系统获取到的有雾图像进行去雾处理。
目前,针对图像去雾,主要采用图像增强和图像复原两类方法[1]。图像增强方法不考虑雾天图像的退化机制,从主观的视觉感受出发,利用图像增强手段,提高图像的视觉效果。该类算法主要有直方图均衡、小波变换、同态滤波以及Retinex算法,但这些算法并非真正意义上的去雾,容易造成一定的信息损失。图像复原方法则利用已知的先验知识,变换大气散射模型,反演得到最终的去雾图像,恢复后的图像信息丢失少,具有较好的去雾效果。Tan等[2]以马尔可夫随机场实现复原图像局部对比度的最大化,该方法虽能取得较好的视觉效果,但复原图像颜色往往过于饱和,色调较深,且易产生光晕伪影。Fattal[3]假设物体表面色度与传输率是局部不相关的,据此估计透射率,但在浓雾条件下,该假设失效,难以达到理想的去雾效果。He等[4]对大量户外无雾图像进行统计分析,发现暗原色先验的统计规律,并以此构建去雾算法,能达到良好的去雾效果,但是该算法使用了软抠图法对透射率进行优化,会极大占用计算机内存并且时间复杂度也很高,难以达到实时去雾的目的,后来虽然采用了导向滤波[5]替代软抠图法,提高了算法的速度,但是在边缘处容易产生去雾不彻底的现象。
近年来,基于目标分割、检测、识别的系统被广泛应用在各个行业,这些系统的性能在很大程度上依赖于成像设备获取的图像中结构边缘的质量,而雾的存在会模糊图像的结构边缘,使得系统性能下降。为减轻雾对上述系统性能的影响,人们尝试对有雾图像进行去雾处理,提高图像清晰度,以改善系统性能。但一些传统的去雾算法并未充分考虑对图像结构边缘的保护,经去雾处理后,图像结构边缘的质量反而可能下降,并不能提高上述系统性能,因此,为在去雾过程中有效地保护图像结构边缘,使去雾图像结构边缘清晰可见,一些保边滤波算法相继被应用到图像去雾中。Yu等[6]结合暗通道去雾算法,首先求解有雾图像中各像素点RGB三通道内的最小值,得到最小值通道图,并在此基础上求解透射率粗分布,之后用双边滤波算法对透射率进行优化,最后反演出去雾图像。但双边滤波算法需要同时计算二维空间内的空间邻近度因子和亮度相似因子,前者由像素空间距离决定,后者由像素间亮度值决定,算法时间复杂度较高。陆海俊等[7]则利用均值漂移滤波对粗透射率分布进行优化,然而,均值漂移滤波需要进行迭代求解,耗时亦较长。李红云等[8]采用边界限制加权最小二乘法滤波优化粗透射率,该方法在一定程度上提高了算法效率,但所需设置的参数较多,不易广泛应用。
针对以上问题,本文提出一种能够保护图像边缘的自适应指数加权移动平均滤波算法,与暗通道去雾算法结合,实现快速去雾。首先,对传统暗通道求解方法中的最小值滤波进行阈值限制,防止边缘信息受损;其次,以四叉树搜索法代替He等[4]中的大气光学值求解法,避免受到图像中白色区域的干扰;接着,求解得到大气透射率的粗分布,并应用本文自适应指数加权移动平均滤波算法对其进行优化;之后,针对图像中的明亮区域,构建一个明亮区域隶属度函数,修复明亮区域的透射率;最后,利用大气散射模型进行反演求解,得到清晰无雾的复原图像。
2 暗原色先验去雾模型
有雾环境下,Narasimhan等[9]在McCartney[10]的基础上推导出大气散射模型的成像方程,即
式中:I表示含雾原始图像;J表示去雾后的图像;A表示大气光学值;t表示透射率分布,当大气传输介质均匀时,t可由(2)式描述;ρ表示大气散射系数;d表示图像中物体与成像设备的距离,即场景深度。
观察(1)、(2)式,可知要想从I中恢复得到无雾图像J,需要分别求解出A和t两个未知量,而t与场景深度d相联系。仅仅通过单幅图像获取场景深度是很困难的,所以,只能根据一些先验知识或者合理假设来得到方程的解。
He等[4]在统计5000多幅户外无雾照片后,发现暗原色先验的统计规律,即在无雾条件下,获取到的图像在每一个像素点的邻域Ω中,存在一个最暗的像素点,在该像素点的RGB三通道中,最小值趋近于0。
式中:Ω表示像素点x的邻域;y表示邻域中的一个像素点,通常可选取7×7或者15×15的方形矩阵作为x的邻域Ω;Jc表示无雾图像J的c通道;Jdark表示无雾图像的暗通道图,值接近于0。
对(1)式两边求取局部最小值,并将(3)式代入其中,可以得到透射率t的表达式,即
在实际成像过程中,不能完全保证空气洁净,不可避免地会存在一些尘粒,从而对成像造成影响,因此,为了让图像看起来更加真实自然,可以在(4)式中引入一个常量系数w。
w控制着去雾程度,取值介于0到1之间,在He等[4]的论文中,w的取值为0.95。
上述过程中,还有一个未知量A待求解,通常可简单地从有雾图像的暗通道图中选取亮度最高的前0.1%像素,再求解这些像素点对应有雾图像I像素值的平均值,将此平均值作为A的估计。最终,求解得到去雾图像为
为防止(6)式分母为0,需要设置透射率下限t0,He等[4]的论文中,t0为0.1。
3 自适应指数加权移动平均滤波算法介绍
图像滤波可以减弱噪声,增强图像清晰度。传统的一些滤波算法,如均值滤波、中值滤波、高斯滤波等,虽然可以在一定程度上减少噪声,却不能区分噪声和边缘,容易模糊图像边缘,而一幅具有清晰结构边缘的去噪图像,对图像分割、识别等后续处理均有很强的实际效益。
基于边缘结构保持的图像滤波算法主要有双边滤波[11]、各项异性扩散滤波[12]、非局部均值滤波[13]、加权最小二乘法滤波[14]等。这些算法均能在一定程度上保护边缘,但时间耗费相对较长。对此,本文提出一种基于自适应指数加权移动平均(AEWMA)的快速保边滤波算法。
3.1 指数加权移动平均法
指数加权移动平均(EWMA)法是由加权移动平均(WMA)法演化而来,WMA对已知数据分别赋予不同的权重,按此权重求得移动平均值,并以此值为基础,确定预测值。EWMA则是指各数的加权系数随时间呈指数递减,主要优点是不需要保存过去的数值,只占用极少的内存。EWMA公式为
式中:vt表示当前时刻的预测值;vt-1表示上一时刻的预测值;θt表示当前时刻实际值;β表示加权下降的速率,为一个常数值,值越小权重下降越快;v0一般被初始化为初始时刻的实际值θ1。
图 1. EWMA法。(a) β=0;(b) β=0.35;(c) β=0.65;(d) β=0.95
Fig. 1. EWMA algorithm. (a) β=0; (b) β=0.35; (c) β=0.65; (d) β=0.95
3.2 自适应指数加权移动平均法
据以上讨论可知,EWMA法是将过去一段时间内的数据加以不同的权重求平均,越靠近当前时刻权重越大,但其并未考虑前后数据之间的差异,若是直接应用到图像滤波中,不能起到保护边缘的作用。对此,本文提出AEWMA法,通过构建一个高斯函数,自适应地选取β值。
式中:σ表示高斯函数的标准差;β不再是一个常数值,而是一个变量,其值的大小取决于上一时刻预测值vt-1与当前时刻实际值θt的差异。由高斯函数性质可知:差异越大,β取值越小,则当前时刻预测值vt越接近于θt;差异越小,β越大,vt越接近vt-1。
图 2. AEWMA法。(a) σ=1;(b) σ=5;(c) σ=15;(d) σ=30
Fig. 2. AEWMA algorithm. (a) σ=1; (b) σ=5; (c) σ=15; (d) σ=30
3.3 图像滤波
上述的AEWMA算法是针对一维数据的,而图像是一个二维矩阵,因此,若要将AEWMA算法应用到图像滤波中,可将图像的每一行、每一列分别视作一维数据,在此基础上运用AEWMA算法,步骤如下。
1) 用AEWMA算法对原始图像的偶数行以从左到右的顺序进行处理,对奇数行以从右到左的顺序进行处理,得到输出数据O1。再用AEWMA算法对原始图像的偶数列以从上到下的顺序进行处理,对奇数列以从下到上的顺序进行处理,得到输出O2。
2) 用AEWMA算法对O1的偶数列以从上到下的顺序进行处理,对奇数列以从下到上的顺序进行处理,得到输出O3,再将O1上下翻转,重复上述处理过程得到O4。
3) 用AEWMA算法对O2的偶数行以从左到右的顺序进行处理,对奇数行以从右到左的顺序进行处理,得到输出O5,再将O2左右翻转,重复上述处理过程得到O6。
4) 求取O3、O4、O5、O6的平均值,得到最终输出结果O。
为验证AEWMA算法在图像滤波中的有效性,本文分别从主观效果、客观质量PSNR和时间开销三个方面与双边滤波(bilateral filter)、加权最小二乘法滤波(WLS filter)比较。
图 3. 不同滤波器对比图。(a)噪声图;(b)双边滤波;(c) WLS滤波;(d) AEWMA滤波
Fig. 3. Comparison of different filters. (a) Noise image; (b) bilateral filter; (c) WLS filter; (d) AEWMA filter
滤波性能通常是计算开销和图像质量的权衡,
表 1. 不同滤波器的指标对比
Table 1. Comparison of indexes of different filters
|
4 基于AEWMA滤波的去雾算法
暗原色先验去雾简单易行,但在景物边缘处会产生Halo效应,基于保边滤波的去雾算法虽然可以消除此效应,耗时却较长,此外,暗原色先验去雾在明亮区域会产生颜色失真。对此,本文在AEWMA滤波算法的基础上,结合暗原色先验规律进行图像去雾,这不仅能消除Halo效应和颜色失真,而且能极大提高算法的效率。本文去雾算法主要步骤如下:1)改进暗通道;2)四叉树法求取大气光学值;3)求解透射率分布并对其进行优化;4)修正图像明亮区域的透射率;5)复原图像。
4.1 暗通道的改进
Halo效应是暗原色先验去雾的一大缺陷,产生原因是在求解暗通道时采用最小值滤波,在场景深度变化剧烈的边缘处,求解的暗通道值小于实际值,导致该区域内透射率偏大,最终使得该区域去雾不彻底,产生Halo效应。
从
图 4. 暗通道先验去雾过程图。(a)有雾图像;(b)暗通道图;(c)去雾图
Fig. 4. Image defogging process based on dark channel prior. (a) Fog image; (b) dark-channel image; (c) defogged image
1) 选取初始滤波半径r,求图像I中每个像素点RGB三通道中的最小值,得到最小值通道图为
2) 在最小值通道图基础上,求取每个像素点在以半径r为邻域Ω内最小值与当前值之差,得到差值图ddiff:
3) 判断该差值是否小于阈值K,如果小于,则认为邻域Ω内最小值点与当前点处在同一景深内,其暗通道值可取最小值,否则,缩小邻域半径为r的1/2,重复步骤2),直到r小于1。最终得到改进的暗通道图ddark(x,y)为
图 5. 不同参数下的改进暗通道对比图。(a)~(c) r=3时, K=15、35、65的结果图;(d)~(f) r=5时,K=15、35、65的结果图;(g)~(i) r=7时,K=15、35、65的结果图
Fig. 5. Comparison of improved dark-channel images under different parameters. (a)-(c) Results obtained when r=3 and K=15, 35, and 65, respectively; (d)-(f) results obtained when r=5 and K=15, 35, and 65, respectively; (g)-(i) results obtained when r=7 and K=15, 35, and 65, respectively
4.2 求解大气光学值
雾的存在会使整幅图像看起来呈灰白色,这主要是因为大气中颗粒物会将场景反射出来的各个波长的光均等散射,这种散射程度与场景深度呈正相关,场景深度越深,景物越模糊,其像素值也越大。所以通常情况下可以选取图像中最大的值作为大气光学值A的估计,但当图像中存在亮度高于A的物体时,该方法失效。针对这个问题,Kim等[15]提出一种基于四叉树搜索的大气光学估计方法,其主要步骤如下:
1) 输入有雾图像,将有雾图像转换成灰度图,将灰度图分为四个矩形区域;
2) 将每个区域的平均像素值减去该区域的标准差,得到该区域的得分score;
3) 将score最高的区域划分为四个小区域;
4) 重复步骤2)~3),直到最高score区域的大小小于预先设定的阈值;
5) 取该区域的最亮点。
但这种方法仍然无法避免光照、明亮或平滑物体的影响,于是,苏畅等[16]将KIM方法步骤1)中的灰度图替换成景深阶跃图。
式中:Idepth(x) 表示有雾图像的景深阶跃图;llight(x)、ddark(x)分别表示有雾图像的亮通道图像和暗通道图像。
图 6. 估计大气光。(a) Kim算法;(b)苏畅算法
Fig. 6. Atmospheric light estimation. (a) Kim's algorithm; (b) Su Chang's algorithm
4.3 求解透射率分布
4.3.1 优化透射率
通过求解得出改进的暗通道和大气光学值A后,便可以依据(5)式和(12)式推导出透射率的粗略分布。
根据先验知识,透射率t不可能为负数,所以在(14)式中对透射率设置一个下限值0。由此求解得出的透射率分布相对粗糙,易出现块状效应,且在边缘附近有伪轮廓出现。而根据(2)式,透射率反映图像的深度信息,在一个局部区域内透射率变化应趋于平缓,为使透射率分布更加合理,可利用本文AEWMA滤波算法对透射率进行平滑滤波,由前面3.3节讨论可知,σ取值0.025较为适宜。
从
图 7. 透射率分布图。(a)粗级透射率;(b)优化后透射率
Fig. 7. Images of transmittance distributions. (a) Coarse transmittance; (b) optimized transmittance
4.3.2 修正明亮区域透射率
以上述步骤处理得到的透射率分布求解去雾图像,往往会在图像的明亮区域内(包括天空区域以及白色区域)产生颜色失真,因为在无雾图像的明亮区域内,暗原色先验原理失效。此时,有雾图像明亮区域的暗通道值趋向于一个比较大的值,导致透射率估计值趋向0,相对于实际值偏小很多。针对这个问题,本文引入一个变量δ来描述像素点隶属明亮区域的程度。
式中:S表示像素点RGB三通道中最小值与最大值之比。一幅图像中,明亮区域内像素点RGB三个通道的值往往相差不大,S较大,趋近1,而在暗区域内,S较小。另外,变量D可在一定程度上表示像素点与大气光点的相对距离,暗区域内,暗通道值趋近于0,D逼近0;而在明亮区域内,暗通道值较大,D接近1。因此,综合考虑S和D后,δ可以在一定程度上表示像素点隶属明亮区域的程度。基于此,可对透射率进行修正,即
式中:t表示(15)式中的透射率经AEWMA算法平滑后的透射率分布;t~表示对明亮区域进行修正后的透射率分布;a表示修正系数,可以控制明亮区域的去雾程度。a取值过小时,明亮区域的透射率未得到有效增强,最终会导致颜色失真;a取值过大时,明亮区域透射率将趋近于1,不符合(2)式所描述的透射率随距离的增加而减小这个事实,最终使明亮区域去雾效果不佳。
4.4 图像复原
根据(6)式及以上讨论,可求解得到复原的无雾图像为
5 实验结果分析
运行算法的计算机配置为八核1.80 GHz Intel Core(TM)i7-8550U处理器、16G内存,操作系统为Windows10,使用 Matlab(R2018b)软件。选取的实验对象是不同场景下的50张图像,本文从中选取4幅具有代表性的图像,分别用Tarel算法[17]、双边滤波算法[6]、导向滤波算法[5]和本文算法对其进行去雾,之后再从主观和客观这两个方面比较算法的性能。由4.1节讨论可知,K取值35,r取值5时,阈值限制后的最小值滤波能够较好地保护边缘,同时由3.3节讨论可知,σ取值0.025较为适宜。因此本文算法参数设置为σ=0.025,K=35,r=5。a是一个需要调节的参数,针对不同场景的照片,a取值略有差异。本文通过手动调节a值,使用不同a值对同一幅有雾图像进行去雾处理,观察其去雾效果,进行多组实验后,发现a取值在0.3到0.6之间较为合适。
图 8. 四组实验效果对比图。 (a) 原始图像;(b)Tarel算法;(c)双边滤波算法; (d)导向滤波算法;(e)本文算法
Fig. 8. Comparison of results of four-group experiments. (a) Original image; (b) Tarel algorithm; (c) bilateral filtering algorithm; (d) guide filtering algorithm; (e) proposed algorithm
最后,本文选取有效边缘强度、色彩还原能力、结构信息这三个无参考客观指标[18],对
表 2. 不同去雾算法耗时对比
Table 2. Comparison of time consumption of different defogging algorithmss
|
表 3. 去雾图像质量客观评价
Table 3. Objective evaluation of defogged image quality
|
三个无参考客观评价指标均值越大,则性能越好。其中,细节强度越大代表图像边缘对比度越高;色调还原程度描述有雾图像和去雾图像的直方图相似程度;结构信息则反映去雾图像的结构保持能力。从
6 结论
针对传统去雾算法计算开销较大、去雾不彻底、易在明亮区域产生颜色失真等问题,提出一种基于自适应指数加权移动平均滤波的快速去雾算法。该算法通过对暗原色先验去雾算法中的暗通道加以阈值限制,使求解得到的暗通道图能够良好地保持原图的边缘信息;利用AEWMA算法的保边平滑特性对粗分布的透射率进行优化处理,使透射率分布更加合理;同时定义一个明亮区域的隶属度函数,对该区域内的透射率进行修复,避免颜色失真现象。通过主观评价和客观评价的结果表明:本文去雾算法具有很快的执行速度,时间效率是导向滤波去雾算法的2倍;去雾后的图像具有良好的视觉效果,在客观评价指标下综合性能较优,能够更好地应用到实时去雾的系统中。然而,本文算法仍有需要改进的部分,如算法中针对明亮区域透射率的修正参数不能自适应选取,有待下一步研究。
[1] 吴迪, 朱青松. 图像去雾的最新研究进展[J]. 自动化学报, 2015, 41(2): 221-239.
Wu D, Zhu Q S. The latest research progress of image dehazing[J]. Acta Automatica Sinica, 2015, 41(2): 221-239.
[2] Tan K, Oakley J P. Physics-based approach to color image enhancement in poor visibility conditions[J]. Journal of the Optical Society of America A, 2001, 18(10): 2460-2467.
[3] Fattal R. Single image dehazing[J]. ACM Transactions on Graphics, 2008, 27(3): 72.
[4] He KM, SunJ, Tang XO. Single image haze removal using dark channel prior[C]∥2009 IEEE Conference on Computer Vision and Pattern Recognition, June 20-25, 2009, Miami, FL, USA. New York: IEEE, 2009: 1956- 1963.
[6] YuJ, Liao QM. Fast single image fog removal using edge-preserving smoothing[C]∥2011 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), May 22-27, 2011, Prague, Czech Republic. New York: IEEE, 2011: 1245- 1248.
[7] 陆海俊, 汪荣贵, 杨娟, 等. 基于均值漂移的暗原色先验图像去雾算法[J]. 合肥工业大学学报(自然科学版), 2016, 39(9): 1205-1210.
Lu H J, Wang R G, Yang J, et al. An image haze removal algorithm using dark channel prior based on mean shift[J]. Journal of Hefei University of Technology(Natural Science), 2016, 39(9): 1205-1210.
[8] 李红云, 云利军, 高银. 基于边界限制加权最小二乘法滤波的雾天图像增强算法[J]. 中国激光, 2019, 46(3): 0309002.
[9] Narasimhan SG, Nayar SK. Removing weather effects from monochrome images[C]∥Proceedings of the 2001 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. CVPR 2001, December 8-14, 2001, Kauai, HI, USA. New York: IEEE, 2001: 186- 193.
[10] McCartney EJ. Optics of the atmosphere: scattering by molecules and particles[M]. New York: John Wiley and Sons, Inc., 1976: 23- 32.
[11] TomasiC, ManduchiR. Bilateral filtering for gray and color images[C]∥Sixth International Conference on Computer Vision (IEEE Cat. No.98CH36271), January 7-7, 1998, Bombay, India. New York: IEEE, 1998: 839- 846.
[12] Perona P, Malik J. Scale-space and edge detection using anisotropic diffusion[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1990, 12(7): 629-639.
[14] Farbman Z, Fattal R, Lischinski D, et al. Edge-preserving decompositions for multi-scale tone and detail manipulation[J]. ACM Transactions on Graphics, 2008, 27(3): 67.
[15] Kim J H, Jang W D, Sim J Y, et al. Optimized contrast enhancement for real-time image and video dehazing[J]. Journal of Visual Communication and Image Representation, 2013, 24(3): 410-425.
[16] 苏畅, 毕国玲, 金龙旭, 等. 基于暗通道图像质心偏移量的去雾算法[J]. 光学学报, 2019, 39(5): 0533001.
[17] Tarel JP, HautiereN. Fast visibility restoration from a single color or gray level image[C]∥2009 IEEE 12th International Conference on Computer Vision, September 29-October 2, 2009, Kyoto, Japan. New York: IEEE, 2009: 2201- 2208.
[18] 李大鹏, 禹晶, 肖创柏. 图像去雾的无参考客观质量评测方法[J]. 中国图象图形学报, 2011, 16(9): 1753-1757.
Li D P, Yu J, Xiao C B. No-reference quality assessment method for defogged images[J]. Journal of Image and Graphics, 2011, 16(9): 1753-1757.
Article Outline
梅康, 刘小勤, 沐超, 秦晓琪. 基于自适应指数加权移动平均滤波的快速去雾算法[J]. 中国激光, 2020, 47(1): 0109001. Kang Mei, Xiaoqin Liu, Chao Mu, Xiaoqi Qin. Fast Defogging Algorithm Based on Adaptive Exponentially Weighted Moving Average Filtering[J]. Chinese Journal of Lasers, 2020, 47(1): 0109001.