【GANs学习笔记】(十八)LAPGAN、ProGAN、SRGAN

article/2025/11/8 16:43:18

完整笔记:http://www.gwylab.com/note-gans.html
———————————————————————

4. LapGAN

      4.1 LapGAN基本思路

如果我们希望生成高分辨率图像,还有一种GANs可以考虑,那就是LapGANLapGANStackGAN有着非常类似的思路,都是通过先产生低分辨率图像再不断生成高分辨率图像,但LapGAN是基于拉普拉斯金字塔实现的,在金字塔的每一层都是学习与相邻层之间的残差,也就是说,高分辨率图像的生成是以低分辨率图像作为条件去生成残差,然后低分辨率图上采样再跟残差求和得到高分辨率图,这种低分辨率图向高分辨率图生成的过程其实就是一个CGAN,通过不断堆叠 CGAN 得到我们想要的分辨率。

      4.2 拉普拉斯金字塔

       我们先介绍一下什么是拉普拉斯金字塔:

       简单来说,拉普拉斯金字塔就是图片在尺度空间中不断上采样的结果(从低分辨率层向高一层变化的过程叫上采样,反之就称作下采样),与之对应的,高斯金字塔就是图片在尺度空间中不断下采样的结果。

       下采样的过程,分为两步:

1)对图像进行高斯核卷积

2)将偶数行除去。

用公式表示就是:

       而上采样的过程,是把当前层的残差值和上一层图像上采样之后的结果加起来所得到的图像。其中残差值的定义是:

       式中的表示第i层的图像。而UP()操作是将源图像中位置为(x,y)的像素映射到目标图像的(2x+1,2y+1)位置,即在进行向上取样。符号ⓧ表示卷积,5x5的高斯内核。

      4.3 LapGAN的模型架构

       上图是LapGAN搭建4层时的情形,一共用到了4GAN,其中64*64的图像, 32*3216*168*8。 拉普拉斯金字塔的顶端(也就是像素最低的图像)用来训练普通的GAN ,生成器的输入只有噪声。而后像素更高的图像用来训练CGAN,输入的不光有噪声,还有同级的高斯金字塔的图像经过上采样后得到的图像。

       下面我们来看一下,对于一个训练好的LapGAN,我们如何提取出它的generator

       可以看出,这其实是由多个generator级联出的一个模型。如果我们想在尺度空间k层下得到一张生成图片,我们获取该图片的公式便是:

       综上,LapGAN就是依据拉普拉斯金字塔,把各个层之间的采样过程用CGAN实现,再把这些CGAN串联起来,形成了不断生成更高分辨率图片的一个结构。LapGAN的一个核心优点是它让每个GANs只需要学会计算到不同层之间的残差值,大大减少了每一次GANs需要学习的内容,并且针对残差的逼近和学习也相对容易,从这一点上说与Residual Network有异曲同工之妙。但是LapGAN也存着一些弊端,最明显的一点就是LapGAN实质上的网络深度是非常深的,逐级独立训练提高了网络简单记忆输入样本的难度,许多高性能的深度网络都面临着这样的问题。



 

5. PGGAN(也称ProGAN

      5.1 PGGAN基本思路

       如果现在我们想生成超高分辨率的图像,譬如1024×1024图片,假设我们采用StackGAN或者是LapGAN的话,我们需要用到的GANs结构会非常多,这样会导致网络深度巨大,训练起来非常慢。为了解决这一问题,PGGAN(渐进式增长GAN)提出的想法是,我们只需要一个GANs就能产生1024×1024图片。但是一开始的时候GANs的网络非常浅,只能学习低分辨率(4×4)的图片生成,随着训练进行,我们会把GANs的网络层数逐渐加深,进而去学习更高分辨率的图片生成,最终不断的更新GANs从而能学习到1024×1024分辨率的图片生成。

       也就是说,PGGANStackGANLapGAN的最大不同在于,后两者的网络结构是固定的,但是PGGAN随着训练进行网络会不断加深,网络结构是在不断改变的。这样做最大的好处就是,PGGAN大部分的迭代都在较低分辨率下完成,训练速度比传统GANs提升了2-6倍。

      5.2 PGGAN的模型架构

       训练开始于有着一个4×4像素的低空间分辨率的生成器和判别器。随着训练的改善,我们逐渐向生成器和判别器网络中添加层,进而增加生成图片的空间分辨率。所有现存的层在过程中保持可训练性。这里N×N是指卷积层在N×N的空间分辨率上进行操作。这个方法使得在高分辨率上也能稳定合成并且加快了训练速度。右图我们展示了六张通过使用在1024 × 1024空间分辨率上渐进增长的方法生成的样例图片。

       但是上述这样的做法会有一个问题,就是从4×4的输出变为8×8的输出的过程中,网络层数的突变会造成GANs的急剧不稳定,使得GANs需要花费额外的时间从动荡状态收敛回平稳状态,这会影响模型训练的效率。为了解决这一问题,PGGAN提出了平滑过渡技术。

       如上图所示,当把生成器和判别器的分辨率加倍时,会平滑的增强新的层。我们以从16 × 16像素的图片转换到32 × 32像素的图片为例。在转换(b)过程中,把在更高分辨率上操作的层视为一个残缺块,权重α01线性增长。当α0的时候,相当于图 (a),α1的时候,相当于图(c)。所以,在转换过程中,生成样本的像素,是从 16x16 32x32转换的。同理,对真实样本也做了类似的平滑过渡,也就是,在这个阶段的某个训练batch,真实样本是: X=(1−α)+α

上图中的 0.5× 指利用最近邻卷积和平均池化分别对图片分辨率加倍和折半。toRGB表示将一个层中的特征向量投射到RGB颜色空间中,fromRGB正好是相反的过程;这两个过程都是利用1 × 1卷积。当训练判别器时,插入下采样后的真实图片去匹配网络中的当前分辨率。在分辨率转换过程中,会在两张真实图片的分辨率之间插值,类似于将两个分辨率结合到一起用生成器输出。详细的过程可以参见paper

       综上,便是PGGAN的主要思想,PGGAN的主要优点就是能生成高质量的样本。日常生活中我们需要高清图片的时候还是蛮多的,因此我觉得PGGAN的应用价值还是挺大的。

 



 

6.* SRGAN

       SRGANSuper-Resolution GAN)顾名思义,就是一个专门做图像超分辨率的GANs。核心思路非常简单,G网通过低分辨率的图像生成高分辨率图像,由D判断拿到的图像是由G网生成的,还是数据库中的原图像。当G网能成功骗过D网的时候,那这个GANs就可以完成超分辨率了。

       网络架构如下:

       具体的网络参数设置和损失函数的定义读者可以翻阅paper研究,因为没有什么亮点和创新点,在此就不多作介绍了。

至此,GANs在图像生成上的介绍到此就告一段落了,可以看出GANs在实现高质量图像生成上的paper非常多,是GANs的主力军,但其实GANs不光可以实现高质量图像生成,它还能实现在不同图像之间的转化以及通过提取特征定向生成图片等,我们会在接下来的部分中进行介绍。


http://chatgpt.dhexx.cn/article/x4bJL6ff.shtml

相关文章

GAN网络

目录 GAN生成网络G(Generative)对抗网络D(Discriminative)两分布之间差异性评价KL散度JS散度 损失函数一次代码实验 WGANWGAN-GPConditional GAN GAN 生成式对抗网络(GAN, Generative Adversarial Networks&#xff0…

基于pytorch的SRGAN实现(全网最细!!!)

基于pytorch的SRGAN实现 前言SRGAN论文概要(贡献)网络结构和损失函数pytorch代码实现1. 准备工作1.1 数据下载并放到合适位置 2. 开始训练和测试 源码详解1. 数据集的加载: data_utils.py2. 网络模型: model.py2.1 生成器: Generator2.2 判别器:Discrimi…

超分辨率——基于SRGAN的图像超分辨率重建(Pytorch实现)

基于SRGAN的图像超分辨率重建 本文偏新手项,因此只是作为定性学习使用,因此不涉及最后的定量评估环节 目录 基于SRGAN的图像超分辨率重建1 简要介绍2 代码实现2.1 开发环境2.2 主要流程2.3 构建数据集2.4 构建生成模型(Generator&#xff09…

SRCNN神经网络

0 前言 超分辨率技术(Super Resolution,SR)是指从观测到的低分辨率图像重建出相应的高分辨率图像,在监控设备、卫星图像和医学影像等领域都拥有着重要的应用价值。 1 SRCNN SRCNN是深度学习用在超分辨率重建上的开山之作。 其结构十分简单&#xff0c…

SRGAN的理解

全文翻译见:https://blog.csdn.net/weixin_42113955/article/details/89001989 和https://blog.csdn.net/c2a2o2/article/details/78930865 1. ptrain是真正的HR图像,也就是data要预测的。 pG是生成的超分辨图像 好处在于:固定 G&#xff0c…

GANs综述

生成式对抗网络GANs及其变体 基础GAN 生成式对抗网络,是lan Goodfellow 等人在2014年开发的,GANs 属于生成式模型,GANs是基于最小值和最大值的零和博弈理论。 为此,GANs是由两个神经网络组成一个Generator。另一个是Discriminat…

图像的超分辨率重建SRGAN与ESRGAN

SRGAN 传统的图像超分辨率重建方法一般都是放大较小的倍数,当放大倍数在4倍以上时就会出现过度平滑的现象,使得图像出现一些非真实感。SRGAN借助于GAN的网络架构生成图像中的细节。 训练网络使用均方误差(MSE)能够获得较高的峰值…

SRGAN With WGAN

SRGAN With WGAN RGAN 是基于 GAN 方法进行训练的,有一个生成器和一个判别器,判别器的主体使用 VGG19,生成器是一连串的 Residual block 连接,同时在模型后部也加入了 subpixel 模块,借鉴了 Shi et al 的 Subpixel Ne…

SRGAN论文与ESRGAN论文总结

博客结构 SRGANContribution:Network Architecture:Generator NetworkDiscriminator Network Perceptual loss function:Experiments:Mean opinion score (MOS) testing: ESRGANContribution:Network Architecture:ESR…

SR-GNN

Session-based Recommendation with Graph Neural Networks 一、论文 1、理论 ​ SR-GNN是一种基于会话序列建模的推荐系统。会话序列专门表示一个用户过往一段时间的交互序列。 ​ 常用的会话推荐包括循环神经网络和马尔科夫链,但有两个缺点: 当一…

SRGAN(SRResNet)介绍

生成对抗网络GAN是由蒙特利尔大学Ian Goodfellow在2014年提出的机器学习架构。 生成式对抗网络(GAN, Generative Adversarial Networks )是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。模型通过框架中(至…

SRGAN

摘要: 尽管使用更快更深的卷积神经网络在单图像超分辨率的准确性和速度方面取得了突破,但一个核心问题仍然很大程度上未解决:当我们在大的升级因子上超分辨时,我们如何恢复更精细的纹理细节?基于优化的超分辨率方法的行…

深度学习计划(4)SRGan简析

SRGAN 一种用于图像超分辨率(SR)的生成对抗网络(GAN) 超分辨率:从低分辨率(LR)图像来估计其对应高分辨率(HR)图像的高挑战性任务被称作超分辨率(SR) 问题: 重建的SR图像中通常缺少纹理细节。有监督SR算法的优化目标通常是最小化恢复的HR图像和真实图像…

图像超分经典网络 SRGAN精确解析

SRGAN 核心思想 早期超分辨率方法的优化目标都是降低低清图像和高清图像之间的均方误差。降低均方误差,确实让增强图像和原高清图像的相似度更高。但是,图像的相似度指标高并不能代表图像的增强质量就很高。 为什么 SRGAN 的增强结果那么清楚呢&#x…

SRGAN简单了解

超分辨率问题的病态性质尤其表现在取较高的放大因子时,重构的超分辨率图像通常会缺失纹理细节。监督SR算法的优化目标函数通常取重建高分辨率图像和地面真值之间的均方误差,在减小均方误差的同时又可以增大峰值信噪比(PSNR),PSNR是评价和比较…

【超分辨】SRGAN详解及其pytorch代码解释

SRGAN详解 介绍网络结构损失函数数据处理网络训练 介绍 「2023年更新」本代码是学习参考代码,一般不能直接运行,想找现成能运行的建议看看其他的。 SRGAN是一个超分辨网络,利用生成对抗网络的方法实现图片的超分辨。 关于生成对抗网络&#…

超分之一文读懂SRGAN

这篇文章介绍SRResNet网络,以及将SRResNet作为生成网络的GAN模型用于超分,即SRGAN模型。这是首篇在人类感知视觉上进行超分的文章,而以往的文章以PSNR为导向,但那些方式并不能让人眼觉得感知到了高分辨率——Photo-Realistic。 参…

图像超分经典网络 SRGAN 解析 ~ 如何把 GAN 运用在其他视觉任务上

生成对抗网络(GAN)是一类非常有趣的神经网络。借助GAN,计算机能够生成逼真的图片。近年来有许多“AI绘画”的新闻,这些应用大多是通过GAN实现的。实际上,GAN不仅能做图像生成,还能辅助其他输入信息不足的视觉任务。比如SRGAN&…

Oracle常用函数汇总记录

Oracle常用函数汇总记录 一、SUBSTR 截取函数 用法:substr(字符串,截取开始位置,截取长度) //返回截取的字, 字符串的起始位置为1,截取时包含起始位置字符 1.SUBSTR( “Hello World”, 2 ) //返回结果为:ello World,从第二个字符开始截取至末位 2.SUBSTR( “Hello World”, -2…

oracle一些常用函数用法,Oracle常用函数及其用法

01、入门Oracle 本章目标: 掌握oracle安装、启动和关闭 基本管理以及常用工具 简单备份和恢复 熟练使用sql,掌握oracle常用对象 掌握数据库设计和优化基本方法 http://jingyan.baidu.com/article/5d6edee228308899eadeec3f.html oracle数据库&#xff1a…