0


Real-ESRGAN超分辨网络

《Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data》

文章目录


前言

论文:https://arxiv.org/abs/2107.10833

参考:超分辨率论文阅读—Real-ESRGAN(2021ICCV) - 知乎Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data-----阅读阶段_MengYa_DreamZ的博客-CSDN博客


一、Real-ESRGAN主要介绍

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

研究目的:这项工作旨在通过纯合成数据扩展强大的ESRGAN到实际恢复应用(即Real-ESRGAN)。通过用更现实的退化过程合成训练对来恢复一般现实世界的LR图像。真正复杂的退化通常来自不同退化过程的复杂组合,如相机成像系统、图像编辑和互联网传输。例如:

  • 拍照时,照片可能会有几个退化,如相机模糊、传感器噪声、锐化伪影和JPEG压缩
  • 编辑并上传到一个社交媒体应用程序,将进一步的压缩和不可预测的噪音
  • 当图像在互联网上共享多次时,上述过程会变得更加复杂

研究方法:具体而言,引入了高阶退化建模过程以更好地模拟复杂的现实世界退化。此外,还在合成过程中考虑了常见的振铃和过冲伪影。最后,采用带有光谱归一化的U-Net判别器来增加判别器能力并稳定训练动态。

研究结果: 1、提出了一个高阶降解过程来建模实际的降解,并利用sinc滤波器来建模常见的振铃和过冲伪影2、采用了几个必要的修改(例如,具有光谱归一化的U-Net鉴别器)来提高鉴别器的能力和稳定训练动力学。 3、使用纯合成数据训练的Real-ESRGAN能够恢复大多数真实图像,并实现比以前的工作更好的视觉性能,使其在现实应用中更加实用。

    广泛的比较表明,它在各种真实数据集上都优于先前的工作。本文还提供了高效的实现来即时**合成训练对**。

数据集:使用了DIV2KFlickr2KOutdoorSceneTraining数据集进行训练。

二、Real-ESRGAN主要内容

1、摘要

blind super-resolution领域中:现实世界中,恢复****具有未知和复杂退化的低分辨率图像0(restore low-resolution images with unknown and complex degradations)仍未解决。

本次研究,将强大的ESRGAN扩展到一个实际的恢复应用程序(即Real-ESRGAN),它是用纯合成数据进行训练的。具体地说:

  • 引入了一个高阶降解建模过程来更好地模拟复杂的真实世界退化过程
  • 考虑了合成过程中常见的振铃和超调伪影(the common ringingand overshoot artifacts)
  • 采用了具有光谱归一化的U-Net鉴别器来提高鉴别能力,稳定训练动力学

通过大量的比较表明:它在各种真实数据集上的工作优于以前的视觉性能。

文章也提供了有效的实现(effificient implementations)来合成训练对

2、论文方法

SR算法根据所得LR图像的退化过程分为两类:
算法类型获得LR图像的退化方式问题显式建模对HR进行退化,例如模糊、下采样、噪声和JPEG压缩真实数据退化更加复杂和多样,简单的退化组合难cover真实数据,造成训练的模型泛化性不佳隐式建模使用GAN学习LR图像的数据分布(eg.cyclegan)使用gan所得数据也会让生成的数据趋于训练集的分布,当训练集的分布单一时所得LR也单一,造成训练的模型泛化性不佳
上面的两种方法都难以训练一个泛化性强的模型。

论文提到一个真实的复杂退化由不同退化过程的复杂组合,例如camera不同的成像系统,图像编辑和网络的转换。所以在获得LR图像的方法上考虑这样一个场景:

场景:5个人用了不同的手机拍了同一个场景,由于手机采用的算法不同所得图像本身不一样,一般手机成像有jpeg压缩,然后5个人又彼此分享拍摄的图像,在分享过程中网络传送又会又jpeg压缩,要是有人把收到的图像再转发又是一层退化。就5个手机,就这么简单的操作,就可以看到有多少不同的退化。

基于上述退化,Real-ESRGAN提出扩展经典的“一阶”退化模型(“一阶”退化是经典的退化模型)为“高阶”退化模型。“高阶”退化就是进行多次“一阶”退化。第一次“一阶”退化的结果是第二次“一阶”退化的输入。由此,论文期望通过”高阶“退化可以得到和真实退化更接近的LR数据。

”高阶“退化过程(该图是”二阶“退化)

除了退化过程,Real-ESRGAN对振铃效应和过冲artifacts通过sinc filter进行模拟。

”高阶“退化过程更加复杂,所得退化空间比ESRGAN大很多,这样训练更加困难。

主要表现为:

1)判别器需要有更强的能力从复杂的训练输出上判别出图像的真实性,同时为了局部细节增强判别器需要回传更精确的梯度。因为Real-ESRGAN使用了U-Net代替VGG-style的判别器,U-Net的输出结果尺寸和输入的宽高一致,每一个像素值可表示真实的概率。它相比VGG-style的判别器最终输出一个值表示整幅图像要更加细致;

2)U-Net结构和复杂的退化都增加了训练难度,因为论文使用**spectral normalization(SN)**正则项约束判别器网络的参数,以使训练过程相对稳定。

3、方法详细介绍

SR中鲜有成对数据,一些算法采用的成对数据是经由HR数据经过退化模型生成的LR数据。经典的退化模型如下:

D(.)表示退化过程,主要表现为HR数据(用y表示)先和模糊核做卷积使整个图像模糊,再下采样,然后加入噪声,最后做JPEG压缩。JPEG压缩在真实场景中广泛应用(画质损失可接受,但内存可大幅度减少)。

· Blur

高斯模糊核是常用的模糊退化核,但是他们可能并不能很好逼近真实camera模糊,论文采用各项同性和各项异性高斯核,论文发现使用了这些模糊核对一些真实样本输出更加sharpen。

高斯退化是对以某一个像素为中心的周围区域像素做加权平均,其周围像素的权重符合高斯概率密度函数,表现就是离要处理的中心数据距离越近权重越大,相反权重越小。通过这种方式,高频信息像素值会被低频信息像素值拉低,从而表现高频信息不足,整体图像呈现模糊状态。

· Noise

噪声采用了两种:加性高斯噪声和泊松噪声。加性高斯噪声的概率密度函数等于高斯分布的概率密度函数。泊松分布通常被用来逼近sensor噪声。

· Resize(Downsampling)

采样常用的算法有nearest-neighbor interpolation(最近邻插值), area resize(区域调整大小), bilinear interpolation(双线性插值),bicubic interpolation(双三次插值)等。一些方法常用bicubic方法生成LR。但论文问了包含多样核复杂的采样,设置从常用的采样算法中随机选择操作。nearest包含不对齐问题,所以仅考虑了人area、bilinear、bicubic算法。

· JPEG compression

JPEG压缩在数字图像上应用较为广泛,表现则是当JPEG压缩因子大时,图像会有明显的Unpleasing block artifacts。JPEG的压缩图像的质量由质量(压缩)因子决定,质量(压缩)因子取值范围为[0,100],值越小表示压缩力度越大,block artifacts越明显。

· High-order Degradation Model

利用上面的操作组合可以得到退化图像,但是这样的退化和真实的退化仍存比较大的gap。论文对经典的退化模型进行扩展得到高阶退化模型。高阶退化模型中的高阶表示的是多次经典退化模型。n阶退化模型就表示n次经典退化模型操作。论文中采用的是二阶退化模型,这已经可以在保持简洁的同时cover大部分的场景。

· Ringing and overshoot artifacts

Ringing artifacts(振铃伪影)通过在图像中锐化过渡附近作为伪边缘存在,视觉上它像是边缘附近的条纹或者鬼影。Overshoot artifacts(过冲伪影)通常与振铃伪影相结合,振铃伪影表现为边缘过渡处增加的跳跃。产生这些伪影的主要原因是信号没有高频限制。这些artifacts是常见的,并且通常由锐化算法、JPEG压缩产生。

从前两幅图中可以看到文字或者线条周围的百变,后两幅图中可以看到线条核文字周围的噪点。锐化容易使高频信息周围产生振铃artifacts(白边),JPEG压缩产生了过冲artifacts(跳跃的噪点)

论文使用sinc filter来切断高频信息(前面说产生z和两个问题的原因使高频没有被限制,切断表示限制高频信息)。sinc filter公式:

(i,j)表示filter核坐标(类似高斯模糊也有的这么一个核坐标)。Wc表示的是截断频率。论文对比了不同的Wc值产生的效果,从效果中可看出,使用sinc filter可以模拟上图中前两幅图的效果。

sinc filter不同截断频率的设置得到的不同图像

实验在两个地方设置了sinc filter:

  1. 模糊操作中设置sinc filter

  2. 合成数据的最后一步设置sinc filter。一般合成图像的最后一步是JPEG压缩,为了cover更大退化空间,最后一步的sinc和JPEG是随机选择的,这是因为有的图像先做了锐化再进行JPEG压缩的,而有的图像是先做的JPEG压缩后进行的锐化(参考blog,在这里论文表述sinc是为了解决锐化产生的artifacts)。

加入sinc filter后的退化模型成了这样(注意红框):

    1)blur部分最后加了sinc filter;

    2) 一阶退化的JPEG压缩模块仍保留原来的设置,没有加sinc filter;

    3) 二阶退化的JPEG压缩模块加入了sinc filter(和jpeg的顺序随机)。

· U-Net结构判别器

ESRGAN中采用了VGG-style的判别器,损失函数采用了相对GAN loss,虽然比原生GAN损失多了更多的信息,但最终仍是对一张图做整体的判断。Real-ESRGAN论文认为现在数据的退化空间更大了,原始的ESRGAN判别器不合适了,需要使用对复杂输入有更强能力的判别器,这个判别器可对局部纹理有更精确的梯度。论文使用了U-Net结构。U-Net的输出是一个和输入图像尺寸一样大小的feature map,每一个像素都会和真实数值做比较回传梯度。

U-Net和更复杂的退化都加大了训练的不稳定性。为缓解该问题,论文采用SN(spectral normalization)正则项约束判别器让其网络参数变动在一个范围内从而稳定判别器的训练。论文也发现,SN还有助于由gan产生的过锐和artifacts问题。通过这些设置,论文实现了局部细节增强和artifacts压制的一种平衡。这些设置包含了两方面:1. U-Net的结构;2. SN的约束。其实都是在说判别器更好的话生成器生成的结果更好。

4、训练方法

网络结构上采用ESRGAN相同的生成器(由RRDB模块构成),同时除了支持4倍超分还扩展到2倍和1倍超分。在x2和x1设置下,先采用pixel unshuffle来降低输入的空间尺度(扩大了通道数量)。将pixel unshuffle后的结果再送入ESRGAN网络中。这样可以减少GPU内存和计算机资源的消耗。

    1、仍然采用两个阶段训练方法:先用L1 loss监督训练一个PNSR-oriented模型,然后这个稳定后用作base模型训练带gan的模型,损失采用L1 loss+ perceptual loss + Gan loss。

    2、训练细节:HR尺寸为256,batch_size = 48,采用Adam。为了更快收敛,Real-ESRGAN是在ESRGAN上进行微调的。

    3、退化细节:采用二阶退化(也就是修改后的经典退化模型退化两次)。

    4、训练过程中sharpen GT:论文使用了一个trick,它对GT进行sharpen以使得label更加清晰,这个模型被称为Real-ESRTGAN+。实验确实表明了Real-ESRGAN+得到的结果更加sharpen。

5、实验结果

Real-ESRGAN缓解了其他算法的白边,但是Real-ESRGAN+的白边比不+的要明显

墙体更加整齐、规则

山和树木等更加真实

消融实验

说明了二阶退化、sinc filter的作用:

上图:包含和不包含二级降解过程的Real-ESRNet结果。下图:带和不带sinc过滤器的Real-ESRNet结果。放大以获得最佳视图

判别器:

鉴别器设计上的消融。放大以获得最佳视图

更多模糊核:(使用更多模糊核函数(广义模糊核函数和平台形核函数)进行消融)

Limitations

退化严重的混叠纹理难恢复;由gan产生的artifacts难约束;未知的和超出退化分布的图像难恢复。

局限性:1)绞合线;2)由GAN训练引起的令人不愉快的伪影;3)未知和分布外退化


三、结论

在本文中,我们用纯合成的训练对来训练用于真实世界盲超分辨率的实用Real-ESRGAN,为了合成更实用的退化我们提出了一个高阶退化过程,并使用sinc滤波器来模拟常见的振铃和过冲伪影。我们还使用了一个具有频谱归一化正则化的U-Net鉴别器来提高鉴别器的能力并稳定训练动态。使用合成数据训练的ESRGAN能够增强细节,同时消除大多数真实世界图像的恼人伪影。


本文转载自: https://blog.csdn.net/leonardotu/article/details/130305803
版权归原作者 JOYCE_Leo16 所有, 如有侵权,请联系我们删除。

“Real-ESRGAN超分辨网络”的评论:

还没有评论