何 艳, 方 帅
(合肥工业大学 计算机与信息学院,安徽 合肥 230009)
雾是一种常见的天气现象。在这种天气条件下,大气中存在大量悬浮颗粒,这些颗粒对太阳辐射的吸收和散射作用使大气能见度降低,从而导致户外拍摄的图像质量下降,因此雾天图像去雾算法具有重要的应用价值。
现有的图像清晰化算法可以分为基于大气物理模型的方法和基于非模型的方法[1]。基于大气物理模型的方法,从大气成像的角度出发,对大气散射进行建模分析,并利用先验知识达到场景复原的目的。这种方法虽然取得较好的效果,但是大气衰减系数难以估计,求解时复杂度较大。基于非模型的方法不考虑图像退化的原因,避开对场景深度和大气条件的依赖,有效地突出细节信息,降低了算法的复杂度,从而提高算法的通用性和实时性。这种方法的处理结果更适合人类的视觉特性或机器的识别系统,但是现有的方法仍然存在全局或局部对比度低、偏色等问题。文献[2]将2种方法结合起来,从而达到去雾效果好、时间复杂度低的目的,但由于待估计的参数比较多,算法在去雾效果方面并没有显著性的提高。
为了使雾天图像在去雾后能保持其原有色彩,本文利用retinex理论[3]的颜色恒常性,基于多尺度的retinex彩色图像复原(multi-scale-retinex with color restoration,MSRCR)算法,提出了一种雾天图像增强方法,即局部多尺度的retinex彩色图像复原(local multi-scale-retinex with color restoration,LMSRCR)算法。MSRCR算法对笼罩着一层薄雾的图像处理效果较好,但是对于宽动态范围雾天图像会出现图像过增强现象,这是因为MSRCR算法在对图像进行处理时,对整幅图像采用全局的去雾力度。事实上,由于图像中物体的深度不同,受到雾的影响也不同。因此本文考虑将雾浓度加入算法中,根据雾浓度大小的不同将图像分割成不同的区域,并在各个区域中采用局部的尺度参数,从而有效地提高了图像对比度,实现了图像色彩的恢复。
retinex是一种典型的图像增强方法,源于E.Land于20世纪70年代提出的retinex理论,是一种基于色彩恒常的代表性计算理论。由于retinex算法能在动态范围压缩、对比度提高和颜色保真3个方面到达平衡,引起了学者的广泛关注,随后出现了各种版本的retinex算法,包括单尺度retinex(single scale retinex,SSR)算法、多尺度retinex(multi-scale retinex,MSR)算法、MSRCR算法。文献[4]采用自适应多尺度retinex(adaptive multi-scale retinex,AMSR)算法对于同时存在亮区域和暗区域的无雾图像进行图像增强,抑制了MSR算法处理后放大的噪声,消除了光晕伪影现象;文献[5]使用MSRCR算法恢复了弱光照条件下成像的暗图像的色彩;文献[6-8]研究了小波域信息融合的MSR算法及滤波器可变的retinex算法,并用雾天图像对算法进行做了验证,效果较为明显。
1.1.1 SSR算法
根据 retinex 理 论 原 理[9],一 幅 图 像 被 定义为:
其中,S(x,y)为人眼观察到或者照相机拍摄到的图像;L(x,y)为入射光;R(x,y)为物体的反射性质;“×”代表乘法运算。一般将乘法变为加法运算,(1)式两边取对数得:
由此可得反映物体本质属性R为:
为了同时达到提高图像亮度、图像色彩还原以及动态范围压缩的目的,文献[10]应用中心环绕函数模型发展了SSR算法,而且通过计算图像每一个像素点与其邻域内像素亮度值的加权平均作为入射光的估计,即
其中,“*”表示卷积操作;G(x,y)为中心环绕函数,定义如下:
其中,σ为高斯环绕函数的标准差,即尺度参数;λ为归一化常数,使得高斯函数满足:
SSR算法输出的数学表达式如下:
1.1.2 MSR算法
SSR算法的关键在于高斯函数中σ的选取,它直接影响L(x,y)的估计。以一维信号为例,来说明不同σ对输入信息的影响,如图1所示。
由图1可看出,当σ值较大时,高斯函数相对较发散,卷积后的结果较平缓,表现在图像上为颜色信息较好,但细节不突出;当σ值较小时,高斯函数相对较收敛,卷积后的结果,也较陡峭,反映在图像为细节突出,但颜色保真性较差。所以单一尺度的σ不能同时保证增强图像中细节突出与颜色保真性的统一。
图1 高斯函数及卷积结果
MSR算法是在SSR算法基础上为了同时达到颜色与细节的平衡,使用不同的尺度因子σ进行线性加权,定义为:
1.1.3 MSRCR算法
MSRCR[11]算法是用于弥补 MSR算法的缺点而提出来的,其定义公式为:
其中,i∈(R,G,B)3个颜色通道;Ci(x,y)为第i个通道的色彩恢复系数,是关键因子;β为增益常数;α为受控的非线性增强系数;为图像第i个通道带色彩恢复的多尺度retinex的输出结果。
文献[13]提出的一种半反转方法能反映出图像中的有雾区域,其结果为半反转图像。半反转图像中的像素值是原图与反转后的像素值中的较大者,具体公式如下:
其中,Ir(x),Ig(x)和Ib(x)分别为原图像中像素点x在RGB颜色空间的3个通道值。文献[13]经过调查研究发现,原图与半反转图像在CLH颜色空间的色度分量上差别很大,而且容易区分出原图中的有雾区域。所以,首先把原图和半反转图从RGB颜色空间转换到CLH颜色空间,再计算原图与半反转图在色度通道的差值,公式如下:
其中,Sh(x,y)为原图像在色度通道的亮度值;Seh(x,y)为半反转图像在色度通道的亮度值;H(x,y)为原图与半反转图像在色度通道差值的绝对值,即差值图。根据预先设置的阈值t使差值图阈值化,即
其中,Hlabel(x,y)为半反转方法的输出图,在本文中用作标签图,用于标记图像的有雾区域;t为二值化阈值。t值的设置有利于选择出原图与半反转图中相似的像素,而且将小于t值的像素(即Hlabel(x,y)=0)标记为有雾。半反转图如图2所示。
图2 半反转方法结果图
现有雾天图像去雾算法大都只考虑提高图像对比度,使图像更加清晰,没有兼顾图像的色彩信息,而MSRCR算法具有同时提高图像对比度和恢复图像色彩的良好性能,所以本文从恢复图像色彩的角度出发,将MSRCR算法应用于图像去雾。然而由于MSRCR算法采用全局统一参数,对于雾均匀分布的图像处理效果较好,对于存在远景和近景的雾天图像,由于图像中物体的深度不同,雾浓度不同,应用该算法时就会出现某些区域颜色过增强的现象。因此本文考虑将图像根据雾浓度不同分割成不同的区域,并且在各个区域采用不同的尺度参数。去雾结果的好坏取决于雾浓度的检测,由上述分析可知半反转方法可以有效地检测出雾浓度,本文基于此将图像分割成不同大小的局部区域,并对不同区域使用不同参数的MSRCR算法,称该算法为LMSRCR算法。
但是在实验过程中发现,由于在检测雾浓度过程中引入了散列的点,致使处理后的图像中存在一些孤立的小图像块,因此要消除这些散列点。通过观察大量宽动态范围图像可以发现这类图像中远景区域与近景区域的亮度变化比较大,故可以根据亮度值区分远景区域和近景区域。鉴于此,需要引入关于原图的二值图像T(x,y)。关于二值图像的获取有多种方法,本文采用自动阈值化算法,由于算法较为常见且简单,不再赘述。根据文献[14]可知,图像中有雾区域的像素值比较大,反映在二值图中为白色部分(T(x,y)=1)代表远景区域,黑色部分(T(x,y)=0)代表近景区域。结合半反转标签图和二值图就可以消除原来的那些孤立区域。新标签图的定义如下:
其中,~T(x,y)表示对二值图T(x,y)取反操作;label(x,y)为新标签图。由于半反转标签图中Hlabel(x,y)=1代表近景区域,而在二值图中T(x,y)=0代表近景区域,所以需要对二值图进行一次取反操作,这样新标签图中label(x,y)=1则代表了近景区域,label(x,y)=0表示远景区域,即雾浓度较大的区域。
划分后的区域具有不规则性,故需要对其进行扩展,使其成为规则区域,便于后续计算。在扩展后的每个区域,使用不同尺度参数的MSRCR算法。对于处理后的图像,需要再次根据标签图进行融合,假设划分后的远景区域为S0,近景区域为S1,经MSRCR算法处理后分别为S0MSRCR,S1MSRCR,则本文LMSRCR算法的输出为:
其中,Y0=(~label(x,y))×S0MSRCR(x,y);Y1=label(x,y)×S1MSRCR(x,y)。
本文算法的具体步骤如下:
(1)输入原图像,按(10)式求其半反转图像。
(2)将原图像与半反转图像转换到CLH颜色空间,按照(11)式、(12)式得到标志雾浓度的标签图Hlabel(x,y)。
(3)输入原图,利用自动阈值进行二值化,求得关于原图的二值图T(x,y)。
(4)将步骤(2)的标签图和步骤(3)中的二值图,按照(13)式进行运算,从而得到一幅新的标签图label(x,y)。
(5)根据步骤(4)中的新标签图,对原图进行区域划分,并对划分后的不规则区域进行扩展,使其易于图像处理。
(6)在扩展后的区域上应用MSRCR算法。
(7)对增强后的图像按照(14)式进行融合。
(8)对图像进行后处理,使其更适合显示输出。
本文的实验平台:硬件为CPU双核2.5GHz,内存2G;软件为 Matlab 7.6.0,Windows 7操作系统,检测雾浓度的阈值t=180°。
为了证明LMSRCR算法的有效性,本文对雾天图像进行了实验,图像中的远景和近景在尺度常量上选取不同的参数,实验结果如图3所示。图3中,远景区域的参数取值为(5,20,200),近景区域的参数取值为(100,200,250),在对比试验中MSRCR算法3个尺度的取值为(15,80,250),且ω1=ω2=ω3=1/3,α=125,β=46。
图3中的3种方法均使图像对比度得到增强,图3b、图3c更加突出图像细节,但存在颜色失真的现象;图3d相对于图3b、图3c则在颜色保真度和细节方面得到了很好的平衡。再从客观数据上分析,原图直方图3e的亮度值大部分集中在灰度值较小的区域,对比度低。而直方图均衡化、MSRCR算法和本文算法得到的增强图像图3f、图3g、图3h的灰度值分布得较均匀,反映在图像上,图像亮度得到了增强,细节清楚,对比度得到提高。同时可以看出本文算法处理的结果在直方图上分布得更加均匀,因此具有较高的对比度,细节看得更清楚,颜色保真效果更好。
为了更加客观地评价算法的处理结果,分别计算了图像的信息熵、方差及均值。信息熵是衡量图像所包含信息量的参数,图像的信息熵越大,图像包含的信息就越多,细节就越丰富。均值是衡量图像亮度的参数,图像的亮度是图像整体的相对明暗关系。方差是衡量图像对比度的参数,对比度是物体亮度的均值与背景亮度的比值,比值越大,从黑到白的渐变层次就越多,表现在色彩上就越丰富,若对比度小,则整个图像是灰蒙蒙的。
以图3中实验图为例,图像质量客观评价结果见表1所列。
图3 不同算法的处理效果对比
表1 图像质量客观评价结果对比
在表1中,原图在获取时因光线不足,图像偏暗,图像均值偏低,通过直方图均衡化后,图像的亮度值增加,但是信息熵却降低了;经过MSRCR算法处理后,图像均值、对比度均得到提高,但是图像的信息熵略有降低。本文算法处理后的图像,信息熵得到了增加,图像的亮度得到很好平衡,图像对比度得到了提高。总体而言,本文算法对雾天图像的复原效果显著。
MSRCR算法是带色彩恢复因子的图像增强算法,具有提高图像对比度和恢复图像色彩的良好性能。因此本文利用MSRCR算法处理雾天图像以达到复原图像的色彩更加自然的目的,但处理不均匀雾天图像时产生了过增强的现象。为此,本文提出了一种局部多尺度的retinex算法,结合半反转方法将图像分成不同的区域,并在不同区域运行不同参数的MSRCR算法,用雾天图像对LMSRCR算法进行了验证。实验结果表明LMSRCR算法处理这一问题是有效的。主观观测和客观评价的结果表明,本文所提出的算法在图像清晰和颜色保真方面能够取得更好的效果。
[1] 朱瑜辉,方 滨,张会清.基于物理模型的雾霾天道路图像清晰化[J].计算机应用,2010,30(A01):156-158.
[2] Parthasarathy S,Sankaran P.A RETINEX based haze removal method[C]//Industrial and Information Systems(ICIIS),2012 7th IEEE International Conference on.IEEE,2012:1-6.
[3] Land E H.The retinex theory of color vision[J].Scientific American,1977,237(6):108-128.
[4] Lee C H,Shih J L,Lien C C,et al.Adaptive multiscale retinex for image contrast enhancement[C]//Signal-Image Technology &Internet-Based Systems(SITIS),2013In-ternational Conference on.IEEE,2013:43-50.
[5] lee W R,Hwang D G,Jun B M.Recovering color of dark images using tone mapping and MSRCR[J].International Journal of Software Engineering and Its Applications,2014,8(1):119-128.
[6] 孙洪伟,朱志超,于 磊,等.一种提高雾天图像清晰度的方法[J].合肥工业大学学报:自然科学版,2011,34(1):83-86.
[7] 汪荣贵,杨万挺.基于小波域信息融合的 MSR改进算法[J].中国图象图形学报,2010,15(7):1091-1097.
[8] 杨万挺.滤波器可变的Retinex雾天图像增强算法[J].计算机辅助设计与图形学学报,2010,22(6):965-971.
[9] Land E H,McCann J.Lightness and retinex theory[J].Journal of the Optical Society of America,1971,61(1):1-11.
[10] Jobson D J,Rahman Z,Woodell G A.Properties and performance of a center/surround retinex[J].IEEE on Image Processing,1997,6(3):451-462.
[11] Jobson D J,Rahman Z U,Woodell G A.A multiscale retinex for bridging the gap between color images and the human observation of scenes[J].IEEE Transactions on Image Processing,1997,6(7):965-976.
[12] Rahman Z,Jobson D J,Woodell G A.Retinex processing for automatic image enhancement[J].Journal of Electronic Imaging,2004,13(1):100-110.
[13] Ancuti C O,Ancuti C,Hermans C,et al.A fast semi-inverse approach to detect and remove the haze from a single image[C]//Proceedings of the 10th Asian Conference on Computer Vision,2010:501-514.
[14] He K,Sun J,Tang X.Single image haze removal using dark channel prior[J].IEEE Transactions on Pattern A-nalysis and Machine Intelligence,2011,33 (12):2341-2353.