超分辨率第四章-VDSR&EDSR
VDSR是2016年提出的模型
- 论文地址:Accurate Image Super-Resolution Using Very Deep Convolutional Networks
- 代码位置:F:\Github下载\pytorch-vdsr-recurrence-main
EDSR是是SRResNet的增强版本,2017年提出
一.VDSR
1.模型介绍
- SRCNN的不足
- 在增加深度之后训练效果较差。
- 模型只适用于单个放大因子,若需使用其他放大因子的尺度,需另外训练一个模型。
- 改进措施
- 基于VGG网络的方法,增强感受野,模型深度达到20层。
- 使用残差网络训练模型,避免退化问题。
- 使用高学习率(0.1开始)加快收敛速度,并使用一个可调的梯度裁剪,以最大限度地提高速度,同时抑制爆炸梯度。
- SRCNN是针对单一尺度进行训练的,如果需要处理不同尺度的图像,则需要训练多个模型。而VDSR通过训练一个单一的网络来处理多尺度的超分辨率问题,显著降低了参数量并提高了实用性
- 模型架构:作者使用20个网络层,除第一层和最后一层外,其余层具有相同的类型:64个大小为3x3x64的滤波器,也就是每一层滤波器的输入通道数为64,输出通道数也为64。其中一个滤波器在3*3的空间区域上操作。第一个网络层对输入图像进行操作,最后一个网络层用于图像重建。
2.数据集
- 训练集-91张图片(进行数据增强后得到训练集)
- 测试集-set5
3.模型结构
1 | #设置中间层结构 |
4.模型训练
参数设置:
1 | Namespace(batchSize=128, nEpochs=50, lr=0.1, step=10, cuda=True, resume='', start_epoch=1, clip=0.4, threads=1, momentum=0.9, weight_decay=0.0001, pretrained='none', gpus='0') |
1 | train_set = DatasetFromHdf5("data/train.h5") |
二. EDSR
- 在SRResnet的基础上去除了BN层
结构如下: