Blind Super-Resolution:盲超分辨率
Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data——代码实践
论文研读申明论文地址
@Article{wang2021realesrgan,
title={Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data},
author={Xintao Wang and Liangbin Xie and Chao Dong and Ying Shan},
journal={arXiv:2107.10833},
year={2021}
}
仅作学术研究,如有疏忽,请联系修改或删除。
在blind super-resolution领域中:现实世界中,恢复具有未知和复杂退化的低分辨率图像(restore low-resolution images with unknown and complex degradations)仍未解决。
本次研究,将强大的ESRGAN扩展到一个实际的恢复应用程序(即Real-ESRGAN),它是用纯合成数据进行训练的。具体地说:
通过大量的比较表明:它在各种真实数据集上的工作优于以前的视觉性能。
文章也提供了有效的实现(effificient implementations)来合成训练对。
单图像超分辨率(SR)是一个活跃的研究课题,旨在从其低分辨率(LR)对应的图像中重建一个高分辨率(HR)图像。自SRCNN的开创性工作以来,深度卷积神经网络(CNN)方法在SR领域带来了繁荣的发展。然而,(研究背景)大多数方法:假设有一个理想的双边降采样核,这不同于真实的降解。这种退化不匹配使得这些方法在现实场景中不实际。
盲超分辨率旨在恢复遭受未知和复杂退化的低分辨率图像。根据潜在的退化过程,现有的方法可以大致分为显式建模和隐式建模。经典的退化模型,包括模糊、降采样、噪声和JPEG压缩,被广泛应用于显式建模方法。然而,现实世界的降解通常过于复杂,无法用多次退化的简单组合来建模。因此,这些方法在现实世界的样本中很容易失败。隐式建模方法利用生成对抗网络(GAN)的数据分布学习来获得退化模型。但是,它们仅限于训练数据集中的退化,并且不能很好地推广到分布外的图像。文章也鼓励读者参考最近的 Blind image super-resolution调mu查来了解更全面的分类。
本项工作,(研究目标)目标是扩展强大的ESRGAN,通过用更现实的退化过程合成训练对来恢复一般现实世界的LR图像。真正复杂的退化通常来自不同退化过程的复杂组合,如相机成像系统、图像编辑和互联网传输。例如:
因此,将经典的“一阶”降解模型(classical “fifirst-order” degradation model )扩展到现实世界降解的“高阶”降解模型(“high-order” degradation modeling),即降解用几个重复的降解过程建模,每个过程都是经典的降解模型。根据经验,采用了一个二阶降解过程(second-order degradation process ),以实现简单性和有效性之间的良好平衡。最近的一项工作,也提出了一种随机洗牌策略( a random shufflfling strategy)来合成更实用的降解。然而,它仍然涉及到固定数量的降解类型,而其背后的合理性尚不清楚。相反,高阶降解建模更灵活,并试图模拟真实的降解生成过程。此外,进一步在合成过程中加入了sinc滤波器,以模拟常见的振铃和超调伪影(common ringing and overshoot artifacts)。
由于退化空间远远大于ESRGAN,训练也变得具有挑战性。具体来说:
配备了专门的改进,能够轻松地训练Real ESRGAN,实现局部细节增强和伪影抑制的良好平衡。
图像超分辨率领域
通常使用生成的对抗性网络作为损失监督,以推动解决方案更接近自然流形。大多数方法假设有一个双边降采样核,通常在真实图像中失败。最近的工作还包括强化学习或GAN之前的图像恢复。
在盲SR中有几次优秀的探索。
第一类涉及显式的退化表示,通常由两个组件组成:退化预测和条件恢复。这些方法依赖于预定义的降解表示(例如,降解类型和水平),并且通常考虑简单的合成降解。此外,不准确的退化估计将不可避免地导致伪影。
另一类是获得生成尽可能接近真实数据的训练对,然后训练一个统一的网络来解决盲SR问题。训练对通常是
退化模型
经典的降解模型被广泛采用于盲SR方法。然而,现实世界的退化通常过于复杂,无法明确地建模。因此,隐式建模试图学习网络中的退化生成过程。在本工作中,提出了一个灵活的高阶降解模型来合成更实际的降解。
A Classical Degradation Model
Blind SR的目标是将带有未知和复杂的退化的低分辨率图像恢复成高分辨率图像。通常采用经典的退化模型(degradation model)来合成低分辨率的输入。一般来说:
Blur
通常将模糊退化建模为与线性模糊滤波器(核)的卷积。各向异性和各向异性高斯滤波器是常见的选择。对于核大小为2t+1的高斯模糊核k,从高斯分布中采样其(i,j)∈[−t,t]元素,形式为:
讨论:虽然高斯模糊核被广泛用于建模模糊退化,但它们可能不能很好地近似真实的相机模糊。为了包含更多样化的核形状,进一步采用了广义高斯模糊核和平台型分布。它们的概率密度函数(probability density function ,pdf)分别为和。β是形状参数。根据经验,发现包括这些模糊内核可以为几个真实样本产生更清晰的输出。
Noise
考虑两种常用的噪声类型:
自加式高斯噪声的概率密度函数等于高斯分布的概率密度函数。噪声强度由高斯分布的站立偏差(即sigma值)控制。当RGB图像的每个通道都有独立的采样噪声时,合成噪声为颜色噪声。通过对所有三个通道使用相同的采样噪声来合成灰色噪声。
Resize (Downsampling)
下采样是在SR中合成低分辨率图像的基本操作。同时考虑降采样和上采样,即调整大小操作。有几种调整大小的算法:最近邻插值,面积调整大小,双线性插值,双边插值。不同的调整大小操作会带来不同的效果——有些产生模糊的结果,而有些可能会输出过过度伪影的过锐图像。
为了包含更多样化和更复杂的调整大小效应,考虑了从上述选择中进行随机调整大小的操作。由于最近邻插值引入了错位问题,我们排除了它,只考虑了面积、双线性和双边运算。
JPEG compression
JPEG压缩是一种常用的数字图像有损压缩技术。它首先将图像转换为YCbCr颜色空间,并对色度通道进行降采样。然后将图像分割成8个×8个块,每个块用二维离散余弦变换(DCT)进行变换,然后对DCT系数进行量化。不愉快的块工件通常由JPEG压缩引入。
压缩图像的质量由质量因子q∈[0,100]决定,其中较低的q表示较高的压缩比和较差的质量。使用PyTorch实现-DiffJPEG。
B High-order Degradation Model
当采用上述经典的退化模型来合成训练对时,该训练模型确实可以处理一些真实的样本。然而,它仍然不能解决现实世界中一些复杂的退化,特别是未知的噪声和复杂的伪影。这是因为合成的低分辨率图像仍然与现实的退化图像的大差距。因此,将经典的降解模型扩展到高阶降解过程,以建模更实际的降解。
经典的退化模型只包括固定数量的基本降解,可以看作是一阶建模。然而,现实生活中的退化过程是相当多样化的,通常包括一系列的程序,包括相机的成像系统、图像编辑、互联网传输等。(图像退化案例)例如,当我们想要从互联网上恢复一个低质量的图像下载时,它的潜在退化涉及到不同退化过程的复杂组合。具体来说,原始图像可能在多年前用手机拍摄,手机不可避免地包含相机模糊、传感器噪声、低分辨率和JPEG压缩等退化。然后使用锐化和调整大小的操作对图像进行编辑,引入超调和模糊伪影。之后,它被上传到一些社交媒体应用程序上,这就引入了进一步的压缩和不可预测的噪音。由于数字传输也会带来伪影,当图像在互联网上传播好几次时,这个过程会变得更加复杂。
这种复杂的退化过程不能用经典的一阶模型来建模。因此,文章提出了一个高阶退化模型:
图2:Real-ESRGAN中采用的纯合成数据生成概览。它利用二阶降解过程来建模更实际的降解,其中每个降解过程都采用经典的降解模型。列出了模糊、调整大小、噪声和JPEG压缩的详细选择。我们还使用sinc滤波器来合成常见的振铃和超调伪影。
值得注意的是,改进后的高阶降解过程并不完美,也不能覆盖现实世界中的整个降解空间。相反,它只是通过修改数据合成过程,扩展了边以前的盲SR方法的可解降解界。在图11中可以找到几个典型的限制场景(图11:局限性:1)扭曲的线;2)GAN训练引起的不愉快的伪影;3)未知和分布外的退化)。
图5:顶部:真实样本遭受铃声和超调的影响。
底部:sinc内核(内核大小为21)和相应的过滤图像的示例,显示了不同截止频率的sinc滤波器,及其相应的滤波图像。观察到,它可以很好地合成振铃和超调伪影(特别是由过度尖锐的效应引入的)。这些伪影在视觉上与图中前两个真实样本中的那些相似。
在两个方面采用sinc滤波器:模糊过程和合成的最后一步。最后一个sinc滤波器和JPEG压缩的顺序被随机交换是为了覆盖更大的退化空间,因为一些图像可能首先被过度锐化(带有超调伪影),然后进行JPEG压缩;而有些图像可能首先进行JPEG压缩,然后进行锐化操作。
图6:具有光谱归一化功能的U-Net鉴别器的架构。
同时,U-Net的结构和复杂的降解也增加了训练的不稳定性,采用光谱归一化正则化来稳定调整训练动力学。此外,光谱归一化也有助于缓解GAN训练引入的过度尖锐和恼人的伪影。通过这些调整,能够很容易地训练RealESRGAN,并实现局部细节增强和伪影抑制的良好平衡。
培训过程分为两个阶段:
A 数据集和实现
训练细节:与ESRGAN类似,采用DIV2K、Flickr2K和户外场景训练数据集进行训练。
退化细节:采用了一个二阶退化模型,以很好地平衡简单性和有效性。除非另有说明,否则这两个降解进程的设置相同。
训练对池:为了提高训练效率,所有的降解过程都在PyTorch中实现,从而能够动态地合成训练对。然而,一批处理限制了一批合成降解的多样性。例如,一个批处理中的样本不能具有不同的调整大小缩放因子。因此,使用一个训练对池来增加一个批次的降解多样性。在每次迭代中,从差训练对中随机选择训练样本,形成训练批。在实施中将池的大小设置为180。
在训练过程中,更清晰的地面真实图像:进一步展示了一个训练技巧,以从视觉上提高锐度,同时不引入可见的伪影。锐化图像的一种典型方法是使用后处理算法,如不锐利的掩蔽(USM)。然而,该算法倾向于引入过调伪影。根据经验发现,在训练过程中锐化地面真实图像可以实现更好的锐度和超调伪影抑制的平衡。本文将用清晰的地面真实图像训练的模型表示为Real-ESRGAN+(比较如图7所示)。
B 比较先前的工作
将Real-ESRGAN与几种最先进的方法进行了比较,包括ESRGAN、DAN、CDC、RealSR和BSRGAN。在一些具有真实世界图像的不同测试数据集上进行了测试,包括RealSR、DRealSR、OST300、DPED、ADE20K验证和来自互联网的图像。由于现有的知觉质量指标不能很好地反映细粒度尺度上的实际人类感知偏好,在图中展示了几个具有代表性的视觉样本。
从图中可以看出:Real-ESRGAN在删除工件和恢复纹理细节方面都优于以前的方法。Real-ESRGAN+(经过真实的训练)可以进一步提高视觉清晰度。具体来说,第一个示例包含超调伪影(字母周围的白色边)。直接上采样将不可避免地放大这些伪影(例如,DAN和BSRGAN)。Real-ESRGAN考虑了这些常见的伪影,并使用sinc滤波器模拟它们,从而有效地消除了响铃和超调伪影。第二个样品包含未知的和复杂的降解。大多数算法不能有效地消除它们,而用二阶降解过程训练的Real-ESRGAN可以。Real-ESRGAN还能够恢复现实世界样本的更真实的纹理(如砖、山和树的纹理),而其他方法要么无法去除降解或添加非自然的纹理(如RealSR和BSRGAN)。
图7:对几个上采样尺度因子为4的具有代表性真实样本的定性比较。
C 消融研究
二阶降解模型:对Real-ESRNet进行了退化的消融研究,因为它更可控,可以更好地反映降解的影响。用经典的退化模型替换Real-ESRNet中的二阶过程来生成训练对。如图所示8,采用经典一阶降解模型训练的模型不能有效去除小麦壁噪声或模糊,而Real-ESRNet可以处理这些情况。
正弦滤波器。如果在训练过程中不使用sinc滤波器,恢复的结果将放大输入图像中存在的振铃和超调伪影,如图所示8,尤其是在文本和行周围。相比之下,使用sinc滤波器训练的模型可以去除这些伪影。
图8:顶部:Real-ESRNet结果,没有二阶降解过程。
底部:Real-esrnet的结果有和没有sinc过滤器。
具有SN正则化的U-Net鉴别器:使用ESRGAN设置,包括VGG风格的鉴别器及其损失权重。然而,可以从图中9观察到,这个模型不能恢复详细的纹理(砖和灌木),甚至不能在灌木树枝上带来不愉快的假象。使用U-Net设计可以改善本地细节。然而,它引入了非自然的纹理,也增加了训练的不稳定性。SN正则化可以在稳定训练动态的同时改善恢复的纹理。
图9:鉴别器设计上的消融术
更复杂的模糊内核:去除模糊合成中去除广义高斯核和平台形核。如图所示10。在一些真实的样本上,该模型不能像ReelESRGAN那样去除模糊并恢复尖锐的边缘。然而,在大多数样本上,它们的差异是边缘的,这表明广泛使用的具有高阶降解过程的高斯核已经可以覆盖一个很大的真实模糊空间。由于我们仍然可以观察到稍好的性能,因此我们在Real-ESRGAN中采用了那些更复杂的模糊内核。
图10:使用更多模糊内核(广义模糊和平台形内核)
D 局限性
虽然Real-ESRGAN能够恢复大多数现实世界的图像,但它仍然有一些限制。如图11所示
图11:局限性:1)扭曲的线;2)GAN训练引起的不愉快的伪影;3)未知和分布外的退化
在本文中,训练了纯合成训练对真实盲超分辨率的实际Real-ESRGAN。
提出了一个高阶降解过程——合成更实际的降解
使用sinc滤波器——建模常见的振铃和超调伪影。
光谱归一化正则化——提高鉴别能力和稳定训练动力学。
合成数据训练的Real-ESRGAN——增强细节,消除大多数真实图像中恼人的伪影。
具体实践过程,后续整理