本发明涉及计算机视觉、图像处理领域中恢复图像清晰度的算法,特别涉及去雾算法。
背景技术:
图像去雾算法是一种重要的恢复图像清晰度的算法,其主要目的去除图像中存在的雾气,从而恢复原始的无雾图像,可广泛应用于交通运输、视频监控、卫星遥感等对清晰图像有较高需求的行业。
在众多的图像去雾算法中,基于卷积神经网络的去雾算法是一种较为重要的方法。该类方法主要思想是:首先,提取与雾的大小程度相关的特征;之后,通过学习的方法学习到特征与透射率或透射率相关量之间的映射关系;最终,利用学习到的映射关系估计输入图像的透射率或透射率相关量,恢复出原始无雾图像。2014年,tang[1]提出用暗通道特征、最大对比度、色调差异、最大饱和度这几种特征来反映雾的大小程度。用这几种特征来训练随机森林,并用训练好的随机森林来估计有雾图像块的透射率,从而恢复出原始无雾图像。然而,由于有的特征并不能完全反映,且浓雾区域的特征非常的不明显且局部区域之间的特征非常相似,因而导致随机森林对透射率的估计存在一定程度的偏差。2015年,zhu[2]发现亮度与饱和度的差值能够反映雾的大小程度。基于这一先验知识,假设图像距相机的距离与亮度及饱和度存在线性关系,并通过训练得到该模型的具体表达形式。通过这一表达式,预测有雾图片图像块的深度,进而估计出该图像块对应的透射率,从而恢复出原始无雾图像。但是,由于该方法同样存在着一定的估计误差,主要有两方面原因造成:首先,在某些区域,雾的大小程度与亮度及饱和度并不存在线性关系;其次,浓雾区域,各个局部区域的亮度及饱和度过于相近,使得该线性模型对于深度预测的准确性有所降低。2016年,ren[3]采用两个基于不同尺度的卷积神经网络相结合的方法来预测透射率。该方法将原始有雾图像作为两个网络共同的输入,其中一个卷积网络用于估计粗尺度的透射率,另一个用于估计细尺度的透射率,将两个网络相结合来实现对透射率的估计。然而,由于输入图像在浓雾区域的像素值变化十分平缓,使得网络估计的投射率图在浓雾区域趋于一致,无法反映浓雾区域透射率的变化。2016年,cai[4]利用有雾图像块的r、g、b三个通道的特征对卷积神经网络进行训练,利用训练好的网络来估计输入图像块的透射率。与上述几种方法一样,此方法对透射率的估计同样存在着偏差。该误差主要是由于输入的特征无法充分反映雾的大小程度造成的。同样地,2016年,ling[5]也利用有雾图像的r、g、b三个通道的特征来训练卷积神经网络。类似地,该方法也存在这对透射率估计得偏差。
综上,当前基于卷积神经网络的去雾算法都存在着对透射率估计不准确的问题,而这种问题会最终导致最终恢复出的结果存在着颜色失真及细节不清晰的问题。而针对这种透射率估计不准确的问题,目前未见有针对性地采取方法来尽可能缩小这种误差的文献报道。
参考文献
[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]w.ren,s.liu,h.zhang,j.pan,x.cao,m.yang,"singleimagedehazingviamulti-scaleconvolutionalneuralnetworks,"inproc.eur.conf.comput.vis.,2016.
[4]b.cai,x.xu,k.jia,c.qing,d.tao,"dehazenet:anend-to-endsystemforsingleimagehazeremoval,"ieeetrans.imageprocess.,vol.25,no.11,pp.5187–5198,2016.
[5]z.ling,g.fan,y.wang,x.lu,"learningdeeptransmissionnetworkforsingleimagedehazing,"inproc.ieeeint.conf.imageprocess.,2016.
技术实现要素:
本发明针对现有方法中存在的对透射率的估计误差没有采取针对性的措施进行减小的问题,提出一种基于误差补偿的图像去雾算法。技术方案如下:
一种基于误差补偿的图像去雾算法,该算法首先训练透射率估计网络wt和透射率误差估计网络we:
①透射率估计网络wt采用nin卷积神经网络结构,训练步骤如下:
(1)任意选取m个大小为n×n的无雾图像块
其中,at=(255,255,255)t;
(2)将
(3)将色度特征图
②透射率误差估计网络we,采用nin卷积神经网络结构,训练步骤如下:
(1)任意选取l个大小为n×n的无雾图像块
其中,ae=(255,255,255)t;
(2)将
(3)将每一个图像块
(4)将色度特征图
算法包括下列步骤:
步骤1:将有雾图像ih划分成n个大小为n×n的不重叠的图像块p1,p2,......,pn。同时,设ih去雾后的结果为jf;
步骤2:初始化i=1;
步骤3:取图像块pi,将图像块pi从rgb颜色空间转换到hsv颜色空间,提取色度特征图hi及饱和度特征图si,计算pi的梯度特征图gi;
步骤4:将hi、si及gi输入到透射率估计网络wt中,得到pi的透射率的估计值
步骤5:将步骤3中提取的特征图hi、si及gi输入到透射率误差估计网络we中,估计wt对pi的透射率的估计误差
步骤6:将
步骤7:利用透射率ti,计算pi对应的无雾图像块ji,公式如下:
其中,
步骤8:将ji赋值给jf中对应pi位置的图像块
步骤9:判断i的值是否小于n,如果小于n,执行步骤10;否则,结束循环;
步骤10:将i加1,返回步骤3;
本方法采用了一种基于误差补偿的图像去雾算法。该方法通过学习的方法得到输入特征与透射率估计误差之间的关系,并利用这种关系来估计对透射率的估计可能存在的误差,从而减小透射率的估计误差。与以往的基于卷积神经网络的去雾算法相比,本发明针对性设计了透射率误差估计网络估计误差,大大减小了透射率估计得误差,进而保证了恢复出的无雾图像无颜色失真,提高了图像的质量。
附图说明
图1本算法流程图。
具体实施方式
本发明提出一种基于误差补偿的图像去雾算法。首先,提取输入图像块的色度、饱和度及梯度特征。之后,将提取的特征输入到透射率估计网络中,估计出一个大致的透射率值;此外,将该特征输入到另一个透射率估计误差网络中,估计前一个网络对透射率值的估计误差。将两个网络的估计结果相结合,得到最终的透射率值,并根据雾天图像的成像模型恢复出原始无雾图像。具体步骤如下:
①透射率估计网络wt采用nin卷积神经网络结构,训练步骤如下:
(1)选取m个大小为n×n的无雾图像块
其中,y为
(2)将
(3)将色度特征图
其中,
②透射率误差估计网络we,采用nin卷积神经网络结构,训练步骤如下:
(1)选取l个大小为n×n的无雾图像块
其中,y为
(2)将
(3)将
(4)将色度特征图
其中,
算法包括下列步骤:
步骤1:将有雾图像ih划分成n个大小为n×n的不重叠的图像块p1,p2,......,pn,设ih去雾后的结果为jf;
步骤2:初始化i=1;
步骤3:提取图像块pi,将其转换至hsv颜色空间,提取其色度特征图hi、饱和度特征图si;计算梯度特征图gi,大小为n×n;
步骤4:将步骤3中得到的特征图hi、si及gi输入到预先训练好的透射率估计网络wt中,得到pi的透射率的估计值
步骤5:将步骤3中提取的特征图hi、si及gi输入到预先训练好的透射率误差估计网络we中,估计wt对pi的透射率的估计误差
步骤6:将
步骤7:利用透射率ti,计算pi对应的无雾图像块ji,公式如下:
其中,y为pi的一个像素点,
步骤8:将ji赋值给jf中对应pi位置的图像块
其中,y表示ji中任意像素点;
步骤9:判断i的值是否小于n,如果小于n,执行步骤10;否则,结束循环;
步骤10:将i加1,返回步骤3。