基于区域划分及浓雾预处理的卷积神经网络去雾算法的制作方法

文档序号:12306666阅读:363来源:国知局

本发明涉及计算机视觉、图像处理领域恢复图像清晰度的算法,特别涉及采用学习的方法进行去雾的算法



背景技术:

图像去雾算法是一种从有雾图像中恢复出原始无雾图像的算法,主要目的是提高受到雾的影响而成像质量恶化的图像的清晰度,广泛应用于交通运输、卫星遥感、视频监控、国防军事等对图像质量有较高要求的行业。

当前,很多方法致力于在学习的框架下,通过学习反映雾的大小程度的特征与透射率之间的关系来实现对透射率的预测,最终通过雾天图像的成像模型恢复原始无雾图像。该类方法的研究重点是如何提取与雾的大小相关的特征来提高对透射率的预测准确性。2014年,tang[1]提出直接从有雾图像块中提取暗通道、最大对比度、色调差异、最大饱和度这几种能反映雾的大小程度的特征。为了保证对透射率预测的准确性及鲁棒性,每一种特征又同时提取了不同的尺度。最终,通过训练好的随机森林来实现对透射率的估计。在自然场景下,该方法虽然对薄雾区域有较好的效果,但对于浓雾区域的透射率估计得准确度却大大降低。其主要原因是浓雾区域的光线比薄雾区域的光线受到更大的衰减及散射的影响,使得浓雾区域的各种特征非常的不明显且高度近似,严重降低了随机森林对这部分区域透射率预测的准确性。2015年,zhu[2]发现亮度与饱和度的差值能够很好地反映雾的大小。根据这一先验知识,通过学习的方法得到有雾条件下景物的深度与饱和度和亮度之间的关系。利用这一关系,对有雾图像中景物的深度进行估计,从而计算出透射率,最终恢复原始无雾图像。同样,该方法并没有考虑到浓雾区域特征非常的不明显以及该区域图像块之间特征的极度相似性,使得估计出的深度与亮度和饱和度之间关系的模型无法适用于浓雾区域。2015年,wang[3]从局部区域提取对比度直方图及暗通道特征来训练svm分类器,通过训练好的svm分类器来判断图片中天气的种类以及图片清晰度的恶化程度。然而,由于浓雾区域细节消失较为严重,使得计算得到的对比度往往只集中在很小的范围内。此外,由于浓雾区域亮度值变化较小,使得局部图像块得到的暗通道特征可区分性很小。综上两方面原因,使得该方法无法应用于浓雾区域。2016年,ren[4]将两个卷积网络结合起来估计透射率。该方法将有雾图像作为输入,同时输入给粗尺度网络及细尺度网络,并将两个网络相结合,最终输出估计的透射率图。但由于浓雾区域的特征非常的近似,且由于网络采用的是上采样及池化操作,使得最终得到的透射率图在浓雾区域过于的平滑,无法很好地体现差异性,导致最终恢复出来的图像在浓雾区域细节不够清晰。2016年,cai[5]将原始有雾图像的图像块输入到卷积神经网络,通过卷积网络估计图像块的透射率,从而恢复出原始无雾图像。综上,由于浓雾区域本身存在相关特征非常不明显以及局部区域之间特征高度相似,使得上述基于学习的方法对于浓雾区域透射率预测的准确度大大降低,最终导致对于浓雾区域的去雾效果很不理想。

参考文献:

[1]k.tang,j.yang,j.wang,"investigatinghaze-relevantfeaturesinalearningframeworkforimagedehazing,"inproc.ieeeconf.comput.vis.patternrecognit.,2014.

[2]q.zhu,j.mai,l.shao,"afastsingleimagehazeremovalalgorithmusingcolorattenuationprior,"ieeetrans.imageprocess.,vol.24,no.11,pp.3522–3533,2015.

[3]c.wang,j.ding,l.chen,"hazedetectionandhazedegreedegreeestimationusingdarkchannelchannelsandcontrasthistograms,"inproc.ieeeint.conf.inf.,commun.signalprocess.,2015.

[4]w.ren,s.liu,h.zhang,j.pan,x.cao,m.yang,"singleimagedehazingviamulti-scaleconvolutionalneuralnetworks,"inproc.eur.conf.comput.vis.,2016.

[5]b.cai,x.xu,k.jia,c.qing,d.tao,"dehazenet:anend-to-endsystemforsingleimagehazeremoval,"ieeetrans.imageprocess.,vol.25,no.11,pp.5187–5198,2016.



技术实现要素:

本发明的主要目的是针对现有基于学习的去雾算法存在的对于浓雾区域的透射率估计不准确的问题,提出一种对浓薄雾图像块进行区分处理及对浓雾图像块进行预处理的图像去雾算法。技术方案如下:

一种基于区域划分及浓雾预处理的卷积神经网络去雾算法,该算法首先训练该算法首先训练卷积神经网络w1及w2,w1采用lenet网络结构,训练步骤如下:

(1)选取m个大小为r×r的无雾图像块对于每一个图像块选取透射率值进行加雾,使得加雾后的图像块的暗通道值大于阈值t,对加雾的公式如下:

其中,y为内任一像素点,表示在y点r、g、b颜色通道的像素值,at=(255,255,255)t

暗通道值的计算公式如下:

其中,c为r、g、b颜色通道中的一个,表示在y点某一颜色通道的像素值,atc表示at在同一颜色通道的像素值,ω表示内所有像素点;

(2)对进行映射,结果为公式如下:

其中,βk为常数,表示映射函数第k+1的系数,k∈{1,2,......,k},在y点某一通道的像素值;

(3)将作为w1的训练数据,采用批量梯度下降算法对w1进行训练,迭代次数为n1,目标函数如下:

其中,表示w1在第d次迭代,d∈{1,2,......,n1},对的估计值;表示第d次迭代的误差的平方和;

w2采用nin网络结构,训练步骤如下:

(1)任意选取l个大小为r×r的无雾图像块对于每一个图像块j∈{1,2,......,l},任意选取一个透射率值进行加雾,使得加雾后的图像块的暗通道值小于阈值t;对加雾的公式如下:

其中,表示在y点r、g、b颜色通道的像素值,ae=(255,255,255)t

暗通道值的计算公式如下:

其中,表示在y点某一颜色通道的像素值,aec表示ae在同一颜色通道的像素值,ω表示内所有像素点;

(2)计算的暗通道特征图公式如下:

其中,ω′(y)表示以y点为中心,大小为r×r的邻域,y′为该邻域内的像素点,如果ω′(y)超出的范围,则超出的像素点不参与计算;

(3)将转换到hls颜色空间,提取器色度分量

(4)将色度图暗通道特征图作为w2的训练数据,采用批量梯度下降算法对w2进行训练,迭代次数为n2,目标函数如下:

其中,表示w2在第d次迭代,d∈{1,2,......,n2},对的估计值;表示第d次迭代的误差的平方和;

算法步骤如下:

步骤1:将有雾图像ih划分成n个大小为r×r的不重叠的图像块p1,p2,......,pn,设ih去雾后的结果为jf,a=(255,255,255)t

步骤2:对于每个图像块pi,计算pi的暗通道值di,公式如下:

其中,ω表示pi内所有像素点,为pi在y点某一颜色通道的像素值,ac为a在同一通道的像素值;

步骤3:如果di≥t,则认为pi为浓雾图像块,转至步骤4;否则,判定pi为薄雾图像块,转至步骤6;

步骤4:对pi进行映射,结果为公式如下:

其中,表示在y点某一颜色通道的像素值;

步骤5:将输入w1中,估计透射率ti;

步骤6:计算pi的暗通道特征图dmi,计算公式如下:

如果ω′(y)超出pi的范围,则超出的像素点不参与计算;

步骤7:将有pi转换到hls颜色空间,提取色度分量hi;

步骤8:将dmi及hi输入到w2中,估计透射率ti;

步骤9:利用步骤5或8中得到的透射率ti,对pi进行去雾,得到无雾图像块

步骤10:将赋值给jf中对应pi位置的图像块

本发明采用了一种基于浓薄雾区域划分及浓雾区域预处理的卷积神经网络去雾算法,将图像块划分为浓雾图像块及薄雾图像块,并对每类图像块采用相对应的卷积网络。特别低,对浓雾图像块,在输入神经网络之前进行增强,使其中的细节信息显露出来。与以往的基于学习的图像去雾算法相比,能够克服现有方法中存在的由于浓雾区域特征的不明显行性及高度的相似性而导致的对透射率估计严重不准确的问题,提高了透射率估计得准确性,避免了由于估计不准确而导致的颜色失真及细节不清晰的问题。

附图说明

本发明方法流程图

具体实施方式

本专利提出了一种基于浓薄雾区域划分及浓雾区域预处理的卷积神经网络去雾算法。首先,提取有雾图像中局部图像块的暗通道值并与阈值进行比较,判断该图像块为浓雾图像块或薄雾图像块。如果经过判断是浓雾图像块,则对该图像块进行增强处理,然后输入到卷积神经网络中,通过卷积网络来预计该图像块的透射率;如果是薄雾图像块,则提取该图像块的色度特征图及暗通道特征图,输入到卷积神经网络来判断该图像块的透射率。最终,在得到图像块透射率值的基础上,通过雾天图像的成像模型,计算出原始的无雾图像。具体方案如下:

该算法首先训练卷积神经网络w1及w2。w1采用lenet网络结构,训练步骤如下:

(1)任意选取m个大小为r×r的无雾图像块对于每一个图像块j∈{1,2,......,m},任意选取一个透射率值进行加雾,使得加雾后的图像块的暗通道值大于阈值t。对加雾的公式如下:

其中,y为内任一像素点,表示在y点r、g、b颜色通道的像素值,at=(255,255,255)t

暗通道值的计算公式如下:

其中,c为r、g、b颜色通道中的一个,表示在y点某一颜色通道的像素值,atc表示at在同一颜色通道的像素值,ω表示内所有像素点。

(2)对进行映射,结果为公式如下:

其中,βk为常数,表示映射函数第k+1的系数,k∈{1,2,......,k},在y点某一通道的像素值。

(3)将作为w1的训练数据,采用批量梯度下降算法对w1进行训练,迭代次数为n1,目标函数如下:

其中,表示w1在第d次迭代,d∈{1,2,......,n1},对的估计值;表示第d次迭代的误差的平方和。

w2采用nin网络结构,训练步骤如下:

(1)任意选取l个大小为r×r的无雾图像块对于每一个图像块j∈{1,2,......,l},任意选取一个透射率值进行加雾,使得加雾后的图像块的暗通道值小于阈值t。对加雾的公式如下:

其中,表示在y点r、g、b颜色通道的像素值,ae=(255,255,255)t

暗通道值的计算公式如下:

其中,表示在y点某一颜色通道的像素值,aec表示ae在同一颜色通道的像素值,ω表示内所有像素点。

(2)计算的暗通道特征图公式如下:

其中,ω′(y)表示以y点为中心,大小为r×r的邻域,y′为该邻域内的像素点。如果ω′(y)超出的范围,则超出的像素点不参与计算。

(3)将转换到hls颜色空间,提取器色度分量

(4)将色度图暗通道特征图作为w2的训练数据,采用批量梯度下降算法对w2进行训练,迭代次数为n2,目标函数如下:

其中,表示w2在第d次迭代,d∈{1,2,......,n2},对的估计值;表示第d次迭代的误差的平方和。

算法步骤如下:

步骤1:将有雾图像ih划分成n个大小为r×r的不重叠的图像块p1,p2,......,pn,设ih去雾后的结果为jf,a=(255,255,255)t

步骤2:对于每个图像块pi,计算pi的暗通道值di,公式如下:

其中,ω表示pi内所有像素点,为pi在y点某一颜色通道的像素值,ac为a在同一通道的像素值。

步骤3:如果di≥t,则认为pi为浓雾图像块,转至步骤4;否则,判定pi为薄雾图像块,转至步骤6。

步骤4:对pi进行映射,结果为公式如下:

其中,表示在y点某一颜色通道的像素值。

步骤5:将输入w1中,估计透射率ti。

步骤6:计算pi的暗通道特征图dmi,计算公式如下:

如果ω′(y)超出pi的范围,则超出的像素点不参与计算。

步骤7:将有pi转换到hls颜色空间,提取色度分量hi。

步骤8:将dmi及hi输入到w2中,估计透射率ti。

步骤9:利用步骤5或8中得到的透射率ti,对pi进行去雾,得到无雾图像块公式如下:

步骤10:将赋值给jf中对应pi位置的图像块公式如下:

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