赞
踩
资源下载地址:https://download.csdn.net/download/sheziqiong/88297333
资源下载地址:https://download.csdn.net/download/sheziqiong/88297333
人像卡通风格渲染的目标是,在保持原图像 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 模块,渐进地提升模型特征抽象和重建能力。
由于实验数据较为匮乏,为了降低训练难度,我们将数据处理成固定的模式。首先检测图像中的人脸及关键点,根据人脸关键点旋转校正图像,并按统一标准裁剪,再将裁剪后的头像输入人像分割模型去除背景。
项目所需的主要依赖库如下:
git clone https://github.com/minivision-ai/photo2cartoon.git
cd ./photo2cartoon
models
路径下。utils
路径下。models
路径下。(From: InsightFace_Pytorch)cartoon_data
,包含 trainB
和 testB
。models
路径下。将一张测试照片(亚洲年轻女性)转换为卡通风格:
python test.py --photo_path ./images/photo_test.jpg --save_path ./images/cartoon_result.png
python test_onnx.py --photo_path ./images/photo_test.jpg --save_path ./images/cartoon_result.png
1.数据准备
训练数据包括真实照片和卡通画像,为降低训练复杂度,我们对两类数据进行了如下预处理:
我们开源了 204 张处理后的卡通画数据,您还需准备约 1000 张人像照片(为匹配卡通数据,尽量使用亚洲年轻女性照片,人脸大小最好超过 200x200 像素),使用以下命令进行预处理:
python data_process.py --data_path YourPhotoFolderPath --save_path YourSaveFolderPath
将处理后的数据按照以下层级存放,trainA
、testA
中存放照片头像数据,trainB
、testB
中存放卡通头像数据。
├── 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
多 GPU 训练(仍建议使用 batch_size=1,单卡训练):
python train.py --dataset photo2cartoon --batch_size 4 --gpu_ids 0 1 2 3
A:开源模型的训练数据收集自互联网,为了得到更加精美的效果,我们在训练小程序中卡通化模型时,采用了定制的卡通画数据(200 多张),且增大了输入分辨率。此外,小程序中的人脸特征提取器采用自研的识别模型,效果优于本项目使用的开源识别模型。
A:首先训练模型 200k iterations,然后使用 FID 指标挑选出最优模型,最终挑选出的模型为迭代 90k iterations 时的模型。
A:实验中我们发现,使用自研的识别模型计算 Face ID Loss 训练效果远好于使用开源识别模型,若训练效果出现鲁棒性问题,可尝试将 Face ID Loss 权重置零。
A:不能。该模型是针对本项目训练的专用模型,需先裁剪出人脸区域再输入。
资源下载地址:https://download.csdn.net/download/sheziqiong/88297333
资源下载地址:https://download.csdn.net/download/sheziqiong/88297333
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。