StarGAN——官方 PyTorch 实现
***** 新功能:StarGAN v2 可在GitHub - clovaai/stargan-v2: StarGAN v2 - Official PyTorch Implementation (CVPR 2020)获得*****
该存储库提供了以下论文的官方 PyTorch 实现:
StarGAN:用于多领域图像到图像翻译的统一生成对抗网络
Yunjey Choi 1,2、Minje Choi 1,2、Munyoung Kim 2,3、Jung-Woo Ha 2、Sung Kim 2,4、Jaegul Choo 1,2
1韩国大学,2 Clova AI Research,NAVER Corp.
3新泽西学院,4香港科技大学
https://arxiv.org/abs/1711.09020摘要: 最近的研究表明,两个领域的图像到图像转换取得了显著的成功。然而,现有方法在处理两个以上领域时可扩展性和鲁棒性有限,因为每对图像域都必须独立构建不同的模型。为了解决这一限制,我们提出了 StarGAN,这是一种新颖且可扩展的方法,仅使用一个模型即可对多个域执行图像到图像的转换。StarGAN 的这种统一模型架构允许在单个网络中同时训练具有不同域的多个数据集。这使得 StarGAN 的转换图像质量优于现有模型,并且具有将输入图像灵活地转换到任何所需目标域的新功能。我们通过实证证明了我们的方法在面部属性转移和面部表情合成任务中的有效性。
依赖项
- Python 3.5+
- PyTorch 0.4.0+
- TensorFlow 1.3+(Tensorboard 可选)
下载数据集
要下载 CelebA 数据集:
git clone https://github.com/yunjey/StarGAN.git
cd StarGAN/
bash download.sh celeba
要下载 RaFD 数据集,您必须从Radboud Faces Database 网站请求访问该数据集。然后,您需要按照此处所述创建文件夹结构。
训练网络
要在 CelebA 上训练 StarGAN,请运行下面的训练脚本。请参阅此处查看 CelebA 数据集中可选属性的列表。如果您更改参数selected_attrs
,也应c_dim
相应地更改参数。
# Train StarGAN using the CelebA dataset
python