基于MATLAB 的图像去雾技术研究
2020-12-21马俊智朱勇杰丁建军
齐 卉,孙 超,苏 通,马俊智,朱勇杰,丁建军
(江汉大学 a. 人工智能学院,b. 智能制造学院,c. 爆炸与爆破技术研究院,湖北 武汉 430056)
0 引言
工业促进了人类社会的发展,随之而来的是空气污染越来越严重,空气中悬浮的尘粒和水滴在大气光的散射和吸收下形成雾霾。雾霾天气条件下,自然光受空气中悬浮粒子的干扰发生散射,使所获取的户外图像对比度和色彩饱和度降低,图像细节模糊不清,其视觉效果会显著降低,从而限制了景物的识别,造成一些户外图像采集装置无法正常工作[1−2]。计算机视觉应用领域如智能交通、遥感探测、安全监控等,其有效性与采集到的图像的可视性息息相关,对图像质量要求较高。因此,对雾霾天气所采集的退化图像做清晰化处理具有重要的现实意义。
目前,图像去雾算法主要分为两类:一类是基于图像特征的去雾算法,即图像增强算法,另一类是基于物理模型的去雾算法,即图像复原算法[3]。基于图像特征的去雾算法主要通过增强图像的对比度,突出图像细节,改善整体视觉效果达到去雾目的,不考虑图像降质的原因,实用性强,但可能会造成信息损失或过增强现象。典型算法有直方图均衡化、Retinex 算法、同态滤波、小波变换等,其中,以图像色感一致性为理论基础的Retinex 算法受到研究者广泛关注,该算法在单尺度Retinex(single−scale Retinex,SSR)算法的基础上通过改进发展成多尺度Retinex 算法(multi−scale Retinex,MSR)与带色彩恢复的多尺度Retinex 算法,在彩色图像增强领域取得较好成果[4]。基于物理模型的去雾算法则是根据大气散射原理构建图像退化模型进行计算去除雾气影响,大气散射的物理模型直观表达了雾天图像的退化原因,为图像去雾研究工作奠定了坚实的基础。这类方法复原结果颜色自然,图像信息得到了很好的保存,失真小,但参数较多,实现较复杂。物理模型去雾算法可大致划分为基于偏微分方程的图像复原方法、基于深度关系的图像复原方法和基于先验信息的图像复原方法[5]。近年来,基于先验知识或假设的图像复原方法进展极大,例如Tan[6]以有雾图像比无雾图像的对比度普遍较低为先验条件,采用最大化复原图像的局部对比度方法提高图像清晰度实现去雾。He 等[7]分析了大量户外无雾图像提出暗通道先验理论,估计大气光和透射率,利用大气散射模型复原图像。暗通道先验算法为图像去雾技术提供了一种新的思路[8],基于此算法原理的改进算法陆续被提出,如引导滤波[9]和中值滤波[10]等。
鉴于此,本文基于MATLAB 平台设计开发图像去雾系统,分析对比了几种常用的图像去雾算法,对带雾图像进行不同技术下的去雾处理,为图像去雾技术的研究奠定基础。
1 常用图像去雾算法
1.1 直方图均衡化算法原理
图像直方图表示的是图像中每一灰度级出现的概率情况。假设一幅图像具有N个像素,rk表示第k个灰度级对应的灰度,L表示灰度级个数,nk表示灰度rk的像素个数,则直方图可定义为
直方图均衡化的基本思想是将原始图像的灰度直方图变换成均匀分布的形式,增加了像素灰度值的动态范围,提高了图像整体对比度。雾天图像的直方图总体分布比较集中,因此可以通过直方图均衡化方法调整其直方图分布,提升图像的可视化效果,达到去雾目的[11]。
直方图均衡化的处理步骤如下:
1)图像预处理,得到原始图像直方图;
2)计算灰度值变换表,即采用累积分布函数进行灰度映射;
3)通过灰度值变换表对原始图像进行映射变换,得到均衡化结果。
直方图均衡化技术又可分为全局直方图均衡化和局部直方图均衡化。前者是将整幅图像的直方图进行均衡化,后者则是将原始图像划分成若干子块,再对子块分别进行均衡化处理。
1.2 多尺度Retinex(MSR)算法原理
Retinex 理论即视网膜大脑皮层理论,该理论认为物体色彩主要取决于物体表面对红绿蓝3种光线的反射能力,不受光线的反射强度和光照非均匀性的影响[12],成像过程可表示为
式中,I(x,y)表示原始图像,R(x,y)表示反射图像,L(x,y)表示入射光照图像。Retinex 算法的原理是分离图像中的入射光照分量,保留能反映图像细节信息的反射分量。对(2)式进行对数运算,有
采用高斯环绕函数与原始图像的卷积来对入射光照分量进行估计,则第i条颜色通道经SSR算法处理后得到的反射分量rSSRi(x,y)可表示为
式中,i表示颜色通道的类别,F(x,y)=λe−(x2+y2)/c2表示高斯环绕函数,λ表示归一化系数,c表示尺度参数。为弥补该算法尺度单一、难以平衡图像动态范围压缩能力和色彩保真性的缺点[13],提出了MSR 算法,该算法的实质是对多个不同尺度的SSR 算法结果的加权平均,可表示为
式中,ωk表示权重系数,Fk(x,y)表示权值ωk对应的高斯环绕函数,N表示尺度个数,一般选取大、中、小3 个不同尺度进行加权。
1.3 暗通道先验去雾算法原理
雾天降质图像可用大气散射模型描述如下:
式中,I(x)表示观测到的带雾图像,J(x)表示待复原的无雾图像,A表示全局大气光值,t(x)表示介质透射率。暗通道先验理论即在绝大多数户外无雾图像非天空区域内,总有大量像素在某个颜色通道上具有很小的亮度值[14],这个颜色通道即是暗通道。对于非天空区域的清晰无雾图像J(x),其暗通道Jdark(x)强度值总是趋近于0,即
式中,Jc(y)表示图像J的R、G、B 3 个通道中的某个通道,Ω(x)表示以像素x为中心的窗口区域。假设大气光值A是已知的,估计初始透射率
引入参数ω使复原后的图像保留一定的雾感避免出现失真,复原无雾图像
式中,t0表示为防止透射率t(x)过小导致图像整体偏白而设置的阈值。
2 基于MATLAB 的图像去雾系统
2.1 系统结构
本图像去雾系统以MATLAB R2018b 为平台,对可视化的图形用户界面GUI 进行设计,通过用户界面的菜单和控件实现相应功能的调用,便于功能演示,增加了软件交互的易用性。图像去雾系统集成了全局直方图均衡化、局部直方图均衡化、多尺度Retinex、暗通道先验4 种经典去雾算法。该系统能够通过菜单关联不同的去雾算法,主窗口加入坐标轴控件用于图像显示,以原始图像作为输入,经去雾算法处理后的复原图像作为输出,通过显示原始图像和去雾图像演示不同算法的去雾性能。
系统结构图和主界面设计图分别如图1 和图2 所示。
图1 图像去雾系统结构图Fig.1 The structure diagram of the image defogging system
图2 图像去雾系统主界面Fig.2 The main interface of the image defogging system
图像去雾系统主界面包含功能区和图像显示区域,通过界面集成的若干菜单实现功能的调用。其中,功能区包含“打开文件”“选择去雾算法”“保存图像”以及“退出系统”4 个菜单,通过“选择去雾算法”菜单可关联“全局直方图均衡化算法”“局部直方图均衡化算法”“多尺度Retinex算法”和“暗通道先验算法”4 种经典去雾算法进行去雾处理并显示。图像显示区域包含原始图像和使用了相关去雾算法处理后的去雾图像,可直观显示处理前后的图像进行去雾效果对比。
运用该系统实现图像去雾具体流程如下:
1)打开MATLAB 软件,选择相应的“.fig”文件,可进入图像去雾系统主界面;
2)通过主界面功能区的“打开文件”菜单,选择任意一幅自然带雾图像,载入待处理图像,并在图像显示区域的坐标轴控件中显示;
3)通过“选择去雾算法”菜单分别调用全局直方图均衡化算法、局部直方图均衡化算法、多尺度Retinex 算法和暗通道先验算法对原始带雾图像进行去雾处理,同时在图像显示区域显示去雾后的图像,另外针对全局直方图均衡化算法和局部直方图均衡化算法,该系统还能通过显示处理前后的图像灰度直方图对比去雾效果;
4)通过“保存图像”菜单将处理后的图像保存在相应的文件夹中;
5)通过“退出系统”菜单退出图像去雾系统。
综上所述,该图像去雾系统能够完成图像载入、去雾处理、图像保存、效果对比等功能,系统主界面简洁美观,能够根据需要进行扩展,添加新的去雾算法,具有良好的可操作性。
2.2 系统演示
针对本文描述的全局直方图均衡化、局部直方图均衡化、多尺度Retinex、暗通道先验4 种常用去雾算法,图像去雾系统运行效果如图3 所示。
图3 不同算法的去雾结果Fig.3 Defogging results of different algorithms
2.3 图像质量评价
图像质量评价方法通常可分为主观评价方法和客观评价方法[14]。
2.3.1 主观评价 主观评价是以观察者对图像的主观视觉感受作为评价标准。该图像去雾系统能够显示原始图像和去雾图像,以原始图像为参考,通过观察不同算法的去雾结果图像对比去雾效果。
由图3 可以看出,雾天环境导致图像质量下降,图像较为模糊,经过不同去雾算法处理的图像的清晰度和对比度都有所提高。全局直方图均衡化算法处理前后的直方图的分布情况有明显变化,但细节信息有待完善,出现少量色彩失真;局部直方图均衡化算法处理前后的直方图的分布情况有一定程度变化,能增强图像的局部细节,在一定程度上保持原始图像的局部特征,图像细节较明显;多尺度Retinex 算法图像整体偏亮,能突出细节信息,处理结果较平滑;暗通道先验算法图像整体偏暗,去雾效果自然。
2.3.2 客观评价 客观评价则是通过不同的评价指标对图像质量进行客观分析。本文以图像的标准差、峰值信噪比、信息熵和算法运行时间4 个方面作为评价指标,统计记录了标准差、峰值信噪比、信息熵和运行时间进一步比较各算法性能。
标准差反映图像灰度分布的离散程度,该值越大,则像素值的跳变越大,图像对比度也越大,视觉效果越好;峰值信噪比反映图像失真程度,该值越大,则越接近清晰图像,图像失真越小;信息熵反映图像信息量,该值越大,图像细节信息越丰富[15];运行时间反映算法效率,运行时间越短则算法效率越高。不同去雾算法处理效果如表1 所示。
表1 不同算法性能比较Tab.1 Performance comparison of different algorithms
综合对比图像去雾评价指标及处理前后图像可知,4 种去雾算法在处理效果上存在差异,有各自的局限性。全局直方图均衡化算法能实现带雾图像的增强效果,该方法计算速度较快,但不能有效保持原始图像的局部特征,细节信息有待完善,易出现色彩失真现象。局部直方图均衡化算法能增强图像的局部细节,在一定程度上保持原始图像的局部特征,但去雾图像整体亮度偏暗,易存在模糊区域和局部过增强问题。多尺度Retinex 算法能突出细节信息,处理结果较平滑,但仍存在色彩失真的问题。暗通道先验算法可以复原图像颜色细节特征,去雾效果较为自然,但在包含明亮的天空区域易产生色彩畸变现象,无法满足所有情况,且算法复杂度较高。
3 结论
本文基于MATLAB 平台构建开发图像去雾系统,测试表明,本系统可以很好地实现全局直方图均衡化、局部直方图均衡化、多尺度Retinex、暗通道先验4 种图像去雾算法的带雾图像清晰化处理功能,4 种算法在去雾效果上各有优缺点。全局直方图均衡化算法简单有效,计算速度较快,对单景深的图像复原效果较好,虽然能够取得一定的增强效果,但对于景深多变的图像去雾效果不理想;局部直方图均衡化算法可以使特定的局部区域取得增强效果,但计算量较大,且常出现过增强问题;多尺度Retinex 算法使图像清晰度得到很大提升,但处理后的图像易出现泛白问题;暗通道先验算法去雾结果自然,图像清晰度高,但计算量大,处理时间长,有待进一步改进。目前,图像去雾技术在实际应用中已取得不少成果,但在不同的场景下仍存在局限性,本系统不足之处在于系统设计过程中选取的算法相对偏少,引入的评价指标也有限,下一步的研究工作是改进完善去雾算法,并将有效的去雾算法集成到系统中,进一步提高雾天降质图像复原效果。