Press "Enter" to skip to content

用于 GAN 生成之动漫图片资料集

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

翻译自: GANを用いたイラスト生成のデータセット 感谢 Lento 授权翻译,

 

若对此后续任务有兴趣可与作者讨论 Twitter_NieA7_3170

 

由于我挺喜欢动漫的,

 

所以一直都有关注 Lento 的文章,

 

想说翻译可以给更多入门的人理解,

 

顺便练习日文,

 

基于上述种种原因,

 

所以会开始陆续翻译,

 

以及会稍微重构一下原文,

 

希望能帮助到有需要的人。

 

简介

 

现今越来越多生成式对抗网路 Generative Adversarial Networks(GAN)用于动漫图片生成,

 

由于个人对这领域有兴趣,

 

因此本文介绍用于 GAN 图像生成模型的动漫资料集,

 

图像生成任务的品质会取决于资料集的图片品质,

 

本文会利用两种图像生成模型来评估各个资料集所生成的图像品质,

DCGAN
Spectral Normalization GAN(SN-GAN)

资料集

 

本次準备两种资料集

safebooru ,从该网站收集图片,利用 opencv + lbpcascade_animeface.xml 将动漫图像取出 64 x 64 大小的脸部图片共 50,000 张以供模型训练,下方为 25 张图片的示意图。

Getchu 资料集,参考 makegirlsmoe 的论文,从 Getchu 网站中收集 25,000 张角色的脸的图片。与 safebooru 资料集不同的是该类的图像多半是从游戏中(注1)取得的,因此背景多半为透明/白的,以及头像都是属于正脸的。

注1:Getchu 网站中的游戏人物图像指的是「立ち絵(TACHIE)」,一般游戏中先製作的角色,没有背景,用于恋爱剧情/文字类游戏等等的用途。

 

 

準备两个不同的资料集的用意是为了评估

简单的收集网路上动漫角色的脸的资料集是否可行
背景的颜色对模型训练是否有影响
各资料集整张脸生成的品质

GAN

 

如开头所提到的,本次将上述的 safebooru 以及 Getchu 资料集评估在下方两个模型

 

DRAGAN 指出以往 GAN 在训练辨别器(Discriminator)时,辨别器学习某些真实样本时,会造成较大的梯度(Gradient),而这将使得模型训练变得不稳定,甚至造成模式崩溃(Mode collapse),意指生成出的图片已缺少变化,都生成同一种类的图片。对此提出透过 Noise 的方式平稳训练流程,其可视为利用 Lipschitz 限制辨别器学习时斜率不要过大。 此方法是基于 DCGAN 的延伸。

 

SNGAN 提出 Spectral Normalization 来作为 Lipschitz 的限制,

 

并且在 Discriminator 的每层中加入 Spectral Normalization 达到更好的生成效果,

 

透过这种方式可取代以往的 Batch Normalization,可让参数量更近一步地减少。

 

程式码是参考此处 pfnet-research chainer-gan-lib

 

成果

 

首先是 DRAGAN 的生成结果,

 

DRAGAN 训练于 safebooru 资料集

 

 

DRAGAN 训练于 Getchu 资料集

 

 

由于计算上的问题此次的训练只有少少的 350 个 Epoch,

 

尽请见谅。

 

虽然这是个人的见解,

 

我认为 DRAGAN 训练于 Getchu 资料集是较好的,

 

因为人物看起来较为清晰,

 

虽然 DRAGAN 训练于 safebooru 资料集有些人物也是不错,

 

但更多的时候是生出来的图片看起来已经不像是个人了,有点崩坏了。

 

接着是 SNGAN 所生成的结果,此处同样为 350 个 Epoch 的结果,

 

SNGAN 训练于 safebooru 资料集

 

 

SNGAN 训练于 Getchu 资料集

 

 

比起 DRAGAN, SNGAN 的整体结果看起来是更糟的,

 

但是在 safebooru 的资料集中 SNGAN 所生成的人物图片是较少有崩坏的结果的,

 

不过在 Getchu 的资料集中 SNGAN 生成的还是较差。

 

结论

 

本次对了两个动漫资料集进行训练,

 

分别使用了两个不同的 GAN 模型来学习是否可生成动漫图片。

 

在观察实验结果后认为 Getchu 因图片的多样性较少,

 

所以模型可以学得较为好,

 

但这也说明了未来该模型所生成的变化种类也会限缩在该範围。

 

用另一种观点来看,

 

如果未来可以对 safebooru 的资料集再收集更多的图片,

 

并且训练得更久使其收敛的话,

 

其结果或许会不一样,

 

但这就是要考量时间与运算成本问题了。

 

另一个在实验中观察到的结果,

 

Discriminator 与 Generator 的互相训练是 GAN 框架中最重要的一环,

 

但实务上来说当 Discriminator 可以完全区别出 Generator 所生成之图片与真实世界图片的时候,

 

此时 GAN 整体的训练就会崩坏,

 

因为 Discriminator 会迫使 Generator 无法学习。

 

如同这篇论文 TOWARDS PRINCIPLED METHODS FOR TRAINING GENERATIVE ADVERSARIAL NETWORKS 所说的 。

 

此部分虽透过 Lipschitz 来制约 Discriminator 不要越来越强,

 

但效果却不明显。

 

整体来说目前还不确定模型生成的图片是否具备多样性,

 

虽说其多样性应该会取决于模型的能力,

 

但仍不确定该如何评估整体模型的能力,

 

或许可视化模型是一个可行的方向吧,

 

不过这部分由于还在研究中~

 

最后如果有任何的建议,

 

请让我知道。

 

实验环境

 

OS : Ubuntu 16.04 LTS (64-bit)

 

CPU : Intel(R) Core(TM) i5–4590 CPU @ 3.30 GHZ

 

GPU : NVIDIA GTX970

 

Memory : 8GB

 

参考资料:

 

GANを用いたイラスト生成のデータセット

 

Towards the Automatic Anime Characters Creation with Generative Adversarial Networks

 

DRAGAN

 

SNGAN

 

DCGAN

 

Lento

Be First to Comment

发表评论

邮箱地址不会被公开。 必填项已用*标注