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

ExPose: Monocular Expressive Body Regression through Body-Driven Attention #97

Open
Yagami360 opened this issue Aug 29, 2020 · 0 comments

Comments

@Yagami360
Copy link
Owner

Yagami360 commented Aug 29, 2020

0. 論文情報・リンク

1. どんなもの?

  • 顔の表情なども表現可能なパラメディック人体生成モデルである SMPL-X をベースに、処理を高速化し、人物画像から顔や手の詳細部分も保持した人体メッシュの3D再構成を実現した image-to-3D モデル

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

  • 既存のパラメディック人体生成モデルである SMPL-X, Adam, GHUM/GHUM は、顔の表情など表現力のある人体メッシュを3D再構成することが出来るが、これらは計算コストが高く処理に時間がかかるという問題が存在する。
    本手法では、人物画像から encoder を通じて SMPL-X パラメータを直接推定することで、高速な動作を実現している。
  • この際に、単純に enocder で SMPL-X パラメータを直接推定する方法では、手や顔部分のメッシュの詳細がぼやけるので、顔や手の領域を抽出しそれを SMPL-X パラメータに加えるような ExPose と呼ばれるアーキテクチャで、顔や手の詳細部分も3D再構成することを実現している。
  • また、SMPL-X 学習用データセットを構築し、学習用データセットの不足を解決している。

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

  • SMPL-X での人体メッシュ生成
    SMPL-X は、統計的手法に基づくパラメディック制御可能な人体メッシュ生成モデルである SMPL を拡張したモデルである。
    SMPL-X では{顔の表情・より細かな手足のジョイント}も3D再構成可能になっており、 SMPL より広範囲の表現力をもつパラメディック人体メッシュ生成モデルになっている。

    SMPL-X は、SMPL での{人体体型パラメーターβ・人体姿勢パラメータθ}に{顔表情パラメータψ}を加えたモデルになっており、以下の式でモデル化される。

    本手法では、この SMPL-X を用いて、{人体体型パラメーターβ・人体姿勢パラメータθ・顔表情パラメータψ}から人体メッシュの生成を行う。
    回転表現として D=6 を採用するので、全てのパラメータの次元は、Θ={β,θ,ψ}∈R^338 となり、次元数が非常に多くなる。

  • 本手法(Expose)のアーキテクチャ

    本手法では、人物画像から encoder を通じて SMPL-X パラメータを直接推定することで、高速な動作を実現する。
    但し、上図赤枠のように、単純に enocoder で SMPL-X パラメータを直接推定する方法では、手や顔部分のメッシュの詳細がぼやけてしまう。そのため、上図青枠のような処理を行う。

    これらの処理は、具体的には以下のような処理になる。

    1. 上図赤枠

      1. 高解像度の入力人物画像 I に対する BBOX を用いて、入力人物画像からクロップ画像を抽出する
      2. クロップ画像を encoder g に入力し、{SMPL-X パラメータ Θ_b={β_b,θ_b,ψ_b }・透視変換用カメラのスケール値 s_b∈R・(直交射影後の)オフセット値 t_b∈R^2}を出力する。
        ※ このときの encoder としては、論文「End-to-end recovery of human shape and pose」と同様の encoder を用いる。
      3. encoder からの SMPL-X パラメータ Θ_b={β_b,θ_b,ψ_b } を用いて、SMPL-X で人体メッシュを生成する。
        生成した人体メッシュを直交射影で2D画像にレンダリングする。
    2. 上図青枠

      1. レンダリング画像の手と顔部分に対する BBOX を推定する

      2. spatial transformers (ST) を用いて、この BBOX と元の入力画像から高解像度の手と顔画像を抽出する

      3. 抽出した手画像と顔画像を、それぞれの encoder f, h に入力し、{SMPL-X パラメータ・透視変換用カメラのスケール値・オフセット値}の値を精密化するためのオフセット値を出力する。この際に encoder g からのパラメータを enocder に入力している。
        このオフセット加算処理は、以下のような式で行われる。

        更に、 encoder f, h では、カメラのパラメータ {s_t,t_h}, {s_ht_h} も出力するようにする。
        この手と顔の encoder f,h は、学習時のみ後述の顔と手のデータセットでも学習が行われる。

    • 損失関数
      本手法での encoder ネットワークは、以下のように、{身体・顔・手}それぞれに関する{3Dジョイント間での loss・2Dレンダリング画像間での loss・SMPL-X パラメータ間での loss}から構成される損失関数で end2end に学習される
  • 学習用データセットの作成

    上図は、本手法での学習用データセットの一部を図示した図である。
    この学習用データセットは、以下のような手順で作成している。

    1. LSP dataset, LSP extended dataset, MPII dataset に対して、SMPLify-X を実行し、人体メッシュを作成する。
    2. このとき人間によるアノテーションで、SMPLify-X で画像から生成された人体メッシュが最もらしいメッシュであるかを判断し、{人物画像・SMPL-Xパラメータ}のペアデータ 32,617 個も作成する。
    3. 身体の学習用データをDAするために、SPIN の public fits を SMPL から SMPL-X へ転送する?
      → SMPL パラメータから SMPL-X パラメータへの変換処理のことを言っている?
    4. H3.6M のデータセットを、人体メッシュの正解データとしている?
    5. 手の encoder ネットワーク h のために、FreiHAND dataset の手のみの画像を利用している。
    6. 顔の encoder ネットワーク f のために、FFHQ dataset に対して RingNet を実行し、 顔データセットを作成している。
      ※ この顔と手の追加データセットは、学習時のみ、それぞれの encoder f,h の追加学習用に利用される。

4. どうやって有効だと検証した?

  • 推論処理高速化の定量比較検証

    本手法では、SMPLify-X に比べて、1枚の人物画像での推論時の処理が約 200 倍高速化している。

  • 生成メッシュの定性検証


    本手法では、手や顔部分の詳細に関しても3D再構成出来ている

5. 議論はあるか?

  • encoder として採用している論文「End-to-end recovery of human shape and pose」では、人物姿勢パラメータθを encoder でうまく学習&推論出来るようにするためのいくつかの工夫が行われており、これは大いに参考になりそう。
  • この論文でもそうだが、3D再構成したメッシュの2D画像へのレンダリングは、透視変換ではなく直交射影で行ってるものが多い。直交射影で行うことで、カメラの位置や向きによって変わる遠近感を無視してレンダリング出来るようになるのがメリットであるが、その一方でカメラの回転は表現できなくなる。メッシュを横向きからレンダリングしたい場合は、カメラではなくワールド変換でのメッシュ回転行列で行えばよい?
  • この論文でもそうだが SMPL 拡張モデルでは、人物形状パラメータθの正解データを用意して人物形状パラメータθに関する損失関数で学習を行っている。人物形状パラメータθの正解データがなく学習を行わない場合でも、人物形状パラメータθをうまく推論出来るようになる方法はないか?

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

  • ベースモデル
    • [SMPL-X] Expressive body capture: 3D hands, face, and body from a single image
  • enocder ネットワーク
    • End-to-end recovery of human shape and pose

7. 参考文献

  • xxx
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