***** Neu: Stargan V2 ist unter https://github.com/clovaai/stargan-v2 ***** erhältlich

Dieses Repository bietet die offizielle Pytorch -Implementierung des folgenden Papiers:
STARGAN: Unified generative widersprüchliche Netzwerke für die Übersetzung von Multi-Domänen-Image-Image
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 Korea University, 2 Clova AI Research, Naver Corp.
3 Das College of New Jersey, 4 Hongkong Universität für Wissenschaft und Technologie
https://arxiv.org/abs/1711.09020Zusammenfassung: Neuere Studien haben einen bemerkenswerten Erfolg bei der Bild-zu-Image-Übersetzung für zwei Domänen gezeigt. Bestehende Ansätze haben jedoch eine begrenzte Skalierbarkeit und Robustheit bei der Behandlung von mehr als zwei Domänen, da für jedes Paar von Bilddomänen verschiedene Modelle unabhängig erstellt werden sollten. Um diese Einschränkung anzugehen, schlagen wir Stargan vor, einen neuartigen und skalierbaren Ansatz, mit dem Bild-zu-Image-Übersetzungen für mehrere Domänen nur mit einem einzelnen Modell durchgeführt werden können. Eine solche einheitliche Modellarchitektur von Stargan ermöglicht eine gleichzeitige Schulung mehrerer Datensätze mit unterschiedlichen Domänen in einem einzigen Netzwerk. Dies führt zu Stargans übersetzter Qualität der übersetzten Bilder im Vergleich zu vorhandenen Modellen sowie zu der neuartigen Fähigkeit, ein Eingabebild flexibel in eine gewünschte Zieldomäne zu übersetzen. Wir demonstrieren empirisch die Wirksamkeit unseres Ansatzes auf einen Gesichtsmerkmaltransfer und eine Aufgaben der Gesichtsausdrucksynthese.
So laden Sie den Celeba -Datensatz herunter:
git clone https://github.com/yunjey/StarGAN.git
cd StarGAN/
bash download.sh celebaUm den RAFD -Datensatz herunterzuladen, müssen Sie von der Radboud Faces Database -Website Zugriff auf den Datensatz anfordern. Dann müssen Sie eine Ordnerstruktur erstellen, wie hier beschrieben.
Um Stargan auf Celeba zu trainieren, führen Sie das Trainingsskript unten durch. Eine Liste der ausgewählbaren Attribute im Celeba -Datensatz finden Sie hier. Wenn Sie das Argument selected_attrs ändern, sollten Sie auch das Argument c_dim entsprechend ändern.
# 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 YoungStargan auf RAFD zu trainieren:
# 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/resultsUm Stargan sowohl auf Celeba als auch auf RAFD zu trainieren:
# 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/resultsUm Stargan auf Ihrem eigenen Datensatz zu trainieren, erstellen Sie eine Ordnerstruktur im selben Format wie RAFD und führen Sie den Befehl aus:
# 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 Führen Sie das folgende Skript aus, um einen vorgeborenen Modellkontrollpunkt herunterzuladen. Der vorgeborene Modellkontrollpunkt wird heruntergeladen und gespeichert in ./stargan_celeba_128/models Verzeichnis.
$ bash download.sh pretrained-celeba-128x128 Führen Sie das Bewertungsskript unten aus, um Bilder mit dem vorgeborenen Modell zu übersetzen. Die übersetzten Bilder werden in ./stargan_celeba_128/results Verzeichnis gespeichert.
$ 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 ' Wenn Sie diese Arbeit für Ihre Forschung nützlich finden, zitieren Sie bitte unser Papier:
@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}
}
Diese Arbeit wurde hauptsächlich durchgeführt, während der Erstautor ein Forschungspraktikum bei Clova AI Research in Naver durchführte. Wir danken allen Forschern von Naver, insbesondere Donghyun Kwak, für aufschlussreiche Diskussionen.