見出し画像

Python + CycleGanでオリジナルデータでの学習を実装する

Python + CycleGanでオリジナルデータでの学習を実装を目指して,本稿ではディアブロス(原種)とディアブロス亜種の変換を実施します.

有料枠設定にしていますが,下記のサイトで他の記事もみれます.youtubeの投げ銭的な物として,お考えください.

本稿の成果物

画像1

オリジナルデータの学習

ディアブロスとディアブロス亜種の画像を準備して,オリジナルデータでの学習を実施します.

学習データの準備

ディアブロスとディアブロス亜種のGoogle画像検索をウェブスクレイピングして,準備しました.
Google Driveでデータをやりとりする場合は,zipで圧縮したものをアップロードして,Colab上で回答した方がエラーも発生しづらくおすすめです.
以下のコマンドでzipの解凍ができます.

# ディレクトリの移動
%cd /content/drive/My\ Drive/diablos_gan/pytorch-CycleGAN-and-pix2pix/datasets
# 学習データの解凍
!unzip diablos_gan.zip > /dev/null

# データ数
# (trainA, testA) = (80, 16)
# (trainB, testB) = (80, 16)

オリジナルデータの学習

以下のコマンドで学習を実行できます.

# ディレクトリの移動
%cd /content/drive/My\ Drive/diablos_gan/pytorch-CycleGAN-and-pix2pix

# オリジナルデータの学習
!python train.py --dataroot ./datasets/diablos_gan \
                --n_epochs 300 \
                --name diablos_gan \
                --model cycle_gan \
                --display_id 0 --gpu_ids 0

オリジナルデータの学習モデルでテスト

ディアブロスとディアブロス亜種の画像を変換する学習モデルを作成しましたので,以下のコマンドでテストを実行します.
--nameでは/checkpointsの中にある学習モデルのディレクトリ名を記述します.
学習モデルの名前はlatest_net_G.pthとしてください.
Aのデータ -> Bのデータに変換するモデルは***_G_A.pthで,Bのデータ -> Aのデータに変換するのモデルは***_G_B.pthです.
※trainA・testAはディアブロス原種,trainB・testBはディアブロス亜種の画像となっています.

変換画像は自動的に256x256の正方形に変換されて出力されます.オリジナルのサイズとアスペクト比を保持したい場合は, --preprocess noneを追記してください.
ただし,GPUの負荷もハンパなく重くなります.僕の場合は,1920x1280と1080x720はGPUのメモリーをオーバーして,640x480で動きました.

# 現在ディレクトリ
# /content/drive/My\ Drive/diablos_gan/pytorch-CycleGAN-and-pix2pix

# 学習モデルの名前変更
!cp checkpoints/diablos_gan/latest_net_G_B.pth checkpoints/diablos_gan/latest_net_G.pth
# 学習モデルのテスト実行
!python test.py --dataroot datasets/diablos_gan/testB \
               --name diablos_gan \
               --results_dir ./results/diablos_gan/ \
               --preprocess none \
               --model test --no_dropout


MHW版ディアブロス亜種の変換

MHW版ディアブロス亜種の変換前画像

画像2


MHW版ディアブロス亜種の変換後画像

画像4


実写版ディアブロス亜種の変換

実写版ディアブロス亜種の変換前画像

画像4

実写版ディアブロス亜種の変換後画像

画像5


おまけ

最近発売したモンハンライズでは原種のディアブロスはでているので,イラストをディアブロス亜種に変換しました.

MHR版ディアブロス(イラスト)の変換


MHR版ディアブロス(イラスト)の変換前画像

画像6


MHR版ディアブロス(イラスト)の変換後画像

画像7


まとめ

Python + CycleGanでオリジナルデータでの学習を兼ねて,ディアブロス(原種)とディアブロス亜種の変換を実施します
たった80枚の学習画像でも結構できていましたが,もう少し精度が向上するように手を加えていきます.

参考サイト

ここから先は

0字

¥ 100

この記事が気に入ったらサポートをしてみませんか?