Github: https://github.com/yunjey/StarGAN
このリポジトリは、StarGANのPyTorch実装を提供します。 StarGANは、単一のジェネレータとディスクリミネータのみを使用して、入力イメージを任意の目的ドメインに柔軟に翻訳できます。 StarGANのデモビデオはこちらからご覧いただけます 。
紙
StarGAN:マルチドメインイメージからイメージへの翻訳のための統合された生成的敵対的ネットワーク
崔Yunjey 1,2 、 Choj Minje 1,2 、 Kim Munyng 2,3 、 Ha Jung-Woo Ha 2 、 Kim Sung Kim 2,4 、 Jaegul Choo 1,2
高麗大学1科目、クローバーAI研究科2科目(ネイバー社)、 3ニュージャージー大学4科目
コンピュータビジョンとパターン認識に関するIEEE会議( CVPR )、2018( 口頭 )
依存関係
- Python 3.5以降
- PyTorch 0.3.0
- TensorFlow 1.3+ ( テンターボード用オプション)
使用法
1.リポジトリの複製
$ git clone https://github.com/yunjey/StarGAN.git
$ cd StarGAN/
2.データセットのダウンロード
CelebAデータセットをダウンロードするには:
$ bash download.sh
RaFDデータセットをダウンロードするには、Radboud Faces DatabaseのWebサイトからデータセットへのアクセスを要求する必要があります。 次に、 ここで説明するフォルダ構造を作成する必要があります 。
3.トレーニング
CelebAでStarGANをトレーニングするには、以下のトレーニングスクリプトを実行します。 CelebAデータセットの選択可能な属性のリストについては、 ここを参照してください。 selected_attrs
引き数を変更する場合は、それに応じてc_dim
引き数も変更する必要があります。
$ python main.py --mode='train' --dataset='CelebA' --image_size=128 --c_dim=5 \
--sample_dir='expr_celeba/samples' --log_dir='expr_celeba/logs' \
--model_save_dir='expr_celeba/models' --result_dir='expr_celeba/results' \
--selected_attrs=['Black_Hair', 'Blond_Hair', 'Brown_Hair', 'Male', 'Young']
RaFDでStarGANをトレーニングするには:
$ python main.py --mode='train' --dataset='RaFD' --image_size=128 --c_dim=8 \
--sample_dir='expr_rafd/samples' --log_dir='expr_rafd/logs' \
--model_save_dir='expr_rafd/models' --result_dir='expr_rafd/results'
CelebAとRafDの両方でStarGANをトレーニングするには:
$ python main.py --mode='train' --dataset='Both' --image_size=256 --c_dim=5 --c2_dim=8 \
--sample_dir='expr_both/samples' --log_dir='expr_both/logs' \
--model_save_dir='expr_both/models' --result_dir='expr_both/results'
独自のデータセットでStarGANをトレーニングするには、 RaFDと同じ形式のフォルダ構造を作成し、次のコマンドを実行します。
$ 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='expr_custom/samples' --log_dir='expr_custom/logs' \
--model_save_dir='expr_custom/models' --result_dir='expr_custom/results'
4.テスト
CelebAでStarGANをテストするには:
$ python main.py --mode='test' --dataset='CelebA' --image_size=128 --c_dim=5 \
--sample_dir='expr_celeba/samples' --log_dir='expr_celeba/logs' \
--model_save_dir='expr_celeba/models' --result_dir='expr_celeba/results' \
--selected_attrs=['Black_Hair', 'Blond_Hair', 'Brown_Hair', 'Male', 'Young']
RaFDでStarGANをテストするには:
$ python main.py --mode='test' --dataset='RaFD' --image_size=128 \
--c_dim=8 --rafd_image_dir='data/RaFD/test' \
--sample_dir='expr_rafd/samples' --log_dir='expr_rafd/logs' \
--model_save_dir='expr_rafd/models' --result_dir='expr_rafd/results'
CelebAとRaFDの両方でStarGANをテストするには:
$ python main.py --mode='test' --dataset='Both' --image_size=256 --c_dim=5 --c2_dim=8 \
--sample_dir='expr_both/samples' --log_dir='expr_both/logs' \
--model_save_dir='expr_both/models' --result_dir='expr_both/results'
独自のデータセットでStarGANをテストするには:
$ 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='expr_custom/samples' --log_dir='expr_custom/logs' \
--model_save_dir='expr_custom/models' --result_dir='expr_custom/results'
結果
1.セレブアでの顔属性転送
2. RaFDにおける表情合成
3.セレブAでの表情合成
引用
この研究があなたの研究に役立つ場合は、 論文を引用してください:
@article{choi2017stargan,
title = {StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation},
author = {Choi, Yunjey and Choi, Minje and Kim, Munyoung and Ha, Jung-Woo and Kim, Sunghun and Choo, Jaegul},
journal= {arXiv preprint arXiv:1711.09020},
Year = {2017}
}
了承
この作業は主に、最初の著者がClova AI Research、NAVERで研究の交点を作っている間に行われました。 洞察力のある議論のために、NAVER、特にDonghyun Kwakのすべての研究者に感謝します。