如何用深度学习模型为自己做个漫画画像(含代码流程)

2020 年 4 月 23 日 凡人机器学习

最近看到一个特别有意思的开源项目,能把照片自动转化成漫画效果,经过半个小时的调试,终于跑通了。正先给大家看下实际效果,我在网上的随便搜了一张帅哥的证件照片试了下。基本上会把脑袋切出来,然后放大眼睛。

原照:

漫画效果后:


使用的是开源项目:https://github.com/minivision-ai/photo2cartoon


具体原理直接摘录read.me的一段描述:


人像卡通风格渲染的目标是,在保持原图像ID信息和纹理细节的同时,将真实照片转换为卡通风格的非真实感图像。我们的思路是,从大量照片/卡通数据中习得照片到卡通画的映射。一般而言,基于成对数据的pix2pix方法能达到较好的图像转换效果,但本任务的输入输出轮廓并非一一对应,例如卡通风格的眼睛更大、下巴更瘦;且成对的数据绘制难度大、成本较高,因此我们采用unpaired image translation方法来实现。

Unpaired image translation流派最经典方法是CycleGAN,但原始CycleGAN的生成结果往往存在较为明显的伪影且不稳定。近期的论文U-GAT-IT提出了一种归一化方法——AdaLIN,能够自动调节Instance Norm和Layer Norm的比重,再结合attention机制能够实现精美的人像日漫风格转换。

与夸张的日漫风不同,我们的卡通风格更偏写实,要求既有卡通画的简洁Q萌,又有明确的身份信息。为此我们增加了Face ID Loss,使用预训练的人脸识别模型提取照片和卡通画的ID特征,通过余弦距离来约束生成的卡通画。

此外,我们提出了一种Soft-AdaLIN(Soft Adaptive Layer-Instance Normalization)归一化方法,在反规范化时将编码器的均值方差(照片特征)与解码器的均值方差(卡通特征)相融合。

模型结构方面,在U-GAT-IT的基础上,我们在编码器之前和解码器之后各增加了2个hourglass模块,渐进地提升模型特征抽象和重建能力。

由于实验数据较为匮乏,为了降低训练难度,我们将数据处理成固定的模式。首先检测图像中的人脸及关键点,根据人脸关键点旋转校正图像,并按统一标准裁剪,再将裁剪后的头像输入人像分割模型去除背景。

实际操作也很简单:

  1. Clone 上述项目

  2. 安装python 3.6、pytorch 1.4、tensorflow-gpu 1.14、face-alignment、dlib一定要用conda

  3. 安装过程中有很多坑,比如pillow的版本要调整之类的

  4. 下载pretrain的模型(提取码:z2nm)放到model路径下:https://pan.baidu.com/s/1DxWWBAoaBpsei_rynZUZzw

  5. 执行以下命令,生成图片会在save_path路径下找到:python3 test.py --photo_path ./images/photo_test.jpg --save_path ./images/cartoon_result.png

登录查看更多
0

相关内容

【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
197+阅读 · 2020年6月29日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
65+阅读 · 2020年3月26日
《代码整洁之道》:5大基本要点
专知会员服务
50+阅读 · 2020年3月3日
必读的10篇 CVPR 2019【生成对抗网络】相关论文和代码
专知会员服务
33+阅读 · 2020年1月10日
【干货】用BRET进行多标签文本分类(附代码)
专知会员服务
85+阅读 · 2019年12月27日
【GitHub实战】Pytorch实现的小样本逼真的视频到视频转换
专知会员服务
36+阅读 · 2019年12月15日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
96+阅读 · 2019年12月4日
项目 | 基于GAN的人脸照片涂鸦编辑
机器学习算法与Python学习
5+阅读 · 2019年3月1日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
【干货】深入理解自编码器(附代码实现)
Python | 50行代码实现人脸检测
计算机与网络安全
3+阅读 · 2018年1月23日
搭建LSTM(深度学习模型)做文本情感分类的代码
数据挖掘入门与实战
4+阅读 · 2017年9月3日
Arxiv
8+阅读 · 2019年3月28日
Arxiv
4+阅读 · 2018年9月25日
Arxiv
3+阅读 · 2018年4月10日
VIP会员
相关VIP内容
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
197+阅读 · 2020年6月29日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
65+阅读 · 2020年3月26日
《代码整洁之道》:5大基本要点
专知会员服务
50+阅读 · 2020年3月3日
必读的10篇 CVPR 2019【生成对抗网络】相关论文和代码
专知会员服务
33+阅读 · 2020年1月10日
【干货】用BRET进行多标签文本分类(附代码)
专知会员服务
85+阅读 · 2019年12月27日
【GitHub实战】Pytorch实现的小样本逼真的视频到视频转换
专知会员服务
36+阅读 · 2019年12月15日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
96+阅读 · 2019年12月4日
相关资讯
项目 | 基于GAN的人脸照片涂鸦编辑
机器学习算法与Python学习
5+阅读 · 2019年3月1日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
【干货】深入理解自编码器(附代码实现)
Python | 50行代码实现人脸检测
计算机与网络安全
3+阅读 · 2018年1月23日
搭建LSTM(深度学习模型)做文本情感分类的代码
数据挖掘入门与实战
4+阅读 · 2017年9月3日
Top
微信扫码咨询专知VIP会员