Real-ESRGAN笔记

生成器:
采用与ESRGAN[50]相同的生成器(SR网络),即一个具有多个残差-残差密集块(RRDB)的深网络,如图4所示。我们还扩展了原来×4ESRGAN架构,以执行以×2和×1为比例因子的超分辨率。由于ESRGAN是一个重型网络,我们首先使用像素unshuffle (pixel-shuffle[42]的逆操作)来减少空间大小,并在将输入输入到主ESRGAN架构之前扩大通道大小。因此,大多数计算都是在较小的分辨率空间中进行的,这可以减少GPU内存和计算资源的消耗。
Real-ESRGAN笔记_第1张图片
Real-ESRGAN采用与ESRGAN相同的生成器网络。对于比例因子of×2和×1,它首先使用像素unshuffle操作来减小空间大小,并将信息重新排列到信道维度

鉴别器:带光谱归一化(SN) 的U-Net鉴别器
由于Real-ESRGAN的目标是解决比ESRGAN更大的退化空间,原有的鉴别器设计在ESRGAN中不再适用。具体来说,Real-ESRGAN中的鉴别器对复杂的训练输出要求有更大的鉴别能力。除了区分全局样式,它还需要为局部纹理产生精确的梯度反馈。受[41,452]的启发,我们还将ESRGAN中的vgg风格鉴别器改进为带有跳跃连接的U-Net设计(图6)。UNet输出每个像素的真实值,并可以向生成器提供详细的per-pixel反馈。
同时,U-Net结构和复杂的退化也增加了训练的不稳定性。我们采用光谱归一化正则化[37]来动态稳定训练。此外,我们观察到光谱归一化也有利于缓解GAN训练引入的过分尖锐和恼人的伪影。通过这些调整,我们能够轻松地训练RealESRGAN,并实现局部细节增强和伪迹抑制的良好平衡。
Real-ESRGAN笔记_第2张图片

训练过程:
分为两个阶段。首先,我们用L1损耗训练了一个psnr导向的模型。得到的模型被real - esrnet命名。然后,我们使用训练的面向psnr的模型作为生成器的初始化,并结合L1损失、感知损失[20]和GAN损失来训练real - esrgan[14,26,4]。

消融实验
二阶退化模型。我们在Real-ESRNet上进行降解的消融研究,因为Real-ESRNet更可控,更能反映降解的影响。我们将Real-ESRNet中的二阶过程替换为经典的退化模型来生成训练对。如fig .8(Top)所示,使用经典的一阶退化模型训练的模型不能有效去除墙面上的噪声或麦田中的模糊,而Real-ESRNet可以处理这些情况。
Real-ESRGAN笔记_第3张图片
图8 Top:Real-ESRNet结果w/和w/o二级降解过程。
Bottom:Real-ESRNet结果w/和w/ sinfilter。放大以获得最佳视角

sinc filters。如果在训练过程中不使用sinc filters,恢复的结果将放大存在于输入图像中的振响和超调伪影,如图8(下)所示,特别是在文本和行周围。相反,使用自适应滤波器训练的模型可以去除这些伪影。

SN正则化的U-Net鉴别器。我们首先使用esrgan setting 包括vgg -style 鉴别器和它的损失权重。但是从图9可以看出,该模型不能还原详细的纹理(砖块和灌木),甚至会在灌木树枝上带来令人不快的伪影。使用U-Net设计可以改善局部细节。但是,它会引入不自然的纹理,也会增加训练的不稳定性。SN正则化可以在稳定训练动力学的同时改善复原纹理。
Real-ESRGAN笔记_第4张图片
更复杂的模糊核。在模糊合成中去掉了广义高斯核和平台形核。如图10所示,在一些真实的样本上,模型不能像RealESRGAN那样去除模糊和恢复锐利的边缘。然而,在大多数样本上,它们的差异是有限的,说明广泛使用的高阶退化过程的高斯核已经可以覆盖较大的真实模糊空间。由于我们仍然可以观察到稍微更好的性能,我们采用了Real-ESRGAN中那些更复杂的模糊内核。

创新点
提出了新的构建数据集的方法,用高阶处理,增强降阶图像的复杂度。
构造数据集时引入sinc filter,解决了图像中的振铃和过冲现象。
替换原始ESRGAN中的VGG-discriminator,使用U-Net discriminator,以增强图像的对细节上的对抗学习。
引入spectral normalization以稳定由于复杂数据集和U-Net discriminator带来的训练不稳定情况。

你可能感兴趣的:(python,pytorch,深度学习)