刘天时, 惠霄霄
(西安石油大学 计算机学院, 西安 710065)
在空气质量下降的情况下,无法拍摄出清晰的图片,如受雾霾、雾等的影响,从而遮隐覆盖掉图像的诸多特征,图像的识别度较差,导致可利用价值大大降低。因此,很有必要对雾天拍摄的图像进行有效去雾处理。
图像去雾处理的方法可分为2种,其一是图像增强的处理方法[1-2]。此种处理是不考虑退化的影响,突出特定图像中的某些信息,削弱一些无关或者不重要的信息,这样也会造成图像信息的损失。其二是基于物理模型的复原方法[3-8]。该方法利用退化的先验知识,复原图像。此种方法有较强的针对性,去雾效果也比较自然,一般信息缺失较少。如Tan方法通过统计发现无雾图像相对于有雾图像对比度更高[9],通过恢复图像的色彩对比度来达到去雾效果,但去雾后的图像颜色过于饱和,导致失真。Fattal方法基于场景目标的表面阴影与透射率局部统计不相关的假设来推断透射率图及恢复无雾图像[10],该方法去雾效果好,但针对浓雾图像却未能呈现处理优势。He方法利用暗通道原理来粗略求取透射率[11],然后利用软抠图算法优化透射率,恢复出来的即为去雾后的图像。该算法在图像中出现天空的情况下,不能予以妥善处理,并且处理时间也相对较长。2010年,He提出了利用导向滤波器优化透射率的暗通道优先方法[12],在保证相近去雾效果的同时降低了算法的复杂度。
本文主要从图像复原的角度展开深入分析,对基于暗通道原理的去雾算法进行改进,使其具有更强的适应性。该方法可以提高图像去雾的速度,增加图像的适用范围,即使在图像中出现天空的情况下也能获得良好的处理效果,使处理后的图像清晰、自然,同时也不会损失图像中的有用信息。
目前在计算机视觉和图形领域通用的大气物理模型是由McCartney提出的,模型示意如图1所示,揭示了大气光照条件下目标的成像原因。
图1 大气物理模型示意图Fig. 1 Sketch of the physical model of the atmosphere
由图1可知,大气光照模型是由2部分组成。第一部分为直接衰弱项,第二部分为大气光照,该模型的的数学描述为:
I(x)=t(x)J(x)+A(1-t(x))
(1)
其中,x表示像素点的空间坐标;I(x)表示输入图像,即观察到的图像;J(x)表示输出图像,即待恢复的无雾图像;A表示全局大气光照强度;t(x)表示透射率,用来描述光线在通过空气中未被散射的部分;t(x)J(x)称作直接衰减项;A(1-t(x))是由前方散射引起的大气光照成分。去雾的目的是从I(x)中估算出A和t(x),从而恢复出无雾图像J(x)。
对于图像的很多非天空区域,某一些像素点上至少存在一个颜色通道具有很低的值。换言之,这些区域的最小亮度应该有非常低的值。对图像J,定义:
(2)
就是以像素点x为中心,分别取3个通道的最小值作为像素点x的暗通道的值,然后取在窗口Ω内Jdark最小的像素点,如图2所示。
图2 暗通道原理图Fig. 2 Schematic diagram of dark channel
Jc表示J的某一个颜色通道,Ω(x)是以x为中心的一块方形区域。对于一幅没有雾的室外图像,除了天空区域,Jdark的亮度非常小,趋近于0。因此,称Jdark为图像J的暗原色通道,并将上述的统计观察知识称之为暗通道原理。用公式则可表示为:
Jdark→0
(3)
对大气物理模型公式(1)进行变换,得:
(4)
对式(4)两边进行2次最小值滤波运算,可得:
1-t(x)
(5)
根据暗通道原理,结合公式(2)、(3)、(5),可得:
(6)
这就是通过暗通道原理估算透射率。
基于以上研究,可求得大气光强A和透射率t(x),利用公式(1),可推导出去雾后的图像J(x),用公式(7)表示为:
(7)
当图像中包含一些泛白的区域,例如水面、荒漠、天空等,根据实验统计,这些区域即使在无雾的情况下,像素值也很大,在有雾的情况下很难找到像素接近于0的暗原色点,导致出现失真等现象。
研究中通常认为大气光值是图像中最亮的颜色。存在雾霾的情况下,会导致物体也许比大气光都明显,就可能选择到不正确的大气光值。为了更可靠地估算大气光值,本文改进了一种基于四叉树的搜索方法。如图3所示,具体来说,首先把输入的图像分成4个矩形区域。然后选择平均值最大的区域,进一步分成4个较小的区域。重复这个过程,直到选定区域的尺寸小于预先设定的阈值。如图3所示,红色区域就是最终选定的区块,在选定的区域内,选择最大值作为图像的大气光值,从而使选择的大气光值尽可能高。在求出大气光值后,当大气光值大于220时,截取大气光值为220。
本文假定在局部区域内场景的深度相似,并求出每个块大小为24*24图像的透射率。每一块图像设置透射率为t,根据公式(1)则有:
(8)
在估算出大气光值A后,恢复去雾图像J(x)主要取决于透射率的选取。根据暗通道原理,可得式(6)结果。然而图像中可能包含天空、水面、大面积偏白物体等,这些明亮区域即使在无雾的情况下像素值很大,区域内找不到像素值接近0的暗原色。为了弥补这一不足,本文改进原有的算法,以应对不同的场景的有雾图像,提高算法的鲁棒性。
图3 大气光值的估计Fig. 3 Estimation of the atmospheric light value
一般来说,雾图是因为对比度较低,对比度会随着t(x)的减小而增强。在大部分图像区域中均遵循暗通道原理,然而在天空、大面积白色区域,按照暗通道原理计算的透射率t(x)值很小。可能导致该区域出现色彩失真,严重影响去雾的效果。一幅输入图像I(x)转换为输出图像J(x)。输入值[α,β]映射到输出范围[0,255],透射率t(x)决定有效的输出范围。由于对比度与透射率t(x)成反比,当透射率选择一个较小的t(x)值时,可能导致输出值不属于有效输出范围[0,255],在这种情况下,一些像素值会发生溢出,被截断为最大值255。这意味着图像信息的丢失,降低了待恢复图像的质量。因此,这种损失可以通过选择较大的透射率t(x)来减少。
为了减少信息的损失,可以选择一个较大透射率。在暗通道优先的基础上,增加约束条件为:
(9)
式(7)和式(9)可以转换为:
(10)
令:
(11)
由式(6)和式(11)组合成一个单一约束,则有:
t(x)≥max{tmin(x),tmax(x)}
(12)
因此,最佳透射率t(x)被确定为最小值满足约束(12)。用公式表示为:
t(x)=max{tmin(x),tmax(x)}
(13)
该算法可以更可靠地估计透射率,防止恢复后的像素值发生溢出。在t(x)<0.12时,取透射率t(x)=0.8,防止天空出现失真现象。
在2.2节中,假定图像块中的所有像素具有相同的透射率。然而,场景的深度在图像块内有所不同,通常会产生块效应,因此,通过使用边缘滤波器,改进基于图像块的透射率,减轻块效应,增强图像细节。边缘保持滤波器尝试去平滑图像,同时保留更多的边缘信息。在此过程中,采用了导向滤波。经过实验发现导向滤波的处理效果与软抠图的效果相似,但是速度却提高了很多。该方法的计算速度与滤波窗口大小没有关系,是因为滤波过程利用了积分图像。本文定义滤波模型为:
qi=∑jwi, j(I)pj
(14)
其中,i,j表示的是待处理像素的平面坐标(i横坐标,j纵坐标);I是引导图像,可以理解为目标效果;p表示原始图像;q表示输出图像;此函数是与引导图像I相关的函数,该函数与p没有关系。当引导图像I与原始图像p相同时,公式(14)则为联合双边滤波。在使用导向滤波的时候,定义其函数为:
qi=akIi+bk∀∈wk
(15)
其中,i表示像素的平面坐标;I表示引导图像;q表示结果图像,此处对应的就是经过优化的透射图;a和b是窗口wk内的恒定系数。定义的价值函数如下:
E(ak,bk)=∑((akIi+bk-pi)2+∈ak2)
(16)
其中,∈是一个正则化参数,用于抑制ak过大。用线性回归的方法可解得:
(17)
(18)
由于包含像素i的窗口wk不止一个,因此系数ak和bk取所有窗口内的均值,研究推得公式如下:
(19)
导向滤波的本质是求得基于窗口内和的运算,所以在积分图像已知的情况下,可以快速地运行实现。导向滤波算法效率高、复杂度低。
综上所述,该算法通过输入的原始图像,估算出大气光值和透射率,优化透射率,求出去雾后的图像。
为了验证本文算法的可行性和有效性,在处理器为Intel(R)Core(TM)i7-3770、3.40 GHz,操作系统为Win7的PC上利用Matlab R2014a软件进行仿真实验。
通过对雾霾天气情况下的拍摄的图像进行处理,结果如图4和图5所示。
通过对图4和图5的结果对比可以看出,均衡化算法去雾后颜色有些失真;He算法整体处理效果比较好,但是去雾后天空部分出现失真现象;本文算法整体效果比He算法更加自然,在天空处理的部分,比He算法效果更胜一筹。
图4 各种算法去雾效果对比Fig. 4 Comparison of dehazing effects of various algorithms
图5 各种算法去雾效果对比Fig. 5 Comparison of dehazing effects of various algorithms
从表1中可以看出,本文算法相比于He算法,实时性较好,如果再对算法和程序进行优化,可以达到实时性的要求。
表1 不同算法的运行时间对比Tab. 1 Comparison of the running time of different algorithms
该算法是基于暗通道优先原理的基础上研究提出的。与传统算法相比,该算法在保证去雾效果的前提下,增强了去雾的适应性,即使在出现天空等情况下,也可以达到满意的去雾效果,并且仅需较短的执行时间,满足了实时性的要求,具有可观的应用前景。
[1] 徐同莹, 彭定明, 王卫星. 改进的直方图均衡化算法[J]. 兵工自动化, 2006, 25(7):58-59.
[2] 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 & Image Representation, 2013, 24(3):410-425.
[3] 陆士猛, 刘昌锦. 无人机侦察图像快速去雾算法[J]. 红外技术, 2015,37(10):847-851.
[4] 嵇晓强, 戴明, 尹传历,等. 航拍降质图像的去雾处理[J]. 光学精密工程, 2011, 19(7):1659-1668.
[5] 蒋建国, 侯天峰, 齐美彬. 改进的基于暗原色先验的图像去雾算法[J]. 电路与系统学报, 2011, 16(2):7-12.
[6] 陈茹, 张珍明, 陈龙. 一种基于暗通道的航拍图像去雾算法[J]. 无线电工程, 2016, 46(11):38-41,78.
[7] 刘倩, 陈茂银, 周东华. 基于单幅图像的快速去雾算法[C]//第25届中国控制与决策会议. 贵阳:中国自动化学会, 2013:3780-3785.
[8] 韩正汀, 路文, 杨舒羽,等. 基于导向滤波优化的自然图像去雾新方法[J]. 计算机科学与探索, 2015, 9(10):1256-1262.
[9] TAN R T. Visibility in bad weather from a single image[C]//Computer Vision and Pattern Recognition, 2008. CVPR 2008. IEEE Conference on. Anchorage, AK, USA: IEEE, 2008:1-8.
[10]FATTAL R. Single image dehazing[J]. Acm Transactions on Graphics, 2008, 27(3):1-9.
[11]HE Kaiming, SUN Jian, TANG Xiao'ou. Single image haze removal using dark channel prior[C]//Computer Vision and Pattern Recognition, 2009. CVPR 2009. IEEE Conference on. Miami, Florida, USA:IEEE, 2009:1956-1963.
[12]HE Kaiming, SUN Jian, TANG Xiao'ou. Guided image filtering[C]//European Conference on Computer Vision. Berlin/ Heidelberg:Springer, 2010:1-14.