【🖤PaddleGAN双十一特辑 🖤】「对不起,我爱上了异性的我自己 (¬‿¬)」

💛 本项目基于【艾梦】大佬项目改编 🧡

再次感谢艾梦的贡献(◍•ᴗ•◍)💛,也欢迎更多小伙伴们加入PaddleGAN的SIG小组与我们一起建设(•̀ᴗ•́)و ̑̑~

双十一又来了,不会吧不会吧,你还是单身一人啊(=゚Д゚=)

没关系!PaddleGAN在这个重要的日子里,又来解决大家于水火啦!

没对象算啥大事,PaddleGAN 性别转换功能让你妥妥爱上你自己( ˘ ³˘)♥

其中利用的就是PaddleGAN中的人脸属性编辑能力,实现将任意人脸进行性别变换
同时脸部动作迁移能力让异性的你「动」起来,更加逼真!

所有的代码和详细教程均在PaddleGAN中,欢迎大家Star⭐收藏GET所有干货!

📖 原理揭秘

基础知识

📌 Latent Code:潜在因子,每张图像对应一个潜在因子(高维的向量),stylegan能够用这个向量生成图像。

📌 属性编辑:由于潜在因子包含维度比较多,无法确定维度对应的方向以及编辑所带来的变化,因此利用大量的潜在因子和对应的属性(比如年龄或性别)训练线性的分类器,即可将分类器的权重作为潜在因子和对应属性的方向

📌 StyleGAN:根据向量生成图片

原理步骤

实现人脸融合一共分为三个步骤:

  1. 获取图片的Latent Code,用于后续的属性编辑和人脸生成
  2. 将Latent Code根据特定方向进行编辑,即可编辑对应的人脸属性,如年龄、性别、头发、眼睛等
  3. 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,大家只需要更改两个参数:

  1. input_image:原图路径,即需要提取隐藏特征的照片路径
  2. output_path:原图的隐藏特征的存放路径,后续需要放在属性编辑和生成的模块中使用

将input_image部分放上想要变换性别的人脸照片即可,请注意最好是自拍和大头照,无眼镜效果更佳噢~

%cd applications/
!python -u tools/pixel2style2pixel.py \
       --input_image '/home/aistudio/人脸测试集/yingbb2.png' \
       --output_path   '/home/aistudio/psp_output/yingbb2' \
       --model_type ffhq-inversion \
       --seed 233 \
       --size 1024 \
       --style_dim 512 \
       --n_mlp 8 \
       --channel_multiplier 2 

STEP 2&3:对Latent Code进行特定方向编辑,使用StyleGAN V2将编辑后的向量生成新人脸

大家只需要更改三个参数:

  1. latent:STEP2中提取的原图的Latent Code(STEP2中的output_path路径)
  2. output_path:新人脸(性别变换后)的保存路径
原图性别变换后动态效果
!python -u tools/styleganv2editing.py \
       --latent '/home/aistudio/psp_output/11/dst.npy' \
       --output_path '/home/aistudio/final_output/11' \
       --model_type ffhq-config-f \
       --size 1024 \
       --style_dim 512 \
       --n_mlp 8 \
       --channel_multiplier 2 \
       --direction_name gender \
       --direction_offset 5

💟 BONUS体验:让异性的你“动”起来,真正爱上你自己 💟

最新版的PaddleGAN中的FOM模型支持生成512清晰度的视频,清晰度提升了1倍,并加上了人脸增强的功能,刻画了丰富的脸部细节,使得脸部动态表情更加生动~

其中,FOM的原理是将人物A的脸部动作搬移到人物B脸上,让人物B的脸完美演绎人物A的表情。

通过修改以下命令中的driving_videosource_image两个参数,换成自己的驱动视频(想让异性的你对你做的脸部表情)和异性的你照片,即可看到你生动的另一面~

最终的视频导出保存在 “异性的你动态版” 文件夹中~
快来动手试试吧😎
%cd applications
!python -u tools/first-order-demo.py  \
     --driving_video '/home/aistudio/驱动视频.MOV' \
     --source_image '/home/aistudio/final_output/11_5/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

Logo

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐