解读Blind Image Blur Estimation via DL
对图像进行去模糊处理,分为Blind型和Non-blind型。Blind型只有采集到的图像而没有其它的信息。这是比较常见的,也是非常符合实际的应用场景。Non-blind型去模糊知道Blur kernal的情况下进行恢复,主要研究在保持细节时抑制噪声。以往研究Non-Blind Image deconvolution也非常多,也有了不少很实用的方法,比如维纳滤波, Richardson-Lucy方法。后来有些方法是基于去噪方法的,比如傅立叶,小波,Curvelet,和TV方法。Non-blind Image deconvolution是基础,如果有某种方法将Blur kernal估计出来,就可以应用这些方法解决去模糊问题。
Introduction
图像的模糊是图像劣化的主要来源,主要有
Gauss blur 比如大气湍流等影响
motion blur 运动模糊,
defocus blur 失焦散焦模糊
要恢复原来清晰图像,主要是要解决在图像劣化模型的信息不足的问题。现有的方法通常是将整个图像的模糊核建立一个统一模型,先执行核估计,再进行非盲去卷积。这是一种标准的过程了。 有一种经典盲去卷积方法涉及在最大后验估计中改进图像先验,在文献中常使用的有稀疏先验和边缘先验。这些算法通常是用期望最大化步骤,进一步更新模糊核的估计,再更新清晰图像。虽然这种基于图像先验的方法可以成功的估计模糊核并计算清晰图像,但它存在一定的限制,稀疏先验主要是它能应用在小区域。边缘先验是取决于图像内容,如果图像同质的就很容易失败。本文提出基于FFT的学习先验用于Blur Kernal 估计,频域特征和深层体系结构解决了一些自然图像块中没有边缘的。另外,本文提出的方法虽然是基于patch,但相比稀疏先验,此法也仍可以处理更大的patch。
另外,图像的局部模糊的可能更常见
最近在深度学习神经网络模仿哺乳动物视觉皮层的性质,已经应用于许多视觉任务。 测试时神经网络中的参数充当劣化图像的先验信息。这比最先进的去噪方法可以得到更好的结果。另一个是神经网络的多特征分类器开发的模糊范围度量,结合学习功能比大多单独的手工功能更好。大多数深度网络和卷积网络在随机初始化的权重训练上会接近局部最优,但受初始化形态影响大,有可能产生对全局较差的局部最优解。用Deep belief network进行初始化预训练会对深度神经网络有帮助。 本文用两段结构,一是模糊类型分类,另一个是参数识别。 这里的主要难点有:
-
来自模糊图像的盲参数估计,而不进行去模糊。为此提出了两阶段框架:
-
用预训练DNN完成特征提取和分类以确定模糊类型
-
将相同模糊类型的不同样本发送到相应GRNN进行参数估计。DBN只是起初始化的作用。DNN是确保训练的有效性
-
-
the pixel-based blur segmentation using classified blur types. Similar to the first step in the above method, the proposed pre-trained DNN is applied for identifying blur types of all the patches within the same image.
本文的5点贡献:
-
这是首次将 predict DNN应用于模糊分析问题
-
提出了使用FFT进行特征判断,从而来预处理
-
提出了两段框架进行判断模糊类型和参数
-
首次将GRNN作为参数估计回归工具进行探索
-
对局部模糊的图像效果的表现也非常好
相关工作
A. 以前的基于学习的模糊处理
B. Restricted Boltzmann Machines
限制Boltzmann机器(RBM)是一种生成随机人工神经网络,可以学习其输入集合的概率分布。
RBM最初是由Paul Smolensky于1986年以Harmonium的名称发明的,并且在Geoffrey Hinton和合作者在2000年中期为他们发明快速学习算法之后突显出来。 RBM已经在降维,分类,协同过滤,特征学习和主题建模等方面得到了应用。根据任务的不同,他们可以采用监督或无人监督的方式进行培训。
顾名思义,RBM是Boltzmann机器的变体,其限制是它们的神经元必须形成二分图:来自两组单元中的每一组的一对节点(通常称为“可见”和“隐藏”)单元)可以在它们之间具有对称连接;并且组内的节点之间没有连接。相比之下,“不受限制的”Boltzmann机器可能在隐藏单元之间有连接。这种限制允许比一般类别的玻尔兹曼机器更有效的训练算法,特别是基于梯度的对比发散算法。
受限制的玻尔兹曼机器也可用于深度学习网络。特别是,深层置信网络可以通过“堆叠”RBM形成,并可选择通过梯度下降和反向传播微调产生的深层网络。
受限制的玻尔兹曼机RBM,是一种无向图形模型。包含有输入层(观察)和隐藏层(表示特征)之间的无向对称连接。每层内的节点之间没有连接。 输出层为hk-1,隐藏层为hk, k=2,3,4,…,概率表示每层之间由输入层和输出层的联合配置的能量决定。
其中theta=(w,b,c),表示模型的参数,w[i,j] 表示第i单元对应hk-1层到第j单元对应hk 层的对称交互项,。b[i]和c[j]是i,j的bias,偏移值。 在RBM中, 输出单元在输入状态下是条件独立的,所以
概率分布
其中sigma是
RBM训练过程是对比Contrastive Divergence(CD)。直观来看,CD就是输入层是训练向量,来推断输出层,输出层的单位之间的连接已更新。另一部分从输入层到输出层更新权重。直到构建出有代表性的模型。
实验方法 methodology
本节里将为模糊图的参数估计提出一种两阶段的框架,将在sec A中将问题摆清楚,sec B阐释模糊特征,在sec C中训练DNN,在sec D中讲GRNN的结构
sec A. 问题的公式化
图像模糊可以建模为从高曝光图到观察图的降级过程
其中x={x1,x2}表示图像的坐标,g是模糊图像,f是潜像的强度,q表示模糊核。q与f的运算是卷积运算,n是附加噪声。
一是高斯模糊的PSF
其中sigma是估算出的模糊半径,R是支持区域。R一般取在[-3sigma,3sigma],由gaussian分布.
另一种模糊PSF是线性运动造成的,
M是描述运动的像素长,omega描述运动关于x轴的角度。这些参数是需要系统估计的
还有就是失焦,可以由cylinder function建模
模糊半径r与散焦程序成比例。
以往用Bayes分类器,总是仅限于单个或多个模糊核。本文用类似于曾应用成功的deep belief network的DNN作为特征提取器。
sec B.模糊特征
-
运动和失焦模糊的特征 如果对
使用 FT,可以得到
其中u是{u1,u2},对于失焦模糊,Q(u)为
J1是贝塞尔函数的一阶导,是R为周期的转,FFT取值为0. 对于运动模糊,则是sinc
函数
-
高斯模糊的特征。高斯FFT还是Gaussian函数,并且频域中并没有显著的模式变化。从(6)中可以看出,高斯核函数作用低通滤波器,当滤波器的sigma较大,会传入更多高频信息,但根据观察,若sigma大于2,对数光谱2时,对数光谱图案没变化,只有强度发生变化。边缘检测不能显著地改善结果。
sec C. 深度神经网络(DNN)的训练过程
以往都是用DBF进行特征学习的生成模型,其中DBN的表现是优于DNN和DCNN等各种深度学习模型。然而将它应用在图像分类的时候DCNN的表现更好。图像对象或类别之间存在的细微差别学习图像的语义是非常重要的。CNN擅长捕捉小领域的像素相关性,这对于图像分类的任务非常有用。但我们没有必要对模糊图找语义。任务难点实际在于当我们提取模糊分类的时候捕获精确的细节。
-
正则化
训练集合就是h{k-1}[1],h{k-1}[2],…,h^{k-1}[m],正则项为减小过拟合的可能
其中E是条件期望,t是控制隐藏层单位h[k]的稀疏性的常数,lambda是正则化常数。这样隐藏单元被限制为具有接近t的平均值。
- 预训练DNNDNN训练过程可由下算法描述
## input: training dataset X, corresponding labels set L Inital bias parameters b and a Munber of Layers N, Number of epochs P Weights between layers W Momentum M and learning rate epsilon_a, epsilon_b ## output: the parameter W,b,a for i=1 to N for j=1 to P if i=1 then h^i =X else for l=1 to L h^i_l=sigma(h_l^{i-1}W^{i-1}+a^{i-1}) end end if calculate the state of the next layer while (not convergence) update weight and biases update the parameters using the gradient of the sparse regulazation term end end end
sec D. General Regression Neural Network
分类之后就可以补丁模糊类型,两段结构已经成功预测了类型,从整体上已经获得了blur kernal的粗略值,如果要获得精确值,就需要进行回归。 GRNN认为是RBFN(Radial Basis Function Networks) 和PNN(Probablitistic Neural Networks)的推广,在结果上优于RBFN和反向传播神经网络。GRNN主要是估计输入自变量和输出的联合概率密度函数。
如图示,GNN由输入层,隐藏层,非标准化输出单元,求和单元和归一化输出组成。GRNN使用one-pass学习算法进行训练,不需要迭代。训练聚类质心作为求和单元的权重的一部分。假设训练向量是X,训练目标是Y,在pattern层中每个隐藏单元对应于输入样本。从图案层到求和层,每个权重是输入样本的目标。目标求和式可以表达为
其中, sigma是扩散参数
sec E. 组织两段结构
先用输入的模糊补丁的对数spectra 获取识别,这阶段输出的是标签:gaussian blur, motion blur or defocus blur.有了标签信息,分类后的blur vector就可以用于第二阶段参数估计。此阶段 motion blur和defocus blur将在训练前先送入edge detector,而Gasussian blur将直接送入训练器。这个阶段的输出是各种估计的为GRNN使用的参数,送入GRNN做回归运算可输出结果。
实验过程
A. 数据集
-
训练 :Oxford Image classification and Caltech 101 dataset,每个里随机出5000图 大小是32*32和128*128的。
-
测试数据集 Berkeley segmentation dataset 的200图,已经用过去噪算法。Pascal VOC 2007 ,随机选500图。
-
模糊特征:canny探测器应用于自动低阈值和高阈值的图像块的对数功率谱。选半径为3像素。
-
DBN训练参数: 训练轮数50,学习率0.1,初始momentum=0.5,在5轮迭代后变为0.9。最终总不超过30轮就收敛
-
GRNN训练: 平滑度参数sigma=0.2
B.图像模糊类型分类
输入可见层有1024个节点,输出层有3个节点代码3个标签。整体的组成是 1024 ->500 -> 30 ->10 ->3 每个隐藏层中的这些节点号是根据经验选择的。
分类率,用于评估程序的性能
C.模糊核参数估计
用不同的模糊核估计不同参数。 在PSNR,SSIM,GMSD和GS上的结果表明,比back-propagationg Neural Network, SVR,pre-trained DNN等其它方法要好。这表明GRNN是用于模糊分析的更好的回归量。
D.用估计值 综合测试去模糊
估计出模糊类型和模糊核的参数,就更容易使用EPLL来恢复原图。
E.真实图像的应用
从Flickr.com上选择200个部分模糊的图。一半训练,一半测试。与同类论文相比,主观来看,即使有显著运动本文提出的分类也更可靠。直接去论文看原图的结果
结论