PaddleGAN圣诞特辑:下雪天与你白头偕老
基于PaddleGAN中的StyleGAN实现年龄变换~
【PaddleGAN圣诞特辑】雪天与你一起白头❄️
💛 本项目基于【艾梦】大佬项目改编 🧡
再次感谢艾梦的贡献(◍•ᴗ•◍)💛,也欢迎更多小伙伴们加入PaddleGAN的SIG小组与我们一起建设(•̀ᴗ•́)و ̑̑~
说到圣诞节,大家第一个想到的词是什么?圣诞老人?礼物?还是下雪天☃️?
贴心的PaddleGAN在圣诞前夕集合以上所有元素,为大家带来暖心之礼🎁
下雪天,带大家回到过去、穿越到未来,感受与另一半从年少到白头的浪漫
让你回到过去、穿越到未来的核心技术就是PaddleGAN中的人脸属性编辑能力,实现将任意人脸进行年龄变换!
同时,结合PaddleGAN中的脸部动作迁移能力让不同年龄段的你做出逼真的表情,仿佛亲身对话一般!
所有的代码和详细教程均在PaddleGAN中,欢迎大家Star⭐收藏GET所有干货!
📖 原理揭秘
基础知识
📌 Latent Code:潜在因子,每张图像对应一个潜在因子(高维的向量),stylegan能够用这个向量生成图像。
📌 属性编辑:由于潜在因子包含维度比较多,无法确定维度对应的方向以及编辑所带来的变化,因此利用大量的潜在因子和对应的属性(比如年龄或性别)训练线性的分类器,即可将分类器的权重作为潜在因子和对应属性的方向
📌 StyleGAN:根据向量生成图片
原理步骤
实现人脸融合一共分为三个步骤:
- 获取图片的Latent Code,用于后续的属性编辑和人脸生成
- 将Latent Code根据特定方向进行编辑,即可编辑对应的人脸属性,如年龄、性别、头发、眼睛等
- StyleGAN V2根据第二步中编辑好的Latent Code向量生成目标人脸
⏳ 前置步骤:安装PaddleGAN及相关依赖
本项目中已经帮大家git clone好了最新版的PaddleGAN,无需重新clone,但需要安装ppgan,按照顺序安装即可~
# 从github上克隆PaddleGAN代码(如下载速度过慢,可用gitee源)本项目已clone,此步骤可省略
#!git clone https://github.com/PaddlePaddle/PaddleGAN
#!git clone https://gitee.com/PaddlePaddle/PaddleGAN
# 安装依赖
%cd /home/aistudio/PaddleGAN
!pip install -r requirements.txt
#本地安装PaddleGAN
!python setup.py develop
#安装所需包 首次此安装包大约需要5分钟
!pip install dlib
STEP 1:得到原图对应的Latent Code
这里我们使用Pixel2Style2Pixel提取Latent Code,大家只需要更改两个参数:
input_image
:原图路径,即需要提取隐藏特征的照片路径output_path
:原图的隐藏特征的存放路径,后续需要放在属性编辑和生成的模块中使用
将input_image部分放上想要变换性别的人脸照片即可,请注意最好是自拍和大头照,无眼镜效果更佳噢~
%cd applications/
!python -u tools/pixel2style2pixel.py \
--input_image '/home/aistudio/人脸测试集/11.JPG' \
--output_path '/home/aistudio/psp_output/11' \
--model_type ffhq-inversion \
--seed 233 \
--size 1024 \
--style_dim 512 \
--n_mlp 8 \
--channel_multiplier 2
STEP 2&3:对Latent Code进行特定方向编辑,使用StyleGAN V2将编辑后的向量生成新人脸
大家只需要更改三个参数:
latent
:STEP2中提取的原图的Latent Code(STEP2中的output_path
路径)output_path
:新人脸(年龄变换后)的保存路径
#老龄化
!python -u tools/styleganv2editing.py \
--latent '/home/aistudio/psp_output/11/dst.npy' \
--output_path '/home/aistudio/final_output/11_old' \
--model_type ffhq-config-f \
--size 1024 \
--style_dim 512 \
--n_mlp 8 \
--channel_multiplier 2 \
--direction_name age \
--direction_offset 5
#年轻化
!python -u tools/styleganv2editing.py \
--latent '/home/aistudio/psp_output/11/dst.npy' \
--output_path '/home/aistudio/final_output/11_young' \
--model_type ffhq-config-f \
--size 1024 \
--style_dim 512 \
--n_mlp 8 \
--channel_multiplier 2 \
--direction_name age \
--direction_offset -5
💟 BONUS体验:让年少or老年的TA“动”起来,实现真正意义的从青竹到白头 💟
最新版的PaddleGAN中的FOM模型支持生成512清晰度的视频,清晰度提升了1倍,并加上了人脸增强的功能,刻画了丰富的脸部细节,使得脸部动态表情更加生动~
其中,FOM的原理是将人物A的脸部动作搬移到人物B脸上,让人物B的脸完美演绎人物A的表情。
通过修改以下命令中的driving_video
与source_image
两个参数,换成自己的驱动视频(想年少or老年的TA做的脸部表情)和年少or老年的TA,即可看到TA生动的另一面~
最终的视频导出保存在 “年少的你/老去的你” 文件夹中~
快来动手试试吧😎
#%cd applications
!python -u tools/first-order-demo.py \
--driving_video '/home/aistudio/驱动视频.mov' \
--source_image '/home/aistudio/final_output/11_young/dst.editing.png' \
--relative \
--adapt_scale \
--output '/home/aistudio/年轻的你' \
--image_size 512 \
--face_enhancement
PaddleGAN中还有很多其他的能力,大家可以敬请体验~
- 「人脸融合」
人物1 | 人物2 | 融合后效果 |
---|---|---|
- 「带着珍珠耳环的少女」播新闻
- 百年影像上色、插帧、提高分辨率
- 照片动漫化
- 人脸动漫化
⭐ ⭐ ⭐ 欢迎Star支持!⭐ ⭐ ⭐
⭐最后,还有特别感谢,将此能力贡献到PaddleGAN中的【艾梦】大佬⭐,原项目链接:https://aistudio.baidu.com/aistudio/projectdetail/2377580?channelType=0&channel=0
更多推荐
所有评论(0)