【GAN】CycleGANを試す

環境

OS Windows11
GPU NVIDIA GeForce GTX 1060
Python 3.6(Anaconda3)

トレーニングを試す手順

ダウンロード

ソースコードをダウンロード

git clone https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix
cd pytorch-CycleGAN-and-pix2pix

GitHub - junyanz/pytorch-CycleGAN-and-pix2pix: Image-to-Image Translation in PyTorch

環境構築

下記のコマンドでパッケージの一括ダウンロード

conda env create -f environment.yml
activate pytorch-CycleGAN-and-pix2pix

データセットのダウンロード

トレーニングのデータセットをダウンロード。

bash ./datasets/download_cyclegan_dataset.sh maps

トレーニング

下記のコマンドでトレーニング開始。

python train.py --dataroot ./datasets/maps --name maps_cyclegan --model cycle_gan

トレーニングが開始されるとcheckpointsフォルダに途中経過の画像が保存されていく。

保存される画像は下記の8種類。

  • real_A : 変換前の画像(今回のデータは実写画像)
  • real_B : 変換前の画像(今回のデータはイラスト画像)
  • fake_A : 変換後の画像(real_B→[BtoA]→fake_A)実写
  • fake_B : 変換後の画像(real_A→[AtoB]→fake_B)イラスト
  • rec_A : 変換後の画像から復元した画像(fake_B→[BtoA]→rec_A)実写
  • rec_B : 変換後の画像から復元した画像(fake_A→[AtoB]→rec_B)イラスト
  • idt_A : AからBへの変換にBの画像を入れたときの画像(real_B→[AtoB]→idt_A)イラスト
  • idt_B : BからAへの変換にAの画像を入れたときの画像(real_A→[BtoA]→idt_B)実写

※[AtoB]:実写からイラスト [BtoA]:イラストから実写

途中経過

epoch001

f:id:sanpei07:20220211181318p:plain
real_A
f:id:sanpei07:20220211181329p:plain
fake_B
f:id:sanpei07:20220211181342p:plain
rec_A
f:id:sanpei07:20220211181352p:plain
idt_B

f:id:sanpei07:20220211181406p:plain
real_B
f:id:sanpei07:20220211181422p:plain
fake_A
f:id:sanpei07:20220211181433p:plain
rec_B
f:id:sanpei07:20220211181449p:plain
idt_A

epoch010

f:id:sanpei07:20220211181616p:plain
real_A
f:id:sanpei07:20220211181630p:plain
fake_B
f:id:sanpei07:20220211181641p:plain
rec_A
f:id:sanpei07:20220211181651p:plain
idt_B
f:id:sanpei07:20220211181717p:plain
real_B
f:id:sanpei07:20220211181727p:plain
fake_A
f:id:sanpei07:20220211181740p:plain
rec_B
f:id:sanpei07:20220211181751p:plain
idt_B

epcoh050

f:id:sanpei07:20220211182913p:plain
real_A
f:id:sanpei07:20220211182925p:plain
fake_B
f:id:sanpei07:20220211182939p:plain
rec_A
f:id:sanpei07:20220211182952p:plain
idt_B
f:id:sanpei07:20220211183008p:plain
real_B
f:id:sanpei07:20220211183018p:plain
fake_A
f:id:sanpei07:20220211183028p:plain
rec_B
f:id:sanpei07:20220211183041p:plain
idt_A

テスト

下記のコマンドでテスト開始。

python test.py --dataroot ./datasets/maps --name maps_cyclegan --model cycle_gan

f:id:sanpei07:20220211183549p:plain
real_A
f:id:sanpei07:20220211183602p:plain
fake_B
f:id:sanpei07:20220211183614p:plain
real_B
f:id:sanpei07:20220211183623p:plain
fake_A