***** Nouveau: Stargan V2 est disponible sur https://github.com/clovaai/stargan-v2 *****

Ce référentiel fournit la mise en œuvre officielle Pytorch du document suivant:
Stargan: réseaux adversaires génératifs unifiés pour la traduction d'image à images multi-domaines
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 Corée Université, 2 Clova AI Research, Naver Corp.
3 Le Collège du New Jersey, 4 Université des sciences et technologies de Hong Kong
https://arxiv.org/abs/1711.09020Résumé: Des études récentes ont montré un succès remarquable dans la traduction de l'image à l'image pour deux domaines. Cependant, les approches existantes ont une évolutivité et une robustesse limitées dans la gestion de plus de deux domaines, car différents modèles doivent être construits indépendamment pour chaque paire de domaines d'image. Pour aborder cette limitation, nous proposons Stargan, une approche nouvelle et évolutive qui peut effectuer des traductions d'image à image pour plusieurs domaines en utilisant un seul modèle. Une telle architecture de modèle unifiée de Stargan permet une formation simultanée de plusieurs ensembles de données avec différents domaines au sein d'un seul réseau. Cela conduit à la qualité supérieure des images traduites de Stargan par rapport aux modèles existants ainsi qu'à la nouvelle capacité de traduire de manière flexible une image d'entrée dans n'importe quel domaine cible souhaité. Nous démontrons empiriquement l'efficacité de notre approche sur un transfert d'attribut facial et des tâches de synthèse d'expression faciale.
Pour télécharger l'ensemble de données Celeba:
git clone https://github.com/yunjey/StarGAN.git
cd StarGAN/
bash download.sh celebaPour télécharger l'ensemble de données RAFD, vous devez demander l'accès à l'ensemble de données à partir du site Web de la base de données Radboud Faces. Ensuite, vous devez créer une structure de dossiers comme décrit ici.
Pour entraîner Stargan sur Celeba, exécutez le script d'entraînement ci-dessous. Voir ici pour une liste d'attributs sélectionnables dans l'ensemble de données Celeba. Si vous modifiez l'argument selected_attrs , vous devez également modifier l'argument c_dim en conséquence.
# Train StarGAN using the CelebA dataset
python main.py --mode train --dataset CelebA --image_size 128 --c_dim 5
--sample_dir stargan_celeba/samples --log_dir stargan_celeba/logs
--model_save_dir stargan_celeba/models --result_dir stargan_celeba/results
--selected_attrs Black_Hair Blond_Hair Brown_Hair Male Young
# Test StarGAN using the CelebA dataset
python main.py --mode test --dataset CelebA --image_size 128 --c_dim 5
--sample_dir stargan_celeba/samples --log_dir stargan_celeba/logs
--model_save_dir stargan_celeba/models --result_dir stargan_celeba/results
--selected_attrs Black_Hair Blond_Hair Brown_Hair Male YoungPour entraîner Stargan sur RAFD:
# Train StarGAN using the RaFD dataset
python main.py --mode train --dataset RaFD --image_size 128
--c_dim 8 --rafd_image_dir data/RaFD/train
--sample_dir stargan_rafd/samples --log_dir stargan_rafd/logs
--model_save_dir stargan_rafd/models --result_dir stargan_rafd/results
# Test StarGAN using the RaFD dataset
python main.py --mode test --dataset RaFD --image_size 128
--c_dim 8 --rafd_image_dir data/RaFD/test
--sample_dir stargan_rafd/samples --log_dir stargan_rafd/logs
--model_save_dir stargan_rafd/models --result_dir stargan_rafd/resultsPour entraîner Stargan sur Celeba et RAFD:
# Train StarGAN using both CelebA and RaFD datasets
python main.py --mode=train --dataset Both --image_size 256 --c_dim 5 --c2_dim 8
--sample_dir stargan_both/samples --log_dir stargan_both/logs
--model_save_dir stargan_both/models --result_dir stargan_both/results
# Test StarGAN using both CelebA and RaFD datasets
python main.py --mode test --dataset Both --image_size 256 --c_dim 5 --c2_dim 8
--sample_dir stargan_both/samples --log_dir stargan_both/logs
--model_save_dir stargan_both/models --result_dir stargan_both/resultsPour entraîner Stargan sur votre propre ensemble de données, créez une structure de dossier dans le même format que RAFD et exécutez la commande:
# Train StarGAN on custom datasets
python main.py --mode train --dataset RaFD --rafd_crop_size CROP_SIZE --image_size IMG_SIZE
--c_dim LABEL_DIM --rafd_image_dir TRAIN_IMG_DIR
--sample_dir stargan_custom/samples --log_dir stargan_custom/logs
--model_save_dir stargan_custom/models --result_dir stargan_custom/results
# Test StarGAN on custom datasets
python main.py --mode test --dataset RaFD --rafd_crop_size CROP_SIZE --image_size IMG_SIZE
--c_dim LABEL_DIM --rafd_image_dir TEST_IMG_DIR
--sample_dir stargan_custom/samples --log_dir stargan_custom/logs
--model_save_dir stargan_custom/models --result_dir stargan_custom/results Pour télécharger un point de contrôle du modèle pré-formé, exécutez le script ci-dessous. Le point de contrôle du modèle pré-formé sera téléchargé et enregistré dans ./stargan_celeba_128/models Directory.
$ bash download.sh pretrained-celeba-128x128 Pour traduire les images à l'aide du modèle pré-formé, exécutez le script d'évaluation ci-dessous. Les images traduites seront enregistrées dans ./stargan_celeba_128/results Directory.
$ python main.py --mode test --dataset CelebA --image_size 128 --c_dim 5
--selected_attrs Black_Hair Blond_Hair Brown_Hair Male Young
--model_save_dir= ' stargan_celeba_128/models '
--result_dir= ' stargan_celeba_128/results ' Si vous trouvez ce travail utile pour vos recherches, veuillez citer notre article:
@inproceedings{choi2018stargan,
author={Yunjey Choi and Minje Choi and Munyoung Kim and Jung-Woo Ha and Sunghun Kim and Jaegul Choo},
title={StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation},
booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
year={2018}
}
Ce travail a été principalement réalisé tandis que le premier auteur a effectué un stage de recherche à Clova AI Research, Naver. Nous remercions tous les chercheurs de Naver, en particulier Donghyun Kwak, pour les discussions perspicaces.