6. 《Enhanced Deep Residual Networks for Single Image Super-Resolution》
EDSR模型 和 MDSR模型
论文链接:https://arxiv.org/abs/1707.02921
全文翻译:https://mp.weixin.qq.com/s/xpvGz1HVo9eLNDMv9v7vqg
项目链接:https://github.com/jmiller656/EDSR-Tensorflow
主要思想:
- 去掉 BN 层:原来的 ResNet 使用来解决计算机视觉问题,如图像分类和检测。 因此,将 ResNet 架构直接应用于超级分辨率等低级视觉问题可能不是最佳的。批归一化层(Batch Normalization,BN)会使特征标准化,同时使网络丧失范围的灵活性,因此去除了 BN 层。
- 分别提出了单一尺度和多尺度模型。
网络模型:
- EDSR:适用于单一尺度,放大其他倍数的网络可以用放大2倍的数据预训练,提升了训练的速度。
- MDSR:适用于多尺度,特征提取和重建层参数不共享,中间的映射层参数共享。
7. 《Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network》
SRGAN模型
论文链接:https://arxiv.org/abs/1609.04802
项目链接:https://github.com/tensorlayer/srgan
网络模型:
损失函数:
本文的主要贡献就在于设计了感知损失(Perceptual Loss)。分为内容损失(Content Loss)
和对抗损失(Adversarial Loss)两部分。
- 内容损失:
传统的内容损失使用的都是 MSE,而 MSE 的损失函数使得输出缺乏高频成分,过于光滑不适宜人们阅读,所以本文在基于预训练的 VGG19 的 RELU 激活层来定义 loss 函数,定义如下:
上式是通过欧氏距离定义的,其中 φi,j 是 VGG19 里面第 i 个最大池层之后的第 j 个卷积层所提取到的特征,Wi,j 和 Hi,j 是各自的特征维度。
- 对抗损失:
基于判别器的概率定义对抗损失,定义如下:
8. 《To learn image super-resolution, use a GAN to learn how to do image degradation first》
论文链接:https://arxiv.org/abs/1807.11458
项目链接:Pytorch: Face-and-Image-super-resolution
这篇文章不是很经典的模型,是我搜集资料的时候看到的,我觉的还是有一些创意的,可以提供一些启发。
算法步骤:
- 使用不同的未配对数据集,训练 High-to-Low GAN 网络。
- 用上一步的输出结果,用成对训练数据训练 Low-to-High GAN 网络。
相当于是第一个阶段我们学习到降级模型以便于获取成对数据集,然后在第二个阶段进行SR。
网络模型:
损失函数:
本文的损失函数如下图所示,由 L2 像素损失和 GAN 损失两部分组成。由于L2 像素损失会使图像变得平滑,因此 GAN 损失占的比重较大。
GAN 损失的定义如下:
L2 损失(也就是 MSE 损失)的定义如下:
9. 《Real-Time Video Super-Resolution with Spatio-Temporal Networks and Motion Compensation》
VESPCN模型
论文链接:https://arxiv.org/abs/1611.05250
算法流程:
- 通过 Motion estimation 估计出位移,然后利用位移参数对相邻帧进行空间变换,将二者对齐;
- 把对齐后的相邻若干帧叠放在一起,当做一个三维数据,在低分辨率的三维数据上使用三维卷积,得到的结果大小为 W×H×r2;
- 利用 ESPCN 的思想将该卷积结果重新排列得到大小为 rW×rH×1 的高分辨率图像。
本文提出了一个空间变换网络,通过 CNN 来估计空间变换参数,从而实现 Motion estimation。这一步我没有仔细看,所以在这里就不说了。
方法看的不是很全,有很多地方都是我自己理解的。虽然近期应该不会再做 SR 方面的工作了,不过通过这段时间的学习,还是学到了很多。
最后附上一个 GitHub 上关于 SR 的总结:https://github.com/YapengTian/Single-Image-Super-Resolution