基于边缘分类加权融合的单幅图像去雾方法与流程

文档序号:12471586阅读:219来源:国知局
基于边缘分类加权融合的单幅图像去雾方法与流程

本发明属于数字图像处理技术领域,特别涉及一种单幅图像去雾方法,可用于户外成像系统拍摄的单幅有雾图像的清晰化处理。



背景技术:

在雾天天气条件下,大气中悬浮的微粒和气溶胶对光线有散射作用,导致室外的可见度低,拍摄得到的图像出现色调偏移、对比度和饱和度下降等现象,这使得图像在视觉美观和分析处理上都受到影响。另一方面,雾天会影响道路监测、安防监控等计算机户外监控系统的正常使用,从而对以提取图像特征为基础的智能识别、目标跟踪等的准确性造成了严重威胁。因此,雾天降质图像的清晰化处理具有重要的现实意义,受到了越来越多学者的关注。

目前,雾天图像清晰化处理方法有很多,主要可以分为两种,一种是基于图像增强的方法,一种是基于物理模型的方法。

基于图像增强的方法,主要通过提高有雾图像的对比度及突出图像的细节以改善图像的视觉效果,但是它没有考虑图像降质的原因,可能会造成图像部分信息的损失,使图像失真。

基于物理模型的有雾图像去雾方法来源于McCartney(McCartney EJ(1976)Optics of the Atmosphere:Scattering by Molecules and Particles.John Wiley and Sons,New York)提出的大气散射模型原理,McCartney认为最终到达摄像头的光可分为两部分:一部分是场景点发出来的反射光经散射掉一部分光后,余下的一部分进入摄像头,这部分的光属于正投射,使用衰减模型来描述;另一部分同样是由大气粒子的散射作用引起,来自天空大气层反射、地面反射以及其他物体的光,由于大气粒子的散射作用,不再沿着原来的光路直线传播,而是通过散射作用,产生了偏转角,将这些本不属于该场景点的光被错误地散射进入摄像头,这部分附加的光用大气光模型来描述。这种基于物理模型的图像去雾方法正是由于考虑了雾图形成的机理,所以恢复图像效果较好,得到广泛的使用。

所述基于物理模型的图像去雾方法,包括基于场景深度信息已知的图像去雾方法、基于多幅图像的去雾算法及基于单幅图像的去雾算法。其中,基于场景深度信息辅助的图像去雾方法和基于多幅图像的去雾方法在实际应用中都因其自身局限性受到很大限制。为使图像去雾更具实用性,近些年来,国内外学者针对单幅图像去雾进行了广泛而深入的研究。其中,关注度最高、应用最广的是何凯明等人(He K,Sun J,Tang X(2011)Single image haze removal using dark channel prior.IEEE Transactions on Pattern Analysis&Machine Intelligence 33(12):2341-53)提出的基于暗原色先验的单幅图像去雾方法,该方法首先根据暗原色先验估计一个初始的粗糙透射率,然后利用软抠图算法求取一个精细的透射率来消除深度突变处的光晕,但是软抠图算法复杂度较高,严重影响算法的实用性。后来何恺明等人(He K,Sun J,Tang X(2013)Guided image filtering.IEEE Transactions on Pattern Analysis&Machine Intelligence 35(6):1397-1409)使用引导滤波替代软抠图处理,在保证相近的去雾效果的同时大大降低了算法复杂度。引导滤波得到的精细透射率可以保留其场景深度突变处的边缘信息,消除恢复图像中出现的光晕。但是同时它又引入另外一种错误,引导滤波仅仅根据有雾图像强度值的变化来保留边缘,并没有考虑这些边缘对应的深度信息,也没有能力区分哪些边缘处于场景深度突变或是场景深度相同的区域,导致在本来没有场景深度突变的区域,引导滤波却错误的检测出深度的变化,使得在该处估计的透射率发生突变。而这一错误将导致恢复图像的对比度下降或者色调产生失真。

近些年来,很多学者在暗原色先验算法的基础上继续研究,尝试在不使用引导滤波的前提下估计透射率,解决恢复图像的光晕问题。T.M.Bui等人(Bui T M,Tran H N,Kim W et al(2014)Segmenting dark channel prior in single image dehazing.Electronics Letters 50(7):516-518)提出了一个简单的分割方法来估计透射率,此方法能够有效抑制恢复图像的中的光晕,但是同时恢复图像出现过饱和现象;Ch.-H.Hsieh等人(Hsieh C H,Lin Y S,Chang C H(2015)Haze removal without transmission map refinement based on dual dark channels.In:International Conference on Machine Learning and Cybernetics,vol 2,pp 512-516)估计透射率时对1×1的暗原色值与15×15的暗原色值进行加权融合,加权系数是一个固定常数,此方法在一定程度上能够减弱恢复图像深度突变处的光晕,但是并没有完全消除,且恢复图像去雾不够彻底;Teng Yu等人(Yu T,Riaz I,Piao J et al(2015)Real-time single image dehazing using block-to-pixel interpolation and adaptive dark channel prior.Iet Image Processing 9(9):725-734)利用一个块至像素的加权融合方法来保留透射率的边缘信息和平滑纹理噪声,并且对不满足暗原色先验的天空等区域的透射率进行一个补偿。

上述基于暗原色先验的去雾方法及其改进算法都是基于有雾图像强度值的变化来估计透射率,并没有考虑图像中边缘的场景深度变化及不同类型边缘的影响,所以去雾效果不是很理想。



技术实现要素:

本发明的目的在于克服上述现有技术的不足,提出一种基于边缘分类加权融合的单幅图像去雾方法,以提高透射率的准确性,使得恢复图像的对比度增强,细节更加清晰。

本发明的技术方案是:将有雾图像中的不同边缘进行分类,得到有雾图像的深度边缘,并设计一个基于深度边缘加权的像素级至块级的融合方案来估计透射率,最后利用雾图的物理模型求解得到恢复图像,其实现步骤包括如下:

(1)利用相机采集单幅有雾图像;

(2)获取有雾图像的深度边缘:

(2a)利用暗原色先验算法计算有雾图像的初始粗糙透射率tori

(2b)获取初始粗糙透射率tori的直方图,根据该直方图的分布将有雾图像划分为3个区域:远景区域、中景区域、近景区域;

(2c)对(2b)中的3个区域分别设置不同的检测门限值,利用Canny边缘检测算法对有雾图像进行边缘检测,得到初始边缘检测图;

(2d)计算初始边缘检测图中所有边缘的长度及其总数目,并将最短边缘的长度记为L1,最长边缘的长度记为L2,边缘的总数目记为N;

(2e)设置第一阈值T1=N/4,第二阈值T2=10,将边缘长度在区间[L1,L1+T1)内的边缘定义为短边缘,将边缘长度在区间[L1+T1,L2–T2)内的边缘定义为中等长度边缘,将边缘长度在区间[L2–T2,L2]内的边缘定义为长边缘;

(2f)计算初始边缘检测图中所有边缘的方向变化率,并将方向变化率的中值记为V,边缘的方向变化率大于V的边缘定义为方向变化频繁的边缘;

(2g)对初始边缘检测图中短边缘和方向变化频繁的中等长度边缘进行剔除,得到最终的深度边缘图;

(3)根据(2)中得到的深度边缘图,将有雾图像划分为深度边缘区域和非深度边缘区域,即以深度边缘上的每个像素点为中心形成一个大小为p×p的块,所有以深度边缘为中心的块构成深度边缘区域,图像的其余区域构成非深度边缘区域,p的取值15;

(4)计算有雾图像的修正暗原色值:

(4a)分别计算有雾图像的像素级暗原色值I1(x)和块级暗原色值Ip(x),其中,x∈ΩM×N,ΩM×N表示一幅M×N的有雾图像的整个图像域,M、N分别是有雾图像的高度和宽度,x是整个图像域中的任一像素;

(4b)计算有雾图像修正暗原色值的权值W(x):

其中,exp(·)表示以自然常数e为底的指数操作;σ(x)表示像素x处的“方差”,σ(x)的取值依赖于像素x是位于深度边缘区域或是非深度边缘区域,在深度边缘区域内,σ(x)取值范围是0.5-2,在非深度边缘区域内,σ(x)取值范围是0.05-0.5;

(4c)计算有雾图像的修正暗原色值Ism(x):

Ism(x)=W(x)I1(x)+(1-W(x))Ip(x);

(5)计算有雾图像的优化透射率:

(5a)利用暗原色先验算法计算有雾图像的大气光值A;

(5b)计算有雾图像非深度边缘区域的平滑暗原色值

其中,TW1表示非深度边缘区域内用于归一化的总权值,∑(·)表示求和操作;W(i)表示在像素i处的修正暗原色值的权值,i∈S(x),S(x)表示以像素x为中心的一个正方形窗口,窗口大小为2p×2p,p=15,i表示窗口S(x)中的像素;I1(i)和Ip(i)分别表示在像素i处的像素级和块级暗原色值;

(5c)计算有雾图像深度边缘区域的平滑暗原色值

其中,TW2表示深度边缘区域内用于归一化的总权值,T(x)表示S(x)中I1(i)与I1(x)接近的像素的集合,定义如下:

T(x)={i|I1(i)-I1(x)<Th,i∈S(x)},

其中,Th表示T(x)的阈值,取值范围是0.02-0.25;

(5d)将有雾图像非深度边缘区域的平滑暗原色值和深度边缘区域的平滑

暗原色值进行合并,形成整图的平滑暗原色值:

(5e)根据平滑暗原色值计算有雾图像的优化透射率tsm(x):

其中,ω取值范围是0.7-0.95;mean(·)表示取均值操作,A表示有雾图像的大气光值;

(6)根据优化透射率,计算恢复图像的强度值J(x):

其中,I(x)表示有雾图像的强度值;t0表示有雾图像优化透射率的下限,其取值范围是0.3-0.45。

本发明由于在进行图像去雾时,对有雾图像的边缘进行分类,因而能获取反映场景深度变化的深度边缘,使得估计的优化透射率在深度边缘处保持突变,在非深度边缘处平滑缓变,优化透射率更加准确;同时由于在获取恢复图像时,根据优化透射率的直方图分布对不满足暗原色先验区域的透射率进行补偿,使得最终的恢复图像对比度增强,色调真实自然。

附图说明

图1是本发明的实现流程图;

图2是本发明的仿真效果图;

图3是用本发明与现有何凯明算法对“Street”图像的去雾结果图;

图4是用本发明与现有何凯明的改进算法对“House”图像的去雾结果图。

具体实施方式

以下结合附图对本发明的实施例和效果做进一步详细描述:

参照图1,本发明的实现步骤如下:

步骤1:采集单幅有雾图像。

在雾霾天气下,利用相机采集有雾图像,或者从现有图库中获取有雾图像,采集或获取的有雾图像主要包括3类:建筑物图像、交通道路图像、自然场景图像。

步骤2:获取有雾图像的深度边缘。

(2a)利用暗原色先验算法计算有雾图像的初始粗糙透射率tori

(2a1)计算有雾图像的初始暗原色值

其中,x∈ΩM×N,ΩM×N表示一幅M×N的有雾图像的整个图像域,M、N分别是有雾图像的高度和宽度,x是整个图像域中的任一像素;Ω(x)表示以像素x为中心的一个正方形窗口,窗口大小为9×9;y表示窗口Ω(x)中的像素;c表示有雾图像3个颜色通道{R,G,B}中的一个通道;Ic(y)表示有雾图像在像素y处的第c层颜色通道的强度值;

(2a2)计算有雾图像的初始大气光值Aori

对有雾图像中所有像素的初始暗原色值从大到小排序,记录排序后的前K个像素的坐标位置,K=0.001*M*N,在有雾图像的对应位置处选取R、G、B这3个通道之和最大的像素点的强度值作为初始大气光值;

(2a3)根据暗原色先验算法中雾图的物理模型,构建有雾图像初始粗糙透射率的计算公式:

暗原色先验算法中雾图的物理模型如下:

I(x)=J(x)t(x)+A(1-t(x)),

其中,I(x)表示有雾图像的强度值;J(x)表示恢复图像的强度值;t(x)表示透射率,反映了光线穿透雾的能力;A表示大气光值,通常假设为全局变量;

将雾图的物理模型方程两边同时除以大气光值,并取局部最小及三通道最小,得到大气光归一化方程:

其中,Jc(y)表示恢复图像在像素y处的第c层颜色通道的强度值;Ac表示第c层颜色通道的大气光值;

暗原色先验是指对于大量不包含天空的室外彩色无雾图像,在一个局部块内至少有一个通道的强度值很低,甚至趋近于0,即由大气光归一化方程推导出透射率方程:

实际中,为了减弱过饱和现象和色彩失真,通常引入一个固定的常数ω以提高恢复图像的可见性,所以利用(2a2)得到的初始大气光值Aori计算有雾图像的初始粗糙透射率tori

其中,ω=0.95;表示第c层颜色通道的初始大气光值;

(2b)获取初始粗糙透射率tori的直方图,根据该直方图的分布获取两个谷点,将这两个谷点对应的初始粗糙透射率分别记为B1和B2,利用B1和B2对有雾图像进行区域划分,即将有雾图像的初始粗糙透射率tori在[0,B1)内的区域划分为远景区域,将有雾图像的初始粗糙透射率tori在[B1,B2)内的区域划分为中景区域,将有雾图像的初始粗糙透射率tori在[B2,1]内的区域划分为近景区域;

(2c)对(2b)中的3个区域分别设置不同的检测门限值,利用Canny边缘检测算法对有雾图像进行边缘检测,得到初始边缘检测图,该初始边缘检测图中包括大部分的深度边缘和少部分的非深度边缘;

所述深度边缘,是指有雾图像中场景深度发生突变位置处的边缘,且这些边缘相对比较清晰,在形态上笔直连续,例如一个建筑物的外部轮廓边缘清晰且连续;

所述非深度边缘,是指有雾图像中场景深度相同或者近似相同位置处的边缘,且这些边缘相对比较模糊,在形态上长度短小、方向弯曲多变,甚至构成一个环状,例如交通路牌上的文字其边缘短小而弯曲,建筑物上的众多小窗户其边缘构成环状;

(2d)计算初始边缘检测图中所有边缘的长度及其总数目,并将最短边缘的长度记为L1,最长边缘的长度记为L2,边缘的总数目记为N;

(2e)设置第一阈值T1=N/4,第二阈值T2=10,将边缘长度在区间[L1,L1+T1)内的边缘定义为短边缘,将边缘长度在区间[L1+T1,L2–T2)内的边缘定义为中等长度边缘,将边缘长度在区间[L2–T2,L2]内的边缘定义为长边缘;

(2f)计算初始边缘检测图中所有边缘的方向变化率,并将方向变化率的中值记为V,边缘的方向变化率大于V的边缘定义为方向变化频繁的边缘;

(2g)对初始边缘检测图中短边缘和方向变化频繁的中等长度边缘进行剔除,得到最终的深度边缘图。

步骤3:根据步骤2中得到的深度边缘图,将有雾图像划分为深度边缘区域和非深度边缘区域,即以深度边缘上的每个像素点为中心形成一个大小为p×p的块,所有以深度边缘为中心的块构成深度边缘区域,图像的其余区域构成非深度边缘区域,p的取值15。

步骤4:计算有雾图像的修正暗原色值。

有雾图像的暗原色值可通过暗原色先验算法中的如下公式计算:

由于暗原色先验算法在估计暗原色值时,整幅有雾图像都使用一个大小为p×p的固定窗口Ω,其中p=15,因而导致在深度发生突变的区域其暗原色值估计错误,出现真实边缘信息丢失的问题;

实验表明:当p=1时,暗原色值能够较好地保留细节和边缘信息,如果整幅图像都使用大小为1×1的窗口来估计暗原色值,则非深度边缘区域的暗原色值估计不准确,所以本实例中提出修正暗原色值的计算方法,使得在深度发生突变的区域,利用大小为1×1的窗口来估计暗原色值,在非深度边缘区域,利用大小为15×15的窗口来估计暗原色值。其具体实现步骤如下:

(4a)计算有雾图像的像素级暗原色值I1(x)和块级暗原色值Ip(x):

其中,Ic(x)表示有雾图像在像素x处的第c层颜色通道的强度值;Ω(x)表示以像素x为中心的一个正方形窗口,窗口大小为p×p,p=15;

(4b)计算有雾图像修正暗原色值的权值W(x):

其中,exp(·)表示以自然常数e为底的指数操作;σ(x)表示像素x处的“方差”,σ(x)的取值依赖于像素x是位于深度边缘区域或是非深度边缘区域,在深度边缘区域内,σ(x)取值范围是0.5-2,在非深度边缘区域内,σ(x)取值范围是0.05-0.5;

(4c)利用(4b)中得到的修正暗原色值的权值W(x)对I1(x)和Ip(x)进行加权,计算有雾图像的修正暗原色值Ism(x):

Ism(x)=W(x)I1(x)+(1-W(x))Ip(x)。

步骤5:计算有雾图像的优化透射率。

本实例是基于雾图的物理模型I(x)=J(x)t(x)+A(1-t(x))进行去雾,即根据已知的有雾图像I(x)计算得到恢复图像J(x),其中透射率t(x)和大气光A都是未知的变量,该物理模型方程是一个欠定方程,需要根据一些先验知识由I(x)计算得到t(x)和A,然后解方程得到需要的恢复图像J(x),透射率t(x)和大气光A估计的越准确,则恢复图像J(x)的去雾效果越好。

本实例利用暗原色先验估计大气光值和优化透射率,利用有雾图像的深度边缘反映场景深度的变化,使得最终得到的优化透射率在深度边缘区域和非深度边缘区域的估计值都更加准确,其具体实现步骤如下:

(5a)利用暗原色先验算法计算有雾图像的大气光值A:

(5a1)计算有雾图像的暗原色值Idark(x):

其中,Ω(x)表示以像素x为中心的一个正方形窗口,窗口大小为15×15;

(5a2)计算有雾图像的大气光值A:

对有雾图像中所有像素的暗原色值Idark(x)从大到小排序,记录排序后的前K个像素的坐标位置,K=0.001*M*N,在有雾图像的对应位置处选取R、G、B这3个通道之和最大的像素点的强度值作为大气光值;

(5b)计算有雾图像非深度边缘区域的平滑暗原色值

其中,表示非深度边缘区域内用于归一化的总权值;∑(·)表示求和操作;W(i)表示在像素i处的修正暗原色值的权值,i∈S(x),S(x)表示以像素x为中心的一个正方形窗口,窗口大小为2p×2p,p=15,i表示窗口S(x)中的像素;I1(i)和Ip(i)分别表示在像素i处的像素级和块级暗原色值;

在非深度边缘区域,有雾图像的场景深度相同或近似相同,其对应区域的暗原色值也应该相同或近似相同,所以在此区域,本实例对修正暗原色值在一个大小为

2p×2p的窗口内进行均值滤波,保证得到的暗原色值在此区域内保持平滑;

(5c)计算有雾图像深度边缘区域的平滑暗原色值

其中,表示深度边缘区域内用于归一化的总权值;T(x)表示S(x)中I1(i)与I1(x)接近的像素的集合,定义如下:

T(x)={i|I1(i)-I1(x)<Th,i∈S(x)},Th表示T(x)的阈值,取值范围是0.02-0.25;

在深度边缘区域,有雾图像中深度边缘处的场景深度发生突变,直接在一个窗口中对修正暗原色值进行均值滤波会造成深度边缘模糊,为了保持锐利的深度边缘信息,本实例中,对集合T(x)中的像素进行均值滤波,既可以保持锐利的深度边缘信息,又可以使深度边缘区域内除深度边缘外的其它像素位置处保持平滑;

(5d)将有雾图像非深度边缘区域的平滑暗原色值和深度边缘区域的平滑暗原色值进行合并,形成整图的平滑暗原色值:

(5e)根据(5d)得到的平滑暗原色值计算有雾图像的优化透射率tsm(x):

其中,ω取值范围是0.7-0.95;mean(·)表示取均值操作,A表示有雾图像的大气光值。

步骤6:根据优化透射率,计算恢复图像的强度值J(x):

其中,I(x)表示有雾图像的强度值;t0表示有雾图像优化透射率的下限。

在现有的暗原色先验算法中,t0设置为一个固定的常数,t0=0.1,当有雾图像中包含不满足暗原色先验的天空区域或者大面积的白色物体时,利用暗原色先验算法得到的透射率在这些区域的估计值偏小,对应区域的恢复图像失真严重。本实例中,根据优化透射率的直方图分布自适应设置参数t0,获取优化透射率直方图分布的第一个谷点,将这个谷点对应的优化透射率记为tb,设置t0=tb,由实验可得,t0的取值范围为0.3-0.45,即对不满足暗原色先验区域的透射率进行补偿,最终得到的恢复图像色调自然,对比度增强。

本发明的效果可以通过以下仿真实验作进一步说明:

1、仿真条件

本发明的仿真是在主频3.3GHZ的Intel(R)Core(TM)i3-2120CPU、内存4GB的硬件环境和MATLAB R2012a软件环境下进行的。实验所用到的图像来源于相机拍摄或者现有图库中的有雾图像。

2、实验内容与结果

实验1,利用本发明方法对有雾图像“Building”图进行去雾仿真实验,结果如图2,其中,图2(a)是有雾图像“Building”的原图;图2(b)是本发明方法得到的有雾图像的深度边缘;图2(c)是本发明方法得到的优化透射率;图2(d)是本发明方法得到的恢复图像;

由图2可以看出,本发明方法得到的深度边缘能反映场景深度的变化,优化透射率在深度边缘区域和非深度边缘区域估计准确,恢复图像去雾效果良好。

实验2,利用本发明方法与现有何凯明算法对有雾图像“Street”图进行去雾仿真实验,结果如图3,其中,图3(a)是有雾图像“Street”的原图;图3(b)是何凯明算法得到的恢复图像;图3(c)是本发明方法得到的恢复图像;图3(d)是何凯明算法得到的初始粗糙透射率;图3(e)是何凯明算法得到的精细透射率;图3(f)是本发明方法得到的优化透射率;

由图3可以看出,何凯明算法得到的粗糙透射率在场景深度突变处的边缘信息丢失,精细透射率在场景深度相同的区域估计不准确,如图3(e)中的交通路牌,且天空区域透射率偏小,而本发明方法得到的优化透射率在路牌处及天空区域更加准确,恢复图像对比度增强,色调真实自然。

实验3,利用本发明方法与现有何凯明改进算法对“House”图进行去雾仿真实验,结果如图4,其中,图4(a)是有雾图像“House”的原图;图4(b)是T.M.Bui算法得到的恢复图像;图4(c)是Ch.-H.Hsieh算法得到的恢复图像;图4(d)是Teng Yu算法得到的恢复图像;图4(e)是本发明方法得到的恢复图像;图4(f)是T.M.Bui算法得到的透射率;图4(g)是Ch.-H.Hsieh算法得到的透射率;图4(h)是Teng Yu算法得到的透射率;图4(i)是本发明方法得到的透射率;

由图4可以看出,T.M.Bui算法得到的透射率在场景深度相同的区域保留了过多的边缘信息,不够平滑,如图4(f)中的墙壁和窗户,导致恢复图像出现过饱和的现象;Ch.-H.Hsieh算法得到的透射率在场景深度突变的区域不能锐利地保持边缘信息,如图4(g)中树木叶子与墙壁交界处,导致此区域的恢复图像出现光晕,且整幅图像去雾不彻底;Teng Yu算法估计透射率时仅仅考虑有雾图像强度值的相似性,并没有考虑深度信息,所以当场景深度相同的区域出现强度值差异较大的物体时,其透射率估计不够准确,如图4(h)中黑色矩形框区域;本发明方法得到的优化透射率在场景深度相同的区域保持平滑,场景深度突变的区域保持锐利的边缘,最终得到的恢复图像对比度增强,细节更加清晰。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1