基于物理模型的单幅雾天图像增强算法
2022-08-06李武劲杨希明刘昱泽
李武劲,杨希明,刘昱泽
(湖南理工学院,湖南 岳阳 414006)
雾天时,弥漫在空中的雾气模糊了人们的视线,使得景物的能见度大幅降低,图像中蕴含的许多特征都被覆盖或模糊。因此,从大气退化图像中复原和增强景物细节信息具有重要的现实意义。
目前,图像去雾主要有下面两种方法:(1)图像对比度增强,比如直方图处理[1-2]、retinex[3]等;(2)基于物理模型的图像复原[4-5]。
基于大气散射模型的方法能够在雾天图像增强上达到较好的效果,可这些方法均需要场景的深度作为辅助信息[6-7],因此在实际应用上具有一定的局限性。虽然Narasimhna 等人提出了多种提取场景深度信息的方法,可其中的一些方法需要用到不同天气状态下相同景物的图像[8]。另一种利用偏振光的方法[9]则只能应用于大气散射程度较弱的薄雾天气状态下的图像。此外还出现了一种交互式的方法[10],但都很难满足对变换场景的实时图像处理需求。
Tan 等人[11]使用单幅图像获取深度信息来对图像进行对比度恢复,而不需预知场景结构、光线分布、对天气条件的特殊知识等信息,而且对天气条件的使用范围较广,恢复的效果也较之其他同类方法好。
为了提高图像增强效果,本文提出了一种基于物理模型的雾化图像增强方法。本文其余部分组织如下:第一部分介绍本方法使用的物理模型和Tan 等人的方法;第二部分提出我们的方法,并在一些重要细节上给予具体讲述;第三部分是实验及分析比较;最后,第四部分作为全文的总结。
1 相关工作
1.1 大气散射模型
2003 年Narasimhan 等人[12]提出的大气散射模型图。式(1)是大气散射模型中数学表达式[12]:
其中,I∞ρ(x)e-βd(x)是物体反射回来的亮度;I∞(1-e-βd(x))是大气光产生的亮度;场景点对应的图像点的亮度E为它们的和。其中x 表示空间位置,I∞表示环境光,被认为为一个常量,ρ∈[0,1]表示场景点的反射率,β 是大气的散射系数,d 是场景点的深度。在大气模型中假设散射系数对所有波长都是相同的。从以上模型中可以看到,将大气光产生的亮度从场景点对应的亮度中去除,即达到了天气退化图像增强的目的,而其中最重要的是获得场景的深度图e-βd(x)。过去的方法主要有:一是通过雷达等直接取得场景点的深度,二是通过获取多幅同一位置不同天气状况下的图像,三是对单一图像交互式的处理方法。但它们都很难满足对变换场景的实时图像处理需求。而Tan 等人提出基于单幅图像的去雾增强算法很好地满足了这种需求。
1.2 Tan 等人的图像增强方法[11]
Tan 等人提出了一种基于物理模型的单幅图像去雾增强方法。该方法不需预知场景结构、光线分布、对天气条件的特殊知识等信息,而且对天气条件的使用范围较广,恢复的效果也较之其他同类方法好,故可应用于实时处理中。
在文献中Tan 证明了通过单幅图像取得场景深度的精确解是不可能的,并且指出基于物理模型的单幅图像完全复原是不可能的,该方法是运用物理模型的图像增强,提高图像的对比度。该方法假设Ioo是常量并等于图像亮度最高的值,分为以下几个部分:
(1)图像的颜色纠正。在雾天,获得的图像往往由于光的散射都或多或少地存在着偏色现象,因此在对图像增强前,先进行颜色的纠正。
(2)e-βd(x)的估计。Tan 等人证明了单幅图像求场景深度不可解,而我们的目的不要求精确复原,这给我们提供了很大的方便。
首先计算YIQ 彩色模型中的亮度:
将它近似作为图像的散射相关函数值,并且使用高斯平滑得到更好的结果F。再根据方程(3)解出e-βd(x),其中分别表示环境光各通道之值。
最后得到的e-βd(x)和公式(1)即可很简单地求出亮度增强值。
(3)后续处理得到更好的视觉效果。这种方法在雾较浓或场景点很远从而造成图像饱和度很低的情况下色彩恢复不是很理想,为此本文使用了饱和度增强方法,同时在估计深度方面也提出了一个适应性更广的函数。
2 本文使用的方法
2.1 基本流程
Tan 等人的方法解决了单幅图像去雾增强对比度的问题,但在雾较浓或场景点很远从而造成图像饱和度很低的情况下色彩恢复不是很理想。因此,针对以上问题,我们将原图像转换到HSV 空间对V 进行亮度增强,同时增强图像的饱和度,使图像色彩更逼真,同时在估计深度方面也参考了其他一些方法,提出了一个适应性更广的函数。
为了减少图像增强中的参数和处理方便,首先我们对原模型的数学表达式稍微做些改变(这里,I∞被认为为一个常量且与Tan 的取法相同):
显然,只要估计出eβd(x),我们就可以很简单地解出ρ(x)。图1 是本文使用方法的基本流程图。下面是一些关键步骤。
图1 本方法基本流程图
2.2 图像的颜色纠正[11]
对存在雾等天气降质图像增强前,我们需要先进行图像的颜色纠正,在本文中,仍采用Tan 使用的方法。
假设I∞是常量,图像是随观察点的距离变化的(比如户外图像都是由近到远)。先取亮度最高的一部分像素(比如整幅图像大小的20%,假设为环境光),得到各通道(R、G、B)的比和亮度的倒数(1/(R+G+B))。然后在各通道对上述两组数据分别线形拟和,取得的第二个参数即为我们要求的各通道的纠正值,将原图像像素各通道值除以相对应纠正值,归一化后就获得了纠正后的图像E′。
2.3 场景深度的选择与亮度增强
Tan 使用YIQ 彩色模型的亮度进行场景深度估计对去雾有一定效果但不免主观,为此我们参考了武凤霞[13]使用的信息论上最小失真意义下的场景深度估计:
代入式(2),得:
下面我们比较分析这两种方法:
首先,为了方便比较,我们将式(3)转换到灰度空间:Y(x)=0.856E(x),从而
可看出两种方法均为点增强且有相似形状,我们认为是比较合理的:
首先,单幅图像得不到场景深度的情况下利用像素点亮度估计场景深度是可取的。
其次,一般情况下,距离越远,雾的散射对图像像素亮度影响越大,对比度越低,这也是我们看到户外雾化图像远处白茫茫一片的原因,特别是,天空像素(d=∞)像素亮度完全由雾的散射决定,d=0 时雾的散射对像素亮度无影响且e-βd(x)=1,所以e-βd(x)是亮度的减函数是恰当的。
还有,雾化图像由于受散射影响,整体亮度偏大,恰当的凸函数拉伸可提高图像对比度和可视性。
所以,通常我们使用
其中V′为增强后的亮度,σ 为影响增强效果的参数。
2.4 图像饱和度增强
Tan 等人的方法解决了单幅图像去雾增强对比度的问题,但在雾较浓或场景点很远从而造成图像饱和度很低的情况下色彩恢复不是很理想。为了保证增强后的图像色彩更加分明,我们对饱和度分量进行了非线性指数调整以扩大色彩变化的动态范围、增强其对比度。指数拉伸的数学模型[14]为:
其中α 为拉伸因子,决定饱和度分量的饱和程度。
3 实验
3.1 实验条件
为了验证本文增强算法的有效性,本文使用MATLAB 作为实验工具软件,分别用多幅从网络获得的雾天图像进行实验。
3.2 实验结果
图2-图4 的实验结果表明我们的方法相对原方法对色彩的表现更加自然,图像对比也有所增强。本文采用均方差,平均梯度比较图像细节,用对比改善系数比较图像的对比度改善。对比改善系数的定义为:
图4 sweden 原图及处理结果
Cprocessed和Coriginal分别表示处理前后图像的对比度均值。表1 为对比结果。
表1 表明了我们的算法在均方差、梯度、对比度具有更好的性能,但图2 的梯度小于Tan 方法,主要是在亮度增强方面我们采用的是相似的点增强方法,不过可以通过调节σ 的值,提高雾的不同浓度、亮度图像的对比度,有更好的适应性。
表1 对比结果(σ=0.8,α=0.8)
图2 tokyo 原图及处理结果
图3 canberra 原图及处理结果
4 结论
受到Tan 等人的单幅雾化图像增强方法的启示,为了提高图像增强效果(特别是增强图像饱和度),本文提出将原RGB 空间增强转换到HSV 空间进行,增强图像饱和度同时,发现了原去雾方法和其他去雾方法在亮度增强上的相似处,并提出了一种适应范围更广的亮度增强函数,从理论和实验表明了本方法相对原方法的改进。
从处理过程看,本文提出的方法主要包括三个步骤:颜色纠正、饱和度增强和亮度增强,其中,颜色纠正可以看作是对HSV 空间上的H 分量处理。因此,本文实际是对HSV 空间的三个分量分别处理后的综合。
但在本方法中,亮度增强仍使用基于像素亮度的点增强方法,全局信息分析及利用不足,我们以后工作可从这方面着手改进。