无人机图像去雾处理速度优化研究
2021-01-20李力英聪李俊甘少明
李力,英聪,李俊,甘少明
(1.湖北省气象信息与技术保障中心,武汉 430074;2.赛特斯信息科技股份有限公司,上海 200433)
0 引言
现代无人机遥感技术以迅速、便携、廉价著称,尤其在气象、地震、环保等防灾减灾领域,可以很好弥补传统应急方法的缺陷。无人机航拍图像极易受到气象环境和地物影响,特别是近年来雾霾天气较多,严重影响了航拍数据质量。在灾害灾情瞬息万变时,要求无人机图像处理算法快速准确,特别是图像去雾处理这样的预处理算法。暗通道先验(dark channel prior,DCP)算法虽然去雾效果显著,但由于算法的复杂程度较高,尤其是引导滤波(guided filter,GF)和算法时间复杂度为O(n^2)的暗通道滤波过程[1-3],虽然引导滤波和原本使用的软抠图算法相比计算速度显著提高,但依然难满足无人机遥感图像数据量大、图幅多、图像中云雾情况复杂等特点。
本文根据无人机拍摄图像的特点,指出暗通道先验去雾算法中有待优化之处,并针对暗通道先验算法的计算速度提出优化方案。利用无参考的图像质量评价方法展开量化评价,使用信息熵、边缘强度和图像方差作为图像质量的3个指标,对比算法优化前后的处理结果。通过优化实验,发现暗通道先验去雾算法的计算速度大幅度提升,可以极大地满足无人机图像去雾处理的要求。
1 客观图像质量评价方法
无人机航拍图像难以获取同一场景不同时期的2幅图像,不便选取参考图像评价去雾效果,所以本文主要使用以下无参考的客观图像质量评价指标对去雾前后图像进行客观评价[4]。
1.1 图像信息熵
表征图像灰度分布的聚集特性,熵值越高图像表面包含的细节纹理信息越多,图像信息量越大。
1.2 检测边缘强度
图像边缘强度用梯度值来描述,梯度值较大区域具有明显的边缘特征,平滑区域梯度值较小,灰度级为常数的区域梯度值为零[5-6]。本文使用Prewitt梯度算子进行梯度值计算。
1.3 图像方差
图像方差表示图像中灰度分布的离散程度,对比度较高的图像灰度方差较大,反之亦然。有雾图像的灰度值较小,去雾处理后灰度值变大,所以用图像方差能有效判断去雾的效果和程度。
2 基于暗通道先验的图像去雾方法
2.1 图像退化模型
在计算机视觉图形学领域,有雾图像的退化模型如式(1)所示[7]。
I(x)=J(x)t(x)+A(1-t(x))
(1)
式中:I(x)为传感器接收到的场景信号,即输入有雾影像;J(x)表示场景辐射,即处理后的清晰图像;A是全局大气辐射;t(x)为透射率。J(x)t(x)称为直接衰减项用于量化场景辐射及其在传播中的信号损失量。A(1-t(x))称为环境光照表示图像接收到的大气散射光强,是导致图像色彩偏移和云雾效果的直接原因。
2.2 暗通道先验理论
暗通道先验理论是在观测大量清晰图片基础上得出的统计理论[8]:在大多数不包含天空的优质图片中,每个像素在r,g,b3个颜色通道上至少有1个通道的灰度值很低甚至趋近于0,也就是在某个微小局部区域内辐射强度的最小值应该很低。于是,对于一副图像J可以定义:
(2)
式中:Jc表示图像J中某一个通道的灰度值;Ω(x)表示以像素x为中心的某局部区域。在清晰图片中(除天空之外的区域内),几乎所有Jdark通道的灰度值都很小甚至趋近于0,图像J的暗通道值即为Jdark,此观测统计结论称为暗通道先验。
2.3 暗通道先验图像去雾处理
去雾处理目标是将传感器接收的有雾图像利用获得的有用信息通过去雾还原出清晰图像。暗通道先验图像去雾处理是根据暗通道原理获取先验知识,再利用有雾图像退化模型实现图像去雾效果。
1) 估算环境光照强度。暗通道图像中灰度值越高的区域云雾越厚,在输入图像中位于这部分区域的像素灰度值越接近于环境光照强度。估算环境光照强度首先需要找到暗通道图像中灰度值最高并占图像总像素数量0.1%的像素点,记录它们对应的坐标索引,然后根据坐标索引在输入的有雾图像中找到对应像素点,计算有雾图像中对应像素点的灰度平均值作为环境光照强度A。
(3)
将3个颜色通道的最小值按照式(4)再次运算,可得出以像素x为中心的滤波窗口内的灰度最小值。
(4)
根据暗通道先验原理和式(2)可以得出式(5)。
(5)
由式(4)、式(5)可以计算出大气透射率,如式(6)所示。
(6)
3) 去雾处理。基于暗通道先验条件可以量化云雾厚薄程度以及每个像素点的辐射还原量,从而还原出高质量的清晰图像。通过式(1)有雾图像退化模型和环境光照强度A、大气透射率t(x),可进行单幅图像去雾处理,如式(7)所示。
(7)
3 暗通道先验去雾算法速度优化
通过对暗通道先验算法的剖析和代码实验,发现算法运行中耗时较多的2个环节是:计算暗通道图像和使用引导滤波精化透射率图层(transparent layer,TL)。本文从计算暗通道图像这个环节对去雾处理方法进行速度优化。
3.1 算法时间复杂度为O(1)的暗通道滤波
暗通道先验是在一个微小的局部区域内,需要很低的最小辐射强度[9-10],暗通道滤波就是用滤波方式找到其窗口区域内辐射强度最小值[11]。将暗通道滤波当成二维黑白图像的最小值滤波向三维空间彩色图像的扩展,三维空间是指r、g、b颜色空间[12-13],那么暗通道滤波便是要找到滤波窗口区域内3个颜色空间中辐射强度最小的像素,并将该像素的辐射强度作为暗通道值。
最小值滤波算法具有非线性和不可分离性,普通的优化技术对其并不适用,算法复杂度较高,影响了最小值滤波器的应用。将图像像素作为一个列表,排序后取其中最小值,由于最小值滤波的算法复杂度随排序方法不同而改变,若使用桶排序(bucker sort,BS),那么最小值滤波的算法复杂度即为O(n^2),其中n为窗口大小。为降低最小值滤波的算法时间复杂度,Huang等[14]提出了一种算法复杂度为O(n)的中值滤波算法。该算法通过计算直方图获得中值,当滑块移动时,只需对直方图进行一次更新即可,如图1所示,通过借鉴该中值滤波算法也可实现相同算法时间复杂度的最小值滤波器。
图1 Huang等提出的中值滤波原理
考虑改进Huang的算法,由于2个直方图累加是一个O(1)操作,使得对每增加一个像素,直方图只需累加一个固定的数,从而获得O(1)的复杂度。实现算法时间复杂度为O(1)的最小值滤波过程如下。
1) 初始化核直方图。若图像有n列,每个直方图对应于图像中的一列,故需要处理n个直方图,这些直方图包含了以某个像素为中心的2r+1个像素信息(r为滤波窗口的半径)。以每一列直方图第一个像素为中心的2r+1个像素信息为图像初始状态,更新处理时,这些直方图随着滑块移动并同时完成更新。
2) 更新核直方图。随着滑块移动,将每一列直方图减去最左侧像素的直方图信息,同时增加最右侧像素的直方图信息,如图2所示,每移动一列都是O(1)操作。
图2 更新核直方图
3) 获取最小值。根据更新的核直方图获取最小值。通过上述算法的计算,所有单像素操作都与窗口大小无关,即算法空间复杂度为O(1)。该算法的伪代码如下。
输入:图像X,大小为m*n,滤波窗口半径为r
输出:与图像X大小相同的图像Y
初始化核直方图H以及每一列的直方图h1,h2,……,hn
Fori=1tomdo
Forj=1tondo
RemoveXi-r-1,j+rfromhj+r
AddXi+r,j+rtohj+r
H←H+hj+r-hj+r-1
Yi,j←min(H)
EndFor
EndFor
要将上述灰度图像最小值滤波后扩展适用于彩色图像,可以分别对r、g、b3 个波段图层进行最小值滤波,然后比较3个波段图层最小值滤波后的像素点,取3个像素值中的最小值作为暗通道值,可实现与滤波窗口无关算法时间复杂度为O(1)的暗通道滤波。
3.2 使用图像下采样减少数据量
图像缩放需要平衡处理结果的平滑度、清晰度和处理效率。当图像缩小时,平滑度和清晰度将会增加,而数据量会被压缩;当图像放大时,数据量会增大,平滑度和清晰度将会下降。缩小图像的过程称为图像下采样,放大图像的过程为上采样[15]。图像下采样可以压缩图像大小,在符合显示区域要求的条件下生成对应图像的缩略图,减少其数据量。图像上采样主要是对其进行放大,使其满足更高分辨率的显示需要。
暗通道先验算法使用暗通道图层粗略量化云雾厚度,通过暗通道图像粗略计算大气透射率,然后使用引导滤波等方法精细化大气透射率图层。暗通道图像在去雾算法中具有承上启下的重要作用,但考虑到其精度要求不高,处理过程易受到图像中的噪声影响。因此考虑使用图像下采样的方式减少输入图像数据量,生成输入图像缩略图,利用输入缩略图计算暗通道图像的缩略图,然后用图像上采样的方法将暗通道图像的缩略图放大,以便进一步处理。这样既可以减小输入图像中的噪声影响,也可以降低数据计算量,从而缩短计算时间。
(8)
综上所述,基于暗通道先验的图像去雾处理方法经过速度优化后的流程如图3所示。
图3 速度优化后的暗通道先验图像去雾处理流程图
4 速度优化实验结果与分析
4.1 实验环境搭建
针对第3节提出的实现算法时间复杂度为O(1)的暗通道滤波和使用图像下采样减少数据量2种暗通道去雾处理速度优化方法,通过实验进行结果验证。实验使用的计算机配置为:CoreTMi7-5500U @ 2.4 GHz处理器,16 GB RAM内存,Windows 10 64位操作系统。实验选用无人机航拍的28张湖北省黄冈市平原区有雾图像(图幅大小5 780像素×5 400像素)和23张湖北省恩施市高山区有雾图像(图幅大小5 180像素×3 456像素)作为原始数据,图片格式为jpeg,包含r、g、b3个颜色通道。为使算法优化处理前后的去雾效果偏差较小,在不影响输出图像后期处理的条件下尽可能提高优化算法运行速度,通过统计设定了统一参数批量处理全部原始有雾图像。
4.2 实验结果分析
本文使用无参考的客观图像评价方法,将图像信息熵、边缘强度、方差作为3个评价指标。从平原和高山2组图像中各选1幅作为代表进行说明。图4(a)文件大小为7.3 MB,图4(b)文件大小为6.77 MB。
将图4经过暗通道处理后得到图5。图5(a)、图5(c)是使用算法时间复杂度为O(1)的暗通道滤波以及图像下采样减少数据计算量得到的暗
通道图像,图5(b)、图5(d)是未使用优化方案的暗通道图像,优化与未优化处理的暗通道图像差别不大。
图4 用于实验的有雾图像
图5的2组暗通道图像分别去雾处理后得到图6所示的2组清晰图像,其中图6(a)、图6(c)是使用速度优化方案的暗通道图像去雾后得到的清晰图像,图6(b)、图6(d)是未使用速度优化方案的暗通道图像去雾后得到的清晰图像。
通过观察很难发现2组图像的差异,所以使用客观图像评价方法进行比较,评价指标和结果见表1至表3。表1为平原图例暗通道模块速度优化方案的客观评价。
从平原图例的对比看出,使用速度优化方案比未使用速度优化方案的去雾图像其信息熵、边缘强度和方差都略低,但暗通道图层的计算时间明显缩短。表2为高山图例暗通道模块速度优化方案的客观评价。
对比高山图例同样发现,使用速度优化方案比未使用速度优化方案的暗通道图层计算时间显著减少,其去雾图像的信息熵、边缘强度、方差相差不大。表3是全部原始有雾图像使用暗通道模块速度优化方案的客观评价。
将表1至表3中的图像信息熵、边缘强度、方差和暗通道图层计算时间对应比较,得出以下结论:1)暗通道先验去雾算法改善了图像清晰度,去雾效果显著;2)在计算暗通道图层时,通过使用算法时间复杂度为O(1)的暗通道滤波和图像下采样减少数据量2种优化方案得到的暗通道图像,与未使用速度优化方案计算得到的暗通道图像差别不大,使用速度优化方案得到的暗通道图像对去雾处理效果没有明显影响;3)使用算法时间复杂度为O(1)的暗通道滤波和图像下采样减少数据量的优化方法相比传统暗通道先验图像去雾方法的计算速度大幅度提高。
图5 优化与未优化处理的暗通道图像对比
图6 去雾处理后的清晰图像对比
表1 平原图例暗通道模块速度优化方案客观评价
表2 高山图例暗通道模块速度优化方案客观评价
表3 全部原始图像暗通道模块速度优化方案客观评价
5 结束语
针对无人机航拍图像图幅较多、分辨率较高、数据量较大的特点,采用图像下采样减少数据量和使用算法时间复杂度为O(1)的暗通道滤波对基于暗通道先验的图像去雾算法进行速度优化,通过计算机编码对优化方案展开实验。结果表明,基于暗通道先验的图像去雾处理速度优化方法可以较好地适应无人机图像数据量大的特点,有效减少了运算时间。该技术符合无人机航拍图像快速去雾处理的需求,可用于气象、农业、地质、环境监测、军事侦察以及社会生活等方面,具有广阔的应用前景。