【图像超分辨】LapSRN

传统的超分辨做法有一些共同之处,首先是L2 loss函数,其次,使用特定尺寸的图片输入(VDSR除外),最后,都是输入到结果,无中间的超分辨率结果。

论文先指出了传统SR(super resolution)做法中的一些问题:

  1. 现有方法可以处理各个尺寸的低分辨率图片,利用线性插值 将输入图片转为指定尺寸,这一步骤增加了人为噪声;
  2. 使用L2 loss函数不可避免的产生模糊的预测,因为L2 loss函数不能找到由低分辨率LR到高分辨率HR的潜在的多模态分布,在这里作者做了一个解释:例如,一个低分率的patch可能对应多个高分率的patch,采用L2 loss使得重构结果过度平滑,不符合人类视觉;
  3. 传统作法无法产生中间的输出结果。

于是,针对传统做法的问题,论文做了一些改进。

LapSRN的创新点主要有两个:

  1. 级联结构(金字塔结构);
  2. 提出了一种新的损失函数。

网络结构

【图像超分辨】LapSRN
LapSRN分成两个部分:特征提取和图像重建。特征提取中,每一级有d个卷积层,再跟随一个2倍的反卷积提升分辨率,之后和同样用反卷积提升分辨率的LR图像相加,得到更精细的SR。网络学习的就是其中的残差。

本文是通过将低分辨率图像直接作为输入到网络中,通过逐级放大,在减少计算量的同时,也有效的提高了精度。并且对各个金字塔的level之间和每个level之内,通过recursive进行参数共享。

1. Feature extraction branch
通过stack convolution来获取非线性特征映射。

2. Image reconstruction branch
在每一个pyramid level,最后加上deconv来提升图像的2x分辨率。

3. 参数共享

本文网络在两个地方进行参数共享,减少了参数量:

  1. 在各个pyramid level之间参数共享, 称之为Recursive block。因为laplacian pyramid是在x2的基础上得到x4,由于各个level中的结构相似性,因此在各个level,参数得以共享;

【图像超分辨】LapSRN

  1. 每个pyramid level之中参数共享。inspired DRCN and DRRN,作者在每个pyramid level中进行参数共享,如下图;

【图像超分辨】LapSRN

损失函数

【图像超分辨】LapSRN
其中,x表示LR图像,y表示HR图像,r表示残差,s表示对应的level,也就是scale在level s下,期望的HR输出为ys=xs+rs;用线性插值Bicubic将HR图像y imresize为对应大小的ys。该loss函数并非如传统L2 loss函数,如图中所示N是每个batch中的图片数量,L为金字塔结构的level数量。

实验结果

D,R关系, D为每个pyramid中的conv数,R为循环次数也就是递归的次数。
【图像超分辨】LapSRN
各个超分辨率算法参数细节:
【图像超分辨】LapSRN
各个超分辨率算法实验结果:
【图像超分辨】LapSRN
实验效果图:
【图像超分辨】LapSRN
现在的论文基本上都是有一个共同之处(个人感觉):

  1. 加深的网络结构,使得最后几层拥有更大的感受野,从而根据更大的区域获得更多的信息进而去推断目标区域像素;
  2. 更深的结构为梯度传播带来困难,所以采取 并非直接得到HR图像结果,而是得到残差,通过残差学习来化解这个问题。

参考博客

【超分辨率】Laplacian Pyramid Networks(LapSRN)
图像超分辨LapSRN:Deep Laplacian Pyramid Networks for Fast and Accurate Super-Resolution论文笔记
LapSRN 超分辨率