性别 | 刘海 | 身体朝向 | 姿势(偏航) |
---|---|---|---|
光照 | 微笑 | 脸型 | 唇膏颜色 |
绘画风格 | 姿势(偏航) | 姿势(俯仰) | 缩放和旋转 |
---|---|---|---|
脸红和眼睛颜色 | 嘴型 | 发色 | 色调(橙-蓝) |
[更多无监督学习的维度](https://github.com/LynnHo/EigenGAN-Tensorflow/blob/main/./results.md
-
EigenGAN: GANs的分层特征学习的TensorFlow实现
-
架构图
-
流形视角
使用方法
-
环境要求
-
Python 3.6
-
TensorFlow 1.15
-
OpenCV, scikit-image, tqdm, oyaml
-
conda create -n EigenGAN python=3.6
source activate EigenGAN
conda install opencv scikit-image tqdm tensorflow-gpu=1.15
conda install -c conda-forge oyaml
- 注意:如果你创建了一个新的conda环境,记得在执行任何其他命令之前先激活它
source activate EigenGAN
-
数据准备
-
CelebA-未对齐 (10.2GB,质量比对齐数据更高)
-
下载数据集
-
img_celeba.7z (移动到 ./data/img_celeba/img_celeba.7z): Google Drive 或 百度网盘 (密码 rp0s)
-
annotations.zip (移动到 ./data/img_celeba/annotations.zip): Google Drive
-
-
解压缩并处理数据
7z x ./data/img_celeba/img_celeba.7z/img_celeba.7z.001 -o./data/img_celeba/ unzip ./data/img_celeba/annotations.zip -d ./data/img_celeba/ python ./scripts/align.py
-
-
-
下载数据集
mkdir -p ./data/anime rsync --verbose --recursive rsync://176.9.41.242:873/biggan/portraits/ ./data/anime/original_imgs
-
处理数据
python ./scripts/remove_black_edge.py
-
-
-
运行(支持多GPU)
-
在CelebA上训练
CUDA_VISIBLE_DEVICES=0,1 \ python train.py \ --img_dir ./data/img_celeba/aligned/align_size(572,572)_move(0.250,0.000)_face_factor(0.450)_jpg/data \ --experiment_name CelebA
-
在动漫数据集上训练
CUDA_VISIBLE_DEVICES=0,1 \ python train.py \ --img_dir ./data/anime/remove_black_edge_imgs \ --experiment_name Anime
-
测试
CUDA_VISIBLE_DEVICES=0 \ python test_traversal_all_dims.py \ --experiment_name CelebA
-
损失可视化
CUDA_VISIBLE_DEVICES='' \ tensorboard \ --logdir ./output/CelebA/summaries \ --port 6006
-
-
使用训练好的权重
-
训练好的权重(移动到 ./output/*.zip)
-
解压文件(以CelebA.zip为例)
unzip ./output/CelebA.zip -d ./output/
-
测试(见上文)
-
引用
如果你在研究中发现 EigenGAN 有用,请考虑引用:
@inproceedings{he2021eigengan,
title={EigenGAN: Layer-Wise Eigen-Learning for GANs},
author={He, Zhenliang and Kan, Meina and Shan, Shiguang},
booktitle={International Conference on Computer Vision (ICCV)},
year={2021}
}