Open Yagami360 opened 5 years ago
アーキテクチャ全体の概要: 本手法の全体的なアーキテクチャは、上図のように、以下で述べる仮想試着で一般的に用いられる各ステージから構成され、各々のステージの内部アーキテクチャは、共通のアーキテクチャ(詳細は後述)で実現されている。
Stage I 参照服画像と参照人物画像の骨格情報の concat を入力として、参照人物画像の姿勢に沿うような歪んだ服を生成するステージ。参照人物画像の骨格情報は、任意の姿勢での服変形を行うための条件として機能する。 ※ 参照人物画像の骨格情報は、Pose-Estimator としての、MPII Human Pose dataset で事前学習された LCR net++モデルによって生成される。 ※ この Pose-Estimator は、部分的なオクルージョンがある場合でも、欠落したポーズを生成する。
Stage II 顔と衣服のないセグメンテーション画像と参照人物画像の骨格情報、及び、StageI が出力する歪んだ服を入力として、顔と衣服のないセグメンテーション画像に縫い合わせるように貼り付ける。この StageII の段階では、歪んだ服を参照人物画像の形状に沿うように貼り付けることは行わない。これにより、StageI の変換中に生成された歪んだ服の位置ずれの可能性に対してよりロバストになる? ※ 顔と衣服のないセグメンテーション画像は、参照人物画像のセグメンテーション画像と、服部分のマスク画像から生成する。 ※ この内、服のマスク画像は、DeepFashion でイチから学習(=スクラッチ学習)した UNet++ モデルから生成。 ※ 参照人物画像のセグメンテーション画像は、頭部分をくり抜く目的と UNet++ の学習目的に使用される。
Stage III StageII の段階まででは、上図のように、貼り付けられた歪んだ服と、顔と衣服のないセグメンテーション画像の間に隙間がある。そのため、Stage III では、欠落している領域を示す差分マスク [difference mask] を用いて、この隙間を埋めるように学習を進める。 ※ この差分マスク [difference mask] は、どうやって生成している?
アーキテクチャの詳細
本手法の各ステージのアーキテクチャは、上図のように、Encoder(緑色部分) & Decoder(青色部分) と Skip connection のアーキテクチャと、識別器のアーキテクチャで構成され、各ステージで共通のアーキテクチャとなっている。
Encoder (緑色部分): Conv Module と Conv-Norm Module から構成される。Conv Module では、入力条件を(最初の層だけではなく)すべての層に入力することで、入力条件の特徴量がネットワークの深層で弱くなってしまうことを防止している。
Decoder (青色部分): 一部のアーキテクチャが、CycleGAN に似たものとなっている。
skip connections : encoder と decoder 間の skip connections の導入は、仮想試着画像の品質向上においても重要な役割を果たす。具体的には、encoder と decoder 間の skip connections を使用すると、生成された仮想試着画像は正解データに近いほど変形できなくなる。又、 skip connections を使用しないと、生成画像の詳細が失われてしまう。
Discriminator : GAN によって生成されがちなぼやけた画像にペナルティを科すために、L2損失関数を使用しての識別器による GAN loss での学習を行う。
損失関数: 本手法の損失関数は、"adversarial loss" + "GAN loss(L2損失関数)" +"identity loss(L1損失関数)" から構成され、以下の式で定義される。
0. 論文情報・リンク
1. どんなもの?
2. 先行研究と比べてどこがすごいの?
3. 技術や手法の"キモ"はどこにある?
アーキテクチャ全体の概要: 本手法の全体的なアーキテクチャは、上図のように、以下で述べる仮想試着で一般的に用いられる各ステージから構成され、各々のステージの内部アーキテクチャは、共通のアーキテクチャ(詳細は後述)で実現されている。
Stage I 参照服画像と参照人物画像の骨格情報の concat を入力として、参照人物画像の姿勢に沿うような歪んだ服を生成するステージ。参照人物画像の骨格情報は、任意の姿勢での服変形を行うための条件として機能する。 ※ 参照人物画像の骨格情報は、Pose-Estimator としての、MPII Human Pose dataset で事前学習された LCR net++モデルによって生成される。 ※ この Pose-Estimator は、部分的なオクルージョンがある場合でも、欠落したポーズを生成する。
Stage II 顔と衣服のないセグメンテーション画像と参照人物画像の骨格情報、及び、StageI が出力する歪んだ服を入力として、顔と衣服のないセグメンテーション画像に縫い合わせるように貼り付ける。この StageII の段階では、歪んだ服を参照人物画像の形状に沿うように貼り付けることは行わない。これにより、StageI の変換中に生成された歪んだ服の位置ずれの可能性に対してよりロバストになる? ※ 顔と衣服のないセグメンテーション画像は、参照人物画像のセグメンテーション画像と、服部分のマスク画像から生成する。 ※ この内、服のマスク画像は、DeepFashion でイチから学習(=スクラッチ学習)した UNet++ モデルから生成。 ※ 参照人物画像のセグメンテーション画像は、頭部分をくり抜く目的と UNet++ の学習目的に使用される。
Stage III StageII の段階まででは、上図のように、貼り付けられた歪んだ服と、顔と衣服のないセグメンテーション画像の間に隙間がある。そのため、Stage III では、欠落している領域を示す差分マスク [difference mask] を用いて、この隙間を埋めるように学習を進める。 ※ この差分マスク [difference mask] は、どうやって生成している?
アーキテクチャの詳細
本手法の各ステージのアーキテクチャは、上図のように、Encoder(緑色部分) & Decoder(青色部分) と Skip connection のアーキテクチャと、識別器のアーキテクチャで構成され、各ステージで共通のアーキテクチャとなっている。
Encoder (緑色部分): Conv Module と Conv-Norm Module から構成される。Conv Module では、入力条件を(最初の層だけではなく)すべての層に入力することで、入力条件の特徴量がネットワークの深層で弱くなってしまうことを防止している。
Decoder (青色部分): 一部のアーキテクチャが、CycleGAN に似たものとなっている。
skip connections : encoder と decoder 間の skip connections の導入は、仮想試着画像の品質向上においても重要な役割を果たす。具体的には、encoder と decoder 間の skip connections を使用すると、生成された仮想試着画像は正解データに近いほど変形できなくなる。又、 skip connections を使用しないと、生成画像の詳細が失われてしまう。
Discriminator : GAN によって生成されがちなぼやけた画像にペナルティを科すために、L2損失関数を使用しての識別器による GAN loss での学習を行う。
損失関数: 本手法の損失関数は、"adversarial loss" + "GAN loss(L2損失関数)" +"identity loss(L1損失関数)" から構成され、以下の式で定義される。
4. どうやって有効だと検証した?
5. 議論はあるか?
6. 次に読むべき論文はあるか?