深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)

文章目录

    • @[toc]
    • 帮助新手快速上路的网址和工具
    • 从2014的SRCNN到2019的CameraSR优秀论文集结
    • 实验过程中的常用MATLAB代码整理
    • SR领域期刊和会议整理

图像超分辨率重建之路的学习与经验总结。
**本文由四部分组成:(1)帮助新手快速上手的网址和工具;(2)从始至今的SR领域优秀论文整理;(3)常用的代码;(4)SR领域期刊和会议整理 **
单一图像超分辨率重建(SISR )是典型的计算机视觉问题,它的目标是从低分辨率图像中恢复出高分辨率图像。这是一个很困难的事情,因为一副低分辨图像对应多张高分辨图像, (an infinite number of HR images can get the same LR image by downsampling.)要让网络结构准确的恢复出其对应的高分辨率图片是很困难的。
目前已有大量的SISR方法被提出,包括基于插值的方法(interpolation-based methods),基于重构的方法(reconstruction-based methods)和基于学习的方法( example-based methods)。近几年,受计算机视觉任务的启发,DL在SR领域也取得了重大突破,硕果累累。从 2014年Dong等人率先提出基于卷积神经网络的超分辨率重建方法,即SRCNN,接着就出现了各种各样的基于神经网络的超分辨率重建算法。

帮助新手快速上路的网址和工具

超分科研上手常用工具

从2014的SRCNN到2019的CameraSR优秀论文集结

  • SRCNN (ECCV14)
    Depth: 3
    - 这是超分领域第一篇使用CNN的文章;
    - end-to-end的模式,image在送入网络之前就使用“双三次插值”对图片进行了上采样,让图片变大到目标大小。
    - 这样做的优点:图片在送入网络之前进行上采样,放大了。这样网络可学习的信息增加了;
    - 缺点:在上采样的过程中可能会引入噪声,这样会影响网络的性能

  • 论文SRCNN PDF

  • code(Learning a Deep Convolutional Network for Image Super-Resolution, ECCV2014)
    深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第1张图片

  • FSRCNN (ECCV16 )
    Depth: 8
    (1):在SRCNN的基础上进行了改进,得到了一个更加快速的参数更少的模型;网络中使用1×1卷积进行压缩,后期再使用1*1的卷积对网络进行扩增,此外还使用2个3×3的卷积代替SRCNN中的5×5的卷积,以上操作大大降低了网络参数;
    (2):网络中使用反卷积对图像进行上采样;

  • 论文FSRCNN PDF

  • 项目链接(Accelerating the Super-Resolution Convolutional Neural Network, ECCV2016)

深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第2张图片

  • ESPCN (CVPR16)-- 一种新的上采样方式
    Depth: 3
    亚像素卷积:本文提出了一种新的上采样方式,与以往的双三次插值,反卷积不同的是,亚像素卷积是通过通道扩增和像素点重排来实现的图像放大,比如放大r倍,则亚像素卷积层的输出必须是个长和宽都扩大r倍,整张图就放大了r倍;
    *论文
    Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network,CVPR2016
    *代码
    TensorFlow
    caffe
    深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第3张图片
  • VDSR (CVPR16)
    Depth: 20
    20层参数设置一样的卷积层,主要亮点是对网络模型进行了加深;其次提出了skip-connection;使用梯度裁剪的优化方式;网络的训练图像是使用在预处理时使用双三次插值将图片放大送入大图到网络中;
    *论文 VDSR PDF
    *项目链接(Accurate Image Super-Resolution Using Very Deep Convolutional Networks, CVPR2016)
    *caffe-VDSR
    *TensorFlow-VDSR
    *pytorch-VDSR
    深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第4张图片
  • DRCN (CVPR16)
    Depth: 20
    亮点:递归网络 + skip-connection
    递归,循环训练同一层卷积层,实现参数共享,这样能实现加深网络但不增加网络参数的目的;2019很多做轻型超分的网络采用递归来降低参数;
    *论文Deeply-Recursive Convolutional Network for Image Super-Resolution,CVPR2016
    *项目链接 Deeply-Recursive Convolutional Network for Image Super-Resolution,CVPR2016
    *DRCN-TensorFlow

深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第5张图片

深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第6张图片
递归的输出: ①每个递归层的输出_i+X=output_i,所有的output_i就是下面公式中的yˆd,求和得到最终的输出
深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第7张图片

  • DRRN (CVPR17)
    Depth:52
    在DRCN的基础上进行了修改,DRCN是递归的单个conv层(递归16次),
    DRRN中使用的递归block,每个递归block中有2个递归块,每个递归块里面有两个conv层,如下图所示

    *论文Image Super-Resolution via Deep Recursive Residual Network,CVPR2017
    *caffe-DRRN
    深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第8张图片

  • LapSRN (CVPR2017)
    Depth:27
    级联网络,又叫金字塔网络
    亮点:(1)将2倍放大模块当做一个基本放大模块,完成4×,8×的放大任务;4倍任务就是使用2次2倍放大模块,8倍就使用3次放大模块;
    (2)训练一次网络可以完成2,4,8倍的放大任务;
    (3)提出了一个新的loss函数;

  • 2018年该团队在LapSRN基础上提出了一个改进版MS-LapSRN(84层);加入了一个递归,增加了一个带有上采样的浅通道来增加图像信息;仍然是使用2×的模块作为基础模块,递归实现4×,8×的任务,2×模块内的conv层也是使用递归,联合使用双重递归大大降低了参数量,实现了一个轻量级的模型

*会议:IEEE Conference on Computer Vision and Pattern Recognition, CVPR 2017
*论文Deep Laplacian Pyramid Networks for Fast and Accurate Super Resolution CVPR2017
*TensorFlow
*pytorch
*caffe
深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第9张图片
深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第10张图片
8. DenseNets (CVPR2017最佳论文)
*Densely Connected Convolutional Networks, (CVPR 2017, Best Paper Award)
*Torch代码
*caffe代码
*TensorFlow代码
网络结构图如下:A 5-layer dense block with a growth rate of k = 4.Each layer takes all preceding feature-maps as input.
深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第11张图片
具体的结构图如下
A deep DenseNet with three dense blocks. The layers between two adjacent blocks are referred to as transition layers and change feature-map sizes via convolution and pooling.
深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第12张图片
**优点:**前面所有层的输出是后面所有层的输入,每两层之间都有联系,且网络末端的层也可以直接学习到网络输入的低级信息,这样既可以防止过拟合也可以防止梯度消失爆炸;因为densenet是进行C通道的融合,所以相比较其他的分类为网络来说dense每层输出的featuremap的数量都很少(12,24,40)都是小于100的,其余的分类网络的特征数都是256,128之类的,相比较dense少了很多的参数;dense也是常用的降低网络参数的trick【同递归一样,是降低参数的trick】

  1. SRDenseNet (ICCV2017)
    Depth:69
    将DenseNet直接引入到SR领域
    *Image Super-Resolution Using Dense Skip Connections,ICCV2017
    *caffe代码
    *pytorch代码
    *TensorFlow代码
    深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第13张图片

  2. SRGAN [这篇论文里面使用了SRResNet] (CVPR2017)
    *Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial
    Network,CVPR2017
    *caffe代码
    *TensorFlow代码
    *pytorch代码
    深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第14张图片

  3. EDSR (2017CVPRW)
    深度:86
    (1)EDSR还做了一个增强版MDSR,MDSR更加宽了可以同时实现2×,3×,4×的任务,训练一次最后可以得到三个输出(分别是2×,3×,4×的结果);
    (2)EDSR修改了残差块,将残差块中的BN层给删除了,删除BN之后网络的参数降低了40%,2×的效果增加了0.48db
    超分网络不适合采用BN,因为BN是通过0均值归一化,,对每个mini-batch每一层进行归一化,这种归一化操作改变了特征之间的绝对关系,只保留了相对关系;这样不利于超分任务,也不利于生成网络;因为超分网络的输出与输入相比只是增加更多的细节信息,在亮度色度对比的等绝对信息是保持不变的情况下增加细节信息;
    *Enhanced Deep Residual Networks for Single Image Super-Resolution,CVPRW2017
    pytorch代码
    TensorFlow代码

** EDSR受到ResNet和SRResNet的启发而得到的 **
*ResNet
Deep Residual Learning for Image Recognition,CVPR2016 best paper,何凯明

  • ResNet中文译文
  • ResNet-TensorFlow代码
  • ResNet-Torch代码
    ResNet的深度152层,是 VGG的8倍,如下图
    ResNet网络是在VGG19网络结构模型的基础上进行的修改,通过短路机制加入残差单元,如下图所示,网络结构的变化主要体现在ResNet直接使用stride=2的卷积做下采样,并且用global average pool层替换了全连接层。
    ResNet的重要设计原则是:当feature map大小降低一半时,featuremap的数量增加一倍,这保持了网络层的复杂度。从下图可以看到,ResNet相比普通网络每两层间增加了短路机制,这就形成了残差学习,其中虚线表示featuremap数量发生了改变。下图显示的34-layer的ResNet,还可以构建更深的网络。从下表中可以看到,对于18-layer和34-layer的ResNet,其进行的两层间的残差学习,当网络更深时,其进行的是三层间的残差学习,三层卷积核分别是1x1,3x3和1x1,一个值得注意的是隐含层的feature map数量是比较小的,并且是输出feature map数量的1/4。


深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第15张图片

*总结
从经验上看,网络结构的深度能对模型的性能产生重要影响,一般来说网络结构随着深度的增加,网络可以提取更加复杂的特征(feature),(深的网络擅长恢复高频细节信息,浅层网络更加适合大致的轮廓信息),理论上模型越深可以取得更好的结果;但是这篇论文证明了在实际训练中,深度网络存在退化问题(Degradation problem),网络越深网络准确度出现饱和甚至出现下降,如下图所示,深度网络存在着梯度消失/梯度爆炸问题,以往为了避免此问题是采用BN层,或者使用随机梯度裁剪的训练方式,但是这篇论文中何博士提出了“残差学习”来解决这种退化问题。
深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第16张图片
Training error (left) and test error (right) on CIFAR-10 with 20-layer and 56-layer “plain” networks. The deeper network has higher training error, and thus test error. Similar phenomena on ImageNet is presented in picture.
下图是为解决梯度消失/梯度爆炸问题的残差结构
深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第17张图片
ResNet使用两种残差单元,如下图所示。左图对应的是浅层网络,而右图对应的是深层网络。对于短路连接,当输入和输出维度一致时,可以直接将输入加到输出上。但是当维度不一致时(对应的是维度增加一倍),这就不能直接相加。有两种策略:(1)采用zero-padding增加维度,此时一般要先做一个downsamp,可以采用strde=2的pooling,这样不会增加参数;(2)采用新的映射(projection shortcut),一般采用1x1的卷积,这样会增加参数,也会增加计算量。短路连接除了直接使用恒等映射,当然都可以采用projection shortcut。
深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第18张图片
A deeper residual function F for ImageNet. Left: a building block (on 56×56 feature maps) as in Fig. 3 for ResNet34. Right: a “bottleneck” building block for ResNet-50/101/152.

*SRResNet又名SRGAN
Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial
Network,CVPR2017
代码上一个里面有
下图是EDSR的结构图
深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第19张图片
深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第20张图片
EDSR文章中还提出了一个能同时进行不同上采样倍数的结构MDSR
The architecture of the proposed multi-scale SR network (MDSR).
深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第21张图片
13. MemNet (ICCV2017)
MemNet: A Persistent Memory Network for Image Restoration
作者:是DRRN(CVPR2017)的作者
*caffe
*TensorFlow
深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第22张图片
Prior network structures (a,b) and our memory block ©.The blue circles denote a recursive unit with an unfolded structure which generates the short-term memory. The green arrow denotes the long-term memory from the previous memory blocks that is directly passed to the gate unit.
深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第23张图片
Basic MemNet architecture. The red dashed box represents multiple stacked memory blocks.
深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第24张图片
Multi-supervised MemNet architecture. The outputs with purple color are supervised.
深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第25张图片

  1. CNF (CVPR 2017)
    Depth:27
    Image Super Resolution Based on Fusing Multiple Convolution Neural Networks

  2. TLSR(CVPR2017)
    Fast and Accurate Image Super-Resolution Using A Combined Loss,CVPR2017
    该论文的创新点是:利用多个loss函数来训练网络,提高网络的性能。In this work, we have presented a super resolution method using three losses assigned with different weights to be regarded as optimization target.
    深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第26张图片

  3. IDN (CVPR2018)
    IDN译文
    Fast and Accurate Single Image Super-Resolution via Information Distillation Network,2018CVPR
    Depth: 31
    Params: 715.3k
    caffe代码
    The architecture of enhancement unit in the proposed model. Orange circle represents slice operation and purple circle indicates concatenation operation in channel dimension.
    深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第27张图片

Architecture of the proposed network-IDN
深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第28张图片
17. CARN (ECCV2018)
*Fast, Accurate, and Lightweight Super-Resolution with Cascading Residual Network,ECCV2018
*
深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第29张图片

深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第30张图片
在这里插入图片描述
深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第31张图片

  1. Super-FAN (CVPR2018)
    Integrated facial landmark localization and super-resolution of real-world low resolution faces in arbitrary poses with GANs
    深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第32张图片
  2. RDN (CVPR2018)
    Depth:
  • Residual Dense Network for Image Super-Resolution,CVPR2018
    *Torch This code is built on EDSR (Torch)

深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第33张图片

深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第34张图片
深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第35张图片

深度学习在超分辨率重建SR领域的发展过程从SRCNN(ECCV14)-CameraSR(CVPR19)_第36张图片

杂文:

  1. Image restoration using very deep convolutional encoder-decoder networks with symmetric skip connections. NIPS, 2016

实验过程中的常用MATLAB代码整理

使用caffe+matlab模式的,PSNR,SSIM,IFC,对比图像局部放大等实现代码地址

SR领域期刊和会议整理

下面是以天津大学的要求给出的期刊和会以建议,仅供参考。

你可能感兴趣的:(超分辨率重建,SR,超分辨率重建,超分发展过程,深度学习)