本发明属于图像处理技术领域,特别涉及一种基于梯度域和深度学习的图像运动模糊盲去除方法。
背景技术:
在图像获取、传输、记录等过程中,可能因为实际环境恶劣、成像设备不完善、设备与目标相对运动等因素,使实际图像存在不同程度上退化降质,如噪声、模糊和几何失真等,这些都会对数字图像带来很大的影响。某些原因会导致图像模糊,例如大气湍流造成的高斯模糊,相机曝光期间相对运动引起的运动模糊,以及拍摄时拍摄物处于相机焦距之外造成的散焦模糊,等等。因此,去除模糊,得到清晰图像非常重要。
现有的图像去模糊算法主要有两类:第一类,利用自然图像的边缘先验信息恢复清晰边缘。由于自然图像的梯度可以通过一种重尾分布方式建模,利用先验信息对图像去模糊,但需要解决非凸性问题。此外,由于采优化方法公式比较复杂,并且模糊核估计过程也很复杂,导致计算成本较高。第二类,运用深度学习网络实现图像去模糊。深度学习网络主要运用于图像恢复方面目前,基于深度学习网络的图像去模糊方法大都忽略了图像的高频信息,使得图像的纹理细节在去模糊的过程中丢失,这样不仅花费时间较长,而且会导致图像的振铃效应更加明显。
技术实现要素:
本发明的目的,在于提供一种基于梯度域和深度学习的图像运动模糊盲去除方法,其可有效地抑制图像振铃效应和减弱图像噪声,去运动模糊效果较好。
为了达成上述目的,本发明的解决方案是:
一种基于梯度域和深度学习的图像运动模糊盲去除方法,包括如下步骤:
步骤1,采用引导滤波后梯度域图像作为基础图像,将l0滤波后梯度域图像以及对应的清晰图像作为样本,将原始清晰图像与不同的模糊核进行随机卷积,再加上1%的高斯白噪声,生成运动模糊图像,前述引导滤波后梯度域图像、l0滤波后梯度域图像及运动模糊图像构成训练数据集;
步骤2,构造深度卷积神经网络,用训练数据集学习深度卷积神经网络的网络权重数据,学习到用于运动模糊核估计的深度卷积神经网络;
步骤3,提取网络训练的权重数据,获得运动模糊核,进一步优化图像先验约束的去卷积函数,利用全变分(tv)项获得待处理运动模糊图像的去模糊图像。
上述步骤1中,进行引导滤波或l0滤波后,还利用下式对图像进行梯度运算:
式中,▽g(x,y)表示图像的梯度,
上述步骤2中,深度卷积神经网络由八层卷积网络层构成,其中,每层卷积网络层均由卷积滤波和非线性激活函数relu构成,八层卷积网络层的滤波器大小分别为3个5*5,1*1,3*3,5*5,1*1,3*3,利用5*5的卷积核可以获得较大的局部感受野,利用1*1的卷积核可以实现通道数的降维和升维,最终得到更加紧凑的结构,同时也使得训练参数减少,减轻了训练复杂度。利用3*3的卷积核可以更好的学习图像里的细节特征。前七层层滤波器的个数均为128个,第八层滤波器的个数为1个,使用数量较多的滤波器个数可以更好的进行特征学习。
上述步骤2中,构造深度卷积神经网络过程采用反向传播算法。
上述步骤3中,利用下式对运动模糊核进行估计:
其中,▽s是权重数据,▽y是模糊图像的梯度图,k是模糊核,▽s是卷积神经网络训练得到的权重,μ是正则项的参数,参数η控制k的平滑度,其中
上述步骤3中,确定运动模糊核后,通过一系列非盲解卷积方法确定最终的去模糊图像,采用全变分(tv)正则化的方法进行恢复,即:
式中,λ是正则项参数。
采用上述方案后,本发明基于引导滤波和l0滤波对图像进行预处理,提取图像的边缘信息;采用深度学习卷积神经网络,对预处理后的梯度域图像块进行训练;提取训练好的模型中的参数,对模糊核进行估计与图像复原,在图像复原过程中使用全变分项实现图像去模糊;与目前技术中已有的去除图像运动模糊方法相比,本发明具有以下优点:
(1)通过大量数据训练卷积神经网络,更好的提取模糊核的特征;
(2)估计模糊核时,通过添加的约束项使得模糊核稀疏,阻止不连续点,提高了模糊核的连续性;
(3)由于深度卷积神经网络的强学习能力,本发明可以精确地估计图像运动模糊核,进一步获得清晰图像。
附图说明
图1是本发明的实施流程图;
图2是图像预处理流程图;
图3是深度卷积神经网络结构图;
图4是图像运动模糊去除实例图。
具体实施方式
以下将结合附图,对本发明的技术方案及有益效果进行详细说明。
如图1所示,本发明提供一种基于梯度域和深度学习的图像运动模糊盲去除方法,包括如下步骤:
步骤1,构造训练数据集。采用引导滤波后梯度域图像作为基础图像,通过引导滤波后的图像可以减少噪声和多余细节的影响。将yi引导滤波后梯度域图像以及对应的清晰图像作为样本。引导滤波和l0滤波都是作用在清晰图像上的。将原始清晰图像图像与不同的模糊核进行随机卷积,再加上1%的高斯白噪声,生成运动模糊图像。
具体图像预处理过程如图2所示,包含如下内容:
(1)引导滤波。引导滤波是一种图像滤波方法,主要优点是在滤波的同时保留边缘特性。假设引导图像为i,输入图像为x,输出图像为y,引导图像i可直接取为输入图像x。输出图像y与引导图像i在以像素h为中心的窗口中存在局部线性关系为:
式中,a和b为线性系数,且在窗口h中为常数。
由于式(1)只是一个局部线性模型,因此两个系数其实是一个与位置有关的变量。为了确定其值,考虑一个小窗口ωh,得到目标函数:
求解得:
式中,μh表示i在ωh中的均值,
(2)l0滤波。使用l0滤波主要有两个原因,一是通过去除小的非零梯度,能够抚平不重要的细节信息;二是将图像分解为基础层图像和细节层图像,以增强图像显著性边缘,即:
x=s+d(5)
式中,x是输入图像,s是基础层图像,d是细节层图像,s和d均未知。
在一维图像中,l0范数可被理解为向量中非零元素的个数,即:
c(f)=#{p||ft-ft+1|≠0}(6)
式中,t和t+1是图像中相邻元素,|ft-ft+1|是图像梯度,即图像前向差分,#{}表示计数,输出图像中满足|ft-ft+1|≠0的个数,即c(f)是图像梯度的l0范数。
在二维图像中,i是输入图像,s是要得到的计算结果。计算每个像素t的梯度
s可通过计算式(8)得到:
式中,λ是一个平滑参数。实际应用中,彩色图像的梯度幅度
(3)图像的梯度。一般是指灰度图像或者彩色图像上的操作。图像边缘一般都是通过对图像进行梯度运算来实现。若把图像看成二维离散函数,图像梯度就是二维离散函数的导数,表示为:
式中,▽g(x,y)表示图像的梯度。其中,
(4)运动模糊图像。采用图像数据库是bsds500中的自然图像,为了获得模糊图像yi,对每一张清晰图像xi进行模糊处理。假设运动模糊是全局线性模糊,模糊核k=(l,o)受到长度和角度的影响。选取运动模糊的长度l从1到25,以2为间隔,角度o从0到150度,以30为间隔。由于当模糊核的长度l=1时,不管运动方向是什么,所有的运动矢量都对应着相同的模糊核,因此生成73个不同的模糊核。将这73个不同的模糊核与bsds500中的500张自然图像xi进行随机卷积,再加上1%的高斯白噪声,就可以产生运动模糊图像。将产生的运动模糊图像裁剪成大小为45×45的模糊图像块,获得最终所需的模糊图像yi。本发明通过给定模糊的图像yi,根据提出的方法首先计算垂直和水平方向的图像梯度,以梯度域图像作为卷积神经网络的输入。
步骤2,构造和训练深度卷积神经网络
如图3所示,深度神经网络由八层卷积网络层构成,其中,每层卷积网络层均由卷积滤波和非线性激活函数relu构成。八层卷积网络层的滤波器大小分别为3个5*5,1*1,3*3,5*5,1*1,3*3,前七层层滤波器的个数均为128个,第八层滤波器的个数为1个。用训练数据集学习深度卷积神经网络的网络权重数据,学习到用于运动模糊核估计的深度卷积神经网络。训练过程采用反向传播算法。
步骤3,估计运动模糊核
利用深度卷积神经网络训练得到的权重数据▽s,模糊核估计的模型如下:
其中,▽y是模糊图像的梯度图,k是模糊核,▽s是卷积神经网络训练得到的权重,μ是正则项的参数,参数η控制k的平滑度,式(12)的第一项提供可靠边缘信息,第二项约束模糊核稀疏性,第三项中c(k)表示为
由于式(12)涉及到离散数值计算,因此很难直接对它求解最小值,本实施例通过将公式(12)写成如下两个子式分别对它求解:
式(13)可以利用irls方法求得,在实验中,一共进行了3次迭代;式(14)可以通过交替优化的方法求得解,一共进行了3次迭代。通过对上面两个子式的求解,最终可以得到模糊核k。
步骤4,估计去除运动模糊图像
一旦模糊核确定,最终的潜像可以通过一系列非盲解卷积方法确定。本实施例中的解卷积过程主要使对运动模糊图像的清晰边缘进行恢复。因此,采用全变分(tv)正则化的方法对潜在的图像进行恢复,即:
式中,λ是正则项参数。
图4展示了一个图像运动模糊去除的例子。在图4中,(a)为输入的运动模糊图像,(b)为运动模糊图像,(c)展示了上述优化模型所获得的清晰图像。
本发明可通过多种编程语言来实现,例如c++、java、matlab等。本说明书中的描述仅仅是用于说明性的,而不应被认为是限制性的。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。