GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

NVIDIA

pix2pixHD – 条件付きGANを使用した2048×1024画像の合成と操作

投稿日:

条件付きGANを使用した2048×1024画像の合成と操作 https://tcwang0509.github.io/pix2pixHD/

pix2pixHD

[プロジェクト] [Youtube] [ペーパー]

高解像度(例:2048×1024)のフォトリアリスティックなイメージ – イメージ変換のための私たちの方法のPytorch実装。 セマンティックラベルマップをフォトリアリスティックイメージに変換したり、フェイスラベルマップからポートレイトを合成するために使用できます。

条件付きGANによる高解像度画像合成と意味操作
Ting-Chun Wang 1Ming-Yu Liu 1Jun-Yan Zhu 2 、Andrew Tao 1Jan Kautz 1Bryan Catanzaro 1
1 NVIDIA Corporation、 2 UC Berkeley
arxiv、2017年。

2k / 1k解像度でのイメージ – イメージ変換

  • 私たちのラベルからストリートビューの結果

– インタラクティブな編集結果

– ストリートビューの追加結果

  • レーベルとインタラクティブな編集結果

  • 私たちの編集インターフェース

前提条件

  • LinuxまたはmacOS
  • Python 2または3
  • NVIDIA GPU(12Gまたは24Gメモリ)+ CUDA cuDNN

入門

インストール

  • PyTorchと依存関係をhttp://pytorch.orgからインストールする
  • Pythonライブラリをインストールます。
pip install dominate
  • このレポをクローン:
git clone https://github.com/NVIDIA/pix2pixHD
cd pix2pixHD

テスト

  • いくつかの例のCityscapesテスト画像は、 datasetsフォルダに含まれています。
  • 事前に訓練されたCityscapesモデルをこちらからダウンロードしてください(Googleドライブリンク) ./checkpoints/label2city_1024p/
  • モデルをテストします( bash ./scripts/test_1024p.sh )。
#!./scripts/test_1024p.sh
python test.py --name label2city_1024p --netG local --ngf 32 --resize_or_crop none

テスト結果はhtmlファイルに保存されます: ./results/label2city_1024p/test_latest/index.html / ./results/label2city_1024p/test_latest/index.html / ./results/label2city_1024p/test_latest/index.html / ./results/label2city_1024p/test_latest/index.html

さらにスクリプトの例はscriptsディレクトリにあります。

データセット

  • Cityscapesデータセットを使用します。 完全なデータセットでモデルをトレーニングするには、 公式サイトからダウンロードしてください(登録が必要です)。 ダウンロード後、サンプルイメージと同じ方法でdatasetsフォルダの下に置いてください。

トレーニング

  • モデルを1024 x 512の解像度でbash ./scripts/train_512p.shbash ./scripts/train_512p.sh ):
#!./scripts/train_512p.sh
python train.py --name label2city_512p
  • トレーニング結果を表示するには、中間結果を./checkpoints/label2city_512p/web/index.html./checkpoints/label2city_512p/web/index.htmlして./checkpoints/label2city_512p/web/index.html テンソルフローがインストールされている場合、トレーニングスクリプトに--tf_logを追加することで、 ./checkpoints/label2city_512p/logsボードのログが./checkpoints/label2city_512p/logsされます。

マルチGPUトレーニング

  • 複数のGPUを使用してモデルをbash ./scripts/train_512p_multigpu.shbash ./scripts/train_512p_multigpu.sh ):
#!./scripts/train_512p_multigpu.sh
python train.py --name label2city_512p --batchSize 8 --gpu_ids 0,1,2,3,4,5,6,7

注:これはテストされておらず、単一のGPUのみを使用してモデルを訓練しました。 ご自身の裁量でご利用ください。

フル解像度でのトレーニング

  • フル解像度(2048 x 1024)で画像をトレーニングするには、24Gメモリを搭載したGPUが必要です( bash ./scripts/train_1024p_24G.sh )。 12GメモリのGPUしか利用できない場合は、トレーニング中に画像をトリミングする12Gスクリプト( bash ./scripts/train_1024p_12G.sh )を使用してください。 このスクリプトを使用した場合のパフォーマンスは保証されません。

独自のデータセットを使用したトレーニング

  • 自分のデータセットで訓練したい場合は、ピクセル値がオブジェクトラベル(つまり、0,1、…、N-1、Nはラベルの数)に対応する1チャンネルのラベルマップを生成してください。 これは、ラベルマップからワンホットベクトルを生成する必要があるためです。 トレーニングとテストの両方で--label_nc Nも指定してください。
  • あなたの入力がラベルマップでない場合は、RGBカラーを入力として直接使用する--label_nc 0を指定してください。 フォルダは、 train_Atrain_B代わりにtrain_labeltrain_imgという名前にする必要があります。ここで目標はAからBへのイメージの翻訳です。
  • インスタンスマップを持たない場合や、それらを使用したくない場合は、– --no_instanceを指定して--no_instance
  • 前処理のデフォルト設定はscale_widthで、アスペクト比を維持しながらすべてのトレーニング画像の幅をopt.loadSize (1024)にopt.loadSizeます。 別の設定が必要な場合は、– --resize_or_cropオプションを使用して設定を変更してください。 たとえば、 scale_width_and_cropはイメージのサイズを最初に変更してイメージの幅をopt.loadSize変更した後、サイズをランダムにトリミングします(opt.fineSize, opt.fineSize) cropはサイズ変更のステップをスキップし、ランダムなトリミングのみを実行します。 前処理を行わない場合は、 noneを指定してください。画像が32で割り切れるかどうかを確認する以外は何もしません。

その他のトレーニング/テストの詳細

  • フラグ:すべてのトレーニングフラグについてはoptions/train_options.pyoptions/base_options.pyを参照してください。 options/test_options.pyoptions/base_options.pyoptions/base_options.pyしてすべてのテストフラグを確認してください。
  • インスタンスマップ:ラベルマップとインスタンスマップの両方を入力として取り込みます。 インスタンスマップを使用しない場合は、 --no_instanceフラグを指定してください。

引用

これがあなたの研究に有益だと分かったら、以下を使用してください。

@article{wang2017highres,
  title={High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs},
  author={Ting-Chun Wang and Ming-Yu Liu and Jun-Yan Zhu and Andrew Tao and Jan Kautz and Bryan Catanzaro},
  journal={arXiv preprint arXiv:1711.11585},
  year={2017}
}

謝辞

このコードはPytorch-CycleGAN-and-pix2pixから大いに借りています。







-NVIDIA
-, , , , , , , ,

執筆者: