PaperNotes(4)-高质量图像生成-CGAN-StackGAN-Lapgan-Cyclegan-Pix2pixgan


题记–如何生成高质量图像,gan相关模型调研

1.基于散度距离的改进方案:f GAN, LSGAN, WGAN, WGAN-GP, SNGAN

2.基于网络结构的改进方案:DCGAN, ImprovedDCGAN, SAGAN, BigGAN

3.由应用引发的改进方案:Conditional GAN, TripleGAN, StackGAN, LapGAN,PGGAN, SRGAN, CycleGAN,StarGAN

4.GAN在特征提取上的应用:InfoGAN,VAEGAN,BigGAN

1.Conditional GAN

Generative Adversarial Text to Image Synthesis [ICML 2016,http://arxiv.org/abs/1605.05396]

1.1简介

论文:

条件GAN–生成的数据不仅要求逼真,还要求满足一定的条件约束

文字约束–一只在奔跑的小狗;

图像约束–生成图像的框架轮廓约束,生成器就好像在轮廓的基础上填充了颜色,绘制细节;

1.2网络结构与训练

生成网络增加了条件输入;
判别网络用于判别生成的图像与条件是否匹配,因此其需要三种类型的匹配对(生成图像,匹配条件)(真实图像,匹配条件)(真实图像,不匹配条件);
在这里插入图片描述
在这里插入图片描述
训练流程
在这里插入图片描述

1.3特点与用途

1.能生成符合条件的图像,但是现有数据集合成pair出现的很少;TripleGAN是基于 CGAN 的改进,主要用于解决配对数据少的问题,会训练一个图像标注模型。

2.不能生成大分辨率的高清图,图像细节缺失;StackGAN 也是基于 CGAN 的改进,它主要想C-GAN无法生成高清图的问题。

3.有一个观点:CGAN可以避免所有的随机噪声很产生相同的样本(模式坍塌问题),不同的条件,可以产生不同的图。

**思考:**条件要是文字形式的,会涉及到NLP,文字的表示方式;条件如果是图像,就是img2img的问题,类似于上色,填充简单细节。

参考博文:https://blog.csdn.net/taoyafan/article/details/81229466

2.Stack GAN

2.1简介

StackGAN 希望输入一个描述语 c,能够产生一张 256256 的清晰大图。通过两个阶段堆叠来实现这个过程。
第一个阶段输入(c,z)产生一个 64
64 的小图x,
第二个节点输入(c,x)产生一个256*256的大图X

2.2网络结构与训练

在这里插入图片描述
由结构图可见,对于获得的 text_embedding,stackGAN 没有直接将 embedding 作为
condition,而是用 embedding 接了一个 FC 层得到了一个正态分布的均值和方差,然后从
这个正态分布中 采样 出来要用的 condition。这样做实际是做了一个降维处理,避免原始embeding高维稀疏,导致模型过拟合。(为了避免过拟合在生成器的loss上增加了一个正太分布的正则项)

两个阶段的损失函数为:
在这里插入图片描述

2.3特点与用途

1.Conditioning Augmentation(CA) 条件增强技术

2.StackGAN 不能处理比较复杂的文本,李飞飞小组提出方法能处理更长更复杂的文本,并且有不错的生成效果,论文地址:https://arxiv.org/abs/1804.01622。

思考:
1.要有同一张图像的6464,256256大小的真图。
2.感觉就像是两个Conditional GAN 简单的堆叠在一起,多增加了一个CA技术;
3.不要condition,直接级连的效果是不是等价于生成网络层数加深?设计合适的级连结构,应该能够生成合适大小的图像才对呀?尝试级连生成大分辨率的工作,在相关工作中应爱会介绍

参考博文:https://blog.csdn.net/a312863063/article/details/83574422

3.Lap GAN

3.1简介

生成高分辨率图像GAN模型的典型代表,利用拉普拉斯金字塔,由低分辨率生成高分辨图像。金字塔的每一层都是一个C-GAN,其中下一级图像的上采样图作为G的条件,生成本级真实图像与上采样图像的残差。

3.2网络结构与训练

采样流程图,自右向左分析
在这里插入图片描述
训练流程,自右向左分析
在这里插入图片描述

3.3特点与用途

1.能生成较高分辨率的图像,但是更高分辨率的图像可能使用PGGAN,或者超分辨率GAN效果会更好一些。

2.实际都是C-GAN 的堆叠,只是G的条件是上采样的图,生成真图和上采样的残差。

参考博文:https://zhuanlan.zhihu.com/p/94153155

4.Pix2pix GAN

4.1 简介

从风格迁移说起:在深度学习兴起后,16年有篇cvpr文章使用深度卷积网络做风格迁移。随着GAN网络研究热潮,人们开始研究使用gan 网络做风格迁移。以下五个是比较典型风格迁移的工作。
pix2pix GAN (1611),CycleGAN (1703),DiscoGAN (1703),PAN( Perceptual Adversarial Networks)感知GAN (1706),StarGAN (1711)

pix2pix GAN 和 cycle GAN是同以作者,两篇递进式的工作。

pix2pix GAN工作出自Image-to-Image Translation with Conditional Adversarial Networks,实质还是用CGAN来做图像转换工作。

4.2 网络结构和训练

pix2pix gan 生成器和判别器的工作结构
在这里插入图片描述
pix2pix gan 损失函数,L1是True黑与生成黑的像素间l1范数距离。
在这里插入图片描述

4.3 特点和用途

1.pix2pix 主要做了G网络结构的探索:Encoder-decoder 结构和U-net结构,图像patch的操作

2.实质还是用CGAN来做图像转换工作。

参考博文:https://blog.csdn.net/on2way/article/details/78768221

5.Patch GAN

主要对判别网络做了改进,D输出N*N的矩阵,每个元素为True/False,表示输入图像中的感受野的真假。

思考:标签该怎么打?真实图像给一个NN的True块,生成图像给一个NN的False块?
主要是patch 操作?和pix2pix gan 中的patch有什么异同。

参考博文:https://blog.csdn.net/xiaoxifei/article/details/86506955
https://blog.csdn.net/weixin_35576881/article/details/88058040

6.Cycle GAN

6.1简介

用原始GAN结构在生成网络层数较深时,可能生成与输入差别较大的图像,就不是风格迁移,而是改头换面, 忽略了输入图像长什么样子。
在这里插入图片描述
为了防止生成器学习到具有欺骗性的造假数据,需要保证生成器的输出和原图具有很高的相似性,就可以不丢失原图的特征。

于是 CycleGAN 中加入了一个新的生成器,以第一个生成器的输出作为输入,希望输出一个和原始输入尽可能相似的图。如果能够还原回原始图片,可以表明第一个生成器的输出保留了大量原始图片的特征,输出结果是较为可靠的;而如果不能较好的还原回原始图片,意味着第一个生成器输出与输入差别较大。

6.2网络结构与训练

单向cycle gan
在这里插入图片描述
双向cycle gan(很多博文中都是这个结构)
在这里插入图片描述

6.3特点与用途

1.用来做风格迁移,在pix2pi的基础上不需要pair的训练样本。

2.CycleGAN 存在一种问题,是它能学会把输入的某些部分藏起来,然后在输出的时候再还原回来。比较好理解,隐藏掉一些破坏风格相似性的“坏点”会更容易获得判别器的高分。

思考:如何用实现图像分辨率扩大的功能?

参考博文:https://blog.csdn.net/on2way/article/details/78768221

7.思考与待定

做高分辨率的实验

1.cycle gan 似乎不是天生用来做分辨率变高的实验的。

2.直接使用stack GAN,梯度信息传不到前面–两个生成器具分开训练

3.CGAN的公式推导,如何与stein 变分合在一起–基本没啥好推导的。

4.直接级连不需要条件的GAN–基本上没有看到相关的文章

5.srgan 官网上提供了训练好的超分辨率模型,可以尝试一些图像的超分辨率生成。但如果原图是一团看不清的东西,基本也不了什么。

6.两个网络堆叠:两个网络同时训练的比两个网络分开训练难训。改造了stack gan stage2 的GAN模型(去除条件输入)堆叠模型在object101-airplane上表现好不错,但是在cifar上的效果还是基本看不出来画的是什么。

pg-gan,info gan 还没有看多

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: GAN(Generative Adversarial Network)是一种深度学习模型,在许多任务中都有广泛应用。在 GAN 中,有一个生成器和一个判别器。生成器尝试生成与真实数据类似的新数据,判别器则尝试区分生成的数据与真实数据。生成器和判别器通过对抗的方式共同训练。 Matlab-GAN 是一种基于 Matlab 的 GAN 实现,可以实现生成图片,视频等任务。在 Matlab-GAN 中,可以使用不同的损失函数和正则化技术,来改善生成的质量和稳定性。 除了 GAN,Pixel2Pixel 和 CycleGAN 也是常用的深度学习模型,在计算机视觉任务中具有重要的应用。Pixel2Pixel 是一种基于卷积神经网络的图像翻译模型,可以将一个图像转换为另一个图像,如将黑白图像转换为彩色图像CycleGAN 是一种无需成对匹配的图像转换模型,可以用于跨域图像转换,如将马的图像转换为斑马的图像。 Matlab-GAN 支持 Pixel2Pixel 和 CycleGAN 的实现,可以帮助更方便地进行图像转换任务。Pixel2Pixel 和 CycleGAN 也可以与 GAN 结合使用,产生更高质量、更可控的生成结果。 总之,Matlab-GAN 是一种实现生成对抗网络的工具,支持不同类型的 GAN深度学习模型,可以实现图像、视频等多种任务。Pixel2Pixel 和 CycleGAN 作为深度学习模型中常用的工具,可以帮助更好地完成图像转换任务。 ### 回答2: GAN,即生成对抗网络,是近年来流行的一种机器学习算法模型,它可以通过两个深度神经网络模型(生成器和判别器)来生成具有类似于真实图像的虚拟图像。 在Matlab中,GAN也有自己的实现——matlab-gan。该实现提供了一系列的GAN示例,如最基础的MNIST手写数字图像生成、使用DCGAN和Wasserstein GAN生成图像,甚至还提供了Pix2PixCycleGAN,让用户能够在MATLAB环境中成功加载这些GAN应用。 Pix2Pix是基于条件对抗网络(CGAN)的扩展,它可以将给定的输入图像转换为输出图像。例如,它可以将黑白照片转换成彩色照片,或将景象翻译成抽象画作。该示例合成城市街景并将它们转换为艺术风格的图像CycleGAN是一种通用的无监督图像图像转换器,它可以将两个域之间的图像转换成另一个域。例如,它可以将马的图像转换成斑马的图像CycleGAN图像风格转换、模型综合、目标转换等方面表现出色,是GAN的重要变种。 总体来说,matlab-gan是一个适合于GAN初学者的绝佳平台。它不仅提供了简单的GAN实现,还包括两个复杂的GAN变种——Pix2PixCycleGAN。这些示例不仅能够教授GAN的基础理论,还能够为研究者提供一个练习环境来测试并扩展这些算法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值