Image Super-Resolution Using Deep Convolutional Networks

主要思想

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

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

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

F1(Y)=max(0,W1Y+B1) F 1 ( Y ) = m a x ( 0 , W 1 ∗ Y + B 1 )
其中 W1 W 1 大小为 n1 n 1 cf1f1 c ∗ f 1 ∗ f 1 ,输出为 n1 n 1 个特征图。

非线性映射

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

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

重建

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

F(Y)=W3F2(Y)+B3 F ( Y ) = W 3 ∗ F 2 ( Y ) + B 3
W3 W 3 包含 c c 个大小为n2f3f3的filter。

Tips

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

Training

  • 需要学习的参数包括 W1,W2,W3,B1,B2,B3 W 1 , W 2 , W 3 , B 1 , B 2 , B 3 ,可以通过最小化重构图像loss进行训练。使用L2距离定义loss策略函数
    L(θ)=1ni=1n||F(Yi;θ)Xi||2 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数量的增加,性能也得到提升,但是计算速度就会下降
n1=128 n 1 = 128
n1=64 n 1 = 64
n1=64 n 1 = 64 n1=32 n 1 = 32 n1=32 n 1 = 32 n1=16 n 1 = 16
PSNRTime(sec)PSNRTime(sec)PSNRTime(sec)
32.600.6032.520.1832.260.05
-

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值