本手法では、目標服画像 c を着ている試着者の参照画像 I の代わりに、上図のような、"Pose heatmap"、"Body Shape"、"Face and hair segment" の3つの画像の連結 [concat] から構成される「衣服にとらわれない人物表現 [clothing-agnostic person representation] p」 を採用し、これを後述の Multi-task Encoder-Decoder Generator ネットワークに入力するようにする。これにより、試着者が着ている服の影響を除外しながら、試着者の顔や姿勢の情報は保存するといったようなことが可能となる。
a. Pose heatmap:
着用者の姿勢を表現するために、合計 18 箇所の骨格関節点情報を、各々 11 × 11 ピクセルの白色点で示したグレースケール画像。
b. Body Shape:
着用者の異なる体の部分を、大まかにカバーするようなグレースケールのマスク画像。
※ 0 or 1 のくっきりしたバイナリマスク画像だと、その部分のみに服が合成され、多様性のない合成画像となるため、あえてぼやけたマスク画像とすることで、服の Body Shape への変形時の conflict を避け、服変形の多様性を確保する。
c. Face and hair segment:
仮想試着では対象外の領域である人物の顔や髪などを固有の情報を変換後も維持することを目的として、元の試着者の画像からトリミングされた領域のRGB画像
Multi-task Encoder-Decoder Generator
上図の赤枠部分は、Multi-task Encoder-Decoder Generator のアーキテクチャを示している。
このネットワークは、目標服画像 c と clothing-agnostic person representation p を入力とし、服画像 c を clothing-agnostic person representation p の試着部分にうまく変形させることを学習し、変形した服のマスク画像 M と coarse result I' を出力する。
ネットワークのアーキテクチャとしては、UNet が採用されている。
0. 論文情報・リンク
1. どんなもの?
2次元画像ベースの仮想試着タスクにおいて、clothing-agnostic person representation や coarse-to-fine strategy を採用することで、試着服の対象試着者の形状へのシームレスな変換をある程度実現した2次元画像ベースの仮想試着手法。
2. 先行研究と比べてどこがすごいの?
3. 技術や手法の"キモ"はどこにある?
アーキテクチャの全体像(coarse-to-fine strategy)
上図は、本手法でのアーキテクチャの全体像を示している。 まず、目標服画像とそれを着ている試着者の画像(から得られる clothing-agnostic person representation)を入力し、ネットワークを学習する(=着せ戻しを学習)。そして学習後の推論時に、別の服画像を入力することで、別の服での仮想試着を行う(=着せ替えを推論)。 ※ 仮想試着を行う上で最も簡単なタスクは、異なる服を着た同一人物の画像データセットを学習し、それを元に仮想試着を行うことであるが、実際上このようなデータセットは入手することが困難であることに注意。そのため、試着者の画像と試着対象の別の服画像を入力として設定可能な本手法のアーキテクチャが考案されている。
ネットワークとしては、上段の Multi-task Encoder-Decoder Generator でまず荒い(coarse)試着画像を生成し、下段の Refinement Network で変形した服の詳細を回復した細かい(fine)試着画像を生成するという coarse-to-fine strategy を採用している。
clothing-agnostic person representation
本手法では、目標服画像 c を着ている試着者の参照画像 I の代わりに、上図のような、"Pose heatmap"、"Body Shape"、"Face and hair segment" の3つの画像の連結 [concat] から構成される「衣服にとらわれない人物表現 [clothing-agnostic person representation] p」 を採用し、これを後述の Multi-task Encoder-Decoder Generator ネットワークに入力するようにする。これにより、試着者が着ている服の影響を除外しながら、試着者の顔や姿勢の情報は保存するといったようなことが可能となる。
a. Pose heatmap: 着用者の姿勢を表現するために、合計 18 箇所の骨格関節点情報を、各々 11 × 11 ピクセルの白色点で示したグレースケール画像。
b. Body Shape: 着用者の異なる体の部分を、大まかにカバーするようなグレースケールのマスク画像。 ※ 0 or 1 のくっきりしたバイナリマスク画像だと、その部分のみに服が合成され、多様性のない合成画像となるため、あえてぼやけたマスク画像とすることで、服の Body Shape への変形時の conflict を避け、服変形の多様性を確保する。
c. Face and hair segment: 仮想試着では対象外の領域である人物の顔や髪などを固有の情報を変換後も維持することを目的として、元の試着者の画像からトリミングされた領域のRGB画像
Multi-task Encoder-Decoder Generator
上図の赤枠部分は、Multi-task Encoder-Decoder Generator のアーキテクチャを示している。 このネットワークは、目標服画像 c と clothing-agnostic person representation p を入力とし、服画像 c を clothing-agnostic person representation p の試着部分にうまく変形させることを学習し、変形した服のマスク画像 M と coarse result I' を出力する。 ネットワークのアーキテクチャとしては、UNet が採用されている。
※ 服画像と試着者の画像の合成処理を実現する方法の1つとして、この Multi-task Encoder-Decoder Generator で採用されているように、UNet のような encoder-decoder ネットワークで入出力変換を行って、目的の合成画像を得る方法がある。但しこの方法では、目標の体型に完全にうまく服を変形させることは困難であり、またその encoder-decoder アーキテクチャの問題により、レンダリング結果がぼやけて、服のテスクチャなどの詳細が消失してしまう傾向があることに注目。
この Multi-task Encoder-Decoder Generator の損失関数は、以下のように、教師信号と生成画像とのピクセル単位のL1損失関数の和である "perceptual loss" と、服のマスク画像 M とその教師信号 M0 のピクセル単位のL1損失関数から構成される。 ※ この際の変形した服のマスク画像の教師信号 M_0 は、参照人物画像のパース生成器から生成されたものになる? ※ perceptual loss なしだと、RGBのカラー画像でぼやけた画像を生成してしまうので、perceptual loss も追加している。
Refinement Network
前述の Multi-task Encoder-Decoder Generator では、試着画像のレンダリング結果がぼやけて、服のテスクチャなどの詳細が消失してしまう問題が存在する。そのため本手法では、上図の赤枠と青枠部分で示した後段の Refinement Network により、この失われた服のテスクチャなどの詳細を回復する処理を行う。
具体的にはまず、上図青枠部分の shape context matching で、 ① 服の画像から抽出されたマスク画像と Multi-task Encoder-Decoder Generator から出力された変形した服のマスク画像を入力として、TPS変換(薄板スプライン変換)[thin plate spline transformation] のためのパラメータ θ を学習 ② 学習した θ で元の服画像をTPS変換し、(テスクチャの詳細が回復された)変形した服画像を得る。
次に、(テスクチャの詳細が回復された)変形した服画像と荒い試着画像を入力として、画像のどの部分をどの程度利用するのかを示した構成マスク画像 α を生成する。そして、この構成マスク画像 α を利用して試着画像における髪や手などのオクルージョン問題を回避するために、以下のような式に従って、最終的な試着画像を合成する。
※ 服画像と試着者の画像の合成処理を実現する方法としては、変形した服を試着者の画像に直接割り付ける方法と、UNet のような encoder-decoder ネットワークで、入出力変換を行って、目的の合成画像を得る方法の2つが考えられる。前者の手法では、変形した服の特性が完全に保存されるという利点が存在するが、服の境界部分や着用者の体の一部(腕や髪など)で、望ましくない合成結果となってしまう。一方、後者の方法では、目標の体型に完全にうまく服を変形させることは困難であり、またその encoder-decoder アーキテクチャの問題により、レンダリング結果がぼやけて、服のテスクチャなどの詳細が消失してしまう傾向がある。本手法での処理は、まず Multi-task Encoder-Decoder Generator で後者の方法で試着画像を生成し、その後、上式に従って、前者の方法で試着画像を生成しるので、両者を組み合わせた手法となっていることに注目。
4. どうやって有効だと検証した?
既存の手法と比較して、高品質の試着画像を生成できていることを定性的に比較している。(但し、首周りには不自然なアーティファクトがいくつか見受けられる)
<img src="" width"">
5. 議論はあるか?
6. 次に読むべき論文はあるか?
7. 参考文献