一种基于雾气浓度特征的图像去雾方法
技术领域
本发明具体涉及一种基于雾气浓度特征的图像去雾方法,属于图像去雾处理技术领域。
背景技术
雾天环境下,由于受到大气中悬浮颗粒的影响,成像设备所采集的图像可视性差、饱和度低,清晰度严重不足。因此,对雾天降质图像进行清晰化处理具有重要的现实意义。
图像去雾方法中效果较好且最通用的为基于大气散射模型的图像去雾方法,该类方法使用大气散射模型来描述雾霾天气条件下的成像过程,依据的大气散射模型如下:
I(x,y)=L∞·J(x,y)+L∞·(1-t(x,y))
其中,I(x,y)表示有雾图像中像素(x,y)的强度值,J(x,y)表示去雾图像中像素(x,y)的强度值,J(x,y)=ρ(x,y)·t(x,y),ρ(x,y)表示有雾图像中像素(x,y)的场景反照率,t(x,y)表示有雾图像中像素(x,y)的透射率,L∞表示全局大气光值。有雾图像的大小与去雾图像的大小相同,并且有雾图像中的像素(x,y)与去雾图像中像素(x,y)相对应,即像素(x,y)处于有雾图像和去雾图像中的相同位置。基于大气散射模型的图像去雾方法的过程就是依次求取有雾图像的全局大气光值和透射率,根据大气散射模型,从有雾图像中的每个像素的强度值恢复出去雾图像中的每个像素的强度值。
现有的图像去雾方法中对有雾图像中大气光区域的定位不准确,求取的全局大气光值准确率低,影响恢复出的去雾图像的效果。有些图像去雾方法中直接将全图最亮像素作为大气光区域,而全图最亮像素极有可能归属于高亮噪声点或者干扰物(如白色物体)。He方法[1]先利用暗通道先验获取有雾图像的暗通道图,然后定位出暗通道图中的最亮的0.1%的像素点,最后选择这些像素中具有最高强度的像素作为大气光区域。Zhu方法[2]利用颜色衰减先验获取有雾图像的深度图,然后定位出深度图中最亮的0.1%的像素点,并将这些像素中具有最高强度的像素作为大气光区域。虽然后两种方法进一步提高了大气光区域定位的精确性,但是其可靠性仍然严重依赖于所用先验知识的有效性,因而在特定条件下存在一定失效的可能,鲁棒性不足。
发明内容
本发明解决的技术问题是:现有图像去雾方法对有雾图像中大气光区域的定位精度低,不能适用于各种有雾图像,鲁棒性差。
为解决上述问题,本发明提出了一种基于雾气浓度特征的图像去雾方法,包括以下步骤:
S1,在有雾图像中定位大气光区域,计算全局大气光值,具体包括:
S101、获取有雾图像,根据下式求取有雾图像中每个像素的雾气浓度特征值:
其中,S(x,y)表示有雾图像中像素(x,y)的雾气浓度特征值,I′(x,y)表示像素(x,y)的亮度分量,表示像素(x,y)的梯度分量,I°(x,y)表示像素(x,y)的饱和度分量,γ1表示亮度权值,γ2表示梯度权值,γ3表示饱和度权值,γ4表示量化误差补偿值;
S102、基于雾气浓度特征值,利用图像分割方法将有雾图像进行分割,获得子场景集{Δ(k),k∈[1,K]},其中Δ(k)表示第k个子场景,K表示子场景的总个数;
S103、在子场景集{Δ(k),k∈[1,K]}中,利用下式筛选出类天空区域:
其中,表示类天空区域,(x,y)表示子场景Δ(k)中的像素,S(x,y)表示像素(x,y)的雾气浓度特征值,|Δ(k)|表示子场景Δ(k)中的像素总数;
S104、选择类天空区域中饱和度分量最低的前1%的像素组成候选像素集,选择候选像素集中亮度分量最大的前10%的像素作为大气光区域,求取大气光区域中所有像素的强度均值作为全局大气光值L∞;
S2,求取有雾图像中每个像素的透射率;
S3,根据全局大气光值和透射率得到去雾图像。
考虑到现有对有雾图像的透射率的计算大都是基于暗通道先验,本质上是一个基于邻域的估计过程,因此估计效果对所涉及的邻域范围敏感。过大的邻域范围(如局部像素块大小为15×15)会提高估计准确性但是会导致较差的边缘特性,过小的邻域范围(如如局部像素块大小为1×1)可以极大的提高边缘特性但是却会因为邻域内信息的缺乏而导致较低的估计准确性。本发明做了进一步改进,S2求取有雾图像中每个像素的透射率,具体包括:
S201、根据S1得到的全局大气光值,求取有雾图像中每个像素分别在局部像素块大小为15×15和局部像素块大小为1×1下的透射率,从而构成第一透射图tα和第二透射图tβ,计算透射率的公式如下:
其中,t(x,y)表示像素(x,y)的透射率,Ω(x,y)表示以有雾图像中的任意一个像素(x,y)为中心的局部像素块,Ic(x',y')表示局部像素块Ω(x,y)中任意一个像素(x',y')的R、G、B三个通道的任意一个通道的强度值,L∞表示全局大气光值;
S202、将第一透射图tα分解为不同的频率分量,得到第一透射频率分量集将第二透射图tβ分解为不同的频率分量,得到第二透射频率分量集其中表示第一透射频率第i个分量,表示第二透射频率第i个分量;
S203、使用下式将第一透射频率分量和第二透射频率分量进行融合,得到M+1个融合频率分量:
其中,表示融合频率第i个分量,
S204、将M+1个融合频率分量重构,得到融合透射图tfusion;
S205、判断S103获得的类天空区域是否为天空区域,具体包括:
S2051、利用下式计算天空场景雾气浓度值:
其中,表示天空场景雾气浓度值,(x,y)表示类天空区域中任意一个像素,S(x,y)表示像素(x,y)的雾气浓度特征值,表示求取类天空区域中所有像素的雾气浓度特征值的均值;
S2052、利用下式计算天空场景面积占比:
其中,P表示天空场景面积占比,表示类天空区域中的像素总数,res表示有雾图像的分辨率;
S2053、若天空场景雾气浓度值大于等于0.6且天空场景面积占比大于等于0.2,则判定类天空区域为天空区域,其中Δsky表示天空区域,否则执行S3;
S206、利用下式对有雾图像中每个像素的融合透射率进行一次修正,得到一次修正透射率:
其中,t'fusion(x,y)表示有雾图像中的像素(x,y)的一次修正透射率,S(x,y)表示像素(x,y)的雾气浓度特征值,表示求取天空区域Δsky中所有像素的雾气浓度特征值的均值,tfusion(x,y)表示像素(x,y)的融合透射率;
S207、使用下式对有雾图像中每个像素的一次修正透射率进行二次修正,得到二次修正透射率作为该像素的透射率:
其中,tfinal(x,y)表示有雾图像中的像素(x,y)的二次修正透射率,t'fusion(x,y)表示像素(x,y)的一次修正透射率,表示像素(x,y)的融合透射率的梯度分量,表示像素(x,y)的二次修正透射率的梯度分量,表示求二范数的平方,α1表示第一正则化因子,α2表示第二正则化因子,α3表示第三正则化因子。
本发明在透射率计算的过程中,使用融合技术将大邻域范围下的透射率和小邻域范围下的透射率进行融合获得融合透射率,在边缘特性和估计准确度上获得平衡,对融合透射率连续进行两次修正,最终获得有雾图像的透射率,提高了去雾效果,减少了过增强和色偏现象。
本发明的有益效果:本发明方法根据求解出的有雾图像的雾气浓度特征值将有雾图像分割成多个子场景,识别出类天空区域,在类天空区域中定位大气光区域,从而求取出全局大气光值。本发明方法在去雾处理过程中能准确定位大气光区域,不易受有雾图像中高亮噪声点或干扰物的影响,从而得到精确的全局大气光值,获得更好的去雾效果,可应用于各种有雾图像的去雾,鲁棒性好。
附图说明
图1是本发明实施例一的流程图。
图2是本发明实施例二对具体图像进行去雾获得的中间效果流程图。
图3是本发明实施例一和现有图像去雾方法定位大气光区域的第一对比图。
图4是本发明实施例一和现有图像去雾方法定位大气光区域的第二对比图。
图5是本发明实施例二和现有图像去雾方法对第一有雾图像进行去雾处理的效果对比图。
图6是本发明实施例二和现有图像去雾方法对第二有雾图像进行去雾处理的效果对比图。
图7是本发明实施例二和现有图像去雾方法对薄雾图像进行去雾处理的效果对比图。
图8是本发明实施例二和现有图像去雾方法对浓雾图像进行去雾处理的效果对比图。
具体实施方式
下面将通过实施例结合附图详细描述本发明的具体流程。
实施例一
本发明实施例一提出了一种基于雾气浓度特征的图像去雾方法,如图1所示,包括以下步骤:
S1,在有雾图像中定位大气光区域,计算全局大气光值,具体包括:
S101、获取有雾图像,根据下式求取有雾图像的每个像素的雾气浓度特征值:
其中,S(x,y)表示有雾图像中的像素(x,y)的雾气浓度特征值,I′(x,y)表示像素(x,y)的亮度分量,表示像素(x,y)的梯度分量,I°(x,y)表示像素(x,y)的饱和度分量,γ1表示亮度权值,γ2表示梯度权值,γ3表示饱和度权值,γ4表示量化误差补偿值。
在具体处理过程中,设置γ1=0.9313,γ2=0.1111,γ3=-1.4634,γ4=-0.0213。
S102、基于雾气浓度特征值,利用图像分割方法对有雾图像进行分割,获得子场景集{Δ(k),k∈[1,K]},其中Δ(k)表示第k个子场景,K表示子场景的总个数。
在具体处理过程中,可采用高斯混合模型算法、K-means聚类算法、FCM聚类算法、Random walks算法等图像分割方法对有雾图像进行分割,使用上述图像分割方法进行分割为现有技术,在此不再详细介绍具体分割流程。
S103、在子场景集{Δ(k),k∈[1,K]}中,利用下式筛选出类天空区域:
其中,表示类天空区域,即在K个子场景中值最大的子场景,(x,y)表示子场景Δ(k)中的像素,S(x,y)表示像素(x,y)的雾气浓度特征值,|Δ(k)|表示子场景Δ(k)中的像素总数。
S104、选择类天空区域中饱和度分量最低的前1%的像素组成候选像素集,选择候选像素集中亮度分量最大的前10%的像素作为大气光区域,求取大气光区域中所有像素的强度均值作为全局大气光值L∞。
S2、求取有雾图像中每个像素的透射率。
具体的,该步骤可采用任意一种现有图像去雾方法中的透射率计算方法,比如He方法中基于暗原色先验信息估算透射率,Zhang方法中采用双区域滤波估算透射率等等。
S3、根据全局大气光值和透射率得到去雾图像。
具体的,根据S1求得的全局大气光值和S2求得的透射率,通过下式求取每个像素的场景反照率:
其中,ρ(x,y)表示有雾图像中的像素(x,y)的场景反照率,I(x,y)表示有雾图像中的像素(x,y)的强度值,L∞表示全局大气光值,t(x,y)表示有雾图像中的像素(x,y)的透射率。
再通过下式求取与有雾图像中的每个像素相对应的去雾图像中的每个像素的强度值,从而组成去雾图像:
J(x,y)=L∞·ρ(x,y) (4)
其中,J(x,y)为去雾图像中的像素(x,y)的强度值。
大气光区域定位效果评价
使用本发明实施例一、He方法[1]、Zhu方法[2]和Shwartz方法[3]对相同的图像进行大气光区域的定位,图3和图4为效果对比图。图3和图4中矩形框内为本发明实施例一的定位结果,三角形框内为He方法的定位结果,圆形框内为Zhu方法的定位结果,菱形框内为Shwartz方法的定位结果,从图3和图4中可以看出,本发明方法对有雾图像中大气光区域的定位准确率更高,不易受有雾图像中高亮噪声点或干扰物的影响。
实施例二
图2为本发明实施例二具体应用在一个有雾图像的去雾过程中的流程图,图中有各步骤的效果图,结合图2对本发明实施例二做详细说明。
本发明实施例二提出了一种基于雾气浓度特征的图像去雾方法,包括以下步骤:
S1,在有雾图像中定位大气光区域,计算全局大气光值,具体包括:
S101、获取有雾图像,如图2(a),根据下式求取有雾图像的每个像素的雾气浓度特征值:
其中,S(x,y)表示有雾图像中的像素(x,y)的雾气浓度特征值,I′(x,y)表示像素(x,y)的亮度分量,表示像素(x,y)的强度的梯度分量,I°(x,y)表示像素(x,y)的饱和度分量,γ1表示亮度权值,γ2表示强度权值,γ3表示饱和度权值,γ4表示补偿值。
在具体处理过程中,设置γ1=0.9313,γ2=0.1111,γ3=-1.4634,γ4=-0.0213,有雾图像中所有像素的雾气浓度特征值构成雾气浓度特征图,如图2(b)所示。
S102、基于雾气浓度特征值,利用图像分割方法对有雾图像进行分割,获得子场景集{Δ(k),k∈[1,K]},其中Δ(k)表示第k个子场景,K表示子场景的总数。
在具体处理过程中,可采用高斯混合模型算法、K-means聚类算法、FCM聚类算法、Random walks算法等图像分割方法将有雾图像进行分割,上述图像分割方法为现有技术,在此不再详细介绍具体分割流程。本发明具体实施例中采用高斯混合模型算法进行分割,具体分割步骤参见Reynolds方法[4],图2(c)为场景分割结果图。
S103、在子场景集{Δ(k),k∈[1,K]}中,利用下式筛选出类天空区域:
其中,表示类天空区域,即在K个子场景中值最大的子场景,(x,y)表示子场景Δ(k)中的像素,S(x,y)表示像素(x,y)的雾气浓度特征值,|Δ(k)|表示子场景Δ(k)中的像素总数。
如图2(d)所示,图中白色区域为筛选出的类天空区域。
S104、选择类天空区域中饱和度分量最低的前1%的像素组成候选像素集,选择候选像素集中亮度分量最大的前10%的像素作为大气光区域,求取大气光区域中所有像素的强度均值作为全局大气光值L∞。
S2、求取有雾图像中每个像素的透射率,具体包括:
S201、根据S1得到的全局大气光值,求取有雾图像中的每个像素分别在两个邻域范围下的透射率,从而构成第一透射图tα和第二透射图tβ,计算透射率的公式如下:
其中,t(x,y)表示像素(x,y)的透射率,Ω(x,y)表示以有雾图像中的任意一个像素(x,y)为中心的局部像素块,Ic(x',y')表示局部像素块Ω(x,y)中任意一个像素(x',y')的R、G、B三个通道的任意一个通道的强度值,L∞表示全局大气光值。
具体为,设定局部像素块的大小为15×15,利用上式求取有雾图像中的每个像素的透射率,从而构成第一透射图tα,如图2(f)所示;设定局部像素块的大小为1×1,利用上式求取有雾图像中的每个像素的透射率,从而构成第一透射图tβ,如图2(g)所示。
S202、将第一透射图tα分解为不同的频率分量,得到第一透射频率分量集共M+1个频率分量,将第二透射图tβ分解为不同的频率分量,得到第二透射频率分量集共M+1个频率分量,其中表示第一透射频率第i个分量,表示第二透射频率第i个分量。
具体的,将透射图分解为不同的频率分量为现有技术,本发明实施例中采用Burt方法[5]公开的分解方法步骤,在此不再详细描述。
S203、使用下式将M+1个第一透射频率分量和M+1个第二透射频率分量分别进行融合,得到M+1个融合频率分量:
其中,表示融合频率第i个分量,
S204、将M+1个融合频率分量重构,得到融合透射图tfusion,融合透射图tfusion由有雾图像中所有像素的融合透射率组成,如图2(h)所示。
S205、判断S103获得的类天空区域是否为天空区域,包括:
S2051、利用下式计算天空场景雾气浓度值:
其中,表示天空场景雾气浓度值,(x,y)表示类天空区域中任意一个像素,S(x,y)表示像素(x,y)的雾气浓度特征值,表示求取类天空区域中所有像素的雾气浓度特征值的均值;
S2052、利用下式计算天空场景面积占比:
其中,P表示天空场景面积占比,表示类天空区域中的像素总数,res表示有雾图像的分辨率;
S2053、若天空场景雾气浓度值大于等于0.6且天空场景面积占比大于等于0.2,则判定类天空区域为天空区域,其中Δsky表示天空区域,否则执行S3。
该判断步骤也可在执行S103步骤后执行,如图2所示,不同的是若判定类天空区域不是天空区域,则执行S104。
S206、利用下式对有雾图像中每个像素的融合透射率进行一次修正,得到一次修正透射率:
其中,t'fusion(x,y)为有雾图像中的像素(x,y)的一次修正透射率,S(x,y)表示像素(x,y)的雾气浓度特征值,表示求取天空区域Δsky中所有像素的雾气浓度特征值的均值,tfusion(x,y)表示像素(x,y)的融合透射率。
有雾图像中,天空区域的每个像素的一次修正透射率为该像素的雾气浓度特征值与天空区域中所有像素的雾气浓度特征的均值比再乘上该像素的融合透射率,考虑到透射率的取值范围,所以使用对天空区域的像素的融合透射率进行修正;而非天空区域中的每个像素的一次修正透射率为其融合透射率,即t'fusion(x,y)=tfusion(x,y)。有雾图像中所有像素的一次修正透射率组成有雾图像的一次修正透射图tfusion,如图2(i)所示。
S207、使用下式对有雾图像中每个像素的一次修正透射率进行二次修正,得到二次修正透射率作为该像素的透射率:
其中,tfinal(x,y)表示有雾图像中的像素(x,y)的二次修正透射率,t'fusion(x,y)表示像素(x,y)的一次修正透射率,表示像素(x,y)的融合透射率的梯度分量,表示像素(x,y)的二次修正透射率的梯度分量,表示求二范数的平方,α1表示第一正则化因子,α2表示第二正则化因子,α3表示第三正则化因子。
具体处理过程中,设置α1=1.073,α2=0.801,α3=1.697,有雾图像中所有像素的二次修正透射率组成有雾图像的二次修正透射图tfinal,如图2(j)所示。
S3、根据S1求得的全局大气光值和S2求得的有雾图像中每个像素的二次修正透射率,通过下式求取每个像素的场景反照率:
其中,ρ(x,y)表示有雾图像中的像素(x,y)的场景反照率,I(x,y)表示有雾图像中的像素(x,y)的强度值,L∞表示全局大气光值,tfinal(x,y)表示有雾图像中的像素(x,y)的二次修正透射率。
再通过下式求取与有雾图像中的每个像素相对应的去雾图像中的每个像素的强度值,从而组成去雾图像,如图2(k)所示:
J(x,y)=L∞·ρ(x,y) (4)
其中,J(x,y)为去雾图像中的像素(x,y)的强度值。
去雾效果评价
使用本发明实施例二、He方法[1]、Meng方法[6]、Ancuti方法[7]、Yu方法[8]、Tarel方法[9]和Choi方法[10]对相同图像进行去雾处理,图5至图8为去雾效果对比图。图5(a)和图6(a)为有雾图像,图7(a)为薄雾图像,图8(a)为浓雾图像,图5(b)、6(b)、7(b)和8(b)为使用He方法得到的去雾图像,图5(c)、6(c)、7(c)和8(c)为使用Meng方法得到的去雾图像,图5(d)、6(d)、7(d)和8(d)为使用Ancuti方法得到的去雾图像,图5(e)、6(e)、7(e)和8(e)为使用Yu方法得到的去雾图像,图5(f)、6(f)、7(f)和8(f)为使用Tarel方法得到的去雾图像,图5(g)、6(g)、7(g)和8(g)为使用Choi方法得到的去雾图像,图5(h)、6(h)、7(h)和8(h)为使用本发明实施例二得到的去雾图像。从图5至图8可以看出,本发明方法与现有去雾图像相比,去雾消除更为彻底、所恢复出的纹理细节更多、过增强和色偏现象更少。
参考文献
[1]He,K.;Sun,J.;Tang,X.Single image haze removal using dark channelprior.IEEE Trans.Pattern Anal.Mach.Intell.33(12)(2011)2341–2353.
[2]Zhu,Q.;Mai,J.;Shao,L.A fast single image haze removal algorithmusing color attenuation prior.IEEE Transactions on Image Processing,2015,24,3522–3533.
[3]Shwartz,S.;Namer,E.;Schechner,Y.Y.Blind haze separation.InProceedings of the IEEE Computer Society Conference on Computer Vision andPattern Recognition,Washington,DC,USA,17–22June 2006,1984–1991.
[4]Reynolds,D.A.;Quatieri,T.F.;Dunn,R.B.Speaker verification usingadapted Gaussian mixture models.Digit.Signal Process.2000,10,19–41.
[5]Burt,P.J.;Adelson,E.H.The Laplacian pyramid as a compact imagecode.IEEE Trans.Commun.1983,31,532–540.
[6]Meng,G.;Wang,Y.;Duan,J.;Xiang,S.;Pan,C.Efficient image dehazingwith boundary constraint and contextual regularization.IEEE internationalconference on computer vision,2013,617-624.
[7]Ancuti,C.O.;Ancuti,C.Single image dehazing by multi-scalefusion.IEEE Trans.Image Process.2013,22,3271–3282.
[8]Yu,T.;Riaz,I.;Piao,J.;Shin,H.Real-time single image dehazing usingblock-to-pixel interpolation and adaptive dark channel prior.IET ImageProcess.2015,9,725–734.
[9]Tarel,J.P.;Hautiere,N.Fast visibility restoration from a singlecolor or gray level image.Computer Vision,2009,12,2201-2208.
[10]Choi,L.K.;You,J.;Bovik,A.C.Referenceless prediction of perceptualfog density and perceptual image defogging.IEEE Trans.Image Process.2015,24,3888–3901.