这里可以先看看Generative Adversarial Networks了解一下GAN的核心思想。Generator和Discriminator的动态博弈的纳什均衡点。

SRGAN.pdf
https://blog.csdn.net/weinidakaishijian/article/details/75451895
https://blog.csdn.net/qq_44537267/article/details/120033009

主要贡献

主要贡献是一个全新的损失函数,能使训练的网络从大幅降低采样率的低分辨率图像中还原出逼真的图像质感和细节。

主要方法

定义的新的感知损失函数可以分为两部分:对抗损失和内容损失。对抗损失鼓励重建的高分辨率看起来像真实的图像(看起来和原图无差),内容损失确保重建的图像与原本的低分辨率图像有相似的高层特征内容。

发生器生成通过最佳鉴别器学习都无法区分与自然图像的图像,而鉴别器网络则是训练来区分自然和重建生成的高分辨率图像。

摘要

尽管使用更快更深的卷积神经网络的单图像超分辨率准确性和速度有所突破,很大程度上仍然存在一个中心问题未解决:我们如何恢复更细的纹理细节当我们使用large upscaling factors?在图像下采样信息丢失的情况下,在大量可能的解决方案下超分辨率成为高度不良的逆向问题。因此,基于优化的超分辨率方法的行为主要由目标函数的选择驱动。最近的工作主要集中在最小化均方重建误差(MSE)。所得到的估计具有高峰值信噪比(PSNR),但它们通常过于平滑,缺乏高频细节,使得它们在感觉上不令人满意。在本文中,我们提出了超分辨率生成对抗网络(SRGAN)。据我们所知,它是第一个能够从4×下采样恢复照片逼真的自然图像的框架。为了达到这一目的,我们提出一种知觉损失函数,包括对抗性损失和内容损失。对抗性损失将我们的解决方案变成使用经过训练以区分生成的超分辨率图像和原始照片真实图像的鉴别网络的自然图像流形。此外,我们使用由感知相似性驱动的内容丢失函数,而不是像素级别空间中的相似性。使用感知损失功能训练在350K图像上,我们的深层残差网络能够在public benchmarks从大量下采样图像中恢复逼真的纹理。

作者认为,高频信息并不能被很好的捕捉,主要原因是在于之前的LOSS FUNCTION选择的不好,选择MSE会使优化主要采取平滑的方式(目标的错误),本文提出了一种新的损失函数,感知损失。

【为什么采用MSE作为损失函数?】
监督SR算法的优化目标通常是恢复HR图像与真实图片之间的均方误差(MSE)的最小化。 这是方便的,因为MSE最小化也使峰值信噪比(PSNR)最大化,这是用于评估和比较SR算法的常用度量。 然而,MSE(和PSNR)捕获感知上相关差异(例如高纹理细节)的能力非常有限,因为它们基于像素级别的图像差异来定义。
【优化MSE同时也会使PSNR最大,但是MSE的评价标准并不能很好的反应人类的感知,就是MSE觉得好的,人不一定觉得好】

基于VGG19的内容损失函数

作者所选择的是基于VGG的内容损失。先基于预训练的19层VGG网络的ReLU激活层来定义损失函数。这部分的理论来源于” Very deep convolutional networks for large-scale image recognition”这篇论文。在这篇论文里面,作者创建了一个从VGG19网络里提取的特征图之间欧式距离的损失函数,无论是超分辨率还是艺术风格的转移,效果都非常好。SRGAN的作者直接使用了这个作为损失函数的一部分。


因为上文已经讲过基于最小化MSE的损失函数虽然可以获得很高的PSNR,但是高放大倍数下视觉效果并不好。因此采用作者选择的是基于VGG的内容损失。先基于预训练的19层VGG网络的ReLU激活层来定义损失函数。

作者的主要创新点抛弃了MSE转而用基于VGG的内容损失定义损失函数。并且使用了GAN对抗网络来分辨自然HR图像和重建出来的HR图像,并且把分类网络的结果引入生成网络的损失函数,将使得训练出来的结果从视觉上来说更接近自然HR图像。虽然这样做会降低峰值信噪比,因为放大倍数越大,越不平滑的情况下PSNR越低。不过从视觉上说最为真实,因为过于平滑会使得图像内部物体的边缘看起来模糊。

网络设计

https://blog.csdn.net/weixin_42625806/article/details/109577340
image.png


定义分辨器网络D,生成器G。

B个残差块。
G:使用两个带有3x3小内核的卷积层和64个特征映射,然后是批处理规范化层BN和ParametricReLU 作为激活函数。——这里的Generator跟VDSR的好像差不多。应该是直接沿用VDSR的设计结构。
SRGAN - 图2

D:使用LeakyReLU激活并避免整个网络中的最大池化,它包含8个卷积层,滤波器内核数量不断增加,从VGG网络中的64到512个内核增加了2倍。每次特征数量加倍时,使用条纹卷积来降低图像分辨率。得到的512个特征图之后是两个密集层和一个最终的S形激活函数,以获得样本分类的概率。
【还不太理解】

损失函数

MSE很难恢复丢失的高频细节,最小化MSE得到的是像素平均值,得到图像质量较差。
(1)感知损失
使用Lsr损失=内容损失+对抗性损失×权重
image.png
(2)内容损失
像素方式的MSE损失。
image.png
此种损失丢失了高频信息,得到的图像过于平滑。
改进:我们将VGG损失定义为重建图像的特征表示与参考图像之间的欧氏距离.
将生成器得到ISR图像与IHR图像输入VGG-19网络,对每一层的特征映射计算欧式距离。
image.png
补充:欧拉距离是基数差平方和再开方。
image.png
(3)对抗损失
通过添加Gan生成网络损失,鼓励网络欺骗鉴别器。
image.png