这篇论文是2018年的,所以总结的SR网络截止到2018年,后续会持续更新…
以SRCNN为baseline,架构如图1,存在三个问题:
(1)双三次插值存在问题:(a)引入了细节平滑效果这些输入可能导致进一步的错误估计图像结构;(b) time-consuming; ©如果上采样的内核未知,不应该用特定的插值方法得到input。如何得到一个有理有据的input?
(2)SRCNN只有三层,更深的网络来达到更好的效果?
(3)loss和架构的设计都没有与SR结合,如何与传统的SR task相融合?
图1
问题(1)解决:
直接使用LR图像作为input → 网络中进行上采样 → deconvolution/transposed convolution
FSRCNN是第一个使用deconvolution层的,如图2(1),给定上采样因子,先对其进行插值,然后用步长为1对其进行卷积,通常插值用的是最近邻插值。有两个优势:(a) 计算量降低,速度增加;(b) 更适合下采样核未知的情况。但仍存在两个问题:(a)deconvolution层无法完全恢复好图像中缺失的信息;(b) 最近邻插值中每个方向上的被上采样的特征被重复使用,产生冗余。
为解决该问题,ESPCN提出一种新的deconvolution方式,如图2(2)。ESPCN扩展了输出特性的通道,用于存储额外的点以提高分辨率,然后重新排列这些点以通过特定的映射标准获得HR输出。由于扩展是在通道维度上进行的,一个较小的内核大小就足够了,且进一步表明,在ESPCN中,将普通但冗余的最近邻插值替换为用零填充子像素的插值后,反卷积层可以简化为亚像素卷积。显然,与最近邻插值相比,这种插值更有效。