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

[HMR] End-to-end Recovery of Human Shape and Pose #98

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

[HMR] End-to-end Recovery of Human Shape and Pose #98

Yagami360 opened this issue Aug 30, 2020 · 0 comments

Comments

@Yagami360
Copy link
Owner

0. 論文情報・リンク

1. どんなもの?

  • 入力人物画像から SMPL 制御パラメータを学習することで、リアルデータ(in-the-wild)に対しての多様なメッシュ生成を実現した image-to-3D モデル。
    この際に、入力画像から直接画像 enocoder で SMPL 制御パラメータを推定する方法ではうまく行かないので、SMPL 制御パラメータの残差を学習し逐次的にパラメータの更新を行うモジュールの導入、及び、生成した SMPL パラメータが本物か偽物かを判定する GAN の識別器を導入するという工夫を行っている。

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

  • 既存の3D再構成モデルでは、2D画像での関節点情報から SMPL 制御パラメーターを推定していた。
    しかしながらこのような方法では、リアルデータ(in-the-wild)で推論した場合のドメイン変化に対応できないといった問題や、2段階の学習処理が必要になるという問題が存在する。
    本手法では、入力人物画像から直接 SMPL 制御パラメータを学習することで、2段階の学習処理を不要にし、また関節点で推論する場合より多くのメッシュ生成に対応できるようにしている。
    この際に、直接画像 enocoder で SMPL 制御パラメータを推定する方法ではうまく行かないので、SMPL 制御パラメータの残差を学習し逐次的にパラメータの更新を行うモジュールの導入、及び、生成した SMPL パラメータが本物か偽物かを判定する GAN の識別器を導入するという工夫を行っている。

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

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

    上図は、本手法でのアーキテクチャの全体像を示した図である。
    このアーキテクチャでの処理の流れは、以下のようになる。

    1. 入力人物画像を encoder で enocode し、画像特徴量を出力する。
    2. encode した画像特徴量と現在のパラメータ(=SMPL制御パラメータとカメラパラメータのペア)を、iterative 3D regression module に入力し、パラメータの残差を出力する。そしてその残差を加算しパラメータを更新する。
    3. 更新した SMPL 制御パラメータを元に SMPL で人体メッシュを生成する
    4. GAN の識別器で、生成されたメッシュの SMPL 制御パラメータが本物か偽物かを判定し、生成器としての encoder に制約を課す。
    5. 更新したカメラパラメータで SMPL 人体メッシュを2D画像にレンダリングする。

    これらのネットワークは、end2end に学習される。

  • SMPL の利用
    本手法では、統計的手法に基づくパラメディック制御可能な人体メッシュ生成モデルである SMPL を利用している。
    SMPL でのメッシュ生成処理は、以下の式のように定式化される。

    この SMPL で生成した人体メッシュは、以下の式のように、直交射影で2D画像にレンダリングされる。

  • 画像 encoder
    ImageNet で事前学習した ResNet-50 で画像特徴量を抽出する。
    人物姿勢パラメータθに関して、ロドリゲスの回転表現に変換し、K 個の 3x3 の回転行列を出力するようにする。

  • iterative 3D regression module
    iterative 3D regression module での目的は、encoder に対して、以下の式で定義された損失関数を最小化するようなパラメータ Θ={θ,β,R,t,s} の出力を促進することである。

    しかしながら、このパラメータ Θ={θ,β,R,t,s} に含まれる SMPL 人物姿勢パラメータθは、次元数が多く回転パラメータであるので、画像 encoder でθを直接学習&推論させることは困難である。
    そのため本手法では、iterative error feedback (IEF) ループで Θ={θ,β,R,t,s} を回帰させ、パラメータの更新を再帰的に行う。
    具体的には、{encoder した画像特徴量φ・現在のパラメータ Θ={θ,β,R,t,s}}を入力として、人物姿勢パラメータの残差 ΔΘ を出力し、その残差を元に、Θ_(t+1)=Θ_t+ΔΘ の更新式で人物姿勢パラメータθを更新する。
    パラメータの初期値としては、パラメータの平均値を採用している。反復回数は T=3

  • SMPL 制御パラメータの本物 or 偽物を判定する識別器の追加
    本手法では、上記画像 encoder と iterative 3D regression module で生成した SMPL 制御パラメータが本物か偽物かを判定する GAN の識別器を導入することで、生成器としての encoder に制約を課し、より正しい SMPL 制御パラメータを生成できるように促進している。

    このとき、この識別器は1つではなく、人物体型パラメーターβに対する識別器と人物姿勢パラメータθに対する識別器を用意する。
    人物姿勢パラメータθに対する識別器は、更に各ジョイント点に対する回転パラメータ度に用意する。
    これは、人物姿勢パラメータθは次元数が多く、また回転表現であるので、パラメータの意味別に細かく分割したほうがうまく学習出来るためである。
    また分割することで各関節の回転角度の限界も学習出来るようになる。これにより、各ジョイント点での回転限界角度に関する事前知識(腕はこの角度までしか回らないなど)を定義しなくて済む。

  • 損失関数
    本手法のネットワークは、以下の損失関数で end2end に学習される。

  • 学習用データセットの作成

    • 2D関節情報がアノテーションされた in-the-wild な画像データセットである {LSP, LSP-extended, MPII, MS COCO} データセットを使用する
    • 3Dデータセットには、{Human3.6M, MPI- INF-3DHP} データセットを使用。
    • Human3.6M にdataset 対しては、3D MoCap markers ? から Mosh を使用して学習用画像のための SMPL 制御パラメータを生成している。(この SMPL 制御パラメータを損失関数の正解データに使用?)
      ※ Mosh : 論文「MoSh: Motion and shape capture from sparse markers」

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

  • 本手法での3D再構成品質の定性検証

    入力人物画像にそった人物メッシュの3D再構成が実現出来ている

  • 識別器の有無と3D loss 有無での ablation study

    識別器なしや 3D loss(3D メッシュのジョイント点とSMPL制御パラメータに関しての損失関数)なしの場合は、うまく3D再構成出来ていない。

5. 議論はあるか?

  • encoder した画像特徴量を FC 層で直接 SMPL 制御パラメータのするのではなく、iterative 3D regression module で制御パラメータの残差Δθを学習&出力することで、人物姿勢パラメータθをうまく学習出来るようにしているのがポイントの1つ。
  • また SMPL 制御パラメータが本物か偽物かを判定する GAN での識別器を導入しているのがポイントの1つ
  • この論文に限らず image-to-3D モデル全般で言えることだが、モデルの入力データとして人物画像だけでなく{人物画像・関節点情報・人物パース画像}のペアデータを入力したほうが、3D再構成メッシュの品質が向上するのでは?という印象がある。
  • SMPL人物姿勢パラメータθを画像 encoder で直接学習&推論した場合、例えロドリゲスの回転表現に変換しても、ネットワークがうまくθを学習&推論できないという問題がある。本手法で提案されているθをうまく学習させるための各種工夫は非常に参考になりそう。
  • とはいえ、このような工夫を行っていても、人物姿勢パラメータθに対しての正解データをアノテーションし、人物姿勢パラメータθに関しての損失関数で学習しないとうまく行かないか?

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