拍张照片,转换成宫崎骏、新海诚等漫画大师的手绘作品。便于使用。机器之心根据实体店照片生成的效果图,一度以为这是某部日剧的截图。虽然最近的2019年图灵奖颁给了计算机图形学和皮克斯3D动画,但很多人可能认为2D动画更有趣。宫崎骏、新海诚等大师手绘的动画都是有灵魂的,每一部都可以成为壁纸,而且整个日本漫画也是以二次元为主。如果有一款模型可以将真实图片转换成日式手绘图,那一定很酷。最近机器之心发现确实有这些模型,从CartoonGAN到AnimeGAN都可以生成非常有趣的图像。这是一个新的TensorFlow项目,它实现了AnimeGAN并提供了预训练模型。也就是说,我们可以在下载后直接尝试生成效果。作为动漫风格的爱好者,我们很快尝试了这个新项目。项目地址:https://github.com/TachibanaYoshino/AnimeGAN虽然原项目给出的优秀例子很多都是街景,但是我们发现各种场景都可以。下面是我们试过的原图和生成的效果。看着第一个樱花道的生成效果,突然有种《千与千寻》的感觉。如果只是针对字符,转换效果也很好。我们尝试将新垣结衣的照片输入到AnimeGAN模型中,然后就有了如下神奇的画风,感觉直接用在动漫中是没有问题的。在原来的GitHub项目中,作者也给出了很多例子,以上只是机器之心的试用结果,大家也可以使用。整个AnimeGAN项目实现了论文“AnimeGAN:anovellightweightGANforphotoanimation”中提出的方法。在论文中,作者将AnimeGAN与CartoonGAN和ComixGAN进行了比较。从图中可以看出,AnimeGAN在细节方面优于上述两种方法,颜色相对更自然,涂抹感也没有那么强烈。最明显的是第二排的效果图。AnimeGAN生成的漫画更接近宫崎骏的画风。方法介绍对于本项目的AnimeGAN,AnimeGAN使用的生成器网络和判别器网络如下图所示。整个模型看起来是一个更传统的卷积神经网络,但它使用了实例归一化和新的LReLU激活函数。除了更新架构细节,作者还提出了以下三个新的损失函数:灰度风格损失灰度对抗损失颜色重建损失这些损失函数使得生成的画面风格更接近真实的漫画风格。下表比较了ACartoonGAN和AnimeGAN的模型大小和推理速度。可以清楚地看到,AnimeGAN是一个相对轻量级的GAN,参数更少,推理速度更快。总的来说,新提出的AnimeGAN是一种轻量级的生成对抗模型,它使用了更少的模型参数,并引入了Gram矩阵(Grammatrix)来增强照片的风格。研究人员的方法需要使用一系列真实图片和一系列动画图片进行训练,而且这些图片不需要成对匹配,可见训练数据非常容易获取。项目实测我们在Ubuntu18.04下测试了这个项目,相关依赖如下:python3.6.8tensorflow-gpu1.8opencvtqdmnumpyglobargparse这些依赖可以说是CV中常用的扩展库,所以我们不用不得不耗尽他们我正在考虑解决各种依赖于环境冲突的问题,我在这里给它一个很好的评论。下面是本项目训练和测试的详细过程。我们先在本地cloneAnimeGAN项目,在Jupyternotebook中输入:!gitclonehttps://github.com/TachibanaYoshino/AnimeGAN将工作目录切换到AnimeGAN:importosos.chdir('AnimeGAN')print(os.getcwd())接下来,下载项目作者提供的预训练模型,使用vimdownload_staffs.sh创建一个Shell文件,输入如下命令:URL=https://github.com/TachibanaYoshino/AnimeGAN/releases/download/Haoyao-style_V1.0/Haoyao-style.zipZIP_FILE=./checkpoint/Haoyao-style.zipTARGET_DIR=./checkpoint/saved_modelmkdir-p./checkpointwget-N$URL-O$ZIP_FILEmkdir-p$TARGET_DIRunzip$ZIP_FILE-d$TARGET_DIRrm$ZIP_FILEDatesetURL=https://github.com/TachibanaYoshino/AnimeGAN/releases/download/dataset-1/dataset.zipZIP_FILE=./dataset.zipTARGET_DIR=./datasetrm-rfdatasetwget-N$DatesetURL-O$ZIP_FILEunzip$ZIP_FILE-d$TARGET_DIRrm$ZIP_FILEVGG_FILE=./vgg19_weight/vgg19.npywget--load-cookies/tmp/cookies.txt"https://docs.google.com/uc?export=download&confirm=$(wget--quiet--save-cookies/tmp/cookies.txt--keep-session-cookies--no-check-certificate'https://docs.google.com/uc?export=download&id=1U5HCRpZWAbDVLipNoF8t0ZHpwCRX7kdF'-O-|sed-rn's/.*confirm=([0-9A-Za-z_]+).*/1n/p')&id=1U5HCRpZWAbDVLipNoF8t0ZHpwCRX7kdF"-O$VGG_FILE&&rm-rf/保存/cookies.txt并退出,以上命令会将预训练模型、vgg19权重和训练数据集下载并保存到对应目录下,在notebook中运行:!bashdownload_staffs.sh现在所有准备工作完成,运行下面的代码可以训练模型:!pythonmain.py--phasetrain--datasetHayao--epoch101--init_epoch1AnimeGAN的训练过程如下图所示:测试时,我们需要将测试用的图片保存到dataset/test/real目录,运行如下代码:!pythontest.py--checkpoint_dircheckpoint/saved_model--test_dirdataset/test/real--style_nameH当看到上面的输出时,说明程序运行成功,生成的结果为保存在results文件夹下,可以看到生成一张图片大约需要2.3秒在P100GPU上。
