前言
1.PaddleGAN是飞浆开源的一个项目,PaddleGAN内置了StyleGAN V2与FOM分别实现人脸属性编辑(年龄变换)与让人脸动起来的效果。其中有一个demo是只要一张照片,5分钟就能瞬间带你回到“回不去的过去”,去到“去不了的未来”,真真切切地感受从年少到白头的岁月沧桑,关于算法原理和模型结构如何训练可以移步
https://github.com/PaddlePaddle/PaddleGAN/blob/develop/README_cn.md
。
2.官方给了Linux下的部署教程,但只抱想体验一把的我来说,去折腾个Linux是不现实的,所以就在Win下试着部署环境。
3.先看看测试的效果,有些处理的还是很逼真的,中间那张是原图,第一张是小时候的,最后那张是老去的。
4.我这里的环境Win10,anaconda3.4,python3.6(这个python版本是因为要要对上win下能用的dlib库)。
环境配置
1.创建环境
#创建环境
conda create --name PaddleGAN python=3.6
#激活环境
activate PaddleGAN
2.安装dlib库,这里要指定dlib版本,要不然会在项目里面连接不上或者报找不到模块,我用的是dlib19.8.1这个版本,尽量使用这个版本,如果想试别的版本,可以看python对应的dlib版本。
#cmake
pip install cmake
#boost
pip install boost
#dlib
pip install dlib==19.8.1
安装完之后要验证dlib是否安装成功,在激活环境下引入库如果不报错就是安装成功,如果报错,就再试了别的版本,这个是整个环境配置最麻烦的一步,过了这步,就一路顺畅了。
python
import dlib
验证成功,如果这里报找不什么库的话,比如numpy,直接装上去,直到import dlib 不报错为止。
pip install numpy
3.git项目与安装依赖
#git项目
git clone https://gitee.com/PaddlePaddle/PaddleGAN
#切到源码目录
cd PaddleGAN
#安装依赖
pip install -r requirements.txt
#安装环境
python setup.py develop
4.安装飞浆,如果是CPU,安装不容易出错,但速度会有点慢,如果有GPU尽量使用GPU版本。
CPU版
python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
pip install paddlepaddle
GPU版
python -m pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple
pip install paddlepaddle
运行
1.得到原图对应的Latent Code
- input_image:原图路径,即需要提取隐藏特征的照片路径
- output_path:原图的隐藏特征的存放路径,后续需要放在属性编辑和生成的模块中使用
python -u tools/pixel2style2pixel.py --input_image "C:/Users/paddle/55.jpg" --output_path "C:/Users/paddle/" --model_type ffhq-inversion --seed 233 --size 1024 --style_dim 512 --n_mlp 8 --channel_multiplier 2
2.老龄化
- latent:第一步中提取的原图的Latent Code(第一步中的output_path路径)
- output_path:新人脸(年龄变换后)的保存路径
python -u tools/styleganv2editing.py --latent "C:/Users/paddle/dst.npy" --output_path "C:/Users/paddle" --model_type ffhq-config-f --size 1024 --style_dim 512 --n_mlp 8 --channel_multiplier 2 --direction_name age --direction_offset 5
3.年轻化
python -u tools/styleganv2editing.py --latent "C:/Users/paddle/dst.npy" --output_path "C:/Users/paddle" --model_type ffhq-config-f --size 1024 --style_dim 512 --n_mlp 8 --channel_multiplier 2 --direction_name age --direction_offset -5
4.看看官方给的效果图。