基于高斯权重衰减的迭代优化去雾算法

2019-06-22 07:42杨燕陈高科周杰
自动化学报 2019年4期
关键词:透射率先验复原

杨燕 陈高科 周杰

雾、雾霾是常见的自然现象,主要是由于大气中的悬浮固体颗粒和水蒸气等介质对光的散射和吸收现象形成.这种现象的存在,导致获取的户外图像质量严重下降,例如对比度下降、细节丢失、颜色发生偏移等,使得户外视觉系统对图像的分析造成了一定的障碍.因此,对于雾天图像的清晰化处理具有一定的研究意义和实际应用价值.

目前,针对单幅图像去雾算法的研究已经取得了一定的成果.按照应用的方法主要分为四类:图像增强、图像复原、图像融合以及机器学习[1].图像增强方法主要是从图像本身出发,不考虑图像退化的本质原因,以消弱/增强某些信息来达到去雾的目的,常见的方法主要是基于Retinex理论的去雾方法[2],这类方法由于缺少一定的模型支持,因此不能达到真正意义上的去雾;图像复原方法是目前经常采用的方法,这种方法从图像降质的本质出发,建立雾天图像退化模型,利用先验知识以及假设逼近模型参数真实值,从而达到去雾的目的,这类方法有一定的优越性,也是目前图像去雾领域的研究热点[3],经典的方法是暗通道先验去雾算法[4];图像融合方法是一种基于融合策略的去雾方法,这种方法通过对退化图像进行分层研究,从而选取不同的权重图进行融合,可以取得相对优越的效果,但是由于权重值选取上的不足,存在一定的局限性,典型的是多尺度融合图像去雾算法[5];机器学习方法通过训练数据获得更加优越的去雾模型,从而获得更好的去雾效果.尽管该方法已经取得了一定成果,但是考虑到模型复杂以及数据集的约束,目前在去雾领域发展有限[1].

近年来,基于单幅雾天图像复原方法的研究取得了巨大的成果.Tan[6]通过大量实验观察,发现无雾图像比有雾图像的对比度大,从而提出最大化局部对比度的方法,可以获取有效的视觉效果,但是复原图像出现过度饱和现象并且存在光晕现象.Fattal[7]在假设传输率与表面色度局部无关的前提下,提出了一种估计场景反照率和介质传输率的方法,这种方法物理有效并且可以取得优越的效果,但是在假设失效时,就会出现浓雾图像去雾不成功或失效现象.He等[4]通过对大量的无雾图像进行实验统计,提出一种暗通道先验去雾方法,利用先验知识解决了大气散射物理模型的病态问题,对于满足暗通道先验的图像可以取得很好的去雾效果,但是在不满足暗通道先验的区域可能失效且Soft Matting算法时间复杂度高.后人在暗通道先验的基础上,提出了很多改进算法并且取得了一定成果.Meng等[8]考虑到大气散射模型病态问题,从而增加约束条件,提出一种基于边界约束的图像去雾方法,利用牺牲部分细节来复原较好的无雾图像.Sun等[9]提出一种局部大气光估计方法,可以改善暗通道先验中全局大气光值选取不足现象.

本文通过对大量单幅图像去雾方法的研究,提出一种基于高斯权重衰减的迭代优化去雾方法,首先通过构造的高斯函数对有雾图像的最小通道进行衰减来达到暗通道先验的统计效果,然后利用交叉双边滤波进行纹理效应消除,从而得到粗略透射率;假设在最优透射率前提下,提出无雾图像高斯暗通道和该最优透射率的乘积灰度级趋于0的假设,从而对粗略透射率进行高阶滤波迭代优化以后向验证;其次,对于大气光的选取,采用局部大气光的策略;最后,结合大气散射模型复原无雾图像.实验结果显示,本文方法可以取得显著的去雾效果.

1 背景

根据Mie的散射理论,McCartney首次提出了大气散射模型,后由Narasimhan推导演化而来[4,8−9].

其中,I是视觉系统获取的有雾图像,J是最终需要复原的无雾图像,t是透射率,d是场景深度,表示场景点到系统的距离,A是大气光值.

He等通过对无雾图像观察提出暗通道操作,即

利用式(3)对5000多幅清晰图像进行统计发现,86%的像素灰度级分布在[0,16]的窄范围之内,因此提出暗通道先验

假设全局大气光A已知,因此,结合式(1)和式(4),可得到透射率

其中,Idark(x)表示有雾图像的暗通道结果.由于暗通道先验算法采用了式(3)的最小滤波方法,从而在复原的无雾图像中会出现明显的光晕现象.He等利用Soft matting方法细化透射率,尽管取得显著效果,但是牺牲了时间复杂度.He又提出引导滤波算法[10],时间复杂度明显减小,但是在复原图像边缘区域留有残雾.

2 本文算法

针对暗通道先验算法最小滤波的不足,提出一种基于高斯权重衰减的迭代优化去雾方法,算法流程如图1所示.首先,利用构造高斯函数方法得到高斯暗通道,然后利用交叉双边滤波器消除纹理效应得到粗略透射率,为了验证所提假设成立,利用一组高阶滤波器对粗略透射率进行迭代优化处理得到优化透射率,接着进行后向验证假设;同时,对大气光的估计采用局部大气光的估计方法,首先对有雾图像最大通道进行形态学闭操作,然后利用交叉双边滤波器进行平滑处理.图2给出了本文算法具体的实现效果.

2.1 透射率的估计

考虑到大气散射物理模型本质上的病态问题,He等提出了先进的暗通道先验去雾算法,从而消除了物理模型本身不可解问题,但是暗通道先验算法采用最小滤波操作导致复原图像产生严重光晕现象或者说透射率出现了明显的块状效应,因此需要耗时的Soft matting算法进行细化处理,从而不能应用于实时处理系统,严重阻碍了该方法的扩展性,尽管He等后又提出引导滤波替代Soft matting方法,但是处理后的图像遗留有残雾.针对上述问题,本文透射率估计方法从基于像素的角度考虑,提出一种利用高斯函数来衰减有雾图像最小通道的策略来逼近暗通道先验统计结果,从而消除最小滤波影响.

2.1.1 高斯暗通道

图1 本文算法流程图Fig.1 The flowchart of our algorithm

图2 本文算法实现过程效果图Fig.2 The process effect map of our algorithm

高斯函数在数字图像领域具有广泛的应用,主要是因其具有形状可控性特点,根据高斯函数的数学特征可知,高斯函数的曲线以钟形分布,峰值和宽度可以调整.因此,本文为了消除暗通道先验算法最小滤波的不足,提出利用高斯函数的方法来逼近暗通道.首先,利用Kirsch边缘检测算子中的一个算子对原始雾图的亮度值分量进行滤波,从而准确检测到图像的边缘信息,然后进行构造高斯函数,最后利用高斯函数对有雾图像的最小通道加权处理.本文将这一结果称为高斯暗通道,其数学表达为

其中,M表示最小通道图,WF是本文构造的高斯函数,具体的数学表示为

其中,σ是标准差,通过对3000多幅实验图像进行大量的实验测试,σ2=3.5时可以获得最佳效果,表示用Kirsch边缘检测算子对HSV通道中的V分量进行滤波的结果,使用的检测算子为[−3−3−3;−3 0−3;−3 5 5],通过式(8)可以对边缘深度交替的像素灰度级进行自适应调整,在边缘区域,较大,因此WF(x)变小,相反,在平滑区域选择较大的WF(x)值,进而使求得的高斯暗通道可以保持良好的边缘特性.根据大气散射模型,为了使高斯暗通道像素灰度级不高于最小通道像素灰度级,高斯暗通道必须满足如下约束:

如图2(c)所示,考虑到高斯暗通道纹理效应比较明显.为了消除纹理效应,同时保持图像边缘信息,采用文献[9]中的交叉双边滤波器,如下所示:

式(10)的效果如图2(d)所示,从图中可以看出,利用交叉双边滤波后的结果局部平滑,且高斯暗通道更暗,基本上可以反映图像深度信息,同时具有良好的边缘保持特性.

假设透射率已知且可以最佳地反映图像深度信息,那么对于一幅有雾图像而言,在有雾区域(白色像素近似于雾)其透射率相对较小,而该有雾图像对应的最佳无雾图像在经过高斯暗通道处理后其灰度级基本上都趋于最小灰度级,其效果如图3所示.因此,可以给出如下结论:式(1)中的乘积项J(x)t(x),也即直接衰减项在最佳的情况下,其高斯暗通道下的灰度级必然趋于一个极小范围,因此,可以得出

图3 无雾图像高斯暗通道灰度级分布Fig.3 Gaussian dark channel grayscale distribution of dehazed images

利用高斯暗通道及式(11)的假设可以将式(1)简化为

那么假设大气光值A在已知的条件下,就可以得到粗略的透射率,具体表达式为

其中,参数ω是为了保持复原的无雾图像的真实性,从而在景深区域保留少量的雾,本文取ω=0.95,效果如图2(f)所示.

2.1.2 局部大气光估计

大气光值是基于物理模型去雾方法中的一个重要参数,其准确性直接决定着最终复原图像的质量,根据式(1)可知,如果选取的全局大气光值大于其真实值,那么复原的图像偏暗,需要再进行增强处理,同时伴随着细节丢失,反之偏亮,大量细节丢失.在目前的图像去雾算法研究中,对于大气光值选取方面的研究不是很多.针对目前的研究,主要分为两个思路:全局大气光值和局部大气光值.经典的暗通道先验算法通过选取暗通道中亮度最大的前0.1%的像素,然后将这些像素对应到输入图像上,选取输入图像中对应像素最高强度的像素值作为大气光A[4];文献[8]首先对输入图像的每个颜色通道进行最小滤波,然后将每个颜色通道中的最大值作为大气光向量;文献[11]提出一种自动获取大气光值的方法,通过判断大气光矢量方向来确定大气光值.文献[4]和文献[8]的方法很容易受到强光源或者大片白色区域像素影响,具有一定局限性;文献[11]尽管可以获得良好的大气光值,但是在大气光矢量方向判断失误时则失效.考虑到全局大气光值在出现误差时会影响整体效果,本文采用Sun等提出的局部大气光值估计方法[9],首先对输入的有雾图像取最大值通道得到Amc(x),接着对Amc(x)执行形态学闭操作,利用形态学闭操作可以消除局部内部分像素的干扰,最后利用交叉双边滤波得到平滑且边缘保持良好的局部大气光A(x),实验效果如图4所示.利用局部大气光可以消除全局大气光估计不准确对整体的影响,从而可以避免由于估计不准确而增加的后处理操作.

2.2 透射率优化

通常,透射率反映图像的深度信息,因此在一个小的局部区域内的像素应当拥有相同深度值.文献[8]利用相邻像素的色差构造加权函数W(x,y)使得相邻像素之间的透射率差趋于0,即满足W(x,y)(t(y)−t(x))≈0.文献[8]利用Kirsch边缘检测算子和Laplacian边缘检测算子构成的一组高阶滤波器构造的加权函数为

其中,Dj是一组高阶滤波器,j是图5所示滤波器组的索引,i表示第j个滤波器构造的第i个加权函数,其中i=j=1,2,···,9,参数σ是标准差.

图4 局部大气光过程效果图Fig.4 The process map of local atmospheric light estimation

图5 高阶滤波器组(中心为Laplacian算子,周围为Kirsch算子)Fig.5 High order filter bank(Laplacian center,Kirsch operator around)

本文采用Meng等[8]提出的基于L1范式的迭代优化方法,给出的目标函数为

为了优化式(15),Meng等采用变量分裂法引进辅助变量uj构造子问题,构造新的代价函数为

其中,符号◦表示元素级的乘法运算符,参数λ是一个归一化参数,参数β是一个权重值,ω是高阶算子索引值,ˆt是式(13)获取的粗略透射率.通过解决式(16)的代价函数,可以得到最终的优化透射率为

其中,F(·)表示傅里叶变换,表示傅里叶逆变换,表示复共轭.参数β以为缩放因子在β0=1到βmax=28的范围进行迭代.迭代效果如图6所示.

图6 透射率迭代优化过程效果图Fig.6 The transmission iterative optimization process map

从图6可以看出,随着高阶滤波算子不断迭代,纹理效应逐渐趋于平滑,深度交替区域趋于平滑过渡,景深区域的透射率逐渐减小且更能反映深度信息.

2.3 图像复原

在确定了透射率和大气光值后,根据大气散射物理模型,就可以复原最终的无雾图像.结合式(1)和式(17)可以恢复图像为

其中,下限t0是为了防止分母项趋于0.

3 实验结果

实验在MATLAB R2014Ra环境下运行,硬件环境为Intel(R)Core(TM)i3-3110M CPU@2.40GHz,6.0GB RAM.为了验证本文方法的有效性和实用性,本文从视觉效果和客观评价两个方面进行实验对比,对比方法选用经典的图像去雾方法.此外,对式(11)的假设,本节给出验证,充分说明本文方法透射率估计的准确性.

3.1 视觉效果

视觉上分析是从人的主观意识出发,往往具有一定的片面性,但是可以快速看出恢复效果的好坏.本文选取目前经典的去雾方法做对比,主要有He等的暗通道先验算法[4]、Meng等的边界约束算法[8]、Sun等的局部大气光遮罩估计算法[9]、Zhu等的颜色衰减先验算法[12]、Cai等的基于端对端系统的去雾方法[13]以及Ren等提出的基于多尺度卷积神经网络去雾方法[14],如图7所示.

图7(b)为暗通道先验去雾效果,恢复的效果细节明显增多,基本上去除了雾气干扰,但是在深度交替的边缘区域遗留有残雾并且图像明显偏暗,主要是因为大气光估计不准确,再者,远景细节不是很突出.图7(c)为边界约束去雾效果,该方法增加约束条件来解决大气散射模型病态问题,尽管恢复的效果细节增多,但是牺牲了图像色彩保真度,恢复的图像出现了明显的偏色现象并且有伪影出现,具有一定的局限性.图7(d)为局部大气光遮罩估计的去雾效果,该方法恢复的图像亮度较好,基本去除了图像中的雾气,但是在部分图像中出现了颜色失真现象,主要是由于形态学操作的使用所致,再者,恢复的图像过度饱和、亮度过亮.图7(e)为Zhu等[12]提出的颜色衰减先验(Color attenuation prior)去雾方法,该方法通过观察有雾图像在HSV(Hue-saturation-value)的分布情况,提出利用饱和度和值的差值估计景深,并提出线性模型进行验证,从复原的结果可以看出,该方法复原的结果可以凸显更多的细节,但是仍然存在雾感,即去雾不彻底,并且亮度偏暗,且该方法很难复原浓雾区域的细节(图7(e)右边两幅),存在一定的局限性.图7(f)为Cai等[13]提出的基于端对端系统的去雾方法,该方法利用提出的端对端系统训练透射率图以达到最优效果,并且提出一种双边线性修正单元来提升复原图像的质量,具有优越的性能,并且能够复原大量的细节信息,但是由于该方法是基于前人先验和约束假设的基础上提出,因此存在一定的不足,例如去雾不彻底以及浓雾去雾效果不佳等.图7(g)为Ren等[14]提出的基于多尺度卷积神经网络的单幅图像去雾方法,通过学习雾图与对应透射率之间的映射关系,提出了深度神经网络去雾方法,该方法利用粗尺度网络(Coarse-scale net)估计整体透射率,利用优化级网络(Fine-scale net)修正局部结果,但是在训练多级深度网络时采用的是合成数据集,因此并不适应所有图像,例如对有大片天空区域的图像,复原效果严重失真,出现过度饱和与偏色现象(图7(g)左图);对浓雾图像复原力度不够(图7(g)右图);对薄雾且深度交替明显的图像,去雾效果相对一些经典方法稍有不足(图7(g)中间两幅).图7(h)为本文所提算法实现的去雾效果,从图中可以看出,恢复图像细节明显增多,亮度适宜.相比暗通道先验,本文方法复原图像细节多,尤其在远景区域,并且明亮度相对较好;相比边界约束方法,本文方法具有良好的色彩保真度性能,并且复原图像的细节更多;相比局部大气光遮罩估计方法,本文实现效果对比度和饱和度都有一定的优势,但是亮度上有所不足;相比Cai等和Ren等的机器学习方法,本文方法对浓雾图像的处理效果优于Ren方法和Cai方法,薄雾图像虽然复原细节明显增多,但略显饱和,在有天空区域的图像处理效果优于Ren方法,但不及Cai方法.综上所述,本文方法在视觉效果上取得了一定的成果,基本复原了图像的细节,并且对浓雾区域的处理效果相对更好,亮度比He方法、Meng方法、Zhu方法、Cai方法、Ren方法较好,但是相对Sun方法,本文方法复原的图像亮度不足,并且由于形态学的使用,导致对雾霾浓度估计过高,从而出现了局部区域颜色过度饱和现象.

3.2 假设验证

本文在第2.1.1节给出如下假设:在最优透射率条件下,乘法项满足Gdark(x)t(x)→0.为了验证本文透射率的最优性,本文对大量的实验图像进行测试,主要分为原始有雾图像和无雾图像两类,本节给出具体验证.首先给出本文复原图像的高斯暗通道Gdark(x),然后求得优化透射率t(x),为了便于观察,采用柱状图的关系展示,具体如图8所示,采用的无雾图像为图7(h)恢复效果图.

从图8可以看出,对于恢复的无雾图像而言,其对应的高斯暗通道灰度级主要集中分布在[0 50]范围内,如图8(a2)和8(b2)所示,说明本文恢复的无雾图像效果相对较好;其次,对Gdark(x)t(x)的灰度级分布进行大量实验统计发现,其灰度级基本上分布在[0 16]的范围之内.因此可以说明本文获取的透射率基本上是接近真实值,并且可以说明文中所提假设成立.

3.3 客观评价

主观上的评价往往具有一定的局限性,因此必须采用客观评价进行说明.对于图像质量的评估主要分为全参考图像质量评估、缩减参考图像质量评估和无参考图像质量评估[1]三个方面.由于全参考/缩减参考需要相应的清晰图像,因此很难实现,所以在图像去雾领域,无参考的图像质量评估方法经常使用,常见的有峰值信噪比(PSNR)、结构相似性(SSIM)[15]、信息熵、平均梯度、以及全局对比度[1].本文采用Hautire[16]提出的基于可见边的对比度增强的评价方法.其中可见边(e)、归一化的平均梯度越大越好,恢复图像的饱和像素点个数(σ)越小越好.对应的数学表示为

图7 实验效果对比Fig.7 Comparison of experimental results

其中,n0是原有雾图像的可见边数,nr是复原图像的可见边数,ri是Pi处复原图像与原有雾图像的梯度比,℘i是复原图像的可见边的集合,ns表示饱和像素点数.W和H分别表示图像的宽和高.实验对比数据如图9所示.

从图9所示的客观评价数据可以看出,Meng方法和Ren方法复原的图像可见边出现了负值,这也与主观上出现严重偏色相互对应.从图9(a)可见,本文方法基本上取得了优异效果,但相比于Sun方法略显不足,主要是因为本文方法复原结果亮度相对偏暗;从图9(b)可以看出,Meng方法显出了不足之处,本文方法相比Zhu方法、Cai方法和Ren方法整体效果偏好;图9(c)为饱和像素点数,从图中可以看出,本文方法在图1中明显饱和,因此本文方法对于色彩过度鲜艳的图像处理结果不好,但依然在可接受范围之内;图9(d)为运行时间对比,从图中可以看出,几种经典方法处理浓雾图像基本上都比较耗时,本文方法由于采用了形态学操作和交叉双边滤波,因此时间复杂度较高;综合考虑,本文方法具有一定的优越性.

4 结论

为了改善暗通道先验算法最小滤波使用导致的透射率块状效应/光晕现象,本文提出一种基于高斯权重衰减的迭代优化去雾方法.该方法利用高斯衰减代替暗通道先验中的最小滤波方法,提出高斯暗通道操作,并且提出无雾图像高斯暗通道与最优透射率的乘积趋于灰度级0的假设,从而简化大气散射模型,得到粗略透射率;为了使得透射率最优,本文选用一组高阶滤波器的L1范式迭代处理,从而达到预期的效果.对于大气光的选取,本文从局部大气光的角度出发,得到局部大气光图.最终结合大气散射模型复原无雾图像,通过大量实验测试验证,本文所提假设成立,并且复原的图像细节明显,明亮度适宜,在客观评价中也体现出了优势.

图8 假设验证效果图Fig.8 The effect image of validate the hypothesis

图9 客观评价(实验图像为图7(a)图像,从左到右依次为图1~4)Fig.9 Objective evaluation(experimental images as shown in Fig.7(a)image,followed by left to right for Figs.1~4)

猜你喜欢
透射率先验复原
温陈华:唐宋甲胄复原第一人
BOP2试验设计方法的先验敏感性分析研究*
噪声对相干衍射成像重构物体图像的影响
浅谈曜变建盏的复原工艺
毓庆宫惇本殿明间原状陈列的复原
纯色太阳镜镜片耐日光辐照性能试验研究
基于自适应块组割先验的噪声图像超分辨率重建
图像去雾中的大气光强度自适应恢复算法研究
先验的风
基于平滑先验法的被动声信号趋势项消除