论文地址:https://arxiv.org/abs/2007.04344
代码地址:https://github.com/hellloxiaotian/LESRCNN)
论文小结
本文的模型名字叫做 LESRCNN ,为lightweight enchanced SR CNN。目标与名字一样,想弄一个轻量级可以在端上推理的模型。作者的设备为 I7-7800 和 1080Ti,内存大小为16G,推理时长如下图所示。模型主体有23层卷积层,卷积核为
3
∗
3
3*3
3∗3和
1
∗
1
1*1
1∗1交替进行,下面的时间是在1080Ti的GPU下通过4倍上采样得到的目标尺寸的时间,还是运行时间还是比较长的。
模型设计可以分为三个模块:IEEB(information extraction and enhancement block),RB(reconstruction block)和IRB(information refinement block),组合如下图所示。大致思路就是多使用残差结构,将每层的特征表示累加起来复用,将第一个输出特征也上采样到最后的输出上。同时,在高分辨率的HR图像上,也使用几个卷积层进行细粒度Refine。作者认为前面都是在低分辨率下学习的特征,这样上采样学习的HR图是粗糙的,所以需要后面的IRB模块。
论文简介
本文设计的模型LESRCNN是由三个连续的子模块组成:信息提取和增强模块IEEB,重构上采样模块RB和特征信息校正模块IRB。其中,IEEB模块有17层卷积,RB模块有1层卷积,IRB模块有5层卷积,一共为23层卷积(PS:这个RB模块的1层卷积,应该是不准确的,就上图所示的都有2个卷积层了,更不用说4倍的上采样)。
作者认为,IEEB只使用了低频特征(利用LR图像),RB使用低频特征生成粗糙的高频特征,这个粗糙意思为可能会确实高频特征的详细信息,IRB将生成的粗糙高频信息进行Refine。在卷积层核大小的选择下,在IEEB的主干网络上,使用
3
∗
3
3*3
3∗3卷积和
1
∗
1
1*1
1∗1卷积交替进行(减少了参数量和资源占用,在时间上和全部使用
3
∗
3
3*3
3∗3差不多,如下表所示),RB和IRB的卷积核全部为
3
∗
3
3*3
3∗3卷积。
主干网络
3
∗
3
3*3
3∗3和
1
∗
1
1*1
1∗1交替的网络HN和全部为
3
∗
3
3*3
3∗3的网络SN进行对比;
模型设计如上面的图所示,其上采样模块(Sub-pixel Conv)有下图所示三种方式:
文中反复说的异构卷积是 3 ∗ 3 3*3 3∗3卷积后连接着 1 ∗ 1 1*1 1∗1卷积,这个组合应该就是异构卷积。
实验和结果
训练的时候,使用的是DIV2K数据集,将验证集融入到了训练集一起训练,不知道其他算法是否也是这么做的。训练的图像大小为 64 ∗ 64 64*64 64∗64,增加了随机水平翻转和 90 ° 90° 90°旋转。得到的指标是通过YCbCr的Y通道得到的。
使用的机器配置:Inter Core i7-7800, a RAM of 16G and two GPUs of Nvidia GeForce GTX 1080Ti。
消融学习
各个组件的性能如下图所示:
在各个测试集上的表现
LESRCNN在各个测试集上的表现在下面展示,其中LESRCNN是只训练单尺度模型,LESRCNN-S是同时训练三个尺度的模型,S是Scale的意思。
在Set5上的表现:
在Set14上的表现:
在B100上的表现:
在U100的表现:
比较几个模型的性能