背景技术
图像去雾问题在数学分析中被归纳为图像处理中的欠约束问题,这种问题往往未知参数较多而且没有客观的评价标准。在早期的图像去雾算法研究中一般采用图像增强的方法,如直方图增强,伽马修正,对比度拉伸等来实现图像在视觉效果上恢复,这种方法被定义为非物理模型方法去雾。但是这样的方法没有考虑图像的内在信息因素和降质过程,导致图像过饱和或颜色严重失真。随着去雾理论的发展,图像降质的过程得到了更多的关注,其中像大气散射模型等模型的提出让图像去雾技术有了较大的进步,基于降质模型的方法被定义为物理模型方法。近几年,基于单幅图像去雾算法主要是围绕物理模型来展开的。Narasimhan[1]等人利用相同场景、不同季节光照的多幅图像做线性融合运算,从而估测到深度图像,进而复原无雾图像。但是这样的方法比较依靠深度和不同图像的光照信息,条件较为苛刻,不太适合实时图像处理。Fattal[2]通过假设透射率和表面投影的局部不相关,估算景物的反射率,进而推断景物的透射率来复原无雾图像,该方法在雾浓度比较大的区域或者假设不成立时失效。Tarel[3]通过计算大气光幂,来复原无雾图像,但是所采用的中值滤波器不能很好的维持边缘细节信息,在深度发生突变或者远景区域容易产生光晕效应。相比之下,何凯明[4]等人提出的暗原色先验算法让图像去雾技术再向前推进一大步,受到研究人员的高度关注。但是其算法在优化透射率时所用的抠图方法(soft matting)技术具有很高的空间和时间复杂度,耗时较长。为了解决这个问题,何凯明[5]等人又采用了导向滤波(Guided-image filter)来修正透射图 (Transmission map),但是却导致图像质量的降低,所得到的透射图没有抠图方法得到的结果精细。同时Z.Wang[6]等人采用的多尺度透射图融合方法也能获得很好的效果,但是其多尺度融合技术计算复杂度较高。Wei Sun[7]采用的双边滤波器也能得到很好透射图,然而由于双边滤波器所采用的梯度权重计算原理,容易导致梯度逆反效应。近期国内外基于暗原色先验知识的改进的快速算法成为了热点。
由Land[8]提出的Retinex算法以及其相关改进算法在色彩增强算法中得到成功应用,该算法名字来源与视网膜(retina)和大脑皮层(cortex)两个词的合成,将到达成像设备的光分为照度分量和反射分量,从图像中去除场景的照度分量,获得反射分量。这种人眼视觉模型近几年也受到极大的关注。例如,黄黎红[9]等提出了基于单尺度Retinex(SSR)的雾天图像增强算法,刘茜[10]等提出的多尺度Retinex(MSR)的自适应图像增强方法。另外美国国家航空航天局(NASA)的Langley研究中心(LRC)的成果:基于邻域(surround-based)的Retinex算法被成功嵌入DSP系统,对分辨率为256×256的灰度图像,该算法的处理速度可达30帧/s,实时性较强,但此算法容易引入光晕效应。
大气散射模型:
Narasimhan,Nayar等[1]研究了不同天气条件下的大气粒子特性,分析了各种大气粒子散射特性,提出了雾霾天气和水下环境下的大气散射模型。和Narasimhan等[1]的模型类似,对雾天图像的物理模型也可以使用何凯明等[6]所提到单幅图像的大气散射模型,该模型表述为:
I(x)=J(x)t(x)+A(1-t(x)) (1)
其中I(x)为降质图像,J(x)为原始图像,t(x)为透射率,A为整体大气光照值。该模型认为两种环境光造成了图像的降质。一种是景物反射光线的衰减项,另一种则是大气粒子对照射光的散射项。所以J(x)t(x)描述的景物反射光线穿过大气后的衰减项,而A(1-t(x))表示大气散射光,它导致场景的模糊和色偏。当大气同质时,透射率t(x)可以表示为:
t(x)=e-βd (2)
其中:β是大气散射系数,d是场景深度。图像去雾的目的是通过t(x)、A值复原无雾 图像J(x)。
大气光幂V(x)满足两个约束条件:(1)大气光幂为正值(2)大气光幂的灰度值不大于该像素点的RGB通道中的最小灰度值并推导出大气光幂V(x)的计算公式为:
V(x)=A(1-e-βd) (3)
本发明以大气光幂V(x)满足两个假设为依据,采用了一种新的估测大气光幂的方案。
参考文献:
[1]S.G.Narasimhan and S.K.Nayar.Vision and the atmosphere.IJCV,2002,48(3):233-254
[2]R.Fattal.Single image dehazing[C],ACM Transactions on Graphic vol.27,no.3,p.1,Aug.2008.pp:1-7.
[3]Tarel J P,Hautiere N.Fast visibility restoration from a single color or gray level image.In:Proceedings of the 12th IEEE International Conference on Computer Vision Kyoto.Japan:IEEE,2009.pp:2201-2208.
[4]K M He,J Sun,X O Tang.single image haze removal using dark channel prior[A].CVPR[C].Miami,FL;IEEE Computer Society,2009,1.pp:1956-1963.
[5]K M He,J Sun,X O Tang.Guided Image Filtering[A].IEEE transactions on pattren analysis and Machine intelligence,vol.35,NO.6,June 2013.
[6]Z.Wang,Y.Feng.Fast single haze enhancement.Comput Electr Eng(2013),http://dx.doi.org/10.1016/j.compeleceng.2013.06.009.
[7]Wei Sun.A new single-image fog removal algorithm based on physical model.Optik124(2013)4770-4775
[8]Land E H.The Rexinex theory of color vision[J].American Scientist,1977,237(6):108-128.
[9]黄黎红.一种基于单尺度Retinex的雾天降质图像增强新算法[J].应用光学.2010.31(5).pp:728-733.
[10]刘茜.基于多尺度Retinex的自适应图像增强法[J].计算机应用.1001-9081(2009)08-2077-03
[11]Codruta Orniana Ancuti,Cosmin Ancuti,Chris Hermans,Philippe Bekaert.A Fast Semi-inverse Approach to Detect and Remove the Haze from a Single Image[A].
ACCV[C]2010-10th Asian Conference on Computer Vision,Queenstown,New Zealand,November 8-12,2010
[12]黄剑玲,邹辉.基于高斯Laplace算子图像边缘检测的改进[J].微电子学与计算机.1000-7180(2007)09-0155-03.
[13]黄晓军,来彦栋,陈奋.快速去除单幅图像雾霾的算法[J].计算机应用.2010.11.pp:3028-3031.
[14]黄黎红.退化图像的去雾方法[J].红外与激光工程.2010.10.pp:5-988.
[15]郭璠.图像去雾方法和评价及其应用研究[D].中南大学.2012.
[16]郭璠,蔡自兴.图像去雾算法清晰化效果客观评价方法[J].自动化学报.2012.9.pp:1410-1419.
[17]徐晶,刘鹏,唐降龙.大气光估计对单幅图像去雾复原的影响[J].智能计算机与应用.2012.6.pp:68-71.
[18]张文涛,王敬东,王子瑞,李鹏.基于暗元先验规律去雾后续处理研究[J].计算机应用与软件.2012.9.pp:50-53.
[19]陈杰,程兰,甘明刚.基于高斯和近似的扩展切片高斯混合滤波器及其在多径估计中的应用[J].自动化学报.2013,39(1):1-10.
[20]禹晶,李大鹏,廖庆敏.基于物理模型的快速单幅图像去雾方法[J].自动化学报.2011,37(2):144-149.
发明内容
本发明所要解决的技术问题是针对现有技术的不足提供一种基于半逆法的快速单幅图像去雾算法。
本发明的技术方案如下:
一种基于半逆法的快速单幅图像去雾算法,包括以下步骤:
A1、用改进的半逆检测算法求整体大气光照值A;
首先,取雾气区域亮度分量上方1/10的像素区域做四叉树分割,将这些区域分为四个小块区域,分别比较四个小块区域灰度均值与灰度方差之差,选择差值最小的区域, 继续做四叉树分割,一直到选出的矩形区域达到固定边宽,停止分割,取这个矩形区域中最大灰度值做为整体大气光照值A;
A2、白平衡处理降质图像I(x);
白平衡的步骤就是首先将相机拍摄到的图像做归一化处理;其次,将整体大气光照值A校正为纯白色;利用白点(White Point)的算法,其公式可表示为:
A3、求R,G,B三颜色通道的最小值图像Imin(x);
A4、利用本算法的高斯平滑滤波核处理Imin(x),得到边缘合成条件△B;
A5、分别利用7×7的高斯滤波和9×9的均值滤波窗口处理Imin(x),得到平滑图像Ismooth(x);
A6、利用合成公式合成大气光幂V(x,y):
A7、以Imin(x)作为引导图像,对V(x,y)进行导向滤波处理;
A8、根据公式:V(x,y)=max(min(K*V(x,y),Imin(x)),0),得到优化后的V(x,y);
A9、根据公式:得到复原图像J(x,y)。
A10、对J(x,y)做色调映射和细节增强。
本发明提出了一种新的基于半逆法的快速单幅图像去雾算法,从大气散射模型考虑 出发,利用改进的半逆算法得到大气整体光照值,获得的大气整体光照值比取暗通道中灰度最大值具有更强的鲁棒性;其次,基于大气散射光的特性,以图像边缘信息为合成条件融合了图像的边缘信息和场景深度信息,准确估测了大气光幂;然后,根据大气散射模型得到初步复原无雾图像;最后,对初步去雾后图像经过色调调整和细节增强处理,得到一副真实感强烈的无雾图像。该算法对于深度发生突变或者远景像素点有很好的处理效果,消除了光晕效应。大量实验表明,本文算法很好保持了色彩和细节信息,具有较好的自动性和鲁棒性,可进一步用于视频去雾系统。
具体实施方式
以下结合具体实施例,对本发明进行详细说明。
1.1算法流程设计
如果采用Codruta O等人[11]的半逆去雾检测算法求到整体大气光照值,这样估测到的整体大气光比简单利用图像最亮点更具有鲁棒性,但是其后续的基于层的去雾算法效果不太理想。因为其算法在对不同图层加权求和的过程中,图层权重比例不方便设置,同时无雾区域的对比度没得到较好的改善。因此为了克服其采用的基于不同光照图层的融合算法方法的不足,本发明采用改进的半逆算法求整体大气光照值,再利用图像边缘信息和平滑区域融合的方法来估测大气光幂,从而复原无雾图像。
算法流程:
1.用本发明改进的半逆检测算法求整体大气光照值A;
2.白平衡处理降质图像I(x);
3.求R,G,B三颜色通道的最小值图像Imin(x);
4.利用本算法的高斯平滑滤波核处理Imin(x),得到边缘合成条件△B;
5.分别利用7×7的高斯滤波和9×9的均值滤波窗口处理Imin(x),得到平滑图像Ismooth(x);
6.利用合成公式合成大气光幂V(x,y):
7.以Imin(x)作为引导图像,对V(x,y)进行导向滤波处理;
8.根据公式:V(x,y)=max(min(K*V(x,y),Imin(x)),0),得到优化后的V(x,y);
9.根据公式:得到复原图像J(x,y)。
10.对J(x,y)做色调映射和细节增强。
1.1.1改进的半逆检测算法求整体大气光照值
将降质图像I(x)与其半逆图像Isi(x)转换到HSI或者CIE色彩空间比较色调差异,并设定一色差阈值,以这个阈值为判据将降质图像分为雾区和非雾区,检测出雾区,进一步在邻近天空区域的雾区中选择最亮像素点作为整体大气光值。产生的半逆图像表示为 在RGB三通道中分别用原像素点和逆像素点的最大值代替原像素点。半逆图像公式可描述为:
其中Ir(x),Ig(x)和Ib(x)表示RGB三个通道的像素灰度值。通过研究计算:
其中,T是预先设定的阈值,按照视觉特性取T=10°,Ihue(x)表示降质图像的色度,表示其半逆图像的色度。将原始降质图像I(x)和其半逆图像Isi(x)转换到HIS或者CIE色彩空间后比较色度差异,并把所有小于阈值T的那些图像像素作为雾气区域,然后选择雾气区域的最亮像素点作为整体大气光照值A。但是这样的方法也不能很好的解决白色物体对整体大气光值估计的干扰,所以本发明采用了改进的半逆检测算法来确定整体大气光照值。
首先,取雾气区域亮度分量上方1/10的像素区域做四叉树分割,将这些区域分为四个小块区域,分别比较四个小块区域灰度均值与灰度方差之差,选择差值最小的区域,继续做四叉树分割,一直到选出的矩形区域达到固定边宽(经过实验验证取边宽为8个像素点较好),停止分割,取这个矩形区域中最大灰度值做为整体大气光照值A。因此这种方法不仅排除了非雾区的影响从而减小了算法的计算量,还能够较好的消除雾区中白色物体的干扰,进而求得较准确的整体大气光照值A。本发明改进的半逆法求整体大气光照值A的流程图如图1所示。
1.1.2白平衡
白平衡的步骤就是首先将相机拍摄到的图像做归一化处理。其次,将整体大气光照值A校正为纯白色。本发明利用白点(White Point)的算法,其公式可表示为:
由图2可看出,经过白平衡处理后的图像看上去更自然,A值更接近于白色。
1.2大气光幂(Atmospheric veil)估计
图像的景物深度信息和图像边缘细节信息可以从RGB图像的三个通道中的最小值 图像中提取,最小值图像可以表示为:
本发明提出一种新的大气光幂的快速合成方法,首先对最小值图像非边缘点内部进行高斯平滑滤波局部去噪和均值滤波得到包含景深信息的模糊图像Ismooth(x),在边缘处则直接提取最小值图像像素Imin(x),最后将两张图像进行融合处理,这样既能保证视觉上的边缘锐化,又能获得含有深度信息的模糊背景(图3)。
本发明运用最小值图像的邻域像素与中心像素之间的亮度来判断领域像素对中心像素的贡献。则V(x,y)的合成公式可以定义为:
其中△B表示合成条件,f(x,y)表示最小值图像,G(x,y)表示低通高斯核函数,H(x,y)表示均值核函数,H(x,y)G(x,y)的平滑效果取决于模板窗口大小。再以Imin(x)为引导图像对V(x,y)进行导向滤波,最后合成得到:
V(x,y)=max(min(K*V(x,y),Imin(x)),0) (9)
公式(8)的合成条件△B,可以直接由改进的高斯拉普拉斯模板对最小值图像Imin(x)做边缘检测得到。黄剑玲等人[12]提出的改进的高斯Laplace模板可以很好的提取边缘同时除去噪音干扰,改进的高斯Laplace模板表示为如下形式:
该高斯Laplace模板的系数为1,其最大特点体现在16个方向上设置了不同的权重向量,不同类型方向上设置的权重不等,相同类型方向上设置等权重,并且整个模板无 零值点,保证了16个方向都被检测到,克服了原有边缘检测算子的不足。△B的公式表示如下:
本发明公式中(8)和公式(9)引入因子C和K,根据大量实验验证,取值C=0.95,K=0.75可得到较好的图像复原效果。C和K是本发明算法设定两个系数,用来控制大气光幂的对比度。
1.3降质图像复原
利用已经得到的大气光幂图V(x,y)和整体大气光值A,利用公式(1)和公式(3)可以把大气散射模型改写成:
在进一步把(10)式子变形可得:
其中J(x,y)表示复原后的图像,I(x,y)表示降质图像。
本发明利用改进的半逆检测算法估算到A,再用基于边缘维持的高斯滤波合成算法得到大气光幂图V(x,y)的估计图,最后根据公式(13)就得到了复原图像J(x,y)。
2色调调整和细节增强
2.1色调调整
由公式(13)得到的复原图像通常偏暗,而降质图像整体偏灰白如图3所示。因此需要对初步处理过的复原图像做增强处理,提高复原图像的可视性和真实性。
本发明算法只需要调整C和K,就可以提高复原图像的对比度。参数C取得越大雾区雾越少,就越暗,取得越小,雾区的雾就越浓。而系数K越大整体对比度就越高,越低越白从而对比度就越低。由图3可见,改变C和K来进行色调调整,初步处理后的图像对比度明显改善。
为了进步提高复原图像的对比度,通过实验,本发明对不同的log函数曲线比较,得到了一条较好的log拉伸函数。
根据这个改进的log函数进而本发明采用了自适应log函数对处理后的图像进行对比度拉伸,自适应log函数可以表示为:
其中A为整体大气光照值,J(x,y)为拉伸前的图像,I(x,y)为对比度拉伸后的输出图像。其对比度拉伸效果由图4所示,可见采用自适应log函数后,图像对比度得到明显提高。
2.2细节增强
色调调整过程不可避免造成图像边缘模糊,使处理后的图像产生失真现象。所以需要对图像进行细节增强处理。因此本文加入了边缘补偿公式:
Ic∈r,g,b(x,y)=Ic∈r,g,b(x,y)+(I^c∈r,g,b(x,y)-f^c∈r,g,b(x,y)) (15)
其中,I^c∈r,g,b(x,y)是白平衡后的图像,f^c∈r,g,b(x,y)是以方差为20,窗口大小为5×5的高斯滤波核对I^c∈r,g,b(x,y)进行滤波后的图像。
3结论
本发明提出了一种新的基于半逆法和图层信息融合的大气光幂估计方案。该方法能够较好的保持大气光幂的边缘和平滑非边缘区,无需任何场景附加的信息,通过雾天图像自动的恢复大气光幂,从而复原降质图像。本发明的时间复杂度仅仅和图像像素成线性关系,本发明的优点首先在于利用改进的半逆检测算法排除了雾区中白色物体的干扰,获得准确了整体大气光照值。其次利用边缘信息为合成条件融合了大气光幂的深度突变区和平滑区域,进一步获得了准确的大气光幂。尽管本发明取得了一定效果,但是由于雾天状况的随机性和复杂性,还有相机和视频设备的质量等众多因素,去雾的工作还有很多。因此未来的工作是将这个算法用于视频去雾。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换, 而所有这些改进和变换都应属于本发明所附权利要求的保护范围。