Scale-recurrent Network for Deep Image Deblurring(SRN-DeblurNet)翻译
香港中文大学,腾讯优图实验室
摘要
在单图像去模糊领域,“层次递进”策略(即通过多分辨率层级逐步重构清晰图像)已被广泛应用于传统优化方法与前沿神经网络技术中。本研究深入探讨并创新性地提出了专门针对去模糊任务的设计理念——分层递归架构(SRN-DeblurNet)。相较于近期诸多基于学习的方法体系,在本框架仅需较少计算资源即可实现同样水平的性能表现,并展现出更为简便易行的特点优势。针对大规模复杂运动场景下的去模糊数据集进行系统性实验评估后发现:该方法在定量评估和定性观察方面均超越了现有技术方案
Introduction
图像去模糊始终是计算机视觉与图像处理领域中的一个重要研究方向。针对由于摄像机抖动、物体运动或离焦所导致的运动或焦模糊现象,在进行去模糊操作时的主要目标是恢复具有清晰边界结构和细节特征的理想原始图像。
单图像去模糊是一种高度不适定的问题。传统的方法通过施加不同的约束来处理模糊特性(如均匀/非均匀/深度感知),并结合多种自然图像先验[1,3,6,39,14,40,26,27]对解空间进行正则化处理。这些方法通常涉及复杂的参数调节过程以及耗时计算步骤。此外,在对模糊模型进行简化假设时往往会影响其在真实场景下的表现效果,在这些复杂场景中,模糊现象往往比模型本身更为复杂,并会干扰于相机内内置的图像处理流程。
近年来的研究开始探索利用深度学习技术来进行自动化的去模糊操作[25]以及相关视频处理[18、33、37]工作。其中Nah等人提出了一种基于多尺度卷积神经网络(CNN)的先进架构,在该方法下系统能够从分辨率较低的输入开始逐步重建高分辨率潜像直至完成全分辨率恢复工作流程。
本文提出了一种适用于多尺度图像去模糊的新架构设计思路——一种高效的深度递归网络SRN(ScaleRecursive Network)。该网络系统解决了现有基于CNN的技术体系中两个关键性问题。

Scale-recurrent Structure
在普遍认可的多尺度方法中,每个尺度上的求解器与对应参数通常保持一致。
但
这种方法大大减少了可训练参数的数量
Encoder-decoder ResBlock Network
受到最近用于各种计算机视觉任务的编码器-解码器结构成功的启发[23、33、35、41],我们探索了使其适应图像去模糊的有效方法。 在本文中,我们表明直接应用现有的编解码器结构无法产生最佳结果。 相反,我们的编码器-解码器残差块(ResBlock)网络会放大各种CNN结构的优点,并在训练中产生可行性。 它还产生很大的接受域,这对于大运动去模糊至关重要。
我们的实验表明,利用递归结构并结合以上优点,我们的端到端深度图像去模糊框架可以极大地提高训练效率([25]的1/4训练时间来完成类似的恢复)。 我们仅使用少于1/3的可训练参数,并且测试时间要快得多。
如图1所示,除了训练效率,我们的方法在数量上和质量上都比现有方法产生更高的质量结果,将在以后进行详细说明。 我们将此框架命名为递归网络(SRN)。

Related Work
在这一节中,我们将简要回顾图像去模糊方法和最近用于图像处理的CNN结构。
Image/Video Deblurring
经过Fergus等[12] 和Shan等 人[30]的开创性工作。针对恢复质量和对不同情况的适应性,提出了许多去模糊方法。 设计自然图像先验以抑制伪影并提高质量。 它们包括全变差(TV)[3],稀疏图像先验[22],重尾梯度先验(heavy-tailed gradient prior)[30],超拉普拉斯先验[21],L0范数梯度先验[40]等。 方法遵循从粗到精(coarse-to-fine)的框架。 频域方法[8,14]除外,它们仅适用于有限的情况。
图像去模糊还受益于深层CNN的最新发展。 Sun等[34]使用网络来预测模糊的方向和宽度。 舒勒等[29]以粗糙到精细的方式堆叠了多个CNN,以模拟迭代优化。 Chakrabarti [2]在频域中预测了反卷积核。 这些方法遵循传统框架,其中几个部分被CNN模块取代。 Su等[33]使用具有跳过连接的编码器-解码器网络来学习视频去模糊。 Nah等[25]训练了一个多尺度的深度网络来逐步还原清晰的图像。 这些端到端(end to end)方法通过不同的结构利用多尺度信息。
CNNs for Image Processing
与分类任务不同,用于图像处理的网络需要特殊设计。 作为最早的方法之一,SRCNN [9]使用3个平面卷积层(具有相同的特征图大小)来实现超分辨率。 U-net [28](如图2(a)所示)也得到了改进,也称为编码器-解码器网络[24],极大地提高了回归能力,并广泛用于FlowNet [10]的最新工作中,视频去模糊[33],视频超分辨率[35],帧合成[23]等。多尺度CNN [25]和级联优化网络(CRN)[4](图2(b))简化了训练 通过从小规模开始逐步完善输出。 它们分别在图像去模糊和图像合成方面是成功的。 图2(c)显示了一个不同的结构[5],该结构使用了具有增加速率的扩张卷积层,这近似地增加了内核大小。

Network Architecture
所提出的网络的总体架构(我们称为SRN-DeblurNet)在图3中进行了说明。该网络以不同的比例从输入图像中向下采样一系列模糊图像作为输入,并生成一组相应的清晰图像。 全分辨率下最清晰的是最终输出。
3.1. Scale-recurrent Network (SRN)
如第二节所述。 如图1所示,我们采用了从粗到精策略中跨多个规模的新颖循环结构。 我们将在每个比例下生成清晰的潜像作为图像去模糊任务的子问题,该子问题将模糊图像和初始去模糊结果(从先前比例上采样)作为输入,并在此比例下估计清晰图像:

其中,i是比例指数,i = 1代表最佳比例。 Bi和Ii分别是第i个尺度的模糊和估计潜像。 NetSR是我们提出的尺度递归网络,其训练参数表示为θSR。 由于网络是经常性的,因此隐藏状态功能会跨尺度流动。 隐藏状态从先前的较粗尺度捕获图像结构和内核信息。 (·)↑是用于从第(i +1)到第i比例调整特征或图像的算子。
式 (1)给出了网络的详细定义。 实际上,网络设计具有极大的灵活性。 首先,循环网络可以采用不同的形式,例如普通RNN,长期短期记忆(LSTM)[16、32]和门控循环单元(GRU)[7]。 我们选择ConvLSTM [32],因为它在我们的实验中表现更好。 分析将在第4节中给出。 其次,运算符(·)↑的可能选择包括解卷积层,子像素卷积层[31]和图像大小调整。我们在所有实验中都使用双线性插值,因为其充实和简单。 正确设计以获得最佳效果以恢复清晰图像,下面将详细介绍我们的方法。
3.2. Encoder-decoder with ResBlocks
Encoder-decoder Network
编码器-解码器网络[24、28]指的是对称的CNN结构,该结构首先将输入数据逐步转换为具有较小空间大小和更多通道的特征图(在编码器中),然后将它们转换回输入的形状(在解码器中) )。 相应特征图之间的跳过连接被广泛用于组合不同级别的信息。 它们还可以有益于梯度传播并加速收敛。 通常,编码器包含具有步幅的卷积层的多个阶段,并且解码器模块使用一系列解卷积层[23、33、35]或调整大小来实现。 在每个级别之后插入其他卷积层,以进一步增加深度。
编码器-解码器结构已被证明在许多视觉任务中[23、33、35、41]都是有效的。 但是,出于以下考虑,直接使用编码器/解码器网络不是我们任务的最佳选择。
首先,对于去模糊的任务,接收场需要很大以处理剧烈的运动,从而导致为编码器/解码器模块堆叠更多的水平。 但是,在实践中不建议使用此策略,因为它会随着大量的中间特征通道而迅速增加参数的数量。 此外,中间特征图的空间大小太小而无法保留空间信息以进行重建。 其次,在编码器/解码器模块的每个级别上添加更多的卷积层将使网络收敛缓慢(在每个级别上具有平坦的卷积)。 最后,我们提出的结构需要内部具有隐藏状态的循环模块。
Encoder/decoder ResBlock
我们进行了一些修改,以使编码器-解码器网络适应我们的框架。 首先,我们通过引入剩余学习块来改进编码器/解码器模块[15]。 基于[25]的结果和我们的实验,我们选择使用ResBlocks代替ResNet [15]中的原始块(不进行批量归一化)。 如图3所示,我们提出的编码器ResBlock(EBlock)包含一个卷积层,然后是几个ResBlock。 卷积层的步幅为2。它将上一层的内核数量加倍,并将特征图下采样到一半。 以下每个ResBlocks包含2个卷积层。 此外,所有卷积层都具有相同数量的内核。 解码器ResBlock(DBlocks)与EBlock对称。 它包含几个ResBlock,然后是一个反卷积层。 去卷积层用于将特征图的空间大小加倍,并将通道减半。
其次,我们的规模递归结构需要网络内部的递归模块。 与[35]的策略类似,我们在瓶颈层插入卷积层以隐藏状态以连接连续的音阶。 最后,我们为每个卷积层使用大小为5×5的大卷积核。
修改后的网络表示为:

其中NetE和NetD是具有参数θE和θD的编码器和解码器CNN。 NetE和NetD中分别使用了三个阶段的EBlock和DBlock。 θLSTM是ConvLSTM中的参数集。 隐藏状态hi可能包含有关中间结果和模糊模式的有用信息,这些信息会传递到下一个比例尺,从而有利于精细比例尺问题。
在此指定模型参数的详细信息。 我们的SRN包含3个秤。 第(i +1)个标度是第i个标度的一半。 对于编码器/解码器ResBlock网络,有1个InBlock,2个EBlock,然后是1个卷积LSTM块,2个DBlock和1个OutBlock,如图3所示。InBlock产生32通道特征映射。 OutBlock将先前的特征映射作为输入并生成输出图像。 每个EBlock / DBlock内所有卷积层的内核数均相同。 对于EBlock,内核数分别为64和128。 对于DBlock,它们分别为128和64。EBlocks和反卷积层中卷积层的步幅大小为2,而其他所有卷积为1。整流线性单位(ReLU)用作所有层和所有内核大小的激活函数 设置为5。
我们在网络预测结果和真实标签之间(通过双线性插值降采样调整尺寸使其一致),针对各个尺度应用欧几里得损失:
在第i尺度上,我们有两个变量:一个是网络输出I_i(即I_i),另一个是地面实况I_i^*(即ground observation)。权重集合{ki}中的每个元素ki代表一个秤(即a sensor)。根据经验确定κ_i的值为1.0(即κ_i=1.0)。归一化过程中使用的元素数量由变量Ni决定(即the number of elements in the normalized set is determined by Ni)。此外,在实验中还采用了全变差损失与对抗损失作为评估指标(as additional loss functions)。然而,在实验结果中发现L2范数能够有效生成清晰的图像(in practice, the L2 norm proved sufficient for generating clear images)

本研究中的测试是在搭载Intel Xeon E5 CPU与NVIDIA Titan X GPU并行计算架构下完成的;本研究开发了一个基于TensorFlow平台的深度学习框架[11];本研究进行了全面的综合评估以比较分析各种神经网络架构及其参数设置;为了保证结果的一致性和可比性除非另有特别说明否则所有测试均基于相同的数据集配置与统一的训练条件执行
Data Preparation
为了构建大规模训练数据集,在早期研究的基础上[2、29、34]通过将清晰图像与实际或生成的均匀/非均匀模糊内核进行卷积操作来生成模糊图像。由于简化了图像形成模型导致合成数据与相机捕获的数据存在差异性。最近的研究者[25、33]提出了一种新的方法:通过高速相机连续拍摄短曝光帧求平均生成模糊图像的方法;其中GoPro Hero 4 Black相机能够近似长时间曝光效果;而所生成的帧具有较高的逼真度因为它们能够模拟复杂的相机抖动和物体运动现象这些都是真实拍摄中常见的特征
为了实现网络结构的有效比较我们采用了与文献[25]相同的训练策略并使用包含3,214对模糊清晰图像的数据集来训练该网络;随后按照相同的方法我们选取了2,103对图像用于模型训练其余1,111对作为验证用测试集
模型训练
对于模型训练,我们使用β1= 0:9,β2= 0:999和€= 10-8的Adam求解器[19]。 使用功率0.3,在2000个时代,学习率从0:0001的初始值呈指数下降到1e-6。 根据我们的实验,2,000(epochs)次训练足以收敛,大约需要72个小时。 在每次迭代中,我们对一批16张模糊图像进行采样,并随机裁剪256×256像素斑块作为训练输入。 相应地会生成真实清晰的补丁(patches)。 所有可训练变量都使用Xavier方法[13]初始化。 上述参数对于所有实验都是固定的。
对于涉及递归模块的实验,我们仅将梯度剪辑应用于ConvLSTM模块的权重(已被全局准则3限制)以稳定训练。 由于我们的网络是完全卷积的,因此只要GPU内存允许,就可以将任意大小的图像作为输入。 对于尺寸为720×1280的测试图像,我们提出的方法的运行时间约为1.87秒。

4.1. 多尺度策略 Multi-scale Strategy

基于[4,25]范围内的级联结构设计的模型SC作为基准模型,在实验中展现出良好的性能特征。该研究工作中所涉及的基线模型SC主要由三个独立组件构成:各阶段采用与SS一致的设计方案,并通过共享权重的方式实现了高效的计算效率。相较于我们提出的方法而言,在参数规模上增加了约三倍的情况下,在性能指标上并未体现出显著的优势。值得注意的是,在图像去模糊任务中采用多尺度策略表现出色。其瓶颈层未设置额外的递归组件这一特点使得整个架构在参数规模上有所缩减的同时仍能保持较好的稳定性和泛化能力。此外,在实验过程中还尝试引入了其他类型的循环单元以进一步提升系统的鲁棒性表现
4.2. 编解码器重块网络Encoder-decoder ResBlock Network
4.3. 比较
我们将我们的方法与评估数据集和真实图像上的现有最新图像去模糊方法进行了比较。 由于我们的模型处理的是一般的相机抖动和物体运动(即去运动模糊[17]),因此与传统的统一去模糊方法进行比较是不公平的。 Whyte等人的方法[36]被选作非均匀模糊的代表性传统方法。 请注意,对于测试数据集中的大多数示例,模糊图像仅是由相机抖动引起的。 因此,[36]中的非均匀假设成立。
Kim等人的方法 [17]应该能够处理动态模糊。 但是没有提供代码或可执行文件。 相反,我们将其与Nah等人的最新作品[25]进行比较,显示出非常好的结果。 Sun等[34]使用CNN估计模糊核,并使用传统的反卷积方法恢复清晰的图像。 我们使用作者提供的带有默认参数的官方实现。 表2列出了GOPRO测试数据集和Kohler数据集[20]的定量结果。 视觉上的比较在图5-6。更多结果在我们的补充材料中。
Benchmark Datasets
图5的第一行包含来自GOPPRO测试数据集的图像,由于大型摄像机和物体运动,这些图像会遭受复杂的模糊。 尽管传统方法[36]建立了通用模型,对于摄像机平移和旋转的非均匀模糊,在图5(a),(c)和(d)中仍以摄像机运动为主,但仍然失败。 这是因为前进/后退运动以及场景深度在真实的模糊图像中起着重要作用。 此外,违反假定模型会导致令人讨厌的振铃效应,使还原后的图像甚至比输入图像差。
Sun等人使用CNN预测内核方向。 但是在此数据集上,复杂的模糊模式与它们的综合训练集完全不同。 因此,这种方法在大多数情况下都无法预测可靠的内核,并且结果仅略微锐化。 最近的最新技术[25]可以产生高质量的结果,同时保留一些模糊的结构和伪影。 由于设计了框架,我们的方法有效地产生了具有更清晰结构和更清晰细节的出色结果。 根据我们的实验,即使在极端情况下,运动对于先前的解决方案而言过大,我们的方法仍然可以对重要部分产生合理的结果,并且不会在其他区域上引起很多视觉伪像,如图6的最后一种情况所示。 定量结果与我们的观察一致,我们的框架在很大程度上优于其他框架。
Real Blurred Images
GoPro测试图像是从高速相机合成的,可能与实际的模糊输入有所不同。 我们在图6中显示了对真实捕获的模糊图像的结果。我们的训练模型对这些图像进行了很好的概括,如图6(d)所示。 与Sun等人和Nah等人的结果相比,我们的质量更高。




- 结论 在本文中,我们详细阐述了图像去模糊中采用"由粗到细"方案时应当遵循的理想网络架构,并在此基础上提出了一种 novel 的缩放循环网络架构,在每一级缩放层级上都采用了 encoder-decoder 基于 ResBlocks 的模块构建策略。与以往基于多尺度去模糊参数的设计相比,在参数数量上本方案具有显著优势,并且在训练过程中表现出更高的效率和可靠性;通过我们的方法获得的结果,在定性和定量评价方面均系统性地达到了当前最先进水平;对此类问题具备广泛的应用潜力,并将深入研究其应用前景
