正文
在线体验:http://make.girls.moe/
我们都喜欢动漫人物,也可能会想自己创作一些,但我们大多数人因为没经过训练所以无法做到。如果可以自动生成专业水准的动漫人物呢?现在,只需指定金发/双马尾/微笑等属性,无需任何进一步干预就能生成为你定制的动漫人物!
在动漫生成领域,之前已经有一些先驱了,比如:
-
ChainerDCGAN:https://github.com/pfnet-research/chainer-gan-lib
-
Chainer を使ってコンピュータにイラストを描かせる:http://qiita.com/rezoolab/items/5cc96b6d31153e0c86bc
-
IllustrationGAN:https://github.com/tdrussell/IllustrationGAN
-
AnimeGAN:https://github.com/jayleicn/animeGAN
但这些模型得到的结果往往很模糊或会扭曲变形,要生成业界标准的动漫人物面部图像仍然是一大难题。为了帮助解决这一难题,我们提出了一种可以相当成功地生成高质量动漫人物面部图像的模型。
数据集:模型要想质量好,首先需要好数据集
要教计算机学会做事,就需要高质量的数据,我们的情况也不例外。Danbooru(https://danbooru.donmai.us)和 Safebooru(https://safebooru.org )等大规模图像讨论版的数据有很多噪声,我们认为这至少一定程度上解释了先前工作的问题所在,所以我们使用了在 Getchu 上销售的游戏的立绘(立ち絵)图像。Getchu 是一家展示日本游戏的信息并进行销售的网站。立绘具有足够的多样性,因为它们具有不同的风格,来自不同主题的游戏;但它们也具有很好的一致性,因为它们全部都是人物图像。
我们也需要分类的元数据(即标签/属性),比如头发颜色、是否微笑。Getchu 并没提供这样的元数据,所以我们使用了 Illustration2Vec,这是一个基于卷积神经网络的用于预测动漫标签的工具,地址:https://makegirlsmoe.github.io/main/2017/08/14/saito2015illustration2vec
模型:核心部分
为了实现我们的目标,就必须要有一个优秀的生成模型。这个生成器需要能理解并遵从用户给出的关于特定属性的要求,这被称为我们的先验(prior);而且它还需要足够的自由度来生成不同的详细的视觉特征,这是利用噪声(noise)建模的。为了实现这个生成器,我们使用了生成对抗网络(GAN)这种流行的框架。
GAN 使用一个生成器网络根据前提和噪声输入来生成图像,GAN 还有另一个网络会试图将生成的图像和真实图像区分开。我们同时训练这两个网络,最终会使得生成器生成的图像无法与对应前提下的真实图像区分开。但是众所周知要训练一个合适的 GAN 是非常困难的,而且非常耗时。幸运的是,利用最近发表的相关进展 DRAGAN,可以仅需相对很少的计算能力,就能实现可与其它 GAN 媲美的结果。我们成功训练了一个 DRAGAN,它的生成器类似于 SRResNet。