测一测异性的你长什么样?

本文介绍了如何利用PaddleGAN的性别转换功能,通过深度学习技术将人脸图像转换为异性。首先,需要安装PaddleGAN和dlib,然后提取原图的LatentCode,再进行性别编辑,最后生成新的异性人脸图像。这一过程涉及到了深度学习、图像处理和人工智能应用。
摘要由CSDN通过智能技术生成

懂PS的,用作图软件做一个异性的自己,可能很多人不觉得稀奇。但我们今天,用人工智能生成的,岂不是更有趣?

这类涉及到图像的AI功能实现,了解深度学习的朋友会知道一些。往往就是用当下很火的GAN生成式对抗网络来实现的,或者说是用DCGAN。而本文谈到的用AI来制作异性的自己,就是用到PaddleGAN的一个性别转换的功能。换句话说,是用PaddleGAN中的人脸属性编辑能力,实现将任意人脸进行性别变换!

一、环境准备

下载PaddleGAN

git clone https://github.com/PaddlePaddle/PaddleGAN
或者
git clone https://gitee.com/PaddlePaddle/PaddleGAN

本地安装PaddleGAN

#进入PaddleGAN目录
cd /home/aistudio/PaddleGAN

#安装依赖
pip install -r requirements.txt

#本地安装PaddleGAN
python setup.py develop
安装dlib
pip install dlib

dlib如果安排失败的,请到官网下载相应的whl版本,手动安装。

二、提取原图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

编程方式:

import paddle
from ppgan.apps import Pixel2Style2PixelPredictor
predictor = Pixel2Style2PixelPredictor(
    output_path="outputs",
    weight_path=None,
    model_type="ffhq-inversion",
    seed=233,
    size=1024,
    style_dim=512,
    n_mlp=8,
    channel_multiplier=2)
predictor.output_path = 'outputs'
predictor.run('inputs/src.png')

三、生成异性的你

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

命令方式:

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 #正数从女转换为男,负数男转变为女,

编程方式

import paddle
from ppgan.apps import StyleGANv2EditingPredictor
predictorEditing = StyleGANv2EditingPredictor(
    output_path="outputs",
    weight_path=None,
    model_type="ffhq-config-f",
    seed=None,
    size=1024,
    style_dim=512,
    n_mlp=8,
    channel_multiplier=2,
    direction_path=None)
dstNpyPath="outputs/dst.npy"
predictorEditing.output_path = 'outputs'
direction_offset = 5  #正数从女转换为男,负数男转变为女
predictorEditing.run(dstNpyPath, "gender", direction_offset)

四、最终转换的结果

好了,今天就分享到这边,大家有什么想法,欢迎给我留言讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程乐趣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值