こんばんは。
以前の記事で「OpenCVを使用したCartoon(漫画)フィルタ」というのを投稿しました。その結果はちょっと面白くない結果だったのですが、宮崎駿監督や新海誠監督のような綺麗なアニメが写真が作れるAnimeGANを使ってみたのでご紹介したいと思います。
なお、https://www.youtube.com/watch?v=R-DBiElq7OQをほぼ参考にさせて頂きました。ありがとうございます。
AnimeGANとは
AnimeGANとは「敵対的生成ネットワーク(GAN)」というディープ・ラーニングで画像をアニメ風に変換してくれるものです。AnimeGANのベースとなっているCartoonGAN、ComixGANなどの画像スタイル変換アルゴリズムモデルがあります。
GANの説明はこちらが分かりやすかったです。
https://ledge.ai/gan/
AnimeGAN
https://github.com/TachibanaYoshino/AnimeGAN
AnimeGANをGoogleColabで動かす
トレーニングからしてみたかったので、GPUを使えるGoogleColabを使用方法を説明します。
①GoogleColab起動
GoogleColabを開きます。
[ファイル]-[ノートブックを開く]をクリックします。ファイル名を適当な名前に変更します。
[編集]-[ノートブックの設定]よりGPUを指定します。
接続されるまで少し待ちます。
②AnimeGANを取得
「+コード」をクリックして以下を入力して実行▶します。
!git clone https://github.com/TachibanaYoshino/AnimeGAN
次に「+コード」をクリックして以下を入力します。作業ディレクトリをAnimeGANに変更します。
import os os.chdir('AnimeGAN') print(os.getcwd())
③学習済みモデルとDatasetを取得
データは以下にあります。これを作業フォルダに展開していきます。
https://github.com/TachibanaYoshino/AnimeGAN/releases
AnimeGANフォルダ配下に「download_staffs.sh」というファイルを新規作成します。
そのファイルを開いて以下を入力します。事前トレーニング済みモデル、vgg19の重み、トレーニングデータセットを対応するディレクトリにダウンロードして保存しています。
URL=https://github.com/TachibanaYoshino/AnimeGAN/releases/download/Haoyao-style_v1.0/Haoyao-style.zip ZIP_FILE=./checkpoint/Haoyao-style.zip TARGET_DIR=./checkpoint/saved_model mkdir -p ./checkpoint wget -N $URL -O $ZIP_FILE mkdir -p $TARGET_DIR unzip $ZIP_FILE -d $TARGET_DIR rm $ZIP_FILE DatesetURL=https://github.com/TachibanaYoshino/AnimeGAN/releases/download/dataset-1/dataset.zip ZIP_FILE=./dataset.zip TARGET_DIR=./dataset rm -rf dataset wget -N $DatesetURL -O $ZIP_FILE unzip $ZIP_FILE -d $TARGET_DIR rm $ZIP_FILE VGG_FILE=./vgg19_weight/vgg19.npy wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=1U5HCRpZWAbDVLipNoF8t0ZHpwCRX7kdF' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1U5HCRpZWAbDVLipNoF8t0ZHpwCRX7kdF" -O $VGG_FILE && rm -rf /tmp/cookies.txt
上記ファイルを保存したら、以下を入力して実行します。
!bash download_staffs.sh
④モデルをトレーニング
以下を入力して、GPUの使用状況を確認します。
!nvidia-smi
赤枠部分が0だったので、main.pyを開いて「os.environ[“CUDA_VISIBLE_DEVICES”]」を1→0に変更します。
以下を入力してトレーニング開始します。(長いです40分程度)
!python main.py --phase train --dataset Shinkai --epoch 1 --init_epoch 1
上記で以下エラーが出たらimportします。
※現時点ではバージョン指定が必要です。
!pip install tensorflow==1.15
以下でトレーニング終了です。
データが以下に出来上がります。
⑤テスト
以下でテストします。変換したい画像は「dataset/test/real」に配置します。
!python test.py --checkpoint_dir checkpoint/AnimeGAN_Shinkai_lsgan_300_300_1_3_10 --test_dir dataset/test/real --style_name S
出来上がり。
[colwrap]
[col2]
[/col2]
[col2]
[/col2]
[/colwrap]
ちなみに事前学習済みモデル(宮崎駿監督Ver)を使用したのはこちら。
!python test.py --checkpoint_dir checkpoint/saved_model --test_dir dataset/test/real --style_name H
[colwrap]
[col2]
[/col2]
[col2]
[/col2]
[/colwrap]
コメント