Advertisement

学习笔记 Image Deblurring With Image Blurring(2023IEEE TRANSACTIONS ON IMAGE PROCESSING TIP)

阅读量:

原文:Image Deblurring With Image Blurring | IEEE Journals & Magazine | IEEE Xplore

通过图像模糊去模糊(Image Deblurring With Image Blurring)

1.摘要与介绍总览

基于深度学习(DL)的运动去模糊方法存在两个挑战:

(1)现有方法通常在合成数据集上表现良好,但无法处理复杂的现实世界模糊,

(2)对模糊的过高和过低估计将导致恢复的图像仍然模糊,甚至引入不必要的失真。

本文的运动去模糊框架有模糊空间解纠缠网络(BSDNet)层次尺度-循环去模糊网络(HSDNet)

本文的总体思路如下,我们训练了一个图像模糊模型 ,以方便学习更好的图像去模糊模型 。首先,BSDNet学习如何从模糊图像中分离出模糊特征来指导去模糊模型。其次,HSDNet充分利用BSDNet先验获得的模糊特征,将非均匀去模糊任务分解为各个子任务,以逐步从粗到精的方式去模糊。

作者认为端到端的去模糊方法存在的两个主要挑战由下面两个原因引起:

1.大多数现有的端到端去模糊算法在一类数据集上训练,所以主要对某一类合成模糊图像表现良好,而对真实模糊图像的处理效果则不尽人意。

2.训练的模型参数是固定的,但训练集中模糊的大小是不一样的,这就会导致训练参数卡在了一个不大不小的中间值,从而导致高估或低估模糊。下图可视化了端到端去模糊方法中存在的问题。

与大多数只考虑图像去模糊的方法不同,我们的框架还从图像模糊的角度研究了现实世界模糊的形成过程。BSDNet是一个图像模糊处理过程,它将模糊特征从模糊图像中分离出来,并利用模糊特征合成具模糊图像。所以他可以作为先验知识来指导去模糊模型的学习。相反,HSDNet是图像去模糊的主要过程,它将非均匀去模糊任务分解成多个子任务,逐渐恢复清晰的信息。

在BSDNet中,为了更好地感知多个运动趋势的模糊特征,设计了多向模糊感知块(Multidirectional blur Perception Block, MBP) 。对于第二个挑战,研究人员提出了许多训练优化的概念,包括多尺度方法、迭代方法和注意机制。BSDNet 简图如下(第一次看可能会看不懂,下面还有具体流程图,加油!)

2.本文方法

在本节中,将解释本文的方法的设计理念。整个方案如下图所示。本节的内容如下。首先,我们介绍我们方法的总体架构。然后,我们分别介绍了BSDNet和HSDNet的细节。

2.1 总体架构

本方法由两部分组成。首先,图2(a)中示出了模糊空间解纠缠网络(BSDNet),在训练去模糊网络之前需要训练该网络。BSDNet的作用是尽可能地从配对数据集中分离出潜在的模糊空间特征。其次,提出了一种如图2(b)所示的层次尺度递归去模糊网络(HSDNet)来恢复清晰潜像。HSDNet的作用是将非均匀去模糊任务分解成子任务,并从模糊图像中多次恢复清晰信息,从易到难。另外,去模糊网络的模糊特征引导模块引入模糊特征作为辅助先验知识,以帮助去除模糊信息。

2.2 模糊空间解纠缠网络(BSDNet)

BSDNet由两部分组成:模糊空间提取模块(Blur Space Extraction
module)和模糊合成模块(Blur Synthesis module)。

模糊空间提取模块 包括模糊特征编码器E_{b}(Blur Encoder),其用于从配对数据中解缠并编码潜在模糊特征向量(latent blur feature vector)z_{b}

模糊合成模块 可以从清晰图像中提取内容特征,融合提取的潜在模糊空间向量z_{b},并生成模糊图像。它由内容特征编码器(content feature encoder)E_{c}、特征融合块(feature fusion block)oldsymbol{F}和模糊生成器(Decoder)oldsymbol{D}组成。细节如图:

给定一对训练样本,首先,从模糊空间提取模块学习潜在模糊空间特征z_{b}=E_{b},从清晰图像中学习内容特征E_{c}。然后,模糊生成器D采用融合的特征f_{u}=F,z_{b}来生成伪模糊图像b'=D。同时在卷积过程之后使用了Instance Normalization,这既可以加速模型收敛,又可以保持每个实例的独立性

1)模糊空间解纠缠(Disentanglement of Blur Space:):

由于模糊合成模块的输入仅是清晰图像。图像的模糊信息仅依赖于模糊空间提取模块E_{b},该模块在最大程度上不应包含任何内容信息。我们通过模糊合成过程来实现模糊特征提取器的学习。首先,E_{c}E_{b}的结构完全不同,并且参数不共享,以确保信息提取彼此独立。其次,我们约束模糊生成器D生成的伪模糊图像B′与实际模糊图像B之间的一致性。我们选择Charbonnier损失作为优化对象。它可以很好地弥补由于L1损耗而导致的高频细节的缺失。图像内容的损失函数定义为:
L_{c}=rac{1}{n}um_{i=1}{n}\sqrt{(b-b'){2}-arepsilon ^{2}}

最后,为了增强E_{b}仅编码模糊特征的能力,我们向编码器的输出特征添加正则化约束,以抑制图像中的其他信息,并确保每个通道的特征独立分布。这将进一步抑制zb中包含的内容信息。为了使模糊空间提取模块的输出特征正则化为接近正态分布pim N,我们添加KL发散损失:
KLarallel p=-qlognt rac{p}{q}dz

最小化KL散度相当于最小化以下损失:
L_{KL}=rac{1}{2}um_{i=1}^{N}-1

这里,uigma是模糊特征z_{b}的均值和标准差,N是z_{b}的维数。在本文中,N被设置为512。为了使在参数方面可微,z_{b}被采样为下式。这种技术称为重新参数化。
z_{b}=u+zdot igma

其中,pim N,igodot表示元素乘积。在本文中,编码器E_{b}是一个深度神经网络,输出后验分布的均值和方差。完整的目标函数L_{BSD}是两个损失的加权和。
L_{BSD}=L_{c}+ambda {KL}L{KL}

2)多方向模糊感知块(Multi-Directional Blur Perception Block):

为了检测和检索模糊特征的方向性,我们引入了MBP结构。传统的CNN是邻域空间迭代采样卷积,难以捕捉方向特征。因此,它对于在随机方向上捕获模糊特征并不理想。因此我们选择IRNN来代替一些CNN层,这些CNN层计算描述每个方向的上下文特征。

具体来说,如图所示,输入特征首先通过1 × 1卷积层,然后可以在四个不同方向上共享。然后,特征被馈送到四个方向的IRNN层(图5中的带有箭头的小方框)。以从左到右的方向为例,每个输入更新一个隐藏单元,然后生成一个输出。
h_{i,j}^{right}eftarrow max

这种技术本质上是一个累加器本身和它旁边的4个方向。这种方法允许我们在四个方向上增长:从上到下,从左到右,从右到左,从下到上。之后,我们将通道维度中四个方向的输出连接起来。随后的1×1卷积混合这些信息作为降维。在多个MBP块之后,每个单元不仅具有方向信息,而且具有关于该特定空间位置的图像的全局摘要。

3)真实的模糊数据集合成和增强:

给定一对清晰模糊图像,我们可以获得其潜在模糊空间特征z_{b}。然后,我们将z_{b}转移到新的清晰图像s_{2},并产生新的模糊图像b_{2}

2.3 层次尺度递归去模糊网络(Hierarchical Scale-Recurrent Deblurring Network HSDNet)

HSDNet旨在解决去模糊任务中的一个难题:如何从不均匀的模糊图像中稳定地恢复清晰图像。

1)尺度循环模式:

如图6所示,去模糊之前,我们构建图像金字塔并产生具有不同尺度的模糊图像。每两幅相邻尺寸的图像组成一个组作为去模糊网络的输入。由于在高空间尺度上的严重模糊在低空间尺度上变得较小。因此,可以在不改变内卷积核的大小的情况下,恢复不同模糊度的清晰信息。来自前一组的恢复图像将被用作清晰图像的先验,以辅助下一个重现组的去模糊过程。根据相邻的尺度组,逐步进行图像复原。

2)两级跨尺度去模糊网络:

对于每次去模糊迭代,我们设计了一个分层的两阶段,而不是重复相同的结构。

在恢复的第一阶段中恢复输入图像组中的较小图像。在这个阶段,我们对低空间尺度图像执行粗略的潜在清晰图像恢复和超分辨率。这一阶段的结构分为三个部分。第一种是典型的U-net类架构。第二种是对初步恢复的特征进行超分辨率特征学习,以恢复更多的细节。我们应用剩余密集块(RDB)来提取丰富的局部和全局特征(本模块详细内容阅读本文参考文献【28】)。第三是将低空间尺度的最终特征提升到更高的空间尺度。

第二恢复阶段是恢复输入图像组中的较大图像。作为第二恢复步骤的输入,我们将来自第一阶段的恢复图像与高空间尺度模糊图像组合。在这一阶段,有两个关键组成部分。首先,为了尽可能地保持空间分辨率,我们在这个阶段使用较少的池化,因为下采样操作会丢失空间细节。我们进一步使用五个剩余块来挖掘更深的特征。残差块的输出被定义为f_{1}。其次,输入特征也被送到BSDNet的良好训练的模糊特征提取器模块中,如图6所示,以获得准确的模糊特征图f_{2}而不是上述最终编码的潜在模糊空间特征z_{b}f_{1}将与f_{2}级联,然后送到解码器模块。具有丰富模糊信息的特征f_{2}是指导运动去模糊处理的良好先验。两级跨尺度去模糊网络可以分别表示如下:
s_{1}^{i}=HSD_{1}
s_{2}^{i}=HSD_{2}

其中i是递归指数。1,2下标表示图像组中的两个不同阶段。b{i},s{i}分别是第i次迭代时的模糊潜像和估计潜像。HSD是我们提出的分层网络,训练参数表示为heta_{HSD}。注意,当i=0时,我们假设第一次迭代时s_{2}{-1}=b_{1}{0}。所产生的潜在清晰图像的尺寸一直被放大,直到达到全分辨率。

关于训练,每次迭代都是独立考虑的。我们为每次迭代选择Charbonnier Loss。Charbonnier损失的优点已经在文章的前面给出。
L_{HSD}=rac{1}{n}um_{i=1,2}qrt{^{2}-arepsilon ^{2}}
s_{i}g_{i}分别是我们在每次迭代的第i阶段的网络输出和地面实况。n是每个批量中的样本数量。

全部评论 (0)

还没有任何评论哟~