我们可以用StyleGAN2提取真实人脸的latents,并且用这样的latents重建人脸图像。
一种方法是直接使用StyleGAN2 projector,内容请参考:
轻轻松松使用StyleGAN2(二):使用run_projector.py将真实人脸投射到StyleGAN2 dlatents空间并重建图像
另外一种,是使用StyleGAN2 Encoder,下面我们着重讲这一种方法。
首先,准备运行环境:
(1)显卡:官网要求有16GB内存的NVIDIA GPU(即:NVIDIA Tesla V100),经实测,11GB内存的NVIDIA GeForce RTX 2080Ti也可以跑起来。
(2)StyleGAN2需要安装定制开发的“TensorFlow ops”,目前只支持TensorFlow 1.14,如果你默认安装的是TensorFlow 1.15,需要重新安装1.14。
(3)安装定制开发的“TensorFlow ops”,还需要C语言编译器,在Windows10平台上,可以选择安装Visual Studio 2017、2019或者2015。
(4)下载预训练的StyleGAN2人脸模型“stylegan2-ffhq-config-f.pkl”,预训练模型下载后,可放在工作目录的“.\models”目录下。
以上(1)-(4)的具体操作说明,可以参见:
涉及Visual Studio 2015和Cuda/CuDNN的安装指南,可以参见:
非常详细:Windows 10+Anaconda3+CUDA10.1,安装dlib19.17开发环境成功手记
(5)获取StyleGAN2 Encoder,GitHub上的链接是:
https://github.com/rolux/stylegan2encoder
我们可以把源代码下载下来,解压缩后放到我们的工作目录下:
(6)获取StyleGAN2人脸编辑向量,GitHub上的链接是:
https://github.com/a312863063/generators-with-stylegan2
我们可以把源代码下载下来,解压缩后放到我们的工作目录下:
(7)把StyleGAN2人脸编辑向量,复制到StyleGAN2 Encoder的“.\ffhq_dataset”目录下,比如:
将“generaters-with-stylegan2-master\latent-direcitons”整个目录copy到“stylegan2encoder-master\ffhq_dataset”目录下。
(8)修改部分文件,
(8.1)修改pretrained_networks.py:
# 'gdrive:networks/stylegan2-ffhq-config-f.pkl': 'https://drive.google.com/uc?id=1Mgh-jglZjgksupF0XLl0KzuOqd1LXcoE',
'gdrive:networks/stylegan2-ffhq-config-f.pkl': '.\models\stylegan2-ffhq-config-f.pkl',
(8.2) 创建config.py:
dlatents_dir = 'latent_representations'
generated_dir = 'generated_images'
result_dir = 'results'
(8.3) 创建move_and_show.py
import os
import pickle
import PIL.Image
import numpy as np
import dnnlib
import dnnlib.tflib as tflib
import config
from encoder.generator_model import Generator
import matplotlib.pyplot as plt
import glob
# 预训练好的网络模型,来自NVIDIA
Model = './models/stylegan2-ffhq-config-f.pkl'
_Gs_cache = dict()
# 加载StyleGAN已训练好的网络模型
def load_Gs(model):
if model n