首页 > 卡通形象 > 照片漫画人物生成器-GitHub硬核项目:动画生成器秒将照片变成手绘动漫风格! ! !
2023
07-03

照片漫画人物生成器-GitHub硬核项目:动画生成器秒将照片变成手绘动漫风格! ! !

随意拍一张照片,将其转化为宫崎骏、新海诚等漫画大师的手绘作品。 这个专门生成动漫图像的GAN,在实际测试中非常有用。

虽然最近的2019年图灵奖颁给了计算机图形学和皮克斯3D动画吉祥物,但很多人可能认为2D动画更有趣。 宫崎骏、新海诚等大师手绘的动画都是有灵魂的,每一个都可以成为壁纸,而且整个日本漫画也是以二维为基础的。

如果有一个模型可以将真实图片转换为日式手绘图片,那一定很酷。 最近机器之心发现确实有这些模型,从CartoonGAN到AnimeGAN都可以生成非常有趣的图像。

这是一个新的 TensorFlow 项目,它实现 AnimeGAN 并提供预训练模型。 也就是说我们下载后可以直接尝试生成效果。 作为动漫风格的爱好者照片漫画人物生成器,我们很快就尝试了这个新项目。

项目地址:

虽然原项目给出的很多最好的例子都是街景,但我们发现各种场景都还不错。 下面是我们尝试的原图和生成的效果。 看第一条樱花路的生成效果,有一种《千与千寻》的感觉。

如果只是针对字符的话,转换效果也很好。 我们尝试将新垣结衣的照片输入到AnimeGAN模型中,然后就出现了如下这样神奇的画风,感觉直接用在动漫中是没有问题的。

在原来的GitHub项目中照片漫画人物生成器,作者也给出了很多例子,上面只是机器之心试用的结果,大家也可以使用。

动漫GAN

整个项目实现了论文“AnimeGAN:一种用于照片动画的新型轻量级 GAN”中提出的方法。 论文中,作者将 AnimeGAN 与CartoonGAN 和 ComixGAN 进行了比较。

从图中可以看出吉祥物,AnimeGAN在细节方面比上面两种方法要好,颜色相对更自然,涂抹感也没有那么强烈。 最明显的是第二行的渲染。 AnimeGAN生成的漫画更接近宫崎骏的画风。

方法介绍

对于本项目的AnimeGAN,AnimeGAN使用的生成器网络和判别器网络如下所示。 看起来该模型整体上是一个更传统的卷积神经网络,但它将使用实例归一化和一种新型的 LReLU 激活函数。

除了更新架构细节之外,作者还提出了以下三个新的损失函数:

这些损失函数可以使生成的图片风格更接近真实的漫画风格。

下表比较了 ACartoonGAN 和 AnimeGAN 的模型大小和推理速度。 可以明显看出,AnimeGAN是一种相对轻量级的GAN,参数较少,推理速度较快。

总的来说,新提出的AnimeGAN是一种轻量级的生成对抗模型,它使用较少的模型参数,并引入Gram矩阵来增强照片的风格。 研究人员的方法需要使用一系列真实图片和一系列动画图片进行训练,并且这些图片不需要成对匹配,这表明训练数据非常容易获得。

项目测量

我们在Ubuntu 18.04下测试了这个项目,相关依赖如下:

这些依赖可以说是CV中常用的扩展库,所以我们不用费力去解决各种依赖环境冲突的问题。 这是一篇很好的评论。

以下是该项目训练和测试的详细过程。 我们首先将 AnimeGAN 项目克隆到本地,并在 Jupyter Notebook 中输入:

!git clone https://github.com/TachibanaYoshino/AnimeGAN

将工作目录更改为 AnimeGAN:

import os
os.chdir('AnimeGAN')
print(os.getcwd())

接下来,下载项目作者提供的预训练模型,使用vim download_staffs.sh创建Shell文件,输入以下命令:

URL=https://github.com/TachibanaYoshino/AnimeGAN/releases/download/Haoyao-style_V1.0/Haoyao-style.zip
ZIP_FILE=./checkpoint/Haoyao-style.zip
TARGET_DIR=./checkpoint/saved_model

mkdir -p ./checkpoint
wget -N $URL -O $ZIP_FILE
mkdir -p $TARGET_DIR
unzip $ZIP_FILE -d $TARGET_DIR
rm $ZIP_FILE

DatesetURL=https://github.com/TachibanaYoshino/AnimeGAN/releases/download/dataset-1/dataset.zip
ZIP_FILE=./dataset.zip
TARGET_DIR=./dataset

rm -rf dataset
wget -N $DatesetURL -O $ZIP_FILE
unzip $ZIP_FILE -d $TARGET_DIR
rm $ZIP_FILE

VGG_FILE=./vgg19_weight/vgg19.npy
wget --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 /tmp/cookies.txt

保存退出后,上述命令会下载并保存预训练的模型、vgg19权重和训练数据集到其对应的目录中。 在笔记本中运行:

!bash download_staffs.sh

至此,所有准备工作已经完成,可以通过运行以下代码来训练模型:

!python main.py --phase train --dataset Hayao --epoch 101 --init_epoch 1

AnimeGAN的训练流程如下图所示:

测试时,我们需要将测试用的图片保存到dataset/test/real目录下,并运行以下代码:

!python test.py --checkpoint_dir checkpoint/saved_model --test_dir dataset/test/real --style_name H

当看到上面的输出时,说明程序已经成功运行并完成,生成的结果保存在results文件夹中。 可以看到,在P100 GPU上生成一张图片大约需要2.3秒。

总体来说运行速度还是比较快的。 这么有趣的项目你为什么不来尝试一下呢?

 



·  近  · 期  ·  福 ·  利  ·

1元试听 Java架构师体系课精华内容:实现Kafka入门到超神!

1元试听 Java全栈体系课精华内容:彻底搞懂抽象的Java编程思想

1元试听 大前端体系课精华内容:快速理清大前端知识脉络!

1元体验 | 四天带你零基础入门Java/前端/Python!

1元福利 | 带你写一份高质量的小程序版简历,吊打面试官!



END



● 今年的毕业生也太太太太难了吧!

● 90后这群老年人在说什么啊啊啊啊啊啊啊啊?

● GitHub热榜:歪果小姐姐教你用纯代码画画,超细腻!

● 天秀,17岁高中生独立开发全球疫情追踪网站后火了!





最后编辑:
作者:nuanquewen
吉祥物设计/卡通ip设计/卡通人物设计/卡通形象设计/表情包设计