【图像超分辨】FSRCNN

FSRCNN

  • FSRCNN改进之处
  • 网络结构
  • 实验结果
  • 参考博客

FSRCNN仍然是由港中文大学的Dong Chao, Tang XiaoOu等人做出来的文章,是SRCNN(将CNN引入超分辨率处理的开山之作)之后的又一力作。
该文章发表在CVPR2016上的文章,声称能在CPU上进行实时处理视频超分辨率。

FSRCNN改进之处

  1. 并不是将三次插值后的图像当做输入,而是直接将LR图像丢入到网络中,最后选用deconv进行放大;
  2. 在映射Layer进行了改进,先shrink再将其复原;
  3. 更多的映射layer和更小的kernel;
  4. 共享其中的mapping layer,如果需要训练不同的upscale model,最后仅需要fine-tuning最后的deconvLayer。

问题:在SRCNN中到底是什么拖慢了重建速度呢?

  1. 一般网络都直接对Interpolated LR投入到网络中,这便带来复杂的计算开销,假设要放大n倍,那么计算复杂度则上升到了n^2;
  2. 非线性层映射的参数太过臃肿。

解决办法:

  1. 取消ILR输入,而是采用LR输入,在最后引用deconv;
  2. 改进mapping layer。

网络结构

SRCNN和FSRCNN的对比图例:
【图像超分辨】FSRCNN_第1张图片

1.Feature extraction

在SRCNN中,feature extraction选的kernel size 为9,然而SRCNN是针对ILR(插值后的低分辨率图像)进行操作的。而FSRCNN则是对LR进行操作,因此在选取kernel的时候,可以选取小的一点。作者选取为5x5。

2.Shrinking

在mapping过程中,一般是将LR feature进行map到HR feature中,因此LR feature maps的维数一般非常高。作者通过选取1x1的卷积核进行降维,从而减少后面的计算量。

3.Non-linear mapping

在SRCNN中,作者选取了一个5x5的map layer,然而5x5会带来比较大的计算量,作者将选取3x3的kernel,通过m个3x3的卷积layer进行串联。

4.Expanding

作者发现低维度的HR dimension带来的重建效果并不是特别好,因此作者通过1x1的卷积layer,对HR dimension进行扩维,类似于Shringking的反操作。

5.Deconvolution

转置卷积则是实行上采样操作。这个操作可以看作是conv的逆操作,因为stride=k时的cov卷积操作会将feature map缩水k倍。所以stride为k的deconv则会将feature map进行放大k倍。

6.PRelu
PReLU激活函数。

FSRCNN的参数列表:
【图像超分辨】FSRCNN_第2张图片

实验结果

训练集:之前传统SR method基本都在Set91上训练,但是对CNN来说,Set91并不够去训练大的网络结构。由于BSD500是jpeg格式,存在压缩所以也不适合做训练dataset。本文提出general-100 + Set91进行充当训练集。并且进行数据增强,1)downscale 0.9, 0.8, 0.7 and 0.6。 2) Rotation 90,180,270。因此我们将会得到20倍的训练数据。

测试集和validation: Set5 [15], Set14[9] and BSD200 [25] dataset for testing,Another 20 images from the validation set of the BSD500 dataset are selected for validation

【图像超分辨】FSRCNN_第3张图片

参考博客

【超分辨率】FSRCNN–Accelerating the Super-Resolution Convolutional Neural Network

你可能感兴趣的:(超分辨SR)