刘翠响,张 莎,王宝珠,袁香伟
河北工业大学电子信息工程学院,天津 300401
随着信息技术的快速发展,高楼大厦的逐渐增多,航拍图像已成为获取地面信息的重要来源之一.但近年来,由于环境污染的加重,许多航拍图像受到雾霾的影响,造成所拍摄的景物辨识度下降、细节不明显和色彩度低等现象,致使目标识别、土地测绘、灾情勘探、遥感定位等系统受到影响[1].妥善解决雾霾天气条件下的航拍图像的快速去雾问题具有现实意义.现有的图像去雾算法主要分为两种:一种是图像增强方法,即强调有用信息,抑制无用信息,但该方法因未考虑雾的成像模型,去雾效果欠佳;另一种是图像复原方法,即通过研究雾图的形成原理,从成像模型上进行去雾处理,该方法在实践中应用更广.目前采用图像复原去雾的算法已有很多成果.FATTAL[2]提出基于统计学的去雾方法,但该方法需充足的色彩信息和颜色的变化; 2011年,HE等[3]提出暗原色先验理论,但该方法仅对一张图像去雾,低估了物体的透射率,且复杂度高;随后,HE等[4]提出导向滤波器算法,能快速保留边缘信息,且可以优化透射率;2015年,HE等[5]又提出快速导向滤波器概念,采用该方法进行图像去雾,处理速度加速10倍的同时,处理效果几乎无可见退化;KIM等[6-7]采用了四叉树搜索的算法来精确估计大气光;王殿伟等[8-9]针对明亮区域内色彩失真问题对透射率进行自适应校正;张江鑫等[10]提出了图像分块处理算法,降低了复杂度;汪云飞等[11]提出基于超像素的均值-均方差暗通道算法,提高了在雾较浓时图像的可见性;王泽胜等[12]采用自适应色阶调整对暗通道进行改进;余朋等[13]提出改进的异质大气光估计和非线性颜色衰减先验模型;郭翰等[14]对暗原色理论和导向滤波算法中的可调参数进行讨论;SINGH等[15]采用改进的联合三边过滤器来估计大气光.这些算法都只是针对单一问题的改进,本研究通过综合优化暗通道先验、四叉树结构搜索和快速导向滤波算法,达到同时对暗通道优化、大气光优化估计和透射率优化的效果.
文献[1]提出一个雾天成像模型:
I(x)=J(x)t(x)+A(1-t(x))
(1)
其中,x为像素点的坐标;I(x)为有雾图像;J(x)为所求的无雾图像;A为大气光值;t(x)为透射率,计算式为
t(x)=e-βd(x)
(2)
其中,β为大气散射系数;d(x)为场景深度.如果对现有的有雾图像剔除环境光部分,并进行补偿,可得到无雾图像.
HE等[3]观察了大量的户外图像,并通过实验分析,提出暗原色先验理论,即在大多数非天空的局部区域中包含一些像素,这些像素至少在1个颜色通道中强度非常小.据统计,图像的暗通道可表示[3]为
(3)
其中,Jc为图像的每个颜色通道;Ω(x)为以像素x为中心的窗口;y为图像的像素点.
暗通道先验理论[3]指出
Jdark→0
(4)
因此,根据式(1)和式(4)可推导出透射率的预估值为
(5)
实际上,即便没有雾,空气中也存在一些粉尘颗粒或水汽.因而,有必要在去雾时保留一定程度的雾,即需在式(5)中引入一个因子ω, 一般取值约为0.95,则式(5)修正为
(6)
由式(1),可用I、t和A解出J为
(7)
但是,当透射率t很小时,会使J严重受到噪声的影响,因此需设定一个阈值t0, 使t≥t0, 一般取t0=0.1或0.2, 则最终所求图像J为
(8)
2013年,HE等[4]提出导向滤波器来对暗通道进行改进.导向滤波器旨在保持边缘信息的同时降低时间复杂度,它需要一个导向图,使滤波器能够辨识出图像边缘,同时尽量减少输出图像的误差.
图1 导向滤波示意图[4]Fig.1 (Color online) Guide filter[4]
假设导向图像I和滤波输出q之间存在一种局部线性关系,则定义导向滤波器为
qi=akIi+bk, ∀i∈ωk
(9)
其中,i为像素的平面坐标;Ii为i坐标对应的导向图像;qi为i坐标对应的滤波输出图像;ak和bk是以像素k为中心的窗口ωk的线性关系系数.为使输出图像最优,ak和bk需满足如式(10)的价值函数.
(10)
这里,ε为防止ak过大的正规化参数;pi为滤波输入图像.用线性回归求得最优解为
(11)
(12)
因为一个像素可能会被多个窗口包含,所以要具体求某一点的输出值时,只需将所包含该点的线性函数值取平均
(13)
文献[3]算法去雾效果可达到大部分的去雾要求,但其实时性和精确性还有可提升空间[11].采用不同的Matlab的编程方法去实现如式(3)的暗通道,达到的去雾结果也会有差别.现有文献多是先对图像进行扩展,再用min(min())语句实现,这种方式确实能达到去雾效果,但其并未遵从式(3)的实际意义.本研究按照暗通道的物理意义进行编程,首先求出每个像素颜色(rgb)通道中的最小值,再将该值存放到一幅和原始有雾图像大小相同的灰度图中,最后对此灰度图进行最小值滤波[16].图2是采用文献[3]算法和采用本研究提出的去雾方法的结果对比,由图2可见,采用本研究方法所得颜色和清晰度均较好.
图2 两种暗通道优化对比Fig.2 (Color online) Comparison of dark channel optimization results
为更客观地比较两种方法的效果,本研究在Matlab平台下,分别分析采用这两种方法得到的去雾图像的对比度、峰值信噪比和执行时间,结果如表1.由表1可见,本研究方法在清晰度方面虽然仅略高于文献[3],但耗时却缩短了78%.
表1 采用两种不同暗通道方法进行去雾优化的效果评价Table 1 Evaluation of the effects of defogging optimization using two different dark channel methods
以前,大气光A的估计值大多由图像中最亮的颜色决定,这是因为大量的雾霾可能会产生一个发白(或发亮)的颜色,但此情况下,有些颜色比大气光更亮的物体(如白色汽车或建筑物)将被选中,导致不应作为大气光参考值的结果被选作大气光的估计值[7].HE算法[3-5]中大气光A借助暗通道来优化其估计值,首先对经过暗通道的图像按亮度大小进行排序,并选取其前0.1%的像素,然后在待去雾图像中找到相应的具有最高亮度的像素值作为大气光值.这种基于暗通道优先的简单方法,虽然比原始算法的鲁棒性更好,但运算量大.为保证该算法的鲁棒性,同时减少运算量,本研究采用基于四叉树子空间划分的层次搜索方法[6].
四叉树是一种划分空间的高效方法,基本思想是将空间递归划分为不同层次的树结构.图3为基本的四叉树结构图,将已知范围的空间等分成4个子空间,若达到要求则停止,否则继续将子空间分成4个空间,如此递归,直至树的层次达到一定深度或者满足某种要求后停止分割.
图3 基本的四叉树示意Fig.3 Basic quadtree diagram
图4 采用四叉树方法进行大气光估计Fig.4 (Color online) Atmospheric light estimation using quadtree method
采用式(6)计算透射率的预估值,所得透射率图会过于粗糙.为取得更精细的透射率图,文献[5]提出快速导向滤波算法.快速导向滤波算法的具体步骤与导向滤波基本相同:① 对滤波图像和导向图像进行二次采样;② 计算局部线性系数,方法跟导向滤波一样,这里不再赘述.接下来对所得系数进行过采样;③ 使用过采样后的系数与导向图像计算输出图像,方法与导向滤波相同(具体过程请扫描文末二维码).
本研究将基于暗通道规律的快速去雾、大气光的优化获取和透射率的快速优化算法整合处理,实现航拍有雾图像的优化去雾,再与HE算法及只改变单个部分的方法进行实验对比和分析.
从360图片网(http://image.so.com)搜索“雾霾航拍图”,找到受雾霾影响的带有颜色信息的建筑物航拍图像进行实验,来验证算法的有效性.本研究使用Matlab语言,分别对暗通道算法、只改进暗通道、只优化大气光、只优化透射率和本研究算法进行实验效果对比.从图5(a)可见,雾霾下的部分景象比较模糊,以致细节不清,且色彩信息出现偏移.从去雾后的效果图(图5(a)—(f))可见,所有算法都能达到较好的去雾效果,图像清晰度和对比度均有所提高,并还原了景物的色彩,但采用其他优化算法所得图像多少有一些失真,景物的线条锐度过高,而采用本研究算法所得图像状况则比较好,且景物颜色较亮,视觉效果较佳.
为进一步验证本研究算法的有效性,分别对采用不同优化算法后的图片的对比度、峰值信噪比和耗时指标进行量化分析,结果如表2.
表2 采用不同优化算法的去雾效果评价
图5 雾霾航拍图像的去雾效果图Fig.5 (Color online) Defogging effect pictures of smoggy aerial images
从表2可见,单独优化某一项指标,所得图像的对比度均有所提高,表明去雾后的图像更清晰,细节更清楚,颜色也比较饱和;但采用本研究算法,所得对比度比其他优化算法至少提高了11.57%,峰值信噪比至少增加了1.88%,而耗时比单一优化算法至少缩短了37.49%,表明实时性提高了至少2倍.
为验证本研究算法的可行性和普适性,本研究又从360图片网下载雨天有雨且有建筑物的雾天图像和雪天有雪有建筑物有雾的图像,并分别对它们进行去雾实验,结果请扫描文末二维码.由附加材料图2可见,本研究算法失真较小,亮度较高,可更清晰地看到湖中的雨滴和远处的亭子.由附加材料图3可见,其他算法对右边边缘颜色恢复过重,而本研究算法效果要好很多且整体比较明亮,可清楚看到花园中的小路.
分别分析这些图片的对比度、峰值信噪比和耗时,结果如表3和表4.由表3和表4可见,本研究算法对于雨天有雾天气和雪天有雾天气都同样适用,得到的去雾图像清晰度高且用时短.通过实验结果分析可得,本研究算法不仅适用于雾霾天气情况下的去雾,对雨天和雪天所产生的朦胧天气同样适用.
表3 雨天去雾效果评价
表4 雪天去雾效果评价
为验证本研究算法更加适用于受环境或抖动影响的航拍图像,选择了一幅雾霾天气下的航拍图像,同时采用多尺度Retinex算法,直方图去雾算法和本研究算法进行去雾实验,结果如图6.由图6可见,图6(b)多尺度Retinex算法达到了去雾效果,对比度也较高,但整体亮度较暗;图6(c)直方图去雾算法有一定的去雾效果,但清晰度并不高;图6(d)本研究算法的去雾效果明显,且整体亮度较亮,色彩恢复度也较好.
为表示本研究算法对航拍图像的适用性,采用对比度、峰值信噪比和执行时间对这3种算法进行量化对比分析,结果如表5.由表5可见,采用多尺度Retinex算法和直方图去雾算法的执行时间比采用本研究算法快了近2倍,但他们对应的对比度和峰值信噪比均比本研究算法低,即清晰度逊于本研究算法.然而,去雾的本质就是要求图像的清晰度,所以采用本研究算法比采用两种常规去雾算法更适于航拍图像.
表5 不同算法的去雾效果评价
图6 不同去雾算法的结果图Fig.6 (Color online) Results of different dehazing algorithms
针对航拍图像受环境特点和处理图像的实时性要求,本研究提出适用于航拍图像的实时去雾的整合算法.分别选取雾霾航拍图像、雨天有雾图像和雪天有雾图像进行实验,来验证本研究算法的可行性和普适性,并选用多尺度Retinex算法和直方图去雾算法与本研究算法进行对比实验,验证本研究算法对航拍图像的适用性.但是,研究仍有一些问题没有很好的解决,如对于大片空白区域,会出现一定的色彩失真;对大火航拍图像的实验效果并不理想.今后将针对这些问题进行深入研究.