用python将你的头像“卡通化”

Crossin的编程教室

共 1482字,需浏览 3分钟

 ·

2020-07-22 22:20



最近看到一个有趣的python项目,可以将一张普通人像照片快速转成卡通风格!
这个项目让我想起了以前玩QQ秀的时光。有了这个项目,你也可以把头像卡通化了,再也不用找同学帮忙
30afbbadefdd2469119450f1977bf16c.webp
人像卡通风格渲染的目标是,在保持原图像ID信息和纹理细节的同时,将真实照片转换为卡通风格的非真实感图像。
该项目的思路是,从大量照片/卡通数据中习得照片到卡通画的映射,然后根据这样的映射关系,对新的照片进行转换。

0ab6859b43b0a12cc24a2b500cab254d.webp
项目地址:https://github.com/minivision-ai/photo2cartoon项目所需的主要依赖库如下:
  • python 3.6

  • pytorch 1.4

  • tensorflow-gpu 1.14

  • face-alignment

  • dlib

训练

1.数据准备训练数据包括真实照片和卡通画像,为降低训练复杂度,该项目对两类数据进行了如下预处理:
  • 检测人脸及关键点。

  • 根据关键点旋转校正人脸。

  • 将关键点边界框按固定的比例扩张并裁剪出人脸区域。

  • 使用人像分割模型将背景置白。

项目开源了204张处理后的卡通画数据,您还需准备约1000张人像照片(为匹配卡通数据,尽量使用亚洲年轻女性照片,人脸大小最好超过200x200像素),使用以下命令进行预处理:
python data_process.py --data_path YourPhotoFolderPath --save_path YourSaveFolderPath
将处理后的数据按照以下层级存放,trainAtestA中存放照片头像数据,trainBtestB中存放卡通头像数据。
├── dataset
└── photo2cartoon
├── trainA
├── xxx.jpg
├── yyy.png
└── ...
├── trainB
├── zzz.jpg
├── www.png
└── ...
├── testA
├── aaa.jpg
├── bbb.png
└── ...
└── testB
├── ccc.jpg
├── ddd.png
└── ...
2.训练重新训练:
python train.py --dataset photo2cartoon
加载预训练参数:
python train.py --dataset photo2cartoon --pretrained_weights models/photo2cartoon_weights.pt

测试

将一张测试照片转换为卡通风格:
python test.py --photo_path ./images/photo_test.jpg --save_path ./images/cartoon_result.png
放个测试效果图片大家感受一下(猜猜是谁2a7c70940bf0b8777aef5d9876ca9a2a.webpbfb30c0adf50f960d11732b3e9e5b6dd.webp
说明下,该项目为小视科技卡通肖像探索项目。可使用微信扫描下方二维码或搜索“AI卡通秀”小程序体验卡通化效果。2026cc90c6c2d36977983e1c8571c8f8.webp项目地址:https://github.com/minivision-ai/photo2cartoon作者:天作 

来源:天作之程



_往期文章推荐_Python+OpenCV十几行代码模仿世界名画




浏览 10
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报