开发者社区> 云栖大讲堂> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

通过文字描述来生成二次元妹子?聊聊conditional GAN与 txt2img模型

简介:
+关注继续查看

雷锋网(公众号:雷锋网)按:本文作者何之源,复旦大学计算机科学硕士在读,研究人工智能计算机视觉方向。本文由雷锋网独家首发。

一、一个神奇的网站

前些日子在Qiita上看到了一篇神奇的帖子:Girl Friend Factory 機械学習で彼女を創る Qiita。帖子里面提到利用GAN,通过文字描述来生成二次元图像。这篇文章的作者还把他的想法搭建成了一个网站(网站地址:Girl Friend Factory),大概长下面这样:

通过文字描述来生成二次元妹子?聊聊conditional GAN与 txt2img模型

我之前也写过一篇文章介绍了如何利用GAN生成简单的二次元人物头像,但那只是完全的随机生成,你无法控制生成出的人物的属性。但这篇Qiita的帖子不一样,我们可以指定生成人物的属性,如发色、眼睛的颜色、发型,甚至是服装、装饰物,从而生成具有指定属性的图像。

这个网站提供的属性非常多,我简单地把它们翻译了一下:

通过文字描述来生成二次元妹子?聊聊conditional GAN与 txt2img模型

我会在后面详细地介绍它的实现原理,在那之前,我们先来试着玩一玩这个网站。

进入网站后,首先要等待模型加载(注意:这个网站国内可能出现连接不上的问题,需要自行解决。另外网站大概会下载70M左右的模型,需要耐心等待。)加载好后,点击上方的“無限ガチャ”(無限ガチャ实际上是“无限扭蛋器”的意思),就可以进行生成了。

先生成一个金发+碧眼,多次点击生成按钮可以生成多个,效果还可以:

通过文字描述来生成二次元妹子?聊聊conditional GAN与 txt2img模型

再生成黑发+碧眼试试:

通过文字描述来生成二次元妹子?聊聊conditional GAN与 txt2img模型

右击图像可以“注册为喜欢”,实际上就是一个收藏的功能。收藏之后可以"生成一覧"中找到。

通过文字描述来生成二次元妹子?聊聊conditional GAN与 txt2img模型

另外,收藏图片后,点击上方的"属性モーフィング"还可以对属性做微调,如这里我可以更改发色:

通过文字描述来生成二次元妹子?聊聊conditional GAN与 txt2img模型

点击上方的"合成"按钮,你甚至可以把两个人物合成同一个!如下图所示:

通过文字描述来生成二次元妹子?聊聊conditional GAN与 txt2img模型

二、基本原理

上面的网站的原理是什么呢?原作者也提到了,其实就源于Generative Adversarial Text to Image Synthesis这篇论文。接下来就一起看一下它是怎么做的。

我们的目标实际上是通过“文字”生成“图像”。为此我们需要解决以下两个问题:

  • 如何把文字描述表示成合适的向量。

  • 如何利用这个描述向量生成合适的图片。

其中,第一个问题是用了之前一篇论文中的技术,这里就不细讲了。假设文字描述为t,我们可以通过一个函数φ将其转换为一个向量φ(t)。

第二个问题,如何利用向量φ(t)生成合适的图像?这就是GAN的工作,文中GAN的结构如下图所示:

通过文字描述来生成二次元妹子?聊聊conditional GAN与 txt2img模型

对比原始的GAN结构,这里对生成网络G和判别网络D的输入部分做了更改:

  • 对于图像生成网络G,原来是接收一个无意义的噪声z,输出一个图像G(z)。而这里不仅接收噪声z,还接收文字描述向量φ(t),用这两部分共同生成一个图像G(z, φ(t))。

  • 对于判别网络D,原来是接收图像x, 输出打分D(x),现在不仅接收图像x,还接收文字描述φ(t)。最后输出打分D(x, φ(t))

这实际上就是一个条件GAN(conditional GAN)。只需要简单地更改一下原始GAN的结构就可以完成。到了这里,就可以直接训练了,也可以完成我们文字 >图片的生成任务。但是直接训练的生成图片的质量不是很好,对此作者又提出了两点改进。

三、改进一:GANCLS(针对判别器D的改进)

为什么直接训练的效果不好?仔细想一下,我们会发现,在原始的GAN中,判别网络D只需要做一件事情,即判断生成的图片是否正常。但在这里,判别网络D需要做两件事情,一是和原始的GAN一样,判断图片是否正常,二是判断生成的图片是否符合文字描述。

因此,我们对原来的训练步骤做一些改进。不仅给D提供生成的图片和真实的图片两类样本,还给D提供真实图片 + 虚假描述的样本,强化D的训练效果,强迫D判断生成的图片是否真的符合文字描述。具体的训练步骤如下:

通过文字描述来生成二次元妹子?聊聊conditional GAN与 txt2img模型

我们可以看到,D的梯度由三部分构成:sr, sw, sf。sr是真实图片+正确文字。sw是真实图片 + 错误描述。sf是G生成的图片 + 正确描述。这样就可以加快D的训练进程,提高训练效率。

四、改进二:GANINT(针对G的改进)

要理解这部分改进,首先要明白,我们只使用了sf训练生成网络G(见上面的图片)。sf是什么呢?它只和G生成的图片、正确的文字描述两项有关系,也就是说,sf是和真实图片样本无关的。因此,我们可不可以用一种方法,增加正确文字描述的样本数呢?

答案是可以,因为我们只用到了文字描述的嵌入φ(t),在嵌入空间中我们实际是可以做一些简单的加减运算的。

设一个文字描述是φ(t1),另一个文字描述是φ(t2),我们可以得到他们的一个内插值aφ(t1) +(1a)φ(t2)。其中0<a<1。这样的内插实际上是得到了两个文字描述的某种“中间态”,为我们增加了样本数量。

我们知道,对于深度学习,样本数量越多,效果就会越好,因此这里的GANINT是对效果的提升有帮助的,实验中验证了这一点。

作者把上面的两种改进合在一起,就成了GANINTCLS,也是这篇文章的最终方法。

放一张论文作者实验的图,他是做了花的生成,最上面一行是Ground Truth,下面依次是GAN,GANCLS,GANINT,GANINTCLS:

通过文字描述来生成二次元妹子?聊聊conditional GAN与 txt2img模型

五、参考资料


Girl Friend Factory 機械学習で彼女を創る Qiita

Girl Friend Factory

Conditional Generative Adversarial Nets

Generative Adversarial Text to Image Synthesis

本文作者:何之源

本文转自雷锋网禁止二次转载,原文链接


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Text to image论文精读 StackGAN:Text to Photo-realistic Image Synthesis with Stacked GAN具有堆叠生成对抗网络文本到图像合成
本篇文章提出了叠加生成对抗网络(StackGAN)与条件增强,用于从文本合成现实图像,被2017年ICCV(International Conference on Computer Vision)会议录取。 论文地址: https://arxiv.org/pdf/1612.03242.pdf 代码地址: https://github.com/hanzhanggit/StackGAN 本篇是精读这篇论文的报告,包含一些个人理解、知识拓展和总结。
0 0
Text to image论文精读 GAN-CLS和GAN-INT:Generative Adversarial Text to Image Synthesis生成性对抗性文本图像合成(文本生成图像)
这是一篇用GAN做文本生成图像(Text to Image、T2I)的论文,文章在2016年由Reed等人发布,被ICML会议录取。可以说是用GAN做文本生成图像的开山之作。 论文链接:https://arxiv.org/pdf/1605.05396.pdf 代码链接: https://github.com/zsdonghao/text-to-image 本篇文章是精读这篇论文的报告,包含一些个人理解、知识拓展和总结。
0 0
Text to image论文精读 从菜谱描述自动生成菜肴照片 CookGAN: Causality based Text-to-Image Synthesis(基于因果关系的文本图像合成 )
文章被2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)会议录用。 论文地址:[https://ieeexplore.ieee.org/document/9157040/citations#citations](https://ieeexplore.ieee.org/document/9157040/citations#citations) CookGAN旨在解决因果关系效应。食物图像的因果演化隐含在一个连续的网络中。 本博客是精读这篇论文的报告,包含一些个人理解、知识拓展和总结。
0 0
Text to image论文精读 AttnGAN: Fine-Grained TexttoImage Generation with Attention(带有注意的生成对抗网络细化文本到图像生成)
这篇文章提出了一种注意力生成对抗网络(AttnGAN),它允许注意力驱动、多阶段细化细粒度文本到图像的生成,此外,还提出了一种深度注意多模态相似性模型来计算细粒度图像-文本匹配损失以训练生成器,进而生成更逼真的图像。 文章被2018年CVPR(IEEE Conference on Computer Vision and Pattern Recognition)会议收录。 论文地址: https://arxiv.org/pdf/1711.10485.pdf 代码地址: https://github.com/taoxugit/AttnGAN 本博客是精读这篇论文的报告,包含一些个人理解、知识拓展和
0 0
Text to image论文精读 StackGAN++: Realistic Image Synthesis with Stacked GAN(具有堆叠式生成对抗网络的逼真的图像合成)
这篇文章主要工作是:将原先的Stack GAN的两阶段的堆叠结构改为了树状结构。包含有多个生成器和判别器,它们的分布像一棵树的结构一样,并且每个生成器产生的样本分辨率不一样。另外对网络结构也进行了改进。 文章被2017年ICCV(International Conference on Computer Vision)会议录取。 论文地址: https://arxiv.org/pdf/1710.10916v3.pdf 代码地址: https://github.com/hanzhanggit/StackGAN-v2
0 0
Text to Image综述阅读(1.1):介绍与基本原理 Adversarial Text-to-Image Synthesis: A Review(基于GAN的文本生成图像)
基于GAN的文本生成图像,最早在2016年由Reed等人提出,最开始是Conditional GANs的扩展,仅在受限的数据集取得成果,小图像分辨率64*64。
0 0
Text to image论文精读SSA-GAN:基于语义空间感知的文本图像生成 Text to Image Generation with Semantic-Spatial Aware GAN
Semantic-Spatial Aware GAN提出了一种新的语义空间感知GAN框架,文章发表于2021年10月。 论文地址:https://arxiv.org/pdf/2104.00567v3.pdf 代码地址:https://github.com/wtliao/text2image 本博客是精读这篇论文的报告,包含一些个人理解、知识拓展和总结。
0 0
Text to image论文精读CogView: Mastering Text-to-Image Generation via Transformers(通过Transformer控制文本生成图像)
CogView是清华大学和阿里巴巴达摩院共同研究开发的一款用Transformer来控制文本生成图像的模型。该论文已被NIPS(Conference and Workshop on Neural Information Processing Systems,计算机人工智能领域A类会议)录用,文章发表于2021年10月。 论文地址:https://arxiv.org/pdf/2105.13290v3.pdf 代码地址:https://github.com/THUDM/CogView 本博客是精读这篇论文的报告,包含一些个人理解、知识拓展和总结。
0 0
CV之IS:利用pixellib库基于mask_rcnn_coco模型对《庆余年》片段实现实例分割简单代码全实现
CV之IS:利用pixellib库基于mask_rcnn_coco模型对《庆余年》片段实现实例分割简单代码全实现
0 0
+关注
云栖大讲堂
擅长前端领域,欢迎各位热爱前端的朋友加入我们( 钉钉群号:23351485)关注【前端那些事儿】云栖号,更多好文持续更新中!
文章
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载