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

  • URLをコピーしました!

こんばんは。

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

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

あわせて読みたい
OpenCVを使用したCartoon(漫画)フィルタ こんばんは。 週1投稿を目指しているのですが、別の事に集中しないといけない事がありまして、色々な事にいつも思いますが習慣化させるのは本当に難しいですね。今回は...
目次

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]

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

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

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

[colwrap]
[col2]

[/col2]
[col2]

[/col2]
[/colwrap]

mami
すごい!!宮崎駿監督の世界かは分からないけど、アニメになってる!
  • URLをコピーしました!

コメント

コメントする

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

目次