GAN生成对抗模型入门
GAN笔记
简介
GAN的思想来自零和博弈理论,由两个部分组成,一个是生成器Generator,随机接收一个随机噪声来生成图像。一个是鉴别器Discriminator,判断一张图像是不是“真实的”,输入是一张图像,输出是该图像为真实图像的概率,介于0-1之间,概率值越小认为生成图像不真实的可能性越大。生成器的目标是通过生成接近真实的图像来欺骗判别器,而判别器的目标是尽量辨别出生成器生成的假图像和真实图像的区别。
自编码器(Auto-Encoder)以及变分自编码器(Variational Auto-Encoder)都是典型的生成器。输入通过Encoder编码成code,然后code通过Decoder重建原图,其中自编码器中的Decoder就是生成器,code可随机取值,产生不同的输出。 自编码器是一种能够通过无监督学习,对输入数据进行特征提取,学习到数据的抽象表示,称为编码过程,编码结果往往维度远小于输入数据,自编码器可以用于降维和特征提取,
变分自编码器(Variational auto-encoder,VAE)是一类重要的生成模型(generative model),它于2013年由Diederik P.Kingma和Max Welling提出,是自动编码器的升级版,
生成器和判别器都可以自我训练,但生成器自我训练产生的图像是模糊的,无法产生逼近真实图像的假图像
而判别器也可以自我训练,给定一个输入图像,输出一个概率置信度,介于0-1之间
发展
-
GAN(Generative Adversarial Network)生成对抗网络,由Ian Goodfellow在2014年提出。
- 《Conditional Generative Adversarial Nets》2014
- 为MNIST手写数码数据集、CIFAR-10小件图片数据集、多伦多人像数据集生成新案例。
-
CGAN(Conditional Generative Adversarial Nets,可用条件约束的对抗神经网络)
- 《Conditional Generative Adversarial Nets》
- 一个假设的数据分布,但是这样自由散漫的方式对于较大的图像就不太可控了,CGAN方法提出了一种带有条件约束的GAN,将额外信息y输送给判别模型和生成模型,作为输入层的一部分,从而实现条件GAN,是在Mnist数据集上以类别标签为条件变量,生成指定类别的图像,把纯无监督的GAN变成有监督的模型。
- Conditional GANs 是最先进的GAN的核心主题。这篇论文展示了如何整合数据的标签,从而实现更稳定的GAN训练,对于关注图像到图像或文本到图像的论文尤其重要。
-
DCGAN(深度卷积GAN)
- 《unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks》
- 通过卷积的方式将100维的随机噪声输入映射成一张图像,使用卷积层代替了全连接层,采用带步长的卷积代替上采样,更好的提取图像特征,判别器和生成器对称存在,极大的提升了GAN训练的稳定性和生成结果的质量。判别器中采用leakyRELU而不是RELU来防止梯度稀疏,而生成器仍然采用RELU,但输出层采用tanh。并没有从根本上解决GAN训练不稳定的问题,往往是训练一个多次,训练另一个一次。
- 展示了卷积层与 GAN 是怎样组合的,还提供了其他一系列其他的参考架构。论文还讨论了诸如可视化GAN特征,潜在空间插值,用鉴别器特征训练分类器,结果评价等方面。DCGAN 论文是必读的 GAN 论文,因为它的结构非常清晰,代码容易使用,可以马上用在您的 GAN 开发中。
-
Pix2Pix
- 《Image-to-Image Translation with Conditional Adversarial Networks》
- Pix2Pix是另一种图像到图像转换的GAN模型。该框架使用配对的训练样本,并在GAN模型中使用许多不同的配置。PatchGAN观察图像的70 x 70区域,以确定它们是真实的还是虚假的,而不是查看整个图像。该模型还提出了一个有趣的U-Net风格生成器结构,以及在生成器模型中使用ResNet样式的跳跃连接。有许多很酷的应用,例如边缘图到照片般真实的图像。
- 生成高质量的图像,并且可以通过人为控制生成的图像。
-
CycleGAN
- 《Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks》朱俊彦等人于2017年发表题为《使用一致循环生成网络进行非配对图像转换》的论文
- 讨论了图像到图像的迁移问题而不是随机向量的图像合成问题。CycleGAN可以更具体地处理没有配对的图像转换的训练样本。因为循环一致性损失公式的优雅以及如何稳定GAN训练的方式。有许多有趣的程序使用CycleGAN,例如超分辨率,风格迁移,让马变为斑马。
- pix2pix对训练样本要求较高,需要成对的数据集,而这种样本的获取往往需要耗费很大精力。CycleGAN恰巧解决了该问题,实现两个domain之间的转换,即只需要准备两种风格的数据集,让GAN去学习将domain X中的图片转换成domain Y的风格(不改变domain X原图中物体,仅仅实现风格转换)。
-
StyleGAN
-
A Style-Based Generator Architecture for Generative Adversarial Networks
-
对于discriminator,它的输入是一张图片,它需要去鉴别出这张图片是真实图片还是generator产生的图片,同时它还需要分辨出这张输入的图片来自于哪个domain(哪种风格)。对于generator,它有两个输入,分别是目标domain和输入图片,它的输出是一张符合目标domain风格的图片。
-
CycleGAN的优点是它可以实现跨域图像翻译,不需要大量的并行数据,并且可以处理不同分辨率的图像。CycleGAN的缺点是它的生成器网络结构相对简单,生成的图像质量可能不如StyleGAN高。
StyleGAN的优点是它可以生成高质量的图像,并且具有更好的控制性。StyleGAN的缺点是它需要大量的高质量数据进行训练,并且不能实现跨域图像翻译。
-
-
StackGAN
- 《Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks》
- 堆叠生成对抗网络(StackGan)非常独特,因为它是从自然语言文本到图像的转换。它非常类似于Conditional GANs和Progressively Growing GANs。StackGAN模型的工作方式类似于Progressively Growing GANs,因为它可以在多尺度上工作。StackGAN首先输出64 * 64的图像,然后将其作为先验信息生成256 * 256的图像。
- 第一阶段的GAN根据文字描述草绘出一张简单形状和基本颜色符合的低分辨率图片,第二阶段的GAN把第一阶段的结果和文字条件作为输入,生成具有照片真实感的高分辨率的图片。
-
StarGAN
- 《StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation》
- 有的时候我们可能希望图片能在n个domain当中互转,那依据CycleGAN的设计思路,理论上我们需要训练
个generato 。很明显这需要训练的generator太多了。那为了用更少的generator实现多个风格之间的互转,StarGAN被提出了。
- 鉴别器D 学习去辨别真实图像和生成图像,以及对图像进行所属域的分类(两个输出)。生成器接受图像和目标域标签(两个输入)
-
BigGAN
- 《Large Scale GAN Training for High Fidelity Natural Image Synthesis》
- 是ImageNet的当前最新技术。这种模型很难在本地机器上实现,并且模型中有许多组件,如自注意力,频谱归一化和带有投影鉴别器的cGAN,这些都在他们的论文中得到了很好的解释。而且论文对当前最新技术的基础论文进行了全面的概述。
- 《Large Scale GAN Training for High Fidelity Natural Image Synthesis》展现了用BigGAN技术生成合成照片的案例
-
Omni-GAN
- 《On the Secrets of cGANs and Beyond》
- 条件生成对抗网络 (cGAN) 是生成高质量图像的强大工具,但现有方法大多性能不令人满意或存在模式坍塌的风险。OmniGAN,是 cGAN 的一种变体,针对训练合适判别器的问题。关键是要确保判别器接受强监督并适度正则化以避免坍塌。
-
infinite conditional GANs 或 MIC-GANs
- 《Unsupervised Image Generation with Infifinite Generative Adversarial Networks》
- 旨在用简约的先验知识生成图像。
-
WGAN(Wasserstein GAN)
- 《Wasserstein GAN》
- 将原来的二分类任务变为回归任务,用最小二乘损失函数来优化。从损失函数的角度对GAN进行了改进,理论上给出了GAN训练不稳定的原因,提出的Wassertein距离来衡量数据分布和真实数据分布之间的距离,理论上解决了训练不稳定的问题。也解决了模式崩溃问题(collapse mode)(生成器倾向于生成一些有把握但相似的图片,而不敢轻易地尝试去生成没把握的新图片,从而缺乏多样性的情况),使得生成器生成结果更加多样。
-
WGAN-GP(WGAN的改进版本)
- 《Improved Training of Wasserstein GANs》
- WGAN有时候也会伴随样本质量低、难以收敛等问题,WGAN-GP是WGAN的改进版
-
LSGAN(最小二乘GAN)
- 《Least Squares Generative Adversarial Networks》
- 以交叉熵作为损失,会使得生成器不会再优化那些被判别器识别为真实图片的生成图片,因为生成器已经完成我们为它设定的目标——尽可能地混淆判别器,交叉熵损失已经很小了,而最小二乘就不一样了,要想最小二乘损失比较小,在混淆判别器的前提下还得让生成器把距离决策边界比较远的生成图片拉向决策边界。
-
BEGAN(Boundary Equilibrium GAN)
- 《BEGAN: Boundary Equilibrium Generative Adversarial Networks》
- 边界均衡GAN,基于均衡思想的改进,其不需要训练的技巧,使用标准的训练步骤就可以快速稳定的收敛,BEGAN使用了自动编码器(auto-encoder)作为判别器,判别器的输入是图片,输出是经过编码解码后的图片,使用重构误差来衡量样本是生成的还是真实的
应用
- 《Detail Me More: Improving GAN’s photo-realism of complex scenes》
- 如果在场景的特定区域检测到或需要一盏灯,代理会为该图像块分配一个细粒度的灯判别器。这可以促使生成器学习灯的形状和阴影模型。在生成对抗网络(GAN)中添加一个“代理”模块来解决这个问题。代理任务是在图像区域中调解多个判别器的使用。
图像编辑-基于StyleGAN
- StyleCLIP
- 《Text-Driven Manipulation of StyleGAN Imagery》
- 利用最近引入的对比语言图像预训练 (CLIP) 模型,以便为 StyleGAN 图像处理开发一个基于文本的界面。提出一种将文本映射到 StyleGAN 风格空间中的方法,实现交互式文本驱动的图像操作。
图像转换
- SPatchGAN
- 《SPatchGAN: A Statistical Feature Based Discriminator for Unsupervised Image-to-Image Translation》
- 对于无监督的图像到图像转换,提出一种判别器架构专注于统计特征而不是单个patch感受野。与现有方法对生成器施加越来越多的约束不同,方法通过简化框架促进了形状变形并增强细节。
文字生成图像
- DAE-GAN
- 《DAE-GAN: Dynamic Aspect-aware GAN for Text-to-Image Synthesis》
- 文本转换生成图像是指,从给定的文本描述中生成图像,保持照片真实性和语义一致性。此前方法通常使用句子特征嵌入去生成初始图像,然后用细粒度的词特征嵌入对初始效果进行细化。
- 本文提出一种动态 Aspect-awarE GAN (DAE-GAN),从多个粒度(包括句子级、词级和aspect级)全面地表示文本信息。
风格迁移
- DRB-GAN
- 《 DRB-GAN: A Dynamic ResBlock Generative Adversarial Network for Artistic Style Transfer》
- 提出一种用于艺术风格迁移的动态 ResBlock 生成对抗网络(DRB-GAN)。风格码被建模为连接风格编码网络和迁移网络的动态 ResBlocks 的共享参数。
- 在编码网络中,融入了风格的类感知注意机制;在迁移网络中,多个 Dynamic ResBlocks 来整合风格码和提取的 CNN 语义特征,然后输入到空间实例归一化(SWLIN)解码器,实现艺术风格迁移。
动漫风格化
- AnimeGAN
- AnimeGAN仍然存在一些明显的问题,例如模型生成的图像中存在高频伪影。nime GAN由于使用了实例归一化,很容易产生高频伪影,这与styleGAN产生高频伪影的原因是一样的。AnimeGANv2使用与AnimeGAN相同的判别器,不同之处在于判别器使用层归一化而不是实例归一化。AnimeGANv2通过简单的改变网络中特征的归一化来防止高频伪影的产生。
- makeGirlsMoe
- 《Towards the Automatic Anime Characters Creation with Generative Adversarial Networks》
- 还带一个网站https://make.girls.moe/#/
图像编辑-人脸
- latent-transformer
- 《A Latent Transformer for Disentangled Face Editing in Images and Videos》
- 过 StyleGAN 生成器的潜在空间来编辑人脸属性,训练专用的潜在转换网络,并在损失函数中加入显式解耦和ID保留损失项。并将方法推广到视频。
生成正面人像图片
- 《人脸转正:使用全球及地方GAN感知合成拟真正面人像图片》
消除雨
- 《使用条件性GAN消除图片中的雨》
生成人体新体态
- 《Pose Guided Person Image Generation》
面部老化
- 《Face aging with conditional generative adversarial networks》
- Grigory Antipov等人于2017年发表了题为《使用条件性GAN进行面部老化处理》的论文。文中介绍了使用GAN生成不同年龄段人脸图片的方法。
图片混合
- GP-GAN
- 《GP-GAN: Towards Realistic High-Resolution Image Blending》
- Huikai Wu等人于2017年发表了题为《GP-GAN:关于现实高保真照片的混合》文中展示了GAN在混合照片,尤其是混合田野、大山及其大型物体照片中的应用。
图像恢复-超分
- Fourier Space Losses for Efficient Perceptual Image Super-Resolution
- 许多超分辨率 (SR) 模型仅针对精度效果进行优化,模型庞大、缺乏效率。利用傅立叶空间监督损失来改进从丢失的高频 (HF) 内容,并设计直接在傅立叶域的判别器架构以更好地匹配目标 HF 分布。与最先进的感知 SR 方法 RankSRGAN 和 SRFlow 相比,分别快 2.4 倍和 48 倍。
图像恢复-修复
-
Context Encoders
- 《Context Encoders: Feature Learning by Inpainting》
- 介绍了如何使用GAN的文本编码器进行图片修复或填充空缺,即填补图片中某块缺失的部分。
-
WaveFill
- 《WaveFill: A Wavelet-based Generation Network for Image Inpainting》
- 引进WaveFill,基于小波修复,将图像分解为多个频段,并分别明确地填充每个频段中的缺失区域。WaveFill 使用离散小波变换 (DWT) 分解图像,自然地保留空间信息。它将L1重建损失应用于分解的低频段,将对抗性损失应用于高频段,从而在完成空间域图像的同时有效地减轻频间冲突。
-
CTSDG
- 《Image Inpainting via Conditional Texture and Structure Dual Generation》
- 提出一种用于图像修复的新型双流网络,以耦合方式进行结构约束的纹理合成,以及纹理引导的结构重建,可以更好地相互利用以获得更合理的生成。
图像外插值-图像延展
- SemIE
- 《SemIE: Semantically-aware Image Extrapolation》
- 对于给定的图像,首先使用语义分割方法获得对象分割图;分割图被输入网络以计算外推语义分割和相应的全景分割图。输入图像和获得的分割图进一步用于生成最终的图像。