TryOnGAN

TryOnGAN: Body-Aware Try-On via Layered Interpolationに関する雑なメモ

  • ACM SIGGRAPH 2021 (2021.1にarXiv公開)
  • Virtual Try-On (VITON, VTON)に関する最近の研究

問題設定:

- 2枚の入力画像が与えられる
    - I^pには人物Aが服Bを着用した様子
    - I^gには人物Cが服Dを着用した様子
- 人物Aが服Dを着用したphotorealisticな画像I^tを出力する

概要:

  • photo-realismとhigh resolutionの性質を持つStyleGAN2をベースとして用いる
  • 10万枚のunpairdな画像から学習
  • これまでの手法には,学習にペアデータが必要なものがある
    • 人物Aが服BをポーズC,D,E...で着用している画像
    • 人物Aが服Bを着ている画像と,服B単体の画像
  • ペアデータ不要な手法(O-VITON, Zanfir et al.)と比較して,photo-realismが増している

手法:

  • (1) pose-conditionedなStyleGAN2を学習

    • ファッション画像についてStyleGAN2を学習
    • 各解像度において,RGB画像に加えて,セグメンテーション画像も出力させる
    • 識別器として,poseとsegmentationの正しさを判別するものも導入

    • 潜在空間のポーズとスタイルのentanglementを防ぐため,StyleGAN2をポーズでconditiningして学習する

    • StyleGAN本来の定数のlatentを,ポーズを表現する4x4のpose representationで置き換える
      • posenetを用いて,17箇所のキーポイントを抽出
      • この出力から64x64x17チャネルのヒートマップを作成する
      • ヒートマップをさらにencoderに入力し,最終的に4x4のサイズまで圧縮する
  • (2) 各層でのinterpolation coefficientを探索する

    • IpとIgについてのwを探索して,linear interpolationすることを目指す
    • 各解像度でのスタイルの結合係数q_nをそれぞれ求めたい
    • それぞれのq_nが収束するまで,L_localizationと2つのconsistencyの加重和を最小化する
      • L_localizationは,興味のある領域についてのみスタイルの内挿をとりたい
      • これはつまり,semantic segmentationした結果,衣服(segmentation i)に影響するようなwの一部分だけ内挿したい
      • M^{CxK}は,どのチャネルがどのセグメントに影響するかの指標
      • これを使って,衣服に関係あるiについて影響のあるチャネルだけを内挿するようにqを求める(詳細未理解)
    • 2つのconsistency lossを採用
      • IgとItにsegmentationマスクをかけ,衣服の部分だけを残す
      • VGGのfeature上で,2枚が近づくような誤差を導入(Germent Loss)
      • また,IpとItについて,顔と髪型の領域の特徴が近づくような誤差を導入(Identity Loss)

実験:

  • Tesla V100 (FP32だと1080Tiと同程度?) x 8 で12日学習

感想:

  • StyleGAN2という強力なモデルを用いて,スタイルの編集を通してVITONを実現するところがキモ
    • 画像空間で編集してしまうとphotorealisticでないものが生成されがち.あくまで完成品の画像はStyleGANによって生成されるので,ここでphoto-realismが保証される