はじめに
年賀状作成の時期になりました。家族の写真をそのままのせるのはつまらないので何か面白いものはないかと探していたところWarpGANにたどり着きました。
github.com
「Style Transfer with Geometric Deformation」と説明されています。日本語に訳すと「変形を伴うスタイル変換」でしょうか。
結果
先に結果を示します。
元画像はStyleGANで描いた架空の人物を使用しました。(こちらを参照)
一番左が元画像、右の4枚が今回作成した似顔絵です。
scaleというパラメーターを1.0, 2.0, 3.0, 4.0と変更して結果を得ています。
元画像を除く一番左がscale=1.0、一番右がscale=4.0です。
環境構築
Windows 10 GPUなし Python 3.6.8
TensorFlow 1.9で動くと書いてあるのでそれに従うことにしました。Pythonは3.6以前を使用する必要があります。
最新のnumpyやscipyをインストールすると動かなかったのでバージョン指定が必要です。以下の順でインストールすれば問題ありません。
pip install numpy==1.16.2 pip install scipy==1.1.0 pip install pillow pip install opencv-python pip install tensorflow==1.9.0
最終的にはこのようになりました。(pip freeze)
absl-py==0.11.0 astor==0.8.1 gast==0.4.0 grpcio==1.34.0 importlib-metadata==3.1.1 Markdown==3.3.3 numpy==1.16.2 opencv-python==4.4.0.46 Pillow==8.0.1 protobuf==3.14.0 scipy==1.1.0 six==1.15.0 tensorboard==1.9.0 tensorflow==1.9.0 termcolor==1.1.0 Werkzeug==1.0.1 zipp==3.4.0
方法
まずは上記GitHubをZIPでダウンロードして解凍します。「WarpGAN-master」というフォルダができます。
またGitHubページ内の下にGoogle Driveへのリンクが貼られているのでそちらから学習済みモデルをダウンロードします。
学習済みモデルは「WarpGAN-master\pretrained」の中で解凍します。最終的には「WarpGAN-master\pretrained\warpgan_pretrained」というフォルダ構造になります。
元画像は「sample.png」という名前で「WarpGAN-master\data\example」フォルダ内に保存しました。
あとは「WarpGAN-master」フォルダ内で以下を実行するのみです。
python test.py pretrained/warpgan_pretrained data/example/sample.png result/sample --num_styles 5 --scale 1.0