BlendGANで、顔画像に様々なスタイルをブレンドする

1.はじめに

 今回ご紹介するのは、1つのモデルで顔画像の様々なスタイル合成を可能にするBlendGANという技術です。

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

2.BlendGANとは?

 従来、顔画像のスタイル合成はStyleGANを使ってレイヤー交換を行うのが一般的ですが、この技術では合成したいスタイルの種類だけモデルを用意する必要があります。BlendGANは、1つのモデルで顔画像の様々なスタイル合成を可能にする技術です。

 それを実現するために、様々なスタイルの顔を集めた大規模データセットAAHQを用意し、下記のフレームワークで学習を行います。

 生成器(Generator)の入力は、通常のガウス分布からサンプリングしたランダムな潜在変数に加えて、エンコーダ(E_style)でスタイルの潜在変数を求め、この2つをマルチパーセプトロン(MLP)でW空間にマッピングし重み付きブレンディングモジュール(WBM)で結合したものを使用します。

 識別器(Discriminator)は、顔の形(D_face)、スタイル(D_shape)、スタイルの潜在変数(Dstyle _latent)の3つが設定されています。

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

3.コード

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

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

 

 picフォルダーに保存されている画像から顔画像を切り出しalignフォルダーに保存します。自分が用意した画像を使う場合は、その画像をpicフォルダーにアップロードしてから下記を実行して下さい。

 この中から変換したい顔画像を選んで input に指定します。ここでは 02.jpg を指定します。指定した顔画像は test_imgs/original_imgs にコピーされます。

 

 test_imgs/original_imgs の画像に、test_imgs/style_imgs の画像をブレンドし、results/style_transfer に保存します。ちなみに、results/style_transfer には下記の37個の画像が用意されています。

 自分の用意した画像を使いたい場合は、このフォルダーに切り出した顔画像を追加して下さい。

 そして、results/style_transfer の画像をリサイズして results/images に保存し、それを動画(fps = 0.6)にします。それではやってみましょう。

 作成した動画を再生してみましょう。

 では、また。

(オリジナルgithub)https://github.com/onion-liu/BlendGAN

(twitter投稿)

コメントを残す

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

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

ABOUTこの記事をかいた人

アバター

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