***** NUEVO: Stargan V2 está disponible en https://github.com/clovaai/stargan-v2 *****

Este repositorio proporciona la implementación oficial de Pytorch del siguiente documento:
Stargan: redes adversas generativas unificadas para la traducción de imagen a imagen de múltiples dominios
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 Universidad de Corea, 2 Clova Ai Research, Naver Corp.
3 El Colegio de Nueva Jersey, 4 Universidad de Ciencia y Tecnología de Hong Kong
https://arxiv.org/abs/1711.09020Resumen: Estudios recientes han mostrado un éxito notable en la traducción de imagen a imagen para dos dominios. Sin embargo, los enfoques existentes tienen escalabilidad y robustez limitada en el manejo de más de dos dominios, ya que diferentes modelos deben construirse de forma independiente para cada par de dominios de imágenes. Para abordar esta limitación, proponemos Stargan, un enfoque novedoso y escalable que puede realizar traducciones de imagen a imagen para múltiples dominios utilizando solo un modelo único. Tal arquitectura de modelo unificado de Stargan permite el entrenamiento simultáneo de múltiples conjuntos de datos con diferentes dominios dentro de una sola red. Esto lleva a la calidad superior de Stargan de las imágenes traducidas en comparación con los modelos existentes, así como la capacidad novedosa de traducir de manera flexible una imagen de entrada a cualquier dominio objetivo deseado. Demostramos empíricamente la efectividad de nuestro enfoque en una transferencia de atributos faciales y una tareas de síntesis de expresión facial.
Para descargar el conjunto de datos Celeba:
git clone https://github.com/yunjey/StarGAN.git
cd StarGAN/
bash download.sh celebaPara descargar el conjunto de datos RAFD, debe solicitar acceso al conjunto de datos desde el sitio web de la base de datos de Radboud Faces. Luego, debe crear una estructura de carpeta como se describe aquí.
Para entrenar a Stargan en Celeba, ejecute el guión de entrenamiento a continuación. Consulte aquí para obtener una lista de atributos seleccionables en el conjunto de datos Celeba. Si cambia el argumento selected_attrs , también debe cambiar el argumento c_dim en consecuencia.
# 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 YoungPara entrenar a Stargan en 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/resultsPara entrenar a Stargan en Celeba y 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/resultsPara entrenar a Stargan en su propio conjunto de datos, cree una estructura de carpeta en el mismo formato que RAFD y ejecute el comando:
# 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 Para descargar un punto de control de modelo previamente capacitado, ejecute el script a continuación. El punto de control del modelo previamente entrenado se descargará y guardará en el directorio ./stargan_celeba_128/models .
$ bash download.sh pretrained-celeba-128x128 Para traducir imágenes utilizando el modelo previamente capacitado, ejecute el script de evaluación a continuación. Las imágenes traducidas se guardarán en el directorio ./stargan_celeba_128/results .
$ 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 encuentra este trabajo útil para su investigación, cite nuestro artículo:
@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}
}
Este trabajo se realizó principalmente mientras el primer autor hizo una pasantía de investigación en Clova AI Research, Naver. Agradecemos a todos los investigadores de Naver, especialmente Donghyun Kwak, por sus perspicaces discusiones.