GAN Step By Step -- Step2 GAN的详细介绍及其应用

GAN Step By Step

logo

心血来潮

GSBS,顾名思义,我希望我自己能够一步一步的学习GAN。GAN 又名 生成对抗网络,是最近几年很热门的一种无监督算法,他能生成出非常逼真的照片,图像甚至视频。GAN是一个图像的全新的领域,从2014的GAN的发展现在,在计算机视觉中扮演着越来越重要的角色,并且每年都能产出各色各样的东西,GAN的理论和发展都蛮多的。我感觉最近有很多人都在学习GAN,但是国内可能缺少比较多的GAN的理论及其实现,所以我也想着和大家一起学习,并且提供主流框架下 pytorch,tensorflow,keras 的一些实现教学。

在一个2016年的研讨会,杨立昆描述生成式对抗网络是“机器学习这二十年来最酷的想法”。

Step2 GAN的详细介绍及其应用

GAN基本框架

上一次已经介绍了一下GAN的基本框架和基本公式,如图所示


10大典型的GAN算法

GAN 算法有数百种之多,大家对于 GAN 的研究呈指数级的上涨,目前每个月都有数百篇论坛是关于对抗网络的。

下图是2014-2018每个月关于 GAN 的论文发表数量:

关于GANs的论文呈指数级增长

如果你对 GANs 算法感兴趣,可以在 「GANs动物园」里查看几乎所有的算法。我们为大家从众多算法中挑选了10个比较有代表性的算法,技术人员可以看看他的论文和代码。

在这里插入图片描述

GAN MAPs

接下来,我也会一一学习这些GAN的知识,一起遍历这个GAN的地图

算法 论文 代码
GAN 论文地址 代码地址
DCGAN 论文地址 代码地址
CGAN 论文地址 代码地址
CycleGAN 论文地址 代码地址
CoGAN 论文地址 代码地址
ProGAN 论文地址 代码地址
WGAN 论文地址 代码地址
SAGAN 论文地址 代码地址
BigGAN 论文地址 代码地址

上面内容整理自《Generative Adversarial Networks – The Story So Far》原文中对算法有一些粗略的说明,感兴趣的可以看看。

GAN的优缺点

3个优势

  1. 能更好建模数据分布(图像更锐利、清晰)
  2. 理论上,GANs 能训练任何一种生成器网络。其他的框架需要生成器网络有一些特定的函数形式,比如输出层是高斯的。
  3. 无需利用马尔科夫链反复采样,无需在学习过程中进行推断,没有复杂的变分下界,避开近似计算棘手的概率的难题。

2个缺陷

  1. 难训练,不稳定。生成器和判别器之间需要很好的同步,但是在实际训练中很容易D收敛,G发散。D/G 的训练需要精心的设计。
  2. 模式缺失(Mode Collapse)问题。GANs的学习过程可能出现模式缺失,生成器开始退化,总是生成同样的样本点,无法继续学习。

Application


姿势引导人形像生成

通过姿势的附加输入,我们可以将图像转换为不同的姿势。例如,右上角图像是基础姿势,右下角是生成的图像。

img


下面的优化结果列是生成的图像。

img


该设计由二级图像发生器和鉴频器组成。生成器使用元数据(姿势)和原始图像重建图像。判别器使用原始图像作为CGAN设计标签输入的一部分。

img


CycleGAN

跨域名转让将很可能成为第一批商业应用。GANs将图像从一个领域(如真实的风景)转换为另一个领域(莫奈绘画或梵高)。

img


例如,它可以在斑马和马之间转换图片。

img


Cyclegan构建了两个网络G和F来构建从一个域到另一个域以及反向的图像。它使用判别器d来批评生成的图像有多好。例如,G将真实图像转换为梵高风格的绘画,并且DY用于区分图像是真实的还是生成的。

域A到域B:------------------------>

bg right width:600px

我们在反向域B域A中重复该过程:

width:600px


PixelDTGAN

根据名人图片推荐商品已经成为时尚博客和电子商务的热门话题。Pixeldtgan的作用就是从图像中创建服装图像和样式。

img


bg  width:600px

bg width:600px


超分辨率

从低分辨率创建超分辨率图像。这是GAN显示出非常令人印象深刻的结果,也是具有直接商业可能性的一个领域。

img


与许多GAN的设计类似,它是由多层卷积层、批标准化、高级relu和跳跃连接组成。

img


PGGAN

Progressive GAN可能是第一个展示商业化图像质量的GAN之一。以下是由GAN创建的1024×1024名人形象。

img


它采用分而治之的策略,使训练更加可行。卷积层的一次又一次训练构建出2倍分辨率的图像。

img


在9个阶段中,生成1024×1024图像。

img


高分辨率图像合成

需要注意的是这并非图像分割,而是从语义图上生成图像。由于采集样本非常昂贵,我们采用生成的数据来补充培训数据集,以降低开发成本。在训练自动驾驶汽车时可以自动生成视频,而不是看到它们在附近巡航,这就为我们的生活带来了便捷。

网络设计:

img

bg right:30% width:600px


文本到图像(StackGAN

文本到图像是域转移GAN的早期应用之一。比如,我们输入一个句子就可以生成多个符合描述的图像。

bg vertical width:600px

bg right:60% width:600px


文本到图像合成

另一个比较通用的实现:

img


人脸合成

不同姿态下的合成面:使用单个输入图像,我们可以在不同的视角下创建面。例如,我们可以使用它来转换更容易进行人脸识别图像。

bg right width:700px


图像修复

几十年前,修复图像一直是一个重要的课题。gan就可以用于修复图像并用创建的“内容”填充缺失的部分。

img


学习联合分配

用面部字符P(金发,女性,微笑,戴眼镜),P(棕色,男性,微笑,没有眼镜)等不同组合创建GAN是很不现实的。维数的诅咒使得GAN的数量呈指数增长。但我们可以学习单个数据分布并将它们组合以形成不同的分布,即不同的属性组合。

width:800px

bg right width:600px


DiscoGAN

DiscoGAN提供了匹配的风格:许多潜在的应用程序。DiscoGAN在没有标签或配对的情况下学习跨域关系。例如,它成功地将样式(或图案)从一个域(手提包)传输到另一个域(鞋子)。

img

DiscoGAN和cyclegan在网络设计中非常相似。


img


Pix2Pix

PIX2PIx是一种图像到图像的翻译,在跨域Gan的论文中经常被引用。例如,它可以将卫星图像转换为地图(图片左下角)。

img


DTN

从图片中创建表情符号。

bg right:40% width:500px

img


纹理合成

img


图像编辑 (IcGAN)

重建或编辑具有特定属性的图像。

width:500px

img


人脸老化(Age-cGAN)

width:500px

img


创建动画角色

众所周知,游戏开发和动画制作成本很高,并且雇佣了许多制作艺术家来完成相对常规的任务。但通过GAN就可以自动生成动画角色并为其上色。

center width:400px

使用Generative Adversarial Networks创建自动动画人物角色


生成器和判别器由多层卷积层、批标准化和具有跳过链接的relu组成。

img


神经照片编辑器

基于内容的图像编辑:例如,扩展发带。

img神经照片编辑


细化图像

img

目标检测

这是用gan增强现有解决方案的一个应用程序。

img


图像融合

将图像混合在一起。

img

生成三维对象

这是用gan创建三维对象时经常引用的一篇文章。

img


音乐的产生

GaN可以应用于非图像领域,如作曲。

img

img


医疗(异常检测)

GAN还可以扩展到其他行业,例如医学中的肿瘤检测。

img

img

猜你喜欢

转载自blog.csdn.net/weixin_45508265/article/details/127091858