You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
pose encoder で、試着対象人物パース画像を encode し、サイズ 512 x 16 x 16 の特徴マップを出力する。
clothing encoder で、着せ替え服着用人物パース画像を encode し、2 x 2 x 1024 の狭い空間での特徴マップに encode する。その後アップサンプリングを行い 512 x 16 x 16 の特徴マップを出力する。
※ 一度 2 x 2 x 1024 の狭い空間での特徴マップに encode することで、生成される人体パース画像が、服の高レベルの情報(トップス or ボトムズなど)に影響を受けるが、細かい情報は試着対象人物パース画像の影響を強く受けるようになる。
※ encoder に入力される着せ替え服着用人物パース画像は、衣装カテゴリのチャンネル数 18 をもつ 18 x 128 x 128 のパース画像。各チャンネルの値は、その衣装カテゴリである確率値となる。
損失関数
Warping Module は、以下の cross entropy loss と adv loss の線形結合で学習を行う。
Texturing Module
Texturing Module では、上図のように、試着対象人物画像 B とWarping Module で生成した試着画像の人物パース画像を元に、最終的な試着画像を生成する。
具体的には、以下のような処理を行う
試着対象人物画像 B を ROI Pooling 付きの encoder-decoder ネットワークに入力し、18x128x128 の特徴マップを出力する
試着対象人物画像 B の encode した特徴マップと Warping Module からの人物パース画像を concat する
concat した特徴マップを別の enocder-decoder に入力し、試着画像を出力する。
後処理として、試着画像の顔と髪部分のピクセルを、試着対象人物画像 B の顔と髪部分のピクセルに置き換える?
※ この後処理は、異なる人物間での試着を実現するために必要な処理。(この処理がなければ、同一人物での試着しか行えなくなる)
弱教師あり学習(自己教師あり学習)
Warping Module と同じ用に、試着対象人物画像 B を正解データとしてそのまま学習すると B -> B への恒等写像をネットワークが学習してしまうので、ネットワークに入力する試着対象人物画像 B のみに対してランダムなアフィン変換を行いDAするようにする。(正解データとしての B には DA しない)
損失関数
Texturing Module の損失関数は、以下の式のように、L1 loss + VGG loss + adv loss の線形結合で定義される。
0. 論文情報・リンク
1. どんなもの?
Warping Module と Texturing Module の2段階のアーキテクチャを提案し、これらネットワークを学習するための正解データ(=着せ替え服を着た試着対象人物画像)が存在しない場合でも、弱教師付き学習(自己教師あり学習)を行うことで、試着画像を生成することを実現している。
2. 先行研究と比べてどこがすごいの?
一方本手法は、{試着対象人物画像・着せ替え服を着ている人物画像}のペアから試着画像を生成するモデルになっている。
3. 技術や手法の"キモ"はどこにある?
アーキテクチャの全体像
上図は、本手法でのアーキテクチャの全体像を示した図である。
本手法は、以下の2つのサブモジュールから構成される。
試着対象人物画像が着せ替え服を着用したときの人体パース画像(=試着画像の人体パース画像)を生成するモジュール
上記 Warping Module で生成した試着画像の人体パース画像を元に、最終的な試着画像を生成するモジュール。
Warping Module
Warping Module では、上図のように、{試着画対象人物パース画像 B_bs・着せ替え服着用人体パース画像 A_cs}から試着対象人物画像が着せ替え服を着用したときの人体パース画像(=試着画像の人体パース画像)B_cs^′ を生成する。
ネットワークの内部構造としては、UNet をベースとした dual path 構造のネットワークを採用している。
Warping Module での処理の流れは、以下のようになる。
※ 一度 2 x 2 x 1024 の狭い空間での特徴マップに encode することで、生成される人体パース画像が、服の高レベルの情報(トップス or ボトムズなど)に影響を受けるが、細かい情報は試着対象人物パース画像の影響を強く受けるようになる。
※ encoder に入力される着せ替え服着用人物パース画像は、衣装カテゴリのチャンネル数 18 をもつ 18 x 128 x 128 のパース画像。各チャンネルの値は、その衣装カテゴリである確率値となる。
※ この後処理は、異なる人物間での試着を実現するために必要な処理。(この処理がなければ、同一人物での試着しか行えなくなる)
弱教師あり学習(自己教師あり学習)
このネットワークを学習するためには、理想的には{試着画対象人物パース画像 B_bs・着せ替え服着用人体パース画像 A_cs・試着画像の人体パースの正解データ B_cs^′}のペアデータがあることが望ましい。しかしながら、実際上このようなペアデータは入手困難である。
そのため本手法では、弱教師あり学習での学習を行う。
具体的には上図のように、{試着画対象人物パース画像 B_bs・着せ替え服着用人体パース画像 A_cs・試着画像の人体パースの正解データとしての着せ替え服着用人体パース画像 A_cs}のペアデータで学習を行うようにする
この際に、服着用人体パース画像 A_cs をそのまま使うと A_cs -> A_cs への恒等写像をネットワークが学習してしまうので、ネットワークに入力する A_cs のみに対してランダムなアフィン変換を行いDAするようにする。(正解データとしての A_cs は DA しない)
損失関数
Warping Module は、以下の cross entropy loss と adv loss の線形結合で学習を行う。
Texturing Module
Texturing Module では、上図のように、試着対象人物画像 B とWarping Module で生成した試着画像の人物パース画像を元に、最終的な試着画像を生成する。
具体的には、以下のような処理を行う
※ この後処理は、異なる人物間での試着を実現するために必要な処理。(この処理がなければ、同一人物での試着しか行えなくなる)
弱教師あり学習(自己教師あり学習)
Warping Module と同じ用に、試着対象人物画像 B を正解データとしてそのまま学習すると B -> B への恒等写像をネットワークが学習してしまうので、ネットワークに入力する試着対象人物画像 B のみに対してランダムなアフィン変換を行いDAするようにする。(正解データとしての B には DA しない)
損失関数
Texturing Module の損失関数は、以下の式のように、L1 loss + VGG loss + adv loss の線形結合で定義される。
4. どうやって有効だと検証した?
学習用データセット
学習用データセットとして、DeepFashion データセットを利用。
人体パース画像は、LIP SSL の事前学習済みネットワークで生成。
DA による弱教師あり学習の効果
Warping Module と Texturing Module において、DA を追加した弱教師あり学習を行うことで、品質が大きく向上している
Warping Module での試着対象人体パース画像の定性検証
既存の2Dベース仮想試着モデルとの定性的比較検証
{試着対象人物画像・平置き服画像}のペアから試着画像を生成する既存モデルである VITON と比較して、本手法での試着画像品質が優れている。
5. 議論はあるか?
これにより、学習用データセット内の正解データが存在しない場合でも、弱教師あり学習で学習出来るようにしているのがポイント。
一方で本手法では、着せ替え服着用人物画像からの特徴マップを一度狭いサイズの特徴マップに絞る(ボトルネック)することで、これと同じようなことを実現している。
6. 次に読むべき論文はあるか?
7. 参考文献
The text was updated successfully, but these errors were encountered: