超分辨率重建DRRN
Image super-resolution via deep recursive residual network
知识点
- 递归学习
- 全局残差
- 局部残差
引言
Kim提出了VDSR 和 DRCN
VDSR基于使用大学习率、残差学习、梯度裁剪策略,有20层的卷积层
为了控制模型参数,提出了DRCN。16个递归层。使用了递归监督和跳跃连接。
深层网络需要很多参数,不适合轻量级的应用。
全局残差。VDSR和DRCN中,输入图像直接传输到输出,称为全局残差
局部残差。为了应对细节丢失导致的图像退化问题,作者提出了局部残差学习。局部残差可以携带丰富的图像细节,而且有助于梯度传输。局部残差是在堆叠的层之间进行的。全局残差只发生在输入和输出之间。
为了保持模型的紧凑型,使用的递归学习
与DRCN的区别:
- DRCN的卷积层共享参数,共有16层。DRRN递归块中含有残差单元,残差单元是共享参数的。
- DRCN监督每一次递归(这里监督的意思是每一次的递归输出都输出与真实图像对比)。DRRN设计了一个具有多路径结构的递归块。DRRN有52个卷积层。
相关工作
ResNet使用链式局部残差结构
VDSR使用全局残差结构,全局残差和自适应梯度残差加速模型的训练过程。采用的尺度增强策略,训练不同尺度组成的训练集。
DRCN为了减少参数量,使用递归学习。为了避免梯度消失/爆炸,引入的递归监督和全局残差。
ResNet不同残差单元的恒等分支输入不同。
DRRN 不同残差单元的恒等分支输入相同。
网络结构
残差单元
后激活。激活函数在卷积层之后
预激活。
何凯明认为预激活更容易训练并且性能更好。
递归模块
单个递归模块。其中U表示递归模块中残差单元的数量
堆叠6个递归模块和全局残差学习的DRRN。其中B表示递归模块的数量。
网络的深度计算
损失函数
实验
数据集
291张训练集
四个基准测试集上测试
Set5 [1], Set14 [36], BSD100 [18] and Urban100
数据增强:旋转,翻转
在原始图像上进行90 180 270 旋转。水平翻转。这时对于原始图像,有额外的7张图片
受VDSR的启发,不同尺度的数据集进行训练。
训练图像被分割成31*31 ,步长21
batch=128
SGD 动量 0.9 权值衰减为0、0001
卷积层 个数128,大小3
初始化使用HE,因为这适用于Relu激活函数
学习率设置为0.1 然后每10个epoch降低一半
因为使用的较大的学习率,所以作者使用的梯度裁剪
参数B,U对模型的影响
优秀方法的对比
其中VDSR,DRCN是引用原文的数据。
这里注意数据是可以引用某一篇论文,但是一定要注意标注是数据来源。
如果论文里没有某一项指标,需要自己复现,这也要指出来。
在做这些工作时,需要指出代码的来源。