StyleCariGANで、顔画像を様々なタッチでアニメ化する

1.はじめに

 このブログでは、今まで顔画像をアニメ化する技術(1, 2, 3, 4, 5, 6, 7, 8)を色々ご紹介してきました。今回ご紹介するのは1つの顔画像から様々なタッチのアニメを作成できる、StyleCari GANです。

*この論文は、2021.7に提出されました。

2.StyleCariGANとは?

 下記の図が、StyleCariGANのフローです。アニメ化したい画像を入力(Input)し、最適化手法で潜在変数(W+code)を取得します。そして、その潜在変数を低解像度レイヤーは通常のStyleGANのままで、高解像度レイヤーのみアニメのStyleGANに置き換えたネットワークに入力します。

 ポイントは、低解像度レイヤーに形状誇張ブロック(Shape exaggeration blocks)の出力をミックスさせて画像のベース部分を適度に変形させることです。この形状誇張ブロックは、実写とアニメの関係を学習することによって取得しています。

 では、早速コードを動かしてみましょう。

3.コード

 コードはGoogle Colabで動かす形にしてGithubに上げてありますので、それに沿って説明して行きます。自分で動かしてみたい方は、この「リンク」をクリックし表示されたノートブックの先頭にある「Colab on Web」ボタンをクリックすると動かせます。

 まず、セットアップを行います。

 それでは、早速顔画像をアニメ化してみましょう。test.pyを使うと、examples/sampleフォルダーにある画像ファイルをアニメ化できます。まず、アニメ化のためのptファイルを作成し、そのptファイルからアニメを生成(64種類)してexamples/resultsに保存します。既に、ptファイルや生成したアニメがある場合は、実行をパスします。

 コードには、顔部分だけ切り取る機能が含まれているので、画像ファイルは、顔以外の部分が映っていても大丈夫です。

 セットアップのときに定義した display_pic()を使って生成したアニメを表示させます。display_pic(examples/results/拡張子なしの画像ファイル名)で表示するものを指定します。

この様に8×8=64種類アニメが生成されますので、自分のイメージにピッタリな画像を選ぶことができます。この中から例えば2つ選ぶと、こんな感じ。

 picフォルダーには、この他に3つのサンプル画像が保管されているので、その中から003.pngexamples/sampleフォルダーにドラッグ&ドロップで移動させてやってみましょう。

 沢山の候補から自分の好みのタッチのアニメが選べるのは、良いですよね。

 では、また。

(オリジナルgithub)https://github.com/wonjongg/StyleCariGAN

コメントを残す

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

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

ABOUTこの記事をかいた人

アバター

ディープラーニング・エンジニアを趣味でやってます。E資格ホルダー。 好きなものは、膨大な凡ショットから生まれる奇跡の1枚、右肩上がりのワクワク感、暑い国の新たな価値観、何もしない南の島、コード通りに動くチップ、完璧なハーモニー、仲間とのバンド演奏、数えきれない流れ星。