機械学習を使ってセルフィーをイラスト化!TwinGan!

TwinGanは顔の画像を入力すると、2次元イラストの画像を出力してくれるDeep Learningのモデルです。下記のような出力例になります。

ななみんが解説付きで実行している動画もあるので、是非そちらもご覧ください。

https://www.youtube.com/watch?v=mG9ZPwuiSn8&t=2s

まずは最初に下記のリンクからGoogle Colabのノートブックを開きます。

https://colab.research.google.com/github/mrm8488/shared_colab_notebooks/blob/master/TWINGAN_manu.ipynb

Colabのノートブックを開くと上図のように、画面がでてきます。

ノートブックが開けたら一番最初に「ドライブにコピー」を選択してコピーした新しいノートブックを作成してください。

コピーが終わったらgit clone …から始まる一番上のセルから順番に実行を実行していきます。

セルは実行が終わると下図のように、セルの左上に実行した時の順番が表示されます。

セルを順番に実行して行く際は、必ず上のセルの実行が終わってから、次のセルを実行するように注意しましょう。

後はChoose a modeという表記のあるセルまで順番に実行していくだけで正常に動作します。実行後に下図のように実行後のナンバリングとセルの表示順が一致していれば問題ありません。

Choose a modeのセルにたどり着いたらmodelという「顔からイラスト画像に変換するモード」か「顔から猫の画像に変換するモード」のどちらにするかを選択します。今回は「human2anime」でイラストに変換するモードで実行します。

次にChoose a picture from your local file systemという表記の下のセルを実行してファイルアップロードします。

「ファイルを選択」をクリックして、PCからイラストに変換する顔の画像をアップロードしましょう。今回はこちらの画像をアップロードしました。

再び順番にセルを実行していきますが「%time …」という表記から始まるセル(下図)はそのまま実行するとエラーを出力してしまうのでimage_translation_infer.pyを編集します。

左側の「ファイル」からTwinGan/inference/image_translation.pyを選択してダブルクリックします。

ダブルクリックすると右側にコードエディタが出てくるので32行目の

import tensorflow as tf

というコードを下のように書き換えます。

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

書き換えが終わったらctrl+sで保存しましょう。

同様の要領でTwinGan/util_io.pyを編集します。こちらもimport文の変更のみです。22行目の

import tensorflow as tf

という一行を下記のように変更します。

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

上記2つの変更が終わったら

%time !python inference/image_translation_infer.py --model_path=$model_path --image_hw=$image_hw --input_tensor_name="sources_ph" --output_tensor_name="custom_generated_t_style_source:0" --input_image_path="./demo/inference_input/cropped/" --output_image_path="./demo/inference_output/$output_folder/" > /dev/nullprint("DONE!")

のセルを実行します。実行が終わると

CPU times: user 195 ms, sys: 55.6 ms, total: 251 ms Wall time: 33.7 s

という出力が行われるので、最後のセルを実行しましょう。

実行が終わると下記のように、実行後の画像に表示変更がされるので、それを確認したら成功です。

出力結果をダウンロードしたい場合は/content/TwinGAN/demo/inference_output/anime配下にある画像ファイルを右クリックしてダウンロードを選択するとローカルPCにファイルをダウンロードすることができます。

]]>

上部へスクロール