图像超分辨-IDN
本文译自2018CVPR Fast and Accurate Single Image Super-Resolution via Information Distillation Network
代码: github (in caffe)
特点:结构简洁、实时速度,更好精度
结果:state-of-the-art
摘要:
近来深度卷积网络在单图像超分辨上取得明显成果。然而随着网络的深度和宽度增加,基于CNN的超分辨方法面临着计算和内存的问题。为解决这个问题,我们提出一个深但简洁的卷积网络直接从原始的的低分辨图像来重建高分辨图像。本文所提出的网络模型包含三个部分,即特征提取模块、堆叠的信息蒸馏(information distillation)模块、重建模块。通过结合一个提升单元(enhancement unit)和一个压缩单元(compression unit)在信息蒸馏模块里,局部 long and short-path features特征可被有效提取。特别的,提出的enhancement unit混合两种不同类型的特征,而压缩单元compression unit提取更有用的信息。此外,所提出的网络执行快速,因为每一层有相对较少的滤波器数目,并且使用了分组卷积(group convolution)。实验证明了该方法是优于state-of-the-art的,尤其在时间表现上。
1. Introduction
单图像超分辨Single image super-resolution(SISR)是一个经典的low-level问题,需要从一个低分辨图像重建高分辨图像。事实上,无穷多数量的HR图像可以通过下采样得到相同的LR图像。因此SR问题是一个病态问题,没有唯一解。目前已有大量的SISR方法被提出,包括基于插值的方法(interpolation-based methods),基于重构的方法(reconstruction-based methods)和基于实例的方法( example-based methods)。由于前两种方法经常在大尺度因子上的表现很差,近来SR方法基本都为第三种,即从LR和HR图像对学习先验知识。
近来由于CNN的强势表现,许多基于CNN的SR方法试着用更深的网络来学习更好的重建表现。Kim等人提出20层的CNN模型即VDSR,它采用了残差学习和自适应梯度截断来更好训练。为了控制模型参数,作者利用递归层构建了一个深度递归网络DRCN。为减轻训练难度,Mao等人提出一个非常深的编解码残差网络(RED),包含了一系列卷积和转置卷积来端到端的学习LR图像到真值的映射。Tai等人提出一种深度递归残差网络DRRN,利用了参数共享策略来缓解深度网络带来的大量参数。
尽管实现了显著的表现,大多数深度网络仍然含有许多缺点。首先为了实现更好的性能,加深或者加宽网络变成了一个设计趋势。但是结果是这些方法需要大量的计算和内存消耗,这在实际中是不可直接应用的。此外传统的卷积方法通常采用拓扑级联网络,例如VDSR和DRCN。这种方法每层的特征图都无区别的被送入网络。然而,Hu等人实验性的证明自适应再校准channel-wise 特征响应可以提升网络的表示能力。
为了解决这一问题,我们提出一个新奇的方法:信息蒸馏网络information distillation network(IDN)。如图2,有着轻量级参数和计算复杂度。在所提出的IDN中,一个特征提取模块FBlock首先从LR图像中提取特征,然后多个信息蒸馏模块DBlocks堆叠来进一个提取残差信息。最后一个重建模块RBlock聚集所获得的HR残差表示来生成残差图。为了得到HR图像,我们实现了残差图与上采样LR图元素间的相加操作。
IDN的关键部信息蒸馏模块,包含了一个提升单元enhancement unit和压缩单元 compression unit。提升单元主要包括两个浅层卷积网络,如图3。每个网络都是一个三层结构。第一个模块的特征图通过一个短链接(3层)来提取。因此他们可以视为局部短路径lshort-path特征。考虑到深度网络更有好的表现,我们将局部短链接特征部分发送到另一个模块。和【9】中的方法不同,我们划分特征图为两部分。第一部分代表代表保留的short-path特征而另一部分表征将要被提升的short-path特征。得到长-短路径特征图后,我们聚集这两种类型特征来获得更多的有效信息。简而言之,提高单元主要提高网络的表示能力。至于压缩单元,我们采取了一个简单的卷积层来压缩提高单元中特征的冗余信息。
本文主要贡献如下:
- 所提出的IDN直接从LR图像提取特征,并利用多个级联的DBlocks来生成更多的信息并利用压缩单元来提取有用的信息。最后IDN实现了有竞争力的结果,尽管使用了更少的卷积层。
- 尽管IDN结构简洁,它比一些给予CNN的SR结构都要快。例如图1中的VDSR、DRCN、LapSRN、DRRN和MemNet。只有本文的方法实现了实时的速度并保持得更好的重构精度。
2. RelatedWork
单图像超分辨近年来被广泛研究。在本节我们将关注于近来基于实例(example-based)的神经网络方法。
2.1 Self-example based methods
基于实例的方法开发自相似性的特性并且从LR图像以不同尺度提取样本对。这种方法通常在包含重复模式或者文本,但在输入图像外缺少图像结构丰富度的情况下表现较好。Huang等人扩展了基于SR的自相似性来处理仿射和透视形变。
2.2 External-example based methods
基于实例的外部方法从外部的数据集学习从LR到HR的一种映射。这种类型的方法通常关注于怎样学习一种压缩字典和流型空间来使LR/HR相关,例如最近邻、流型embedding、随机森林进而空间表示。虽然这些方法是有效的,提取的特征和映射函数是不自适应的,这对于生成高质量SR图像而言不是最优的。
2.3 Convolutional neural networks based methods
近来,受许多计算机视觉任务的启发,深度网络在SR领域取得了很大突破。Dong等人率先利用一个三层卷积网络SRCNN以端到端的方式联合特征提取、非线性映射、图像重构。之后Shi等人提出一种高效子像素卷积神经网络ESPCN来在LR空间提取特征图并利用高效的子像素卷积取代双三次采样操作。Dong等人采取反卷积结合更小的滤波器和更多的卷积层来加速SRCNN。Kim等人提出一种非常深的全局残差CNN模型来获得更好表现,这种方法利用了大图像区域的文本信息。另一个由Kim等设计的网络是含有跳跃连接的递归卷积网络来避免深度加深时引入额外的参数。Mao等人利用对称的跳跃结构和编解码器来解决一般图像的恢复问题。Lai等人提出一种拉普拉斯金字塔超分辨网络来解决SR的速度与精度问题,以原始LR图像为输入渐进构建HR图像的sub-band残差。Tai等人提出一种深度递归网络来有效建立一种非常深的网络,使网络获得精度。该作者也提出了一个非常深的端到端持久性记忆网络(MenNet)对于图像恢复任务,解决之前CNN结构的长期依赖性问题。Sajjadi等人提出一种新奇的方法,结合自动纹理合成和感知损失来关注于构建4倍率高的真实纹理。
3. ProposedMethod
在本节我们首先描述了提出的网络结构,然后介绍提高单元 enhancement unit和压缩单元 compression unit,这是该方法的核心。
3.1 Network structure
如图2,IDN网络含有三部分:一个特征提取模块(FBlock)、多个堆叠的信息蒸馏模块(DBlock)和一个重构模块(RBlock)。这里我们令x和y为IDN的输入与输出。至于FBlock,两个3*3的卷积网络用来提取原始LR图像的特征图。这个过程描述为:
f指的是特征提取函数,B0为提取到的特征,且是之后的输入。下一部分由多个信息蒸馏模块组成。每个模块包含一个堆叠形式的提高单元和压缩单元。这一过程可公式化为:
为第k个DBlock函数,分别为第k个DBlock的输入与输出。最后我们利用一种不含激活函数的转置卷积来作为RBlock,因此IDN可以表示为:
R,U分别表示RBlock和双三次线性插值。
3.1.1 Loss function
我们考虑两个损失函数来度量预测的HR图像和对应的真实图像I。第一个为MSE均方误差,这是一般的图像重建最常用的损失函数:
然而Lim等人实验性的验证了利用MSE来训练不是一个好的选择。第二个损失函数为平均绝对误差:
我们实验发现利用MSE损失可以提升利用MAE损失训练的网络,所以我们先用MAE损失训练,再用MSE损失微调。
3.2.Enhancement unit
正如图3所示,提高单元可大致分为两部分,第一个是上面的三个卷积,另一个是下面的三个卷积。上面的模块为3x3大小卷积,伴有LReLU激活函数。假设第i层的特征图维度为Di,(i=1,..,6)。那么卷积层的关系可以描述为:
d为第1、2层或者1、3层的差异。类似的,下面模块的维度特点为:
,上面的模块是含有LReLU的级联的卷积层,第三个卷积层为输出分为两部分。假定这个模块的输入为,我们有,是之前block的输出,也是当前block的输入。为链式卷积操作,为上面模块中第k个提升单元的输出。中维度为的特征图和第一个卷积层的输入在通道维度上进行链接:
C,S分别代表连接concatenate操作和切片slice操作。特别的,我们知道的维度为D3,因此表示维特征提取自。此外,与在通道维度上连接特征。目的是为了结合之前的信息与当前的信息。它可以被看作是局部保留的短路径信息localshort-path information。我们采取剩余的localshort-path information作为下面模块的输入,主要进一步提取长路径特征图 long-path feature maps。
分别为输出和下面模块的堆叠卷积操作。最后如图3所示,输入信息、保留的局部短路径信息和局部长路径信息合并。因此,提高单元可以公式化为:
是提高单元的输出。局部长路径特征与局部短路径特征和未处理的特征的结合都被压缩单元所利用。
3.3 Compression unit
我们利用1x1卷积来实现压缩机制。具体来说,提高单元的输出被送至1x1卷积层,其目的为维度缩减或为之后网络提取相关信息。因此,压缩单元可公式化为:
为1x1卷积的操作,为激活函数,为权重参数。
4. Experiments
4.1 Datasets
4.1.1 Training datasets
和之前的惯例一样,我们利用Yang等人的91张图像,来自伯克利分割数据集Berkeley Segmentation Dataset(BSD)的200张图像作为训练数据。为了充分利用训练数据,我们使用3种数据增强方法:(1)旋转图像角度为90,180和270度。(2)水平翻转图像。(3)downscale降尺度图像,因子分别为0.9,0.8,0.7和0.6。
4.1.2 Testing datasets
所提出的方法在广泛使用的数据集上评估:Set5、Set14、BSD100和Urban100。在这些数据中,Set5,Set14和BSD100包含了自然景色,Urban100包含了具挑战性的urban景色,具有不同频带的细节。对真实图像利用双三次插值进行降尺度可以得到LR/HR图像对,以得到训练和测试数据集。我们转换每张彩图为YCbCr颜色空间,并仅处理Y通道。而颜色成分仅简单使用双三次插值来扩充。
4.2 Implementation details
为了准备训练样本,我们首先对原始HR图像进行下采样,升尺度因子upsacling为m。(m=2,3,4),利用双三次线性插值来生成对应的LR图像,然后裁剪LR训练图像为一系列子图像集。对应的HR训练图像被划分为 大小的子图像集。利用Caffe来训练该模型,其转置卷积的滤波器产生的输出尺寸为而不是。所以我们应当在HR子图像上裁剪(m-1)像素边界。因为有291张图象的那个数据集里的一张名为“t20”的图像尺寸为78*78。
当尺度因子为3时,为保持数据完整性,可以在LR图像上裁剪的最大尺寸为26x26。然鹅,训练过程将会不稳定,因为大的训练样本在Cffe中有更大的学习率。因此,训练数据将在训练阶段生成,LR/HR子图象集在微调阶段使用。学习率初始设置为1e-4,在微调阶段除以10。以这种方法,训练和微调的样本如表1所示。
考虑到执行时间和重构表现的折衷,我们构建了一个31层的网络为IDN。这个模型有4个DBlocks,提升模型中每个block的参数分别设置为64,16和4。为减少网络参数,我们在每个提升单元的第二个和第四个层利用4个分组卷积。此外转置卷积采用17x17大小的滤波器为所有的尺度因子。LReLU的negative scope 设为0.05。我们初始化权重通过何凯明的文章Delving deep into rectifiers: surpassing human-level performance on imagenet classification,偏置都设为0.利用Adam优化,mini-batch大小为64,权重衰减为1e-4。为了得到更好的初始化参数,我们经验性的预训练10^5个iter,并以此为IDN网络的初始值。在2X模型上利用一块TITAN X GPU训练一个IDN大约需要1天。
4.3 .Network analysis
含有残差结构的模型主要学习一个残差图像,如图4(a)所示,真实残差图主要含有细节和文本信息,其正则像素值范围为-0.4到0.5。从图4(b)可以发现在残差图中有正值和负值,其数量的大致相等。显然0值的数量和其邻居最多,意味着残差图中的平滑区域几乎被消除了。因此,我们网络的任务是逐渐减去原图中的平滑区域。为了证明我们的直觉,我们需要检查提高单元和压缩单元的输出。具体分析参考图5。
...
4.4 Comparisions with state-of-the-arts
我们与已有的方法对比:包括bicubic, SRCNN [3, 4], VDSR [12], DRCN [13], LapSRN [15], DRRN [22] and MemNet [23]。表2显示了峰值信噪比PSNR( peak signal-to-noise ratio)和SSIM结构相似性( structural similarity )。该方法有利的显示了state-of-the-arts结果。此外,我们对所有方法做了information fidelity criterion (IFC) metric。表3显示了所提出方法的最好表现并超出MemNet一大截。
图6,7,8显示了视觉对比。“barbara”图像由于高频信息的缺失有严重的artifacts在红框内,这可以看作是双三次插值。仅仅本方法recovers roughly the outline of several stacked books。从图7可以看到本方法所获的清晰的轮廓,而其他方法有不同程度的假信息。在图8,本方法表现的相对清晰。
从表2看到,IDN的表现比MemNet在Urban100上的3x和4x要差,而我们的方法在其他数据上更好一些。主要原因是MemNet将LR图像插值后作为输入,所以网络获得更多的信息,SR的过程仅需要修正插值后的图像。算法以原始的LR图像为输入,预测更多的像素,尤其是更大的图像和更大的magnification factors。
在做iference的时候,我们利用对比算法的开源代码在32G上的i7 CPU, NVIDIA TITAN X(Pascal)GPU 12G内存。因为官方的MemNet和DRRN的实现溢出GPU内存,我们在每一划分100幅图像为几个部分然后分别做评估,然后收集两组数据。表4展示了benchmark数据上的运行时间,值得注意的是IDN大约500倍快于MemNet(2x magnification在Urban100数据集上)。
5. Conclutions
在本文,我们提出了一个新奇的网络结构,利用蒸馏模块逐渐提取大量有效特征来重建HR图像。在PSNR、SSIM和IFC评价指标中都实现了有竞争力的结果。而inference时间远小于当下最好方法如DRRN和MemNet。这个简洁的网络可以在实践中广泛利用。在未来,这个方法将促进解决其他重建问题例如去噪和compression artifacts reduction。
相关资料: