IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【GAN超分辨】Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data -> 正文阅读

[人工智能]【GAN超分辨】Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data

0.前言

本文为ESRGAN的扩展,提出一个能够完全在合成数据上训练的面向真实场景的超分模型——Real-ESRGAN。

本文的模型生成器采用ESRGAN为骨干结构,而判别器却采用U-Net的结构,更好地提取图像中各部分的纹理特征。

本文使用复杂的退化模型来模拟真实场景的退化,所谓复杂,其实是复杂退化上又套了层复杂。

Github项目网址:https://github.com/xinntao/Real-ESRGAN/

#1.介绍
传统退化模型包括模糊、下采样、加噪声和JPEG压缩。真实场景下,相机的模糊、传感器噪声、JPEG压缩和网络传说等等可能会导致获得到图像有着复杂的退化方式。这也就是为啥本文要用更加复杂的“high-order"退化模型来模拟真实场景的退化。

模拟真实场景的退化带来的一个问题就是退化的空间变得非常大,这对于网络学习是一个非常大的挑战。为了应对这个挑战,作者采用类似U-Net结构的判别器和SN(谱归一化层)。

根据原文总的来说,本文有三个贡献:

  1. 提出high-order退化处理模型去建模真实场景的复杂退化,使用sinc核去建模振铃和过冲伪影;
  2. 使用U-Net判别器和SN层改进训练复杂度;
  3. Real-ESRGAN仅仅在合成的数据上训练就能够具有恢复真实场景图像的能力。

2.方法

2.1 传统的退化模型

传统模型将退化方式建模为下面这个式子:
在这里插入图片描述
这个其实很好理解,先对y做的卷积(卷积核为k)就是模拟模糊的过程,下箭头r代表下采样的过程,加了n代表添加噪声的过程,最后JPEG是压缩的过程,这个过程其实也就是为了模拟振铃和过冲伪影。

  • 模糊可以用这样的高斯核来实现:
    在这里插入图片描述
    在这里插入图片描述
    这里作者还提了下高斯核被用的比较广泛,可能不符合真实的相机模糊,所以还引入了一个符合高原型状分布的新的核:,而且高斯核也引入了不同形状,其中beta就是形状参数,但这个参数具体是咋工作的我还不太懂。
  • 噪声加了两种类型:
    加性高斯噪声和泊松噪声。同时还分为颜色噪声和灰度噪声,也就是一个图像的三个通道,如果每个通道加的噪声都是不同的,那就是颜色噪声,如果每个通道的都加相同的噪声,那就是灰度噪声。泊松噪声通常是用来模拟传感器带来的噪声。
  • 下采样有多种方式:
    最邻近、区域、双线性、双三次。这些除了最邻近,本文都有用到。而最邻近没有被用到的原因是因为他会带来像素不匹配的问题。
  • JPEG压缩
    本文使用Pytorch的实现方式-DIffJPEG,这东西我没有具体研究过。

以上就是传统的退化模型,他们可以被称为first-order。而本文提到的high-order,其实就是first-order的多次重复使用。

2.2 High-order退化模型

这部分原文篇幅不小,但其实感觉没啥太多内容,上一个图和一个公式就很清晰了。
在这里插入图片描述
在这里插入图片描述
这个公式就是实际的退化模型,他实际就是把3.1的内容重复了n次,就称作high-order。这样多次的重复退化(ps:套娃行为)会让合成的数据更加符合真实的退化数据。本文在实际操作时,发现second-order也就是重复两次的效果是最好的。

2.3 振铃和过冲伪影

对于这两个伪影我了解的不多,但是它们基本上就是由于JPEG压缩导致的,你经常看到的那种模糊就是这两个伪影,如下图:
在这里插入图片描述
为了模仿这两个伪影的产生,作者用了这样一个sinc过滤核,如下:
在这里插入图片描述
其中的J1就是first-order的函数,用这样一个核就会产生下面这样的结果:
在这里插入图片描述
这就很好地模拟了振铃和过冲伪影。

2.4 网络结构与训练过程

网络结构中生成器和ESRGAN没啥区别,如下:

在这里插入图片描述
判别器采用了更加复杂并且性能更好的结构,如下:
在这里插入图片描述
U-Net让判别器不仅仅关注图像的整体,还关注每个部分的特征,SN可以缓和由于复杂数据集和复杂网络带来的训练不稳定的问题,SN的具体做法是在每一次更新权值W之后都除以W最大的奇异值,具体的内容可以参考知乎文章:Spectral Normalization 谱归一化

训练分两个阶段,首先训练生成器,使用L1损失,然后训练判别器,使用GAN损失和感知损失。

在训练的时候,文中还提到一个小的trick,就是用到了一种图像预处理的方法,使用USM锐化训练集的groundtruth图像,会有更好的效果。训练的结果如下:
在这里插入图片描述

3.总结

个人感觉,本文只是在ESRGAN的基础上增加许多许多个训练和数据处理的trick(当然ESRGAN也是本文作者提出的),但是值得学习的是,每一个文中出现的trick,作者都有非常强大的理论支持,每一部分写的都有理有据。Respect!

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-07 22:41:41  更:2022-04-07 22:43:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 11:58:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码