当前位置:   article > 正文

Real-ESRGAN:Training Real-World Blind Super-Resolution with Pure Synthetic Data论文整理_real-esrgan: training real-world blind super-resol

real-esrgan: training real-world blind super-resolution with pure synthetic

一、主要内容

本文将ESRGAN扩展到Real - ESRGAN

  • 使用纯合成训练数据对来训练用于真实世界盲超分辨率

  • 提出了一个高阶退化过程,并使用sinc滤波器对常见的振铃和过冲伪迹进行建模。

  • 使用了具有谱归一化正则化的U - Net判别器来增加判别器的能力并稳定训练动态。

结果:使用合成数据训练的Real - ESRGAN能够增强细节,同时去除大多数真实世界图像的恼人伪影

二、研究思路

背景:尽管以前的研究在盲超分辨率方面已经做了许多尝试,以恢复具有未知和复杂退化的低分辨率图像,但它们仍然远远不能解决一般的真实世界退化图像。

  • 大多数方法假设一个理想的双三次降采样核,这与真实的退化情况不同。这种退化不匹配使得这些方法在实际场景中不切实际。

  • 盲超分辨率旨在恢复遭受未知和复杂退化的低分辨率图像。根据潜在的退化过程,现有的方法大致可以分为显式建模和隐式建模。

    • 经典退化模型由模糊、降采样、噪声和JPEG压缩组成,在显式建模中被广泛采用。然而,现实世界中的退化通常过于复杂,无法用多个退化的简单组合进行建模。因此,这些方法在实际样本中很容易失败。

    • 隐式建模方法利用生成对抗网络( GAN )的数据分布学习来获得退化模型。然而,它们仅限于训练数据集内的退化,无法很好地推广到分布外的图像。

研究思路:本文旨在扩展强大的ESRGAN,通过合成具有更实际退化过程的训练对来恢复一般的真实LR图像

  • 真实的复杂退化通常来自于不同退化过程的复杂组合,例如相机成像系统、图像编辑和互联网传输。例如,当我们用手机拍照时,照片可能会有几个退化,如相机模糊、传感器噪声、锐化伪影和JPEG压缩。然后我们做一些编辑和上传到一个社交媒体应用程序,它引入了进一步的压缩和不可预测的噪音。当图像在互联网上被多次共享时,上述过程变得更加复杂。

  • 这促使我们将经典的"一阶"退化模型扩展到"高阶"退化建模,即用若干个重复的退化过程对退化进行建模,每个过程即为经典退化模型。在实证上,为了在简单性和有效性之间取得较好的平衡,我们采用了二阶退化过程。最近的一项工作也提出了一种随机洗牌策略来合成更实用的退化。然而,它仍然涉及固定数量的降解过程,并且是否所有的洗牌降解都是有用的尚不清楚。相反,高阶退化建模更加灵活,试图模仿真实的退化产生过程。我们进一步在合成过程中引入sinc滤波器来模拟常见的振铃和过冲现象

具体做法:由于退化空间远大于ESRGAN,因此训练也变得具有挑战性。

  • 判别器需要有更强大的能力从复杂的训练输出中判别真实性,而判别器的梯度反馈需要更准确地进行局部细节增强。因此,我们将ESRGAN中的VGG风格鉴别器改进为U - Net设计

  • U - Net结构和复杂的退化也增加了训练的不稳定性。因此,使用谱归一化( SN )正则化来稳定训练动态

三、模型细节

1.经典退化模型

盲SR旨在从具有未知和复杂退化的低分辨率图像中恢复高分辨率图像。通常采用经典退化模型对低分辨率输入进行合成。

  • 一般地,地面真值图像y首先与模糊核k卷积

  • 然后,进行尺度因子为r的降采样操作

  • 低分辨率x是通过添加噪声n得到的。

  • 最后,JPEG压缩也被采用

模糊

  • 通常将模糊退化建模为与线性模糊滤波器(内核)的卷积各向同性和各向异性高斯滤波器是常见的选择。

  • 尽管高斯模糊核被广泛用于建模模糊退化,但它们可能不能很好地逼近真实的相机模糊。为了包含更多样的核形状,本文进一步采用了广义高斯模糊核和高原形状分布。经验上发现包含这些模糊核可以为几个真实样本产生更尖锐的输出

噪声

  • 考虑两种常用的噪声类型:1 )加性高斯噪声和2 )泊松噪声。

    • 加性高斯噪声具有与高斯分布相等的概率密度函数。噪声强度由高斯分布的标准差(即sigma值)控制。当RGB图像的每个通道都有独立的采样噪声时,合成噪声就是彩色噪声。本文还通过对三个通道使用相同的采样噪声来合成灰度噪声

    • 泊松噪声服从泊松分布。它通常用于近似建模由统计量子涨落引起的传感器噪声,即在给定曝光水平下感应到的光子数的变化。泊松噪声具有与图像强度成正比的强度,不同像素处的噪声相互独立。

resize(下采样

  • 降采样是SR中合成低分辨率图像的基本操作。更一般地,我们同时考虑降采样和上采样,即resize。

  • 为了包含更加多样和复杂的调整大小效应,本文考虑从上述选择中进行随机resize操作。由于最近邻插值引入了错位问题,将其排除,只考虑面积、双线性和双三次操作

JPEG压缩

  • JPEG压缩是一种常用的数字图像有损压缩技术。

    • 它首先将图像转换到YCbCr颜色空间并对色度通道进行降采样。

    • 然后将图像分成8 × 8块,每个块进行二维离散余弦变换( DCT ),然后对DCT系数进行量化。块效应通常由JPEG压缩引入。

  • 压缩图像的质量由一个品质因子q∈[ 0、100]决定,其中较低的q表示较高的压缩比和较差的质量。本方法使用PyTorch实现DiffJPEG

2.高阶退化模型

当采用上述经典退化模型来合成训练对时,训练好的模型确实能够处理一些真实的样本。然而,它仍然无法解决现实世界中的一些复杂退化问题,尤其是未知噪声和复杂工件(见图3)。这是因为合成的低分辨率图像与真实的降质图像仍有较大差距。因此,本文将经典退化模型推广到高阶退化过程,以模拟更实际的退化过程

高阶退化模型公式:

  • 经典退化模型只包含一个固定的基本退化次数,可视为一阶建模。然而,现实生活中的退化过程是多种多样的,通常包括相机成像系统、图像编辑、互联网传输等一系列过程。这样一个复杂的退化过程无法用经典的一阶模型来模拟。

  • 因此,本文提出了一个高阶退化模型。一个n阶模型包含n个重复的退化过程(如公式5)

  • 其中每个退化过程采用具有相同过程但不同超参数的经典退化模型(式1 )。注意这里的"高阶"与数学函数中使用的"高阶"是不同的。主要是指同一操作的执行时间

  • 为了使图像分辨率保持在合理的范围内,将公式1中的降采样替换为随机resize操作。经验上,我们采用二阶退化过程,因为它可以在保持简单性的同时解决大多数真实的情况。

生成数据生成pipline

  • 图2描绘了本文的纯合成数据生成pipline的整体流程。值得注意的是,改进的高阶退化过程并不完美,无法覆盖真实世界中的整个退化空间。相反,它仅仅通过修改数据合成过程扩展了以往盲SR方法的可解退化边界。几种典型的限制场景如图11所示。

3.振铃和过冲伪影

环形伪影Ringing artifacts常以伪边缘的形式出现在图像的尖锐过渡附近。它们在视觉上看起来像带子或靠近边缘的"幽灵"。过冲伪影Overshoot artifacts通常与振铃伪影结合在一起,表现为边缘过渡处的跳变增加。造成这些伪影的主要原因是信号是带限的,没有高频成分。这些伪影通常由锐化算法、JPEG压缩等引起。图5 ( Top )显示了一些遭受振铃和过冲伪影的真实样品。

本文使用sinc滤波器,一种切断高频的理想化滤波器,来合成训练对的振铃和过冲伪影。sinc滤波核可以表示为

  • ( i , j)为核坐标;wc是截止频率;J1是第一类一阶贝塞尔函数。

  • 图5 (底部)给出了不同截止频率的sinc滤波器及其对应的滤波图像。观察到它可以很好地合成振铃和过冲伪迹(尤其是由过尖锐效应引入的)。这些伪影与图5 (上)中前两个真实样本中的伪影在视觉上相似。

  • 在两个地方采用sinc滤波器:模糊过程和合成的最后一步。随机交换最后一个sinc滤波器和JPEG压缩的顺序,以覆盖更大的退化空间,因为有些图像可能先过锐化(伴有过冲伪影),然后再进行JPEG压缩;而有些图像可能先进行JPEG压缩,再进行锐化操作。

4.网络与训练

  • ESRGAN生成器。

    • 采用与ESRGAN相同的生成器( SR网络),即一个包含多个残差密集块( RRDB )的深度网络,如图4所示。

    • 还对原有的× 4 ESRGAN架构进行了扩展,实现了尺度因子为× 2和× 1的超分辨率。由于ESRGAN是一个大型网络,首先使用pixel -unshuffle(像素混洗的反向操作)来减小空间尺寸和扩大通道尺寸,然后再将输入输入到主ESRGAN体系结构中。因此,大多数计算是在较小的分辨率空间中进行的,这可以减少GPU内存和计算资源的消耗。

  • 具有谱归一化( SN )的U-Net判别器。

    • 由于Real - ESRGAN旨在解决比ESRGAN大得多的退化空间,ESRGAN中原始的判别器设计不再适用。具体来说,Real - ESRGAN中的判别器对于复杂的训练输出需要更大的判别力。而不是判别全局风格,还需要对局部纹理产生精确的梯度反馈。

    • 本文将ESRGAN中的VGG风格判别器改进为带有跳跃连接的U - Net设计(图6 )。UNet为每个像素输出真实性值,并可以向生成器提供详细的每像素反馈

    • 同时,U - Net结构和复杂的退化也增加了训练的不稳定性。使用谱归一化正则化来稳定训练动力学。此外,作者观察到光谱归一化也有利于缓解过-GAN训练引入的尖锐和恼人的伪影。通过这些调整,可以很容易地训练RealESRGAN,并实现局部细节增强和伪影抑制的良好平衡。

  • 训练过程分为两个阶段。首先,用L1损失训练一个面向PSNR的模型。得到的模型命名为Real - ESRNet。然后使用训练好的面向PSNR的模型作为生成器的初始化,并结合L1损失、感知损失和GAN损失训练Real - ESRGAN。

四、实验

1.数据集与实现

训练细节。

  • 与ESRGAN类似,采用DIV2K ,Flickr2K和OutdoorSceneTraining数据集进行训练。训练HR patch大小设置为256。

  • 使用4个NVIDIA V100 GPU训练模型,总批量生产规模为48。

  • 采用Adam优化器。

  • Real - ESRNet在ESRGAN的基础上进行了微调,以获得更快的收敛速度。以2 × 10 - 4的学习率训练了1000K次的Real - ESRNet,以1 × 10 - 4的学习率训练了400K次的Real - ESRGAN

  • 为了更稳定的训练和更好的性能,采用指数移动平均( EMA )。

  • RealESRGAN采用L1损失、感知损失和GAN损失相结合的方式进行训练,权重分别为{ 1,1,0.1 }。

  • 使用预训练的VGG19网络中激活前的{ conv1,.. conv5 }特征图(权重为{ 0.1 , 0.1 , 1 , 1 , 1 })作为感知损失。实现基于BasicSR 。

退化细节。采用二阶退化模型来很好地平衡简单性和有效性。除非另有规定,两种退化过程具有相同的设置。

  • 采用高斯核、广义高斯核和平台形核,概率为{ 0.7,0.15,0.15 }。模糊核大小从{ 7,9,.. 21 }中随机选取。模糊标准差σ从[ 0.2 , 3] ( [ 0.2 , 1.5 ]用于第二个降解过程)采样。对于广义高斯核和平台形核,形状参数β分别从[ 0.5、4]和[ 1、2]中采样。我们同样使用概率为0.1的sinc核。我们以0.2的概率跳过第二次模糊退化。

  • 使用概率为{ 0.5,0.5 }的高斯噪声和泊松噪声。噪声sigma范围和泊松噪声尺度分别设置为[ 1、30]和[ 0.05、3 ],(对于第二个降解过程[ 1,25 ]和[ 0.05,2.5 ])。灰度噪声概率设置为0.4。JPEG压缩质量因子设置为[ 30,95]。以0.8的概率应用最终的sinc滤波器。更多的细节可以在发布的代码中找到。

训练对池。为了提高训练效率,所有的退化过程都在PyTorch中实现,并进行CUDA加速,这样就可以动态地合成训练对。然而,批处理限制了批处理中合成降解的多样性。例如,一个批次中的样本不可能具有不同的缩放因子。因此,使用训练对池来增加批次中的退化多样性。在每次迭代中,训练样本从训练对池中随机选择,形成一个训练批次。在实现中,将池大小设置为180。

训练时锐化真实图像。训练技巧上,在不引入可见伪影的同时,视觉上提高了清晰度。锐化图像的典型方法是使用后处理算法,如反锐化掩模( USM )。然而,该算法容易引入过冲伪影。作者通过实验发现,在训练过程中对地面真值图像进行锐化处理可以更好地实现清晰度和过冲伪影抑制的平衡。将使用锐化后的地面真实图像训练的模型记为Real - ESRGAN +

2.与先前工作的比较

Real - ESRGAN方法与几种最先进的方法进行了比较,包括ESRGAN, DAN, CDC, RealSR和BSRGAN。使用真实图像在多个不同的数据集上进行测试,包括RealSR、DRealSR、OST300、DPED、ADE20K验证和互联网图像。由于现有的感知质量评价指标不能很好地反映人类在细粒度尺度上的实际感知偏好。

从图7可以观察到,Real - ESRGAN在去除伪影和恢复纹理细节方面优于先前的方法。而Real - ESRGAN + (用尖锐的背景事实进行训练)可以进一步提升视觉清晰度

  • 第一个样本包含过冲伪影(字母周围的白色边缘)。直接上采样必然会放大这些伪影(例如, DAN和BSRGAN)。Real - ESRGAN考虑了这些常见的伪影,并用sinc滤波器进行了仿真,有效地去除了振铃和过冲伪影。

  • 第二个样本包含未知且复杂的退化。大多数算法不能有效地消除它们,而使用二阶退化过程训练的Real - ESRGAN可以有效地消除它们。

  • 对于真实世界的样本,Real - ESRGAN也能够恢复更真实的纹理(例如,砖,山和树的纹理),而其他方法要么不能去除退化,要么添加不自然的纹理(例如, RealSR和BSRGAN)。

3.消融研究

二阶退化模型。在Real - ESRNet上进行退化的消融研究。将Real - ESRNet中的二阶过程替换为经典退化模型来生成训练对。如图8 ( Top )所示,使用经典一阶退化模型训练的模型无法有效去除墙面上的噪声或麦田中的模糊。

sinc滤波器。如果在训练过程中不使用sinc滤波器,则恢复结果会放大输入图像中存在的振铃和过冲伪影,如图8 ( Bottom )所示,尤其是文字和线条周围。相比之下,使用sinc滤波器训练的模型可以去除这些伪影。

SN正则化的U - Net判别器。

  • 依照ESRGAN设置,使用VGG风格的判别器和它的损失权重,但这种模型不能恢复细节纹理(砖和灌木丛),甚至在灌木枝干中带来伪影

  • 因此本文使用U - Net设计改善局部细节。

  • 又因U-Net引入了不自然的纹理,增加了训练的不稳定性。使用SN正则化稳定训练的同时改善恢复的纹理。

更复杂的模糊核。

  • 左边去除了模糊合成中的广义高斯核和高原形核的效果,在一些真实样本上,无法像RealESRGAN那样去除模糊和恢复尖锐边缘。

  • 在大多数样本上,它们的差异不大。

  • 为了更好一点的性能,本文还是采用了更复杂的模糊核。

4.局限性

  • 由于混叠问题,部分复原图像(尤其是建筑和室内场景)存在扭曲线

  • GAN训练在部分样本上引入了不愉快的伪影

  • 无法去除现实世界中分布外的复杂退化。更糟糕的是,它可能会放大这些伪影

五、其他补充

原文中放了很多的对比图片,对实验的效果进行了详细的说明。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/531157
推荐阅读
相关标签
  

闽ICP备14008679号