使用StyleGAN2-Ada模型生成高清晰度甘雨头像

StyleGAN2-ADA 迁移学习

实验介绍

使用 StyleGAN2-ADA 模型对动漫《Re:从零开始的异世界生活》中的角色蕾姆进行训练后,在此基础上使用游戏《原神》中的角色甘雨脸部数据集进行训练

由于两个角色的面部特征较为相似,所以相对于使用大量动漫面部数据集训练出的模型,进行迁移学习应该会更快的收敛,并产生较好的结果

实验设计

模型

已经在蕾姆面部数据集上预训练过的 StyleGAN2-ADA 模型

数据集

数据图片来自 Danbooru 动漫图片数据库,共 850 张处理好的甘雨面部图片,分辨率为512*512

训练

下载 StyleGAN2-ADA

1
2
3
4
pip install pyspng ninja imageio-ffmpeg==0.4.3
git clone https://github.com/NVlabs/stylegan2-ada-pytorch
pip install gdown
%cd ./stylegan2-ada-pytorch

预处理数据集

1
python dataset_tool.py --source=/kaggle/input/ganyu-genshin-impact-anime-faces-gan-training/ganyu/ganyu-final --dest=./datasets/ganyu.zip

开始训练

参考英伟达开源文档,采取如下配置

1
python train.py --outdir ./results --snap=4 --cfg=paper512 --data=./datasets/ganyu.zip --augpipe="bg" --mirror=True --metrics=None --resume=/kaggle/input/ganyu-genshin-impact-anime-faces-gan-training/ganyu/rem-pretrained.pkl  --augpipe="bg" --kimg=145

训练过程平均稳定在 38000s 左右

实验结果

使用最后一次快照进行生成,Truncation 值取 1,种子范围为 1-1000,取出部分表现较好样本作为例子

生成样本

面部插值变换

基于 GAN 隐空间的连续性,可以通过对两个隐向量进行线性插值的方法实现两张面部图片的平滑变换

在 StyleGAN2 中的隐向量通过seed产生,此处给出几个不同种子代表的面部图片的插值结果



实验体会

由于这次实验的题目是开放的,所以我做了大量的资料查找和选择,最终选择了较为实用的 StyleGAN2(高分辨率图像以及非常逼真的效果,都可以拿来做头像了),相比之前做过的 DCGAN 之类,更有实际意义

这门课属于选修,我自己并没有太好的数学基础的情况下学的也只能说是一知半解。整个实验的过程也是一个不断学习的过程,让我学会基本的炼丹流程,以及一些基本的学术技能,比如上 arxiv 读论文,上 kaggle/colab 去自己做实验等等

可惜的是本次实验时间不够导致制作了单个图像生成和潜空间插值,没有足够的时间用来做风格控制

总体来说收获还是比较大的,如果自己以后走这条方向的话这将是很有用处的

Author

BakaFT

Posted on

2022-04-20

Updated on

2023-12-28

Licensed under

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×