cedro-blog

PF-AFNで、モデルに衣服を仮装試着させる

1.はじめに

 衣服の仮装試着は、eコマースやファッション画像編集などで様々なアプリケーションが発表されており注目を集めています。今回ご紹介するのは、従来の WUTON という技術に改良を加えた PF-AFN という技術です。

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

2.PF-AFNとは?

  WUTON は、まず Perser-based Teacher NetworkParsingReal Image をもとに身体を区分したデータ)と Clothes(衣服データ)を入力として Fake Image を出力するように訓練します。そして、Perser-free Student Network Real ImageClothes を入力として Fake Image を出力するように訓練(蒸留)します。言い換えると、学生ネットワークが教師ネットワークを模倣するわけです。但し、このモデルには弱点があって、学生ネットワークは教師ネットワークが持つ不具合も学習してしまうことです。

 そこで、PF-AFNの登場です。まず、PersingClothes から Fake Image を出力するネットワークを訓練するまでは同じですが、このネットワークを教師ネットワークではなく不具合な出力をすることもある家庭教師ネットワークとして扱います。なので、名称を Perser-based Tutor Network と言っています。そして、Parser-free student NetworkFake ImageClothes on Real Image を入力とし、Appearance Flows(人物画像と衣服画像間の相関関係)のみ蒸留し、 Teacher Knowledge(Real Image)を出力するように訓練します。こうすることで、最終出力を Real Image と比較するため不具合を減らすことができます。

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

3.コード

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

 まず、セットアップを行います。ディレクトリは、PF-AFN/PF-AFN_test にしています。

 

 仮装試着をさせるためのデータを確認します。データは、test_clothes(衣服)、test_edge(マスク)、test_img(モデル)の3種類があり、test_clothes に対応する test_edge は同じファイル名になっていることに注意して下さい。

 それでは、仮装試着をしてみましょう。どの test_img にどの test_clothes を着用させるかの設定は、demo.txt に下記のように記載されています。

 demo.txt の設定に従って、コスチュームを入れ替えます。入れ替えた結果は、results/demo/PFAFN に保存されます

 保存された結果を表示してみましょう。

 完璧という訳にはいきませんが、かなりのレベルで仮装試着ができています。では、また。

(オリジナルgithub)https://github.com/geyuying/PF-AFN