本文首发于个人公众号【快学Python】,人生苦短,快学Python!
大家好,我是小五。最近遇到了一个问题,需要将头像转化动漫风,当时第一想法就是找现成的轮子。比如我们在之前的文章中《超有趣的Python实战:将图片转成像素风!》,就是通过调用名为Tiler
的开源库,生成可爱像素风图片!
将头像转化为动漫风,就是希望在保持原图像信息和纹理细节的同时,将真实照片转换为动漫/卡通风格的非真实感图像。目前除了百度api,Github上还有不少开源库可供我们直接使用。
其中AnimeGAN是来自武汉大学和湖北工业大学的一项研究,采用的是神经风格迁移 + 生成对抗网络(GAN)的组合,实现效果非常符合我们的需求。
AnimeGAN最早使用的是Tensorflow框架,不过查询资料后发现该项目已支持PyTorch框架。
地址:https://github.com/bryandlee/animegan2-pytorch
而我正好之前基于PyTorch实现过微博评论情感分析,所以用起来也不会有什么负担,还省得安装库了。
Pytorch安装
PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。这个深度学习框架,可以应用在数值建模、图像建模、文本建模、音频建模等等多个方向。
安装Pytorch会比其他库麻烦一些,如果去官方安装下载,需要根据实际配置得到适合自己的安装命令。
如果你通过上面这种步骤发现下载速度慢,或者遇到各种问题,不妨试试下面这个网站:
https://download.pytorch.org/whl/torch_stable.html
网站视图:
动漫风格迁移
安装Pytorch框架后,我们便可以将该animegan2-pytorch
项目clone到本地/直接下载下来:
git clone https://github.com/bryandlee/animegan2-pytorch
下载到本地的文末目录如下图所示:
其中weights文件夹下包含四个权重,选择对应的权重就能实现自己想要的动漫风格迁移。samples下的inputs文件夹中储存了图片示例,可以直接拿来试水。除此以外,我还在同一路径下新建了output文件夹,用于存放处理后的图片。
接下来,我们只需要在命令行中运行test.py
脚本就可以调用该项目,具体命令格式如下:
python test.py --checkpoint [模型文件路径] --input_dir [输入图像所在目录] --output_dir [输出目录] --device [设备选择,cpu或者cuda]
实际操作:
由于是像实现人脸动漫迁移,所以我分别使用了face_paint_512_v1.pt
和face_paint_512_v2.pt
权重,效果如下图所示:
换一张图看一下:
个人觉得face_paint_512_v2.pt
权重的处理成品更符合我对动漫风的想象,大家怎么看呢?
最后我也试了试paprika.pt
对风景图片进行动漫迁移。
效果如下图所示:
如果大家对将头像/图片转化动漫风感兴趣,不妨也来试试~
注意!
注意!
如果看完本文的小伙伴,不想安装Pytorch,又想直接打造一个自己专属的漫画脸?
可以电脑打开这个网址:https://huggingface.co/spaces/akhaliq/AnimeGANv2,这是在线AnimeGANv2的APP,无需你本地安装什么框架,直接就可以进行转换。