基于改进线性变换的迭代优化去雾算法 下载: 638次
1 引言
在雾、霾等恶劣天气下,空气中的悬浮颗粒会对光线发生散射和折射,从而影响户外视觉系统的性能,严重降低了图像中目标物的对比度和清晰度。因此,有必要对这些图像进行去雾处理。
目前的图像去雾算法可大致分为基于图像增强的算法[1-2]、基于图像复原的算法[3-7]和基于机器学习的算法[8-9]。基于图像增强的代表算法,如Retinex算法[2]适用性广,但忽略了图像退化的本质,不能实现真正意义上的去雾。基于机器学习的算法适用范围广,但难获取大的数据集,学习规模较小,算法还不成熟。基于图像复原的算法考虑了图像退化的本质,利用先验规律或假设并结合大气散射模型实现图像去雾,效果优于其他两种算法。He等[10]提出了一种基于暗通道先验理论的算法,该算法去雾效果较好,但当图像中有大片天空区域或白色物体时,复原图像会出现失真现象。Tarel等[11]提出了一种利用中值滤波变形形式估计大气耗散函数的快速去雾算法,但该算法参数多,且参数的取值对去雾图像的影响较大。Wang等[4]提出了一种有雾图像与无雾图像的线性变换理论,将线性方程转换成二次区段函数,从而求解介质传输率。该算法复杂度低,去雾效果较好,但无法自适应求取线性变换的修正参数,限制了该算法的实际应用。
综上所述,本文提出了一种基于改进线性变换的迭代优化去雾算法。首先,通过分析大气耗散函数和有雾图像的关系,建立了大气耗散函数和有雾图像最小颜色分量的自适应线性变换模型,以获得介质传输率;然后,对明亮区域的介质传输率进行自适应修正,并利用构造的高阶滤波器对修正后的介质传输率进行迭代优化;最后,采用四叉树子块搜索策略选取大气光值,利用大气散射模型复原无雾图像。实验结果表明,相比其他对比算法,本算法的去雾效果更好。
2 算法原理
2.1 大气散射模型
在计算机视觉和图像图形领域,雾天降质过程普遍用大气散射模型表示为
式中,x为像素坐标,J(x)为无雾图像,A为整体大气光值,I(x)为雾天的退化图像,J(x)t(x)为直接衰减项,A[1-t(x)]为大气光幕[11],t(x)为介质传输率,可表示为
式中,β为大气散射系数,d(x)为场景深度。根据大气散射模型对图像进行去雾就是通过估计参数t(x)和A,从I(x)中恢复J(x)。可通过引入大气耗散函数V(x)间接求解介质传输率,V(x)可表示为
根据(3)式,得到介质传输率
2.2 线性变换模型
雾天条件下,介质传输率与场景距离有关,成像距离越大,图像的像素值越高。Wang等[4]假设
式中,
式中,a为斜率,b为截距。为了便于求解,将(6)式转换成二次函数的分段函数,以求解介质传输速率,可表示为
式中,XMax和XMin分别为
3 算法的实现
3.1 算法流程
基于改进线性变换的迭代优化去雾算法流程如
3.2 改进线性变换的介质传输率估计
由(3)式中的物理模型可知,大气耗散函数应该满足两个约束条件[11]:1)大气耗散函数为正值,即V(x)≥0;2)大气耗散函数不大于有雾图像I(x)的最小颜色分量W(x),W(x)可表示为
对于灰度图像,有W(x)=I(x)。实验处理的都是归一化后的图像级数据,因此,V(x)的取值范围为
Tan等[12]通过理论推导发现,可将有雾图像最小颜色分量作为估算大气耗散函数的依据。在雾天条件下,介质传输率与景深有关,随着景深的增加介质传输率逐渐减小,大气耗散函数值会逐渐增大。Wang等[4]提出的线性变换模型指出,雾天条件下图像的像素值随景深的增加而增大,有雾图像的最小颜色分量也会逐渐增大,即有雾图像中的大气耗散函数V(x)与有雾图像的最小值颜色分量W(x)成正相关,可表示为
假设在成像过程中,有雾图像的最小颜色分量随着大气耗散函数的增加线性增加,可将(10)式进一步表示为
基于V(x)的限定条件,得到大气耗散函数的估算公式为
式中,0≤α≤1为控制因子,可用来控制线性变换的速率,L和H分别为W(x)的最小值和最大值,B(x)为大气耗散函数的粗略估计。B(x)采用归一化的原因:1)保证W(x)经线性变换后仍在0到1范围内;2)归一化的数学表达式可以满足(11)式的线性关系。控制因子α可以灵活调整斜率c和截距d,使估算的大气耗散函数更准确。由V(x)≤W(x),得到
为了直观地说明控制因子α对图像复原效果的影响,选取不同的控制因子α对含有近景和远景的有雾图像进行去雾处理,结果如
图 2. 不同α得到的去雾图像。(a)有雾图像;(b) α=0.2;(c) α=0.4;(d) α=0.6;(e) α=0.8;(f) α=1.0
Fig. 2. Dehazing images obtained by different α. (a) Hazy image; (b) α=0.2; (c) α=0.4; (d) α=0.6; (e) α=0.8; (f) α=1.0
从
式中,Ω为最小值滤波器的窗口大小,实验设Ω=15,y∈Ω(x)为以Ω(x)为中心、半径为15的局部区域内的像素,
不同算法得到的最终V(x)如
图 3. 不同算法得到的大气光幕。(a)有雾图像;(b)文献[ 11]中的算法;(c)本算法
Fig. 3. Atmospheric light curtains obtained by different algorithms. (a) Hazy image; (b) algorithm of Ref. [11]; (c) our algorithm
将(15)式的大气耗散函数V(x)代入(4)式,得到初始介质传输率
由式(16)可知,只需求出大气光值A,就能得到整个图像的初始介质传输率
图 4. 不同算法得到的去雾图像。(a)有雾图像;(b)本算法得到的初始介质传输率;(c)本算法的复原效果;(d)文献[ 10]得到的介质传输率;(e)文献[ 10]的复原效果
Fig. 4. Dehazing images obtained by different algorithms. (a) Hazy image; (b) initial medium transmission rate obtained by our algorithm; (c) restoration effect of our algorithm; (d) medium transmission rate obtained by Ref. [10]; (e) restoration effect of Ref. [10]
当图像中存在局部明亮区域时,利用该区域的最小颜色分量估算出的大气耗散函数会偏大,导致得到的介质传输率
式中,t0的下限值为0.15,可以保证复原图像景深处存有少量雾气,使恢复的图像更贴近真实情景。n/N为
明亮区域的复原效果如
图 5. 明亮区域的复原效果。(a)有雾图像;(b)修正前的去雾图像;(c)自适应修正后的去雾图像
Fig. 5. Restoration effect of bright area. (a) Hazy image; (b) dehazeing image before correction; (c) dehazeing image after adaptive correction
3.3 介质传输率的优化
基于改进线性变换得到的介质传输率仍然存在纹理效应,为了消除纹理效应,选取Meng等[13]提出的迭代优化方法对估计的介质传输率进行优化。通常局部图像区域内像素的深度值相同,但图像边缘处的景深会发生跳变。为了使景深跳变处邻近的介质传输率差趋于0,利用相邻像素的色差构造加权函数W(x,y),可表示为
式中,x和y为两个相邻像素。加权函数W(x,y)在x和y之间起着约束的切换作用,当t(y)-t(x)较大时,W(x,y)很小,使两者的乘积趋于0,反之亦然。W(x,y)可表示为
式中,δ为固定参数,实验取δ2=0.5。为了更好地体现图像的梯度变化,用Kirsch边缘检测算子和Laplacian边缘检测算子构成的一组高阶滤波器遍历图像,构造的加权函数可表示为
式中,Dj为高阶滤波器组中的第j个滤波器,j为
基于L1范数的迭代优化方法最小化(22)式中的代价函数,对估计的介质传输率与优化介质传输率进行约束,可表示为
式中,λ为一个归一化参数,ω为高阶算子索引值,t(x)为优化后的介质传输率。
Meng等[13]采用变量分裂法引入辅助变量μj,构造新的代价函数进行最小化,可表示为
式中,β为权重值。通过(23)式的代价函数,得到最优介质传输率t*(x)
式中,F(·)为傅里叶变换,F-1(·)为傅里叶逆变换,
图 7. 介质传输率的迭代优化过程。(a)粗略的介质传输率;(b)迭代一次后的效果;(c)迭代两次后的效果;(d)迭代三次后的效果
Fig. 7. Iterative optimization process of the medium transmission rate. (a) Rough media transmission rate; (b) effect after iteration; (c) effect after two iterations; (d) effect after three iterations
3.4 基于四叉树的大气光值估计
He等[10]利用暗通道求取大气值,可能会出现将白亮物体对应的像素值作为大气光值A,导致大气光值估计不准确。文献[
14]利用有雾图像和四叉树空间搜索法求取大气光值,但该方法也容易受到高亮区域的影响。因此,基于文献[
14]的四叉树方法提出了一种改进方法,具体步骤:1)将大气耗散函数V(x)均分为四个子矩形区域;2)用每个矩形区域的平均像素值减去该区域的标准差,得到该区域的评分;3)将评分最高的区域继续划分为四个子矩形区域;4)重复步骤1)和步骤2),直到所选区域面积小于200个像素点时,选定该区域并求取该区域内大气耗散函数的平均值。选取平均值对应的有雾图像像素值作为大气光值A,得到的复原图像如
图 8. 不同算法的复原图像。(a)有雾图像;(b)文献[ 14]的算法;(c)本算法
Fig. 8. Restored images of different algorithms. (a) Hazy image; (b) algorithm of Ref. [14]; (c) our algorithm
由(1)式可知,在估算出A和t*(x)后,就能得到清晰的复原图像,可表示为
4 实验结果和分析
为了验证本算法的有效性和可行性,选取多组有雾图像进行实验,并从主观和客观两方面对实验结果进行评价。仿真环境:软件为MatlabR2016a,系统为64位、Window10。
4.1 主观评价
选取文献[
8]、文献[
13]、文献[
4]、文献[
3]中的算法与本算法进行对比,不同算法对6幅不同场景图像的去雾效果如
图 9. 不同算法得到的去雾图像。(a)有雾图像;(b)文献[ 8];(c)文献[ 13];(d)文献[ 4];(e)文献[ 3];(f)本算法
Fig. 9. Dehazing images obtained by different algorithms. (a) Hazy image; (b) Ref. [8]; (c) Ref. [13]; (d) Ref. [4]; (e) Ref. [3]; (f) our algorithm
从
对于浓雾图像3,文献[ 8]、文献[ 13]、文献[ 4]和文献[ 3]的算法去雾均不彻底,且文献[ 13]和文献[ 4]的算法在天空区域出现色彩失真现象,文献[ 4]的算法处理后图像整体偏暗,本算法虽然在天空区域颜色恢复不自然,但去雾最彻底,整体效果较好。对于薄雾图像4,文献[ 8]、文献[ 13]、文献[ 4]和文献[ 3]的算法去雾均不彻底,且文献[ 8]和文献[ 3]的算法去雾后图像整体偏暗,文献[ 13]的算法去雾后图像颜色失真,相比其他算法,本算法去雾彻底,色彩自然,细节清晰。
图像5和图像6为含有大片天空区域且景深变化缓慢的风景雾图像,对于图像5,文献[ 8]和文献[ 3]的算法处理后图像整体偏暗,文献[ 13]的算法处理后图像颜色失真,文献[ 4]的算法处理后山体和天空交界处颜色过饱和。对于图像6,文献[ 8]的算法对远景去雾不彻底,存有残雾,且近景颜色过饱和,文献[ 4]的算法处理后天空区域颜色失真,文献[ 13]的算法处理后图像整体过饱和。整体来看,本算法去雾彻底,颜色恢复自然,去雾效果好。
4.2 客观评价
选取平均运算时间T以及无参考的图像质量评估方法[15-16]作为复原图像的评价指标,包括可见边增加率e、归一化平均梯度
式中,nr为复原图像的可见边数,n0为有雾图像的可见边数,Nr为复原图像可见边集合,rk为k处复原图像与原有雾图像的梯度比,ns为饱和像素点数,ω×h为图像的大小。
对
图 10. 不同算法的客观评价指标。(a)平均运算时间;(b)可见边增加率;(c)饱和像素点占比;(d)平均梯度
Fig. 10. Objective evaluation indicators of different algorithms. (a) Average computing time; (b) visible edge increase rate; (c) saturated pixel ratio; (d) average gradient
5 结论
针对暗通道先验和线性变换方法的不足,提出了一种基于大气耗散函数与最小颜色分量的自适应线性变换模型。首先,根据不同图像自适应求解大气耗散函数代替暗通道先验对介质传输率进行求解,并提出了一种自适应修正机制,根据不同图像的不同明亮区域在整幅图像中的占比自适应修正介质传输率;然后,利用迭代优化算法对介质传输率进行迭代优化,并利用改进的四叉树子块搜索法估计大气光值;最后,通过大气散射模型复原图像。实验结果表明,本算法能够恢复出清晰、自然的图像,对单幅图像的去雾效果较好,在客观评价指标中也体现出一定优势。但本算法对一些超远景图像会出现颜色失真现象,因此,改善超远景图像颜色失真问题是接下来的研究重点。
[2] 刘海波, 杨杰, 吴正平, 等. 基于暗通道先验和Retinex理论的快速单幅图像去雾方法[J]. 自动化学报, 2015, 41(7): 1264-1273.
[5] 苏畅, 毕国玲, 金龙旭, 等. 基于暗通道图像质心偏移量的去雾算法[J]. 光学学报, 2019, 39(5): 0533001.
[6] 杨燕, 张得欣, 岳辉. 基于最小值通道与对数衰减的图像融合去雾算法[J]. 北京航空航天大学学报, 2020, 46(10): 1844-1852.
[7] 姜沛沛, 杨燕. 基于高斯衰减的自适应线性变换去雾算法[J]. 激光与光电子学进展, 2019, 56(10): 101002.
[8] Cai B L, Xu X M, Jia K, et al. DehazeNet: an end-to-end system for single image haze removal[J]. IEEE Transactions on Image Processing, 2016, 25(11): 5187-5198.
[9] 刘杰平, 杨业长, 陈敏园, 等. 结合卷积神经网络与动态环境光的图像去雾算法[J]. 光学学报, 2019, 39(11): 1110002.
[11] Tarel JP, HautièreN. 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 Press, 2009: 2201- 2208.
[13] Meng GF, WangY, Duan JY, et al.Efficient image dehazing with boundary constraint and contextual regularization[C]∥2013 IEEE International Conference on Computer Vision, December 1-8, 2013, Sydney, NSW, Australia.New York: IEEE Press, 2013: 617- 624.
[14] 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.
[15] 杨燕, 陈高科, 周杰. 基于高斯权重衰减的迭代优化去雾算法[J]. 自动化学报, 2019, 45(4): 819-828.
Yang Y, Chen G K, Zhou J. Iterative optimization defogging algorithm using Gaussian weight decay[J]. Acta Automatica Sinica, 2019, 45(4): 819-828.
[16] 王振东, 靖旭, 孙国栋, 等. 基于区域对比度约束的暗通道图像去雾[J]. 中国激光, 2019, 46(8): 0810003.
Article Outline
杨燕, 杜康, 武旭栋. 基于改进线性变换的迭代优化去雾算法[J]. 激光与光电子学进展, 2021, 58(6): 0610011. Yang Yan, Du Kang, Wu Xudong. Iterative Optimization Dehazing Algorithm Based on Improved Linear Transformation[J]. Laser & Optoelectronics Progress, 2021, 58(6): 0610011.