首页 二次元 正文

GirlFriendFactory-機械学習彼女を創る-Qiita

二次元 2024-05-25 148

1. 一个神奇的网站

前几天在 Qiita 上看到了一篇很赞的帖子:Girl Friend Factory——学习用机器创造女孩——Qiita()。帖子中通过文字描述提到了使用 GAN 来生成二维图像。这篇文章的作者还用他的想法建了一个网站(网站地址:Girl Friend Factory),长这样:

次元文案_关于二次元文字_次元字体

之前有些 GAN 可以生成简单的 2D 人物肖像,但完全是随机的,无法控制生成人物的属性。Qiita 的这篇文章则不同,我们可以指定生成人物的属性,比如发色、眼色、发型,甚至衣服和装饰,从而生成具有指定属性的图像。这个网站提供了很多属性,我简单翻译了一下:

次元字体_关于二次元文字_次元文案

我稍后会详细解释它是如何工作的,但在此之前,让我们先尝试使用这个网站。

进入网站之后首先要等待模型加载完毕(注:本网站在国内可能会无法连接,需自行解决。另外网站会下载70M左右的模型,所以需要耐心等待。)加载完毕之后点击上面的“無限ガチャ”(無限ガチャ其实就是“無限ガチャ”),就可以生成了。

首先生成一个金发+蓝眼睛的女孩。多次点击生成按钮可以生成多个女孩。效果还不错:

次元文案_次元字体_关于二次元文字

要恢复黑发和蓝眼睛,请尝试:

关于二次元文字_次元文案_次元字体

右键点击图片可以“加入收藏”,其实就是收藏功能,收藏后可以在“创建列表”中找到。

关于二次元文字_次元字体_次元文案

另外,在收藏图片后,可以点击上方的“属性模式”对属性进行微调。比如这里我可以更改头发的颜色:

关于二次元文字_次元字体_次元文案

点击上方的“合并”按钮,你甚至可以将两个角色合并为一个!如下图所示:

关于二次元文字_次元字体_次元文案

(注意:该网站还不太成熟,有时生成的图像可能会损坏)

2.基本原则

上面这个网址的原理到底是什么呢?原文作者也提到了,其实它源自论文 Generative Adversarial Text to Image Synthesis。接下来我们来看看它是怎么运作的。

我们的目标其实是从“文本”生成“图像”。要做到这一点我们需要解决以下两个问题:

如何把文本描述表达成一个合适的向量。如何利用这个描述向量来生成一幅合适的图像。

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

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

次元字体_关于二次元文字_次元文案

和原来的GAN结构相比,这里改变了生成器网络G和鉴别器网络D的输入部分:对于图像生成器网络G来说,它原来接收一个无意义的噪声z,并输出一个图像G(z),现在它不仅接收噪声z,还接收文本描述向量φ(t),并利用这两部分生成一个图像G(z,φ(t))。对于鉴别器网络D来说,它原来接收一个图像x,并输出一个分数D(x),现在它不仅接收图像x,还接收文本描述φ(t),最后输出分数D(x,φ(t))。

这其实是一个条件 GAN,和原始的 GAN 相比,只有一些简单的修改,此时我们可以直接训练它,完成我们的文本 -> 图片生成任务。不过直接训练得到的生成图片质量不是很好,作者提出了两个改进点。

3.改进:GAN-CLS(对鉴别器D的改进)

为什么直接训练没有效果呢?我们仔细思考一下就会发现,在原始的 GAN 中,判别网络 D 只需要做一件事,就是判断生成的图像是否正常。但在这里,判别网络 D 需要做两件事:一是判断图像是否正常,和原始的一样;二是判断生成的图像是否符合文本描述。

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

次元文案_关于二次元文字_次元字体

我们知道,对于深度学习来说,样本越多,效果越好,所以这里的GAN-INT通过插值的方式增加了样本的数量,实验表明这样做有助于提升效果。

作者将以上两种改进结合起来,形成了GAN-INT-CLS,这也是本文的最终方法。

下面是论文作者做的实验的图片,他生成了花朵,上面一行是 Ground Truth,下面分别是 GAN、GAN-CLS、GAN-INT 和 GAN-INT-CLS:

关于二次元文字_次元文案_次元字体

四、参考文献

网站SEO优化中关键词优化的技巧有哪些呢?
« 上一篇 2024-05-25
DQ冰淇淋店变身《猫妖的诱惑》主题店
下一篇 » 2024-05-25

文章评论