基本信息

标题:Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data
简称:Real-ESRGAN
时间:17 Aug 2021, International Conference on Computer Vision Workshops (ICCVW) 2021
作者:Xintao Wang, Liangbin Xie, Chao Dong, Ying Shan;Applied Research Center (ARC), Tencent PCG, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, University of Chinese Academy of Sciences, Shanghai AI Laboratory
论文:https://arxiv.org/abs/2107.10833
代码:https://github.com/xinntao/Real-ESRGAN

主题内容

方法:

Real-ESRGAN是基于ESRGAN做出一系列的改进得到的,主要为了解决现实世界中更为复杂的低质图像超分问题。主要改进有以下几点:

(1)相比传统的一阶降质方法,论文提出了一个新颖的二阶降质方法,能够模拟现实世界中更为复杂的降质操作。另外使用sinc滤波器来模拟比较普遍的ringing和overshoot artifacts。

(2)网络结构方面,生成网络沿用了ESRGAN的主体结构,只是在采样因子为1和2时(默认为4),在最开始加了一个pixel_unshuffle操作,来降低输入数据的尺寸。在判别器方面,论文采用了更为新颖的结构——带谱归一化(spectral normalization,SN)的U-Net,能够增大网络容量同时稳定训练过程。

(3)Real-ESRGAN的训练数据对均为采用降质方法合成的数据,能够在很大程度上模拟现实世界中更为复杂的低质图像,同时达到很好的视觉效果。

降质方法:

(1)经典的一阶降质方法


D表示整个降质过程,将gound-truth y 首先与blur kernel k卷积,然后使用采样因子为r的下采样操作,得到低分辨率图x后再加一个noise n,最后采用JPEG压缩处理。

Blur:

加模糊。模糊操作通常被表示成使用一个线性blur滤波器卷积,常用的有各向同性(isotropic)和各向异性(anisotropic)高斯滤波器。对于一个核大小为2t+1的高斯blur核k,其元素值是从高斯分布采样得到:

其中∑\sum∑是协方差矩阵,C是空间坐标,N是正则化常数。协方差矩阵可被表示为:

其中σ1\sigma_1σ1​和σ2\sigma_2σ2​是沿着两个主轴的标准差,θ\thetaθ是旋转角。
当 σ1=σ2\sigma_1= \sigma_2σ1​=σ2​时k是各向同性高斯blur核,否则k是各向异性核。

进一步讨论,上述高斯blur核无法很好地模拟相机blur,为了引入更多不同的核形状,论文使用了泛化高斯blur核和一个高原形状分布(plateau-shaped distribution)。它们的概率密度函数( probability density function, pdf)分别是



,其中β\betaβ是形状参数。实验发现这些blur核对少数真实样本能够产生更sharper的结果。


Noise:

加噪。两个广泛使用的噪声类型是加性高斯噪声(additive Gaussian noise)和泊松噪声(Poisson noise)。加性高斯噪声的pdf等于高斯分布,噪声强度由高斯分布的标准差控制。当RGB图像的每个通道单独作用噪声时,合成的噪声是彩色噪声(color noise),当三个通道应用相同的噪声采样时,论文同时采用了彩色噪声和灰度噪声(grey noise)。

泊松噪声服从泊松分布,通常被用于模拟由于statistical quantum fluctuations造成的传感器噪声,泊松噪声强度与图像强度成比例,不同像素的噪声是相互独立的。

Resize(Downsampling):

降采样。对于SR领域合成低分辨率图像来说降采样是一个非常基本的操作。通常情况下,降采样和上采样会被同时使用,也就是resize操作。常用的几种采样算法有 nearest-neighbor interpolation,area resize,bilinear interpolation,bicubic interpolation。不同的采样操作会带来不同的效果,有些会产生模糊的结果,有些会产生带 overshoot artifacts的 over-sharp结果。 nearest-neighbor interpolation会导致结果 misalignment,所有论文只随机采用了另外三种。

JPEG compression:

JPEG压缩。也是一个常用的降质操作,会引入一些unpleasing block artifacts。压缩质量由一个因素q∈[0,100]q\in[0, 100]q∈[0,100]控制,更低的q表示更高的压缩比和更差的质量。论文使用了PyTorch实现库——DiffJPEG。

(2)高阶降质模型

采用传统的一阶降质模型虽然可以解决一些常见的问题,但是对于真实世界更复杂的降质操作无法很好的模拟,特别是一些位置的noises和复杂的artifacts。论文在一阶降质模型的基础上提出高阶(二阶)降质模型来模拟更实际的降质操作。

整体的方法大致是原先的一阶模型重复两次,两次降质在细节上有一些不一样,例如blur的标准差等,详情可以见论文的实验章节的Degradation details部分和实现代码。另外第二阶段的JPEG压缩部分加了一次2D sinc滤波(论文提到sinc和JPEG前后顺序随机)。

基于效果和速度考虑,论文采用了二阶降质模型,能够更多的模拟真实世界的降质操作。同时论文也提出对于某些case该二阶降质模型也无法完全cover。

(3) ringing 和 overshoot artifacts

Ringing artifacts(振铃瑕疵)通常出现在图像中边缘过度处,视觉表现上通常为真实边缘的鬼影。 Overshoot artifacts(过冲瑕疵)通常伴随振铃瑕疵出现,表现为边缘过度上的突增。

造成这些瑕疵的原因主要是这是一个没有高频的带限信号,通常由锐化算法和JPEG压缩等引入。

论文提出采用sinc滤波器截断高频部分来模拟 ringing and overshoot artifacts。

网络结构:

生成器部分:


回顾一下ESRGAN论文中的网络结构图以及重要的RRDB模块:


Real-ESRGAN沿用了ESRGAN的主体生成网络结构,只是在采样因子为1和2时(默认为4),在最开始加了一个pixel_unshuffle操作,来降低输入数据的尺寸。

判别器部分:

论文提到首先尝试了ESRGAN中使用的VGG结构的判别器,但是效果不是很好。主要原始还是因为采用了更为复杂的降质操作,原始的简单结构无法提供很好的局部细节信息,导致生成器生成结果在细节上做得不够好。于是论文尝试采用U-Net结构的判别器,能够为生成器提供像素级别的梯度反馈。另一方面,采用了SN来稳定训练过程,同时观察到SN对减轻训练过程中引入的过度锐化和部分噪声有帮助。

损失函数设计:

(1)将标准判别器替换为带SN结构的U-Net。

(2)感知损失 Perceptual Loss
仍使用和ESRGAN一致的感知损失。

(3)总损失函数
训练被分为两个阶段,第一阶段先用L1 loss训练一个PSNR导向的模型,得到的模型命名为Real-ESRNet。

第二阶段使用得到的 Real-ESRNet模型作为初始化的生成器,使用L1 loss,perceptual loss和GAN loss的组合来训练Real-ESRGAN。
LG=L1+λLpercep+γLGL_G = L_1 + λL_{percep} + γL_GLG​=L1​+λLpercep​+γLG​,其中λ=1λ=1λ=1,γ=0.1γ=0.1γ=0.1。
其中感知损失LpercepL_{percep}Lpercep​采用预训练的VGG19模型的conv1到conv5激活前特征图(和ESRNet一致)计算得到,每层的权重为 {0.1, 0.1, 1, 1, 1}。

训练细节:

(1) 与ESRGAN一样,训练数据集采用DIV2K数据集、Flickr2K数据集、 OutdoorSceneTraining (OST)数据集。训练HR块尺寸设为256。在4张V100上训练,batch size设为48。采用Adam优化器。

(2)训练分为两个阶段,第一阶段先用L1 loss训练一个PSNR导向的模型(为了快速收敛,直接从ESRGAN微调得到),学习率初始化为2e-4,迭代1000k次得到的模型命名为Real-ESRNet。第二阶段使用得到的 Real-ESRNet模型作为初始化的生成器,使用L1 loss,perceptual loss和GAN loss的组合来训练Real-ESRGAN,学习率初始化为1e-4,迭代 400K。采用 exponential moving average(EMA)使得训练更稳定结果更好。

(3)工程实现基于 BasicSR 库。

降质细节:

评估标准:

(1)定量评价:NIQE

(2)定性评价

亮点:

(1)提出高阶降质模型

(2)引入sinc滤波器模拟常见的ringing和overshoot artifacts

(3)采用了带谱归一化的U-Net作为判别器,能够增大判别器容量同时稳定训练过程

(4) Real-ESRGAN通过使用上述方式在合成数据对上进行训练,能够对真实世界大多数图片进行细节增强的同时移除 annoying artifacts。

应用场景:

从代码链接中的内容可以看到,目前Real-ESRGAN可以有效应用在动画图片和视频的SR,对于更通用的自然场景可能结果会有一些奇怪的问题,一般需要在对应数据集上进一步微调。

不足:

(1)在某些真实图片上效果不好,特别是建筑物和室内场景,可能会产生twisted lines。

(2)在GAN训练过程中在某些样本上会引入一些 unpleasant artifacts。

(3)无法解决降质模型能力外的真实样本,更有甚者可能会放大这些瑕疵。

未来需要解决上述问题,让模型能够更实用。

其他补充:

(1)工程上的优化: Training pair pool。为了增加同一个batch中数据的降质多样性,论文提出一个缓冲数据池,将不同降质操作的数据放入池中,每一个mini-batch随机从池中捞取。且所有的降质操作都基于PyTorch实现,达到了数据预处理生成的on the fly。

(2)Trick:在GroundTruth上做USM锐化,能够得到比较好的视觉结果。

版权说明

本文为原创文章,独家发布在blog.csdn.net/TracelessLe。未经个人允许不得转载。如需帮助请email至tracelessle@163.com。

参考资料

[1] 论文《Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data》
[2] 代码 Real-ESRGAN

论文笔记——Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data相关推荐

  1. (NIPS2020)Unfolding the Alternating Optimization for Blind Super Resolution 笔记

    (NIPS2020)Unfolding the Alternating Optimization for Blind Super Resolution https://github.com/great ...

  2. Unfolding the Alternating Optimization for Blind Super Resolution

    Unfolding the Alternating Optimization for Blind Super Resolution 论文信息 Paper: [NeurIPS2020] Unfoldin ...

  3. 论文笔记《End-to-End Training of Hybrid CNN-CRF Models for Stereo》用于立体评估的端到端训练的混合CNN-CRF模型

    论文作者提供的源码 https://github.com/VLOGroup 摘要: 1. 介绍 2. 相关工作 3. CNN-CRF 模型 3.1 Unary CNN 3.2 Correlation ...

  4. Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data-----阅读阶段

    Blind Super-Resolution:盲超分辨率 Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synth ...

  5. 论文笔记(二十二):Soft Tracking Using Contacts for Cluttered Objects to Perform Blind Object Retrieval

    Soft Tracking Using Contacts for Cluttered Objects to Perform Blind Object Retrieval 文章概括 摘要 1. 介绍 2 ...

  6. 论文笔记:Blind Super-Resolution With Iterative Kernel Correction

    论文:Blind Super-Resolution With Iterative Kernel Correction 论文看得比较粗略,所以可能存在理解错误的地方,请指正(另外请忽略我糟糕的英语) B ...

  7. 论文笔记:Distilling the Knowledge

    原文:Distilling the Knowledge in a Neural Network Distilling the Knowledge 1.四个问题 要解决什么问题? 神经网络压缩. 我们都 ...

  8. GAN for NLP (论文笔记及解读

    GAN 自从被提出以来,就广受大家的关注,尤其是在计算机视觉领域引起了很大的反响."深度解读:GAN模型及其在2016年度的进展"[1]一文对过去一年GAN的进展做了详细介绍,十分 ...

  9. 神经稀疏体素场论文笔记

    论文地址:https://proceedings.neurips.cc/paper/2020/file/b4b758962f17808746e9bb832a6fa4b8-Paper.pdf Githu ...

  10. GAN学习历程之CycleGAN论文笔记

    GAN目前发展的很快,成果也很多,从GAN->Pix2pix->CycleGAN 本来是准备看一篇19年一月份ICLR发表的conference paper INSTAGAN,发现这篇论文 ...

最新文章

  1. 国内ITSM解决方案-UNIPER
  2. 理解Golang的Time结构
  3. BZOJ 2561: 最小生成树(最小割)
  4. LeetCode——Longest Substring Without Repeating Characters
  5. eclipse远程连接hadoop_hadoop集群搭建详细方法
  6. java AST 表达式_java AST JCTree简要分析
  7. 关于“时间序列回归”,这些你必须知道的事!
  8. 精确打印程序的运行时间
  9. 关于几款系统恢复常用工具的用法介绍
  10. HAL库配置 ADF4351 pll锁相环
  11. 增强 扫描王 源码_制作一个类“全能扫描王”的简易扫描软件(opencv)
  12. DKMS:Dynamic Kernel Module Support
  13. For A, B such that AB is square, prove trAB = trBA.
  14. linux系统编程界面实验报告,操作系统实验报告-Linux操作使用编程.doc
  15. 【愚公系列】2023年05月 攻防世界-MOBILE(Phishing is not a crime-2)
  16. MySQL 工作、底层原理
  17. poi获取excel打印标题行与表头,itext生成pdf设置打印标题行与表头
  18. 动态管理电源功能 计算机 中标,东北石油大学省创新基地奖励金设备仪器采购第四标段:黑龙江省油气田控制与动态监测实验室中标公告2020-11-11...
  19. 课堂内外杂志课堂内外杂志社课堂内外编辑部2022年第9期目录
  20. Karamata 不等式

热门文章

  1. 水彩画笔效果PS笔刷
  2. ORACLE EBS 启用REST服务-1-环境安装篇
  3. Pr:基本图形(文本)
  4. 软件测试运维工程师面试题,运维工程师笔试题目
  5. word论文排版,页码和页眉
  6. 各类花里胡哨的XSS攻击举例解读(正在持续更新中~)
  7. 三阶魔方中心互换_三阶魔方入门
  8. Windows配置Rsync同步,安装cwRsync
  9. PS 渐变工具使用
  10. 对软件迭代开发的一些感悟