Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SwapNet: Image Based Garment Transfer #105

Open
Yagami360 opened this issue Sep 26, 2020 · 0 comments
Open

SwapNet: Image Based Garment Transfer #105

Yagami360 opened this issue Sep 26, 2020 · 0 comments

Comments

@Yagami360
Copy link
Owner

0. 論文情報・リンク

1. どんなもの?

  • {試着対象人物画像・着せ替え服を着ている人物画像}のペアから試着画像を生成するタイプの2Dベース仮想試着手法。
    Warping Module と Texturing Module の2段階のアーキテクチャを提案し、これらネットワークを学習するための正解データ(=着せ替え服を着た試着対象人物画像)が存在しない場合でも、弱教師付き学習(自己教師あり学習)を行うことで、試着画像を生成することを実現している。

2. 先行研究と比べてどこがすごいの?

  • 既存の2次元画像ベースの仮想試着モデルである VITON や CP-VTON は、{試着対象人物画像・平置き服画像}のペアから試着画像を生成するモデルなっている。
    一方本手法は、{試着対象人物画像・着せ替え服を着ている人物画像}のペアから試着画像を生成するモデルになっている。
  • このアプローチでの仮想試着を実現するために、Warping Module と Texturing Module の2段階のアーキテクチャを提案している。またこれらのネットワークを学習するための正解データ(=着せ替え服を着た試着対象人物画像)が存在しないので、弱教師付き学習(自己教師あり学習)を行うことで、{試着対象人物画像・着せ替え服を着ている人物画像}のペアから試着画像を生成することを実現している。

3. 技術や手法の"キモ"はどこにある?

  • アーキテクチャの全体像

    上図は、本手法でのアーキテクチャの全体像を示した図である。
    本手法は、以下の2つのサブモジュールから構成される。

    1. Warping Module
      試着対象人物画像が着せ替え服を着用したときの人体パース画像(=試着画像の人体パース画像)を生成するモジュール
    2. Texturing Module
      上記 Warping Module で生成した試着画像の人体パース画像を元に、最終的な試着画像を生成するモジュール。
  • Warping Module

    Warping Module では、上図のように、{試着画対象人物パース画像 B_bs・着せ替え服着用人体パース画像 A_cs}から試着対象人物画像が着せ替え服を着用したときの人体パース画像(=試着画像の人体パース画像)B_cs^′ を生成する。

    ネットワークの内部構造としては、UNet をベースとした dual path 構造のネットワークを採用している。
    Warping Module での処理の流れは、以下のようになる。

    1. pose encoder で、試着対象人物パース画像を encode し、サイズ 512 x 16 x 16 の特徴マップを出力する。
    2. 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 のパース画像。各チャンネルの値は、その衣装カテゴリである確率値となる。
    3. 2つの encode された特徴マップを concat し、4段の Resblock に入力する。
    4. Resblock からの特徴マップを cloth decoder で元の解像度にアップサンプリングし、試着画像の人物パース画像を B_cs^′ を出力する。
    5. 後処理として、B_cs^′ の顔と髪のセグメンテーション部分を、元の着せ替え服着用人物パース画像 A_cs の顔と髪のセグメンテーションに置き換える?
      ※ この後処理は、異なる人物間での試着を実現するために必要な処理。(この処理がなければ、同一人物での試着しか行えなくなる)
    • 弱教師あり学習(自己教師あり学習)

      このネットワークを学習するためには、理想的には{試着画対象人物パース画像 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 で生成した試着画像の人物パース画像を元に、最終的な試着画像を生成する。

    具体的には、以下のような処理を行う

    1. 試着対象人物画像 B を ROI Pooling 付きの encoder-decoder ネットワークに入力し、18x128x128 の特徴マップを出力する
    2. 試着対象人物画像 B の encode した特徴マップと Warping Module からの人物パース画像を concat する
    3. concat した特徴マップを別の enocder-decoder に入力し、試着画像を出力する。
    4. 後処理として、試着画像の顔と髪部分のピクセルを、試着対象人物画像 B の顔と髪部分のピクセルに置き換える?
      ※ この後処理は、異なる人物間での試着を実現するために必要な処理。(この処理がなければ、同一人物での試着しか行えなくなる)

    • 弱教師あり学習(自己教師あり学習)
      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. 議論はあるか?

  • 入力人物画像のみをランダムなアフィン変換でDAすることで、ネットワークが恒等写像を学習しないようにしている。
    これにより、学習用データセット内の正解データが存在しない場合でも、弱教師あり学習で学習出来るようにしているのがポイント。
  • Outfit-VITON では、着せ替え服着用人物画像からの特徴マップの一部のチャンネルを試着対象人物画像からの特徴マップに差し替えることで、試着対象人物画像の姿勢を保持したまま、着せ替え服を着用した試着対象人物画像のパース画像を生成している。
    一方で本手法では、着せ替え服着用人物画像からの特徴マップを一度狭いサイズの特徴マップに絞る(ボトルネック)することで、これと同じようなことを実現している。

6. 次に読むべき論文はあるか?

  • xxx

7. 参考文献

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant