AnimeGANをGoogleColabで動かして写真をアニメ化する

こんばんは。

以前の記事で「OpenCVを使用したCartoon(漫画)フィルタ」というのを投稿しました。その結果はちょっと面白くない結果だったのですが、宮崎駿監督や新海誠監督のような綺麗なアニメが写真が作れるAnimeGANを使ってみたのでご紹介したいと思います。

なお、https://www.youtube.com/watch?v=R-DBiElq7OQをほぼ参考にさせて頂きました。ありがとうございます。

OpenCVを使用したCartoon(漫画)フィルタ

2020.07.26

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

出来上がり。



mami
??? トレーニング不足という事ですかね(笑)

ちなみに事前学習済みモデル(宮崎駿監督Ver)を使用したのはこちら。

!python test.py --checkpoint_dir checkpoint/saved_model --test_dir dataset/test/real --style_name H


mami
すごい!!宮崎駿監督の世界かは分からないけど、アニメになってる!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)