Image Super-Resolution Using Deep Convolutional Networks

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Miss_yan/article/details/81868311
主要思想

(1)首先将一张低分辨率的图片使用二次插值法缩放到desired size,这一步使用的也是卷积操作,可以使用卷积层实现

(2)学习映射F,包含以下三个步骤:
Patch提取和表示,从低分辨率图像中提取patch,然后将每个patch表示成一个高维向量,由这些向量组成一个特征集
非线性映射,将每个高维向量映射到另一个高维向量上,每个映射向量都是一个高分辨率patch的表示。由这些向量能够组成另一个特征集
重建,将上述高分辨率的patch大小的表示组合到一起,生成最终的高分辨率图像,这里希望输出能够和ground-truth的结果相同。
patch提取和表示

传统的patch提取方法是使用预先训练好的模板进行提取,如PCA,DCT等作为基底进行提取。本文中,将这些基底的优化也包含到网络中去,第一层可以用公式表达成

F 1 ( Y ) = m a x ( 0 , W 1 Y + B 1 )
其中 W 1 大小为 n 1 c f 1 f 1 ,输出为 n 1 个特征图。

非线性映射

经过第一层后,每个patch都能够得到 n 1 个特征图,在第二阶段,将每个 n 1 维向量映射到一个 n 2 维向量上。这步的操作是在每个特征图上进行的

F 2 ( Y ) = m a x ( 0 , W 2 F 1 ( Y ) + B 2 )
W 2 包含 n 2 个大小为 n 1 f 2 f 2 的filter。每个输出都是一个高分辨率patch的表示,将用于重建。

重建

在传统方法中,预计重叠的高分辨率patch通常采用取平均值的方法,这也可以认为是一种卷积操作,本文定义产生最后的高分辨率图像的卷积层公式为

F ( Y ) = W 3 F 2 ( Y ) + B 3
W 3 包含 c 个大小为 n 2 f 3 f 3 的filter。

Tips

(1)将前面层的filter size设计的比后面的大,以便将重心放在高分辨率patch中的中心部分。
(2)由于重建部分使用到的每个patch的像素量为 ( 9 + 5 1 ) 2 = 169 ,比传统方法使用到的像素量更大,因此使得SRCNN能够给出更好的效果。

Training

  • 需要学习的参数包括 W 1 , W 2 , W 3 , B 1 , B 2 , B 3 ,可以通过最小化重构图像loss进行训练。使用L2距离定义loss策略函数
    L ( θ ) = 1 n i = 1 n | | F ( Y i ; θ ) X i | | 2
  • filter weight初始化使用高斯随机分布~(0,0)。前两层学习速率为0.0001,最后一层学习速率为0.00001。基于经验发现最后一层使用更小的学习速率将有助于收敛。
  • 为了在训练过程中避免border effects,所有的卷积层都不使用padding。

实验

1.研究使用不同数据集时模型的表现
2. 测试使用本文方法学习到的filter
3. 尝试不同的网络设计结构,研究超分辨率性能与深度、filter数量以及filter大小等元素间的关系

    1.使用不同数据集进行效果比较,结果发现无论使用大的数据集(ImageNet)或是小的数据集(91 images)得到的结果是相同的,训练时间也相同。但PSNR数据比较发现使用91 images得到的值更小,原因在于91 images已经包括了自然图像的变化;同时由于网络较小,因此对于91 images也不会产生过拟合。
    2.第一层特征图主要包含不同的结构(如不同方向的边),第二层特征图主要是强度不同
    3.模型和性能的权衡
3.1 filter 数量
随着filter数量的增加,性能也得到提升,但是计算速度就会下降
n 1 = 128
n 1 = 64
n 1 = 64 n 1 = 32 n 1 = 32 n 1 = 16
PSNR Time(sec) PSNR Time(sec) PSNR Time(sec)
32.60 0.60 32.52 0.18 32.26 0.05
-

3.2 filter size
- 在使用11-1-7大小的filter代替9-1-5后,发现PSNR的值有所升上,这表明合理的提高filter的大小能够有效的捕获更加丰富的信息,进而得到更好的结果。
- 固定第一层和最后一层,只对第二层的filter进行扩大后发现能够显著提升效果
- 将filter size变大之后,虽然效果有所提升,但参数量明显上升,因此需要对参数量和效果进行trade off

3.3 layer层数
在第一层和最后一层中间又加入一层后,效果并没有变好,并且收敛时间变慢,但能够达到三层的效果。如果扩大增加层的filter数量,无法达到三层的效果。扩大filter的尺寸后,经过一周的时间,效果也不如三层的。

猜你喜欢

转载自blog.csdn.net/Miss_yan/article/details/81868311