使用GAN进行动漫风格迁移

本文通过介绍两种GAN的模型,来完成实景风格迁移,和AI纯艺术创作没有任何关系,寄希望于AI创作原画的请绕行。

先进行一个简短的科普,以便对后续的观点有一定认知,避免闹出笑话

GAN(对抗生成网络)是解决风格迁移的深度学习方法,本文将做出简要介绍。 GAN由生成网络G和对抗网络D组成,G用于接收一个噪声z,从而生成图片G(z);D是一个判别网络,判别一张图片x是不是“真的”我们所需得到的目的图片或者是由G生成的(此时图片是“假的”),即D(x)。D(x)在一些识别领域使用的非常广泛,而且推理过程快,系统开销低。手机和嵌入式设备可以轻松胜任,但是D(x)在GAN的整体当中,只是一小部分。GAN的训练过程是对G(z)和D(x)的不断优化的过程,如果用CNN来表达的话,就是DCGAN。

以上是对GAN的一个简单描述,深度的我就不介绍了,因为我也不会,我只会使用。这里有一篇进阶科普文,有兴趣的可以看看《GAN实战生成对抗网络》

回到本文的目标,动漫风格迁移,我在这里推荐2款GAN模型,一款是开源的AnimeGAN,这里有github的传送门,另一款是根据清华大学的论文做出的非开源AI,叫做CartoonGAN,github的传送门在这里

一、AnimeGAN

AnimeGAN是通过towsorflow-gpu来开发的,依赖cuda和cudnn,tf最大的坑是和cnn、cudnn的版本组合问题,我把我本地的版本列出来作为参考。

tensorflow-gpu 1.14 cuda 10.0 cudnn 7.4

从github下载后,还不能使用,需要下载模型文件vgg19权重文件。有条件的上个梯子,速度会快很多。模型文件可以保存在checkpoint/AnimeGAN_Hayao_lsgan_300_300_1_3_10,权重文件保存在vgg19_weight目录下

一切就绪后,你可以通过以下方式进行训练,训练到100代在T4级别的计算卡下, 大概需要40多个小时。所以考虑好自己的钱包和需求。

python3 main.py –phase train –dataset Hayao –epoch 101–init_epoch 1

在训练之前需要做一个小修改,main.py里os.environ[“CUDA_VISIBLE_DEVICES”] = “1”是设置GPU的,单卡设置就是0,双卡就设置0,1。否则GPU无法生效。–dataset参数是制定训练集的,github上拉下来的有多个风格,可以都训练一下,代数这里设置的是101,随时查看随时调整即可,为了方便查看,可以做个web服务器指向到训练目录,能随时查看训练的情况。

如果不喜欢这个耗时又耗力的过程,那么直接使用你下载好的一个模型就能用

python3 test.py –checkpoint_dir checkpoint/saved_model –test_dir dataset/test/real –style_name H

这里同样需要修改刚才的环境变量,让GPU设置为符合你自己的情况,checkpoint_dir是设置训练模型路径的,test_dir是设置输入路径,如果要生成单个文件,需要修改test.py,注意一下,模型载入以后可以反复推理,不要每次推理每次装载模型,

总结:AnimeGAN是对算力要求很高,显存大小要求很低的网络模型,或者理解为时间复杂度很高,空间复杂度很低,可以胜任2k 4k图形的画质迁移。按照当下的科技水平,很难实现实时推理,V100这种计算卡对于1080p的图片来说,也需要1s多,至于K80那种,奔着20秒去了。至于CPU推理,这个算法我没试过,但还是不建议去试。

二、CartoonGAN

未完待续

игровые автоматы бесплатно и без регистрации демо进行回复 取消回复

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