Deep Multi-scale Convolutional Neural Network for Dynamic Scene Deblurring译

摘要:一般动态场景的非均匀盲去模糊是一个具有挑战性的计算机视觉问题,因为模糊是由相机抖动,场景深度以及多个对象运动引起的。为了消除这些复杂的运动模糊,常规的基于能量优化的方法仅依赖于简单假设,使模糊核部分均匀或局部线性。此外,最近基于机器学习的方法也取决于在这些假设下产生的合成模糊数据集。这使得传统的去模糊方法不能去除模糊核难以近似或参数化(例如物体运动边界)的模糊。在这项工作中,我们提出了一种多尺度卷积神经网络,以端对端的方式恢复由各种原因引起的模糊图像。此外,我们提出了多尺度损耗函数,模拟传统的从粗到精的多尺度估计方法。 此外,我们提出了一个新的大规模数据集,提供逼真的模糊图像和其对应的由高速摄像机获得的真实清晰图像。通过该数据集对提出的模型进行训练,实验结果证明,我们的方法不仅在质量上而且在数量上都使得动态场景去模糊获得了良好的性能。

1.引言

    相机抖动和物体的快速运动使得图像质量降低,产生模糊图像。 此外,深度变化、运动边界遮挡等各种原因使模糊更加复杂。单幅图像去模糊问题是从给定的模糊图像中恢复出清晰图像。早期的研究集中在消除由简单的平移或旋转相机运动引起的模糊。最近许多学者试图去除由深度变化,相机抖动和物体运动引起的非不均匀模糊。大多数这些方法都是基于以下模糊模型。

 

    其中BSn分别表示模糊图像,潜在清晰图像和噪声。K是一个大的稀疏矩阵,每行都包含一个作用于S的局部模糊核,以产生一个模糊像素。在实践中,模糊核通常是是未知的。因此,给定模糊图像B时,盲去模糊方法尝试同时估计潜在清晰图像S和模糊核K

    为每个像素寻找模糊核是严重不适的问题。因此,一些方法试图通过对模糊来源的简单假设来参数化模糊模型。在[2910]中,他们假设模糊仅由3D相机运动引起。然而,在动态场景中,由于存在多个运动对象以及相机运动,因此内核估计更具挑战性。因此,Kim等人[14]提出了一种动态场景去模糊方法,将分割图像和去除非均匀模糊图像结合,允许对分割的区域进行复杂的(非线性)核估计。此外,KimLee [15]将模糊核逼近为局部线性,并提出了一种同时估计清晰图像和局部线性运动的方法。然而,这些模糊核近似仍然不准确,特别是在突然运动不连续和遮挡的情况下。注意,这种错误的核估计直接影响清晰图像的质量,导致不期望的振铃效应。

    近来,CNN(卷积神经网络)已经应用于许多计算机视觉问题,其中在去模糊问题[30,25,27,1]中有着良好的效果。 由于没有成对的真实模糊图像和对应的清晰图像可用于监督学习,它们通常使用由清晰图像卷积模糊核而产生的模糊图像。 在[30,25,1]中,使用具有均匀模糊核的合成模糊图像进行训练。 而在[27]中,分类CNN被训练来估计局部线性模糊核。 因此,基于CNN的模型仅适用于几种特定类型的模糊,并且对空间变化模糊具有一定的限制。

    因此,现有的方法在实践中使用时仍然存在很多问题,由于使用简单而不切实际的模糊核模型引起的。因此,为了解决这些问题,在这项工作中,我们提出了一种新颖的端到端学习方法,用于动态场景去模糊问题。

    首先,我们提出一种多尺度的CNN直接恢复清晰图像,不考虑任何限制的模糊核模型。与其他方法不同,我们的方法不会估计显式的模糊核。因此,我们的方法没有从核估计误差中产生的振铃。特别地,多尺度架构被设计为模拟常规的由粗到细的优化方法。其次,我们采用多尺度损耗训练由粗到细的架构,大大提高了收敛性。此外,我们通过采取对抗损失进一步改善结果[9]。第三,我们提出一个新的逼真的模糊图像与对应的清晰图像数据集。为了获得核无模型的训练数据集,我们采用[17]中介绍的数据集获取方法。由于模糊过程可以被模拟为相机快门打开时[17,21,16]一系列清晰图像的集合,我们用高速摄像机捕获了动态场景的一系列清晰的帧,通过考虑伽马校正对它们进行平均,以产生模糊图像。

    通过对提出的数据集的训练和适当的增加,我们的模型可以处理一般的局部模糊核。 由于损失项优化的结果接近于真实数据,它甚至恢复了模糊核非常复杂的遮挡区域,如图1所示。 我们用数百万图像补丁对我们的模型进行了培训,并在动态场景去模糊中取得了显着的改进。 大量实验结果表明,提出的方法在定性和定量性能评估中远优于最先进的动态场景去模糊方法。

1.1相关工作

   有一些方法使用CNN进行图像去模糊[30,27, 25,1].

   徐等 [30]提出了一种图像去卷积CNN,在模糊核非盲下去除模糊图像。 他们基于可分离的核性能构建了一个网络,即(反向)模糊核可以分解成少量的有效滤波器。 另外,它们结合了去噪网络[6],以通过在其所提出的网络的末端连接模块来减少诸如噪声和色彩饱和度等视觉伪影。

    另一方面,Schuler[25]提出了一种使用CNN的盲去模糊的方法。所提出的网络模拟传统的基于优化的去模糊方法,并以粗到精的方式迭代的进行特征提取,核估计和清晰图像估计。 为了获得网络训练的清晰图像和模糊图像对,他们使用高斯过程生成均匀的模糊核,并通过将它们与ImageNet数据集[3]收集的清晰图像进行卷积合成大量模糊图像。 然而,由于它们的次优架构,他们阐述了大的模糊的性能限制。

    Couzinie-Devy等人的工作类似[2]Sun et al [27]提出了一种连续的去模糊方法。首先,他们用73个候选模糊核产生模糊和清晰图像对。接下来,他们训练分类CNN来估计局部图像块的特定模糊核的可能性。然后平滑变化的模糊核是通过优化由CNN似然项和平滑先验组成的能量模型获得。最终的清晰图像估计是用传统的优化方法进行的[31]

      以上的这些方法都需要精确的核估计步骤来恢复潜在的清晰图像。相比之下,我们提出的系统可通过学习直接产生潜在的清晰图像而无需估计模糊核。

     在其他计算机视觉任务中,应用了几种形式的粗略结构或多尺度架构[7,5,4,23,8]。然而,并不是所有的多尺度CNN都可以产生类似[25]的最佳结果。在深度估计,光流估计等方面,网络通常产生比输入图像分辨率小的输出[7,5,8]。即使使用多尺度架构,这些方法在处理远程依赖方面也有困难。

      因此,我们使用一个多尺度的架构,保留了细粒度的细节信息以及较粗略尺度的远程依赖。此外,我们通过训练网络的多尺度损失以确保中间层次网络帮助最终的阶段。

1.2 动态场景去模糊的无内核学习

    通常,在估计清晰图像前,得到模糊核是很有必要的。基于CNN的方法也不例外[25,26]。然而,核估计涉及到几个问题。首先,假设简单的核卷积不能模拟一些具有挑战性的情况,如遮挡区域或深度变化。第二,核估计过程对噪声和饱和度较敏感,除非精心设计模糊模型。此外,不正确估计的模糊核会导致清晰图像存在伪影。第三,为动态场景中的每个像素寻找空间变化的核需要大量的内存和计算。

    因此,我们在模糊数据集生成和清晰图像估计中采用无核的方法。在模糊图像生成中,我们遵循近似相机成像过程,而不是假定具体的运动以找到或设计复杂的模糊核。我们捕获连续的清晰帧并集成以模拟模糊过程。详细的过程在第2节中描述。​​请注意,我们的数据集仅由模糊和清晰的图像对组成,局部核信息隐含地嵌入其中。在图2,对我们的无核模糊图像与具有均匀模糊核的常规合成图像进行比较。值得注意的是,由我们的方法产生的模糊图像表现出由人移动和静态背景引起的真实和空间变化的模糊,而通过常规方法合成的模糊图像则不是。对清晰图像的估计,我们不假设模糊源,仅在模糊和清晰的图像对上训练模型。因此,我们提出的方法在去模糊时不会产生与核相关的问题。

2.模糊数据集

    不是将模糊核与一个清晰的图像做卷积,我们选择记录随着时间的推移而集成的清晰信息,以产生模糊图像。由于相机传感器在曝光期间接收到光,所以每次都会累积清晰的图像刺激,以产生模糊的图像[13]然后,通过非线性CRF相机响应函数)将累积信号转换成像素值。因此,可以通过从高速视频帧累积信号来近似该过程。

    模糊累积过程建模如下:

 

    其中TSt)分别表示时间t处的清晰图像的曝光时间和传感器信号。 类似地,MS [i]分别是在曝光时间期间捕获的采样帧数和第i个清晰帧。g是将清晰图像St)映射成观察图像S ˆ(t)的相机响应函数,使得或。实际上,我们只观察到视频帧,而原始信号和相机响应函数是未知的。

    当涉及非线性相机响应函数时,非均匀去模糊变得非常困难,并且应考虑非线性。 然而,目前没有相机响应函数估计技术可用于具有空间变化模糊的图像[28]。 当没有给真实相机响应函数时,通常的实际方法是将相机响应函数近似为γ= 2.2的伽马曲线,因为它被称为已知相机响应函数的近似平均值[28]

 

    因此,通过校正伽马函数,我们通过从观察到的图像获得清晰图像S [i],然后通过式(2)合成相应的模糊图像B

    我们使用GOPRO4英雄黑相机来生成我们的数据集。 我们用GOPRO摄像机拍摄了每秒帧数为240的视频,然后平均了不同数量(7 - 13)的连续清晰图像,产生不同强度的模糊。 例如,平均15帧模拟以1/16快门速度拍摄的照片,而相应的清晰图像快门速度为1/240Notably, the sharp latent image corresponding to each blurry one is defined as the mid-frame among the sharp frames that are used to make the blurry image。 最后,我们的数据集由1280x720分辨率的3214对模糊和清晰的图像组成。 提出的GOPRO数据集在我们的网站上公开发布1

3.提出的模型

    在我们的模型中,更细微的尺度图像去模糊是由更粗糙的尺度特征所辅助的。 为了在同时保留精细级别信息的同时利用粗中级信息,我们网络的输入和输出采用高斯金字塔形式。 请注意,大多数其他粗略到精细的网络需要单个输入和单个输出。

 3.1模型架构

    除了多尺度架构,我们采用稍微修改版本的残留网络结构[12]作为我们模型的一个组成部分。与普通CNN相比,使用残留网络结构可实现更深层次的架构。另外,由于模糊和清晰的图像对在值上是相似的,因此让参数仅学习差异是有效的。我们发现,在原始残留构件的捷径连接后,在训练时去除线性修正单元增加了收敛速度。原始和我们修改的构件在图3中进行比较。

    通过用ResBlock堆叠足够数量的卷积层,扩展了每个尺度的接收域。细节在以下段落中描述。 为了一致性,我们按照降低分辨率的顺序(即最佳比例的级别1)定义比例级别。除非另有说明,否则我们使用K = 3的尺度。 在训练时刻,我们将输入和输出高斯金字塔块的分辨率设置为{256×256,128×128,64×64},连续尺度之间的比例为0.5。 对于所有卷积层,我们将滤波器大小设置为5×5。由于我们的模型是完全卷积的,因此在测试时,当GPU内存允许时块尺寸可能会变化。 整体架构如图4所示。

 

3.a)原始残差网络构建块。 (b)我们网络修正的构件。 我们没有使用批量标准化层,因为我们训练的模型,最小的尺寸是4,这比批量归一化的通常小。 我们发现

在块输出前去除线性修正单元在性能方面是有益的。

 

4.多尺度网络架构。BkLkSk分别表示模糊图像,清晰图像,真实的清晰图像。 下标k表示高斯金字塔中的第k个比例尺,其被下采样为1 / 2k的刻度。 我们的模型采用模糊图像金字塔作为输入,并输出一个估计的清晰图像金字塔。 每个中间尺度的输出都被训练成清晰图像。 在测试时,选择原始比例图像作为最终结果。

最粗糙的网络

   最粗糙的网络位于网络前端。第一个卷积层将1/4分辨率,64×64尺寸输入转换为64个特征图。然后,堆叠19ResBlock,最后是卷积层将特征图转换为输入维数。每个卷积层保留零填充的尺寸。总共有40个卷积层。确定每个尺度的卷积层数,使得总模型具有120个卷积层。因此,最粗糙的网络具有足够大的接收域以“看”整个图像块。在最后阶段,产生最粗糙的潜在清晰图像。此外,来自最粗糙级别输出的信息被传递到更细微规模网络的下一个阶段。要转换最粗糙的输出以适应下一个更好尺度网络的输入大小,输出图像块经过一个上卷积层[22],而其他多尺度方法使用重新调整形状[7]或上采样的方法[4,5,23]。由于清晰和模糊的图像块共享低频信息,学习上卷积的合适特征有助于消除冗余。在我们的实验中,使用上卷积层的性能比上采样更好。然后,上卷积的特征与更细微的模糊块串联作为输入。

更精细的网络

    更精细的网络基本上与最粗规模网络结构相同。 然而,第一个卷积层采用串联的方式将前一阶段获得的清晰特征作为其输入的模糊图像。 每个卷积滤波器尺寸为5×5,与最粗尺度具有相同数量的特征图。 除了最后一个最优尺寸,在下一阶段之前还有一个上卷积层。 在最佳尺度,恢复原始分辨率的清晰图像。

3.2 训练

我们的模型在所提出的GOPRO数据集上训练。3214对中的2103对用于训练,剩余的被用于测试。 为了防止我们的网络过拟合,涉及到几种数据增加技术。 在几何变换方面,图像块进行水平/垂直地旋转,以随机度数旋转。 在颜色方面,RGB通道是随机排列的。 考虑到图像退化,HSV颜色空间中的饱和度乘以[0.5,1.5]内的随机数。 此外,高斯随机噪声被添加到模糊图像。 为了使我们的网络对噪声的不同强度有抵抗力,噪声的标准偏差也是从高斯分布中随机抽样的。最后,扩展图像值在[0,1]的范围内被裁剪。

    在优化网络参数的过程中,我们将两个损失,多尺度内容丢失和对抗性损失的组合以进行训练。

多尺度内容损失

  基本上,从粗到精的方法希望每个中间层的输出都是相应尺度的清晰图像。 因此,我们训练我们的网络,使得每个中间的清晰图像形成清晰的高斯金字塔。 MSE标准适用于每个级别的金字塔。 因此,损失函数定义如下:

 

   其中LkSk分别表示尺度级k上的模型输出和真实图像。 每个刻度的损耗通过通道数量ck,宽度wk和高度hk(即元素总数)进行归一化。

对抗性损失

    最近,对抗网络被报道产生逼真的真实图像[9,4,24]。 按照[24]中介绍的架构,我们构建了如表1所示的鉴别器。鉴别器将最佳尺度或真实图像的输出作为输入,并分类是否是网络输出。

    对抗性损失定义如下。

 

其中GD分别表示发生器,即图4中的多尺度去模糊网络和鉴别器(分类器)。最后,通过组合多尺度内容损失和对抗性损失,联合训练生成网络和鉴别网络。 因此,我们的最终损失是       

其中权重常数λ= 1×10-4。 我们使用ADAM [18]优化器与小批量尺寸4进行训练。 学习率从5×10-5开始自适应调整。1.5×105次迭代后,学习率降低到先前的1/10。 总体训练需要4.5×105次迭代。

1.鉴别器的模型参数。 每个卷积层用LeakyReLU层激活函数

 

4.实验结果

4.1 GOPRO数据集

    我们在提出的GOPRO数据集上评估我们的模型的性能。 测试数据集由1111对组成,约为总数据集的1/3。 将我们的结果与最新技术方法[16,27]的结果进行定性和定量比较。 我们的结果显示,图像质量显着改善。一些去模糊结果如图1所示。 我们注意到Sun等人的结果[27],在运动边缘或非线性形状的模糊区域,去模糊效果不太成功。金和李[16]在没有找到强边缘的情况下,结果也会失败。相比之下,我们的结果没有那些核估计相关问题。表2根据PSNR显示了对比算法和我们算法的定量评估结果,SSIM超过测试数据。

 

 

2. GOPRO数据集上的定量去模糊性能比较。K表示刻度级。

 

4.2 Kohler数据集

K¨ohler数据集[19]4个潜像和12个不同的模糊图像组成。 模糊是由重播记录的6D摄像机运动引起的。 我们记录了表3中该数据集的定量结果。

3.K¨ohler数据集的定量比较。 数据集具有自己的评估代码,因此我们报告了多尺度SSIM而不是SSIM

 

4.3 Lai等人的数据集

    赖等人 [20]通过卷积不均匀的模糊核并施加几种常见的退化来生成合成数据集。 他们还记录了6D摄像机轨迹生成模糊核。 然而,他们模糊的图像和清晰的图像与我们的数据集不一致,使得诸如PSNRSSIM之类的简单图像质量评测标准与知觉质量相关性较小。 因此,我们在图6中显示了定性比较。 显然,我们的结果可以避免振铃效应,同时保留诸如波纹的细节。

5.结论

    在本文中,我们提出了盲去模糊神经网络进行清晰图像估计。 与现有成果相反,我们的模型避免了与核估计有关的问题。 所提出的模型遵循从粗到细的方法,并且在多尺度空间中训练。此外,我们生成了真实的模糊数据集,实现了有效的监督学习和严格的评估。 实验结果表明,我们的方法在质量和定量方面优于最先进的方法。


新手,翻译的不太规范,欢迎批评指正

你可能感兴趣的:(深度学习;图像去模糊)