***** Новое: Stargan V2 доступен по адресу https://github.com/clovaai/stargan-v2 *****

Этот репозиторий предоставляет официальную реализацию 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 позволяет одновременно обучать несколько наборов данных с разными доменами в одной сети. Это приводит к превосходному качеству переведенных изображений Старгана по сравнению с существующими моделями, а также к новой способности гибкого перевода входного изображения в любой желаемый целевой домен. Мы эмпирически демонстрируем эффективность нашего подхода на передачу атрибутов лица и задачи синтеза выражения лица.
Чтобы загрузить набор данных Celeba:
git clone https://github.com/yunjey/StarGAN.git
cd StarGAN/
bash download.sh celebaЧтобы загрузить набор данных RAFD, вы должны запросить доступ к набору данных с веб -сайта базы данных RadBoud. Затем вам нужно создать структуру папок, как описано здесь.
Чтобы тренировать Stargan на Celeba, запустите тренировочный сценарий ниже. См. Здесь для списка выбранных атрибутов в наборе данных Celeba. Если вы измените аргумент selected_attrs , вы также должны соответствующим образом изменить аргумент c_dim .
# 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 YoungОбучить Stargan на 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/resultsОбучать Старгана как на Celeba, так и на 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/resultsЧтобы обучить Stargan на своем собственном наборе данных, создайте структуру папок в том же формате, что и RAFD, и запустите команду:
# 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 Чтобы загрузить предварительно обученную контрольную точку модели, запустите сценарий ниже. Предварительно обученная контрольная точка модели будет загружена и сохранена в каталог ./stargan_celeba_128/models .
$ bash download.sh pretrained-celeba-128x128 Чтобы перевести изображения, используя предварительно обученную модель, запустите сценарий оценки ниже. Переведенные изображения будут сохранены в каталоге ./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 ' Если вы найдете эту работу полезной для вашего исследования, пожалуйста, укажите нашу статью:
@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}
}
Эта работа была в основном выполнена, в то время как первый автор прошел исследовательскую стажировку в исследовании Clova AI, Naver. Мы благодарим всех исследователей в Naver, особенно Donghyun Kwak, за проницательные дискуссии.