3、SRGAN
SRGAN论文链接:SRGAN
SRGAN(超分辨率生成对抗网络)是在2017年由Christian Ledig等人在论文《Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network》中提出的。该模型引入了基于GAN(生成对抗网络)的方法来解决单图像超分辨率(SISR)问题,即通过提高低分辨率图像的分辨率来生成高质量、逼真的结果。
SRGAN 的重要意义在于,它是最早将GAN应用于超分辨率任务的模型之一,通过生成高频细节,不仅关注像素的准确性,还实现了视觉效果上明显更好的提升,生成的图像更加逼真。
模型架
生成器 (Generator)
生成器的任务是将低分辨率(LR)的图像转化为高分辨率(HR)的图像。生成器采用深度卷积神经网络(CNN)进行设计,其架构包含以下主要部分:
- 卷积层(Convolutional Layers):最初的几个卷积层负责从低分辨率图像中提取特征。
- 残差块(Residual Blocks):生成器使用一系列残差块(ResNet架构中的一种),这些块允许信息流直接穿过网络,从而有效避免梯度消失问题,并帮助更好地捕捉图像的复杂特征。SRGAN 采用 16 个残差块。
- 子像素卷积层(Sub-pixel Convolution Layers):通过子像素卷积层(即上采样层)将低分辨率图像逐步放大到目标的高分辨率。这种上采样方法能够更加高效地恢复图像的细节。
- 激活函数:SRGAN 中使用的激活函数是 Parametric ReLU(PReLU),可以通过自适应学习参数来控制激活值,从而提高生成器的表现。
判别器 (Discriminator)
判别器的任务是区分生成的高分辨率图像和真实的高分辨率图像。它的结构是一个标准的卷积神经网络,用来判断输入图像是否为真实图像。判别器的主要构造如下:
- 卷积层(Convolutional Layers):逐层提取图像的特征,每层增加卷积核的数量,以便逐渐提升判别能力。
- Leaky ReLU 激活函数:在卷积层之间使用 Leaky ReLU 激活函数,允许小部分负值通过,从而避免信息丢失。
- 全连接层(Fully Connected Layer):最后连接一个或多个全连接层,输出一个二元分类结果,表示图像是否为真实的高分辨率图像。
损失函数 (Loss Function)
SRGAN 的创新之处在于引入了感知损失(Perceptual Loss),这与传统的像素级损失(如 MSE)不同。感知损失通过 VGG 网络的高层特征来衡量生成图像与真实图像之间的差异,从而生成更加逼真的细节。
- 对抗损失(Adversarial Loss):基于 GAN 的训练策略,生成器的目标是欺骗判别器,使其无法分辨生成图像和真实图像。
- 内容损失(Content Loss):基于 VGG 网络中间层的感知损失,用于保留图像的结构和内容细节。
- 总损失:是感知损失和对抗损失的组合。