Skip to main content

Gaussian Avatars

Gaussian Avatars は、人間の身体や顔を 3D Gaussian primitive で表現し、SMPL / FLAME などの parametric model で駆動する dynamic avatar です。Real-time rendering と animation の両立を狙います。

構造

  • 各 mesh triangle / vertex に Gaussian を bind する
  • Pose を変えると mesh が deform → Gaussian も deform
  • Photometric loss で training

なぜ SMPL / FLAME を使うのか

純粋な dynamic NeRF / 4DGS は、自由度が高すぎて少量のデータでは動きにくいです。SMPL / FLAME のような parametric body model を skeleton として使うと、

  • Novel pose への一般化が効く
  • 解剖学的に妥当な変形が出やすい
  • 別 motion での animation が可能

になります。

用途

  • VR / AR avatar
  • Telepresence
  • VFX
  • Sports / motion analysis
  • Free-viewpoint video

課題

  • Loose clothing / hair
  • Hand / face 細部
  • Pose 外挿 (training 範囲外の pose)
  • Multi-person interaction
  • Sparse view からの構築

数式で見る avatar deformation

Gaussian avatar では、canonical space に置いた Gaussian を、pose や expression に応じて変形して rendering します。Canonical Gaussian の中心を μi0\boldsymbol{\mu}_i^0 とし、pose parameter を θ\boldsymbol{\theta} とすると、変形後の中心は概念的に次のように書けます。

μi(θ)=bwib(Rb(θ)μi0+tb(θ))\boldsymbol{\mu}_i(\boldsymbol{\theta})= \sum_{b} w_{ib}\left(\mathbf{R}_b(\boldsymbol{\theta})\boldsymbol{\mu}_i^0+ \mathbf{t}_b(\boldsymbol{\theta})\right)

ここで、wibw_{ib} は Gaussian ii が bone または body part bb にどれくらい従うかを表す skinning weight です。この式の気持ちは、「一つの Gaussian が一つの関節だけに完全にくっつくのではなく、複数の関節変換を重み付きで混ぜて自然に動かす」というものです。

Expression や衣服の揺れを扱う場合は、さらに residual deformation Δμi\Delta\boldsymbol{\mu}_i を足します。

μi=μi(θ)+Δμi(θ,β,t)\boldsymbol{\mu}_i=\boldsymbol{\mu}_i(\boldsymbol{\theta})+ \Delta\boldsymbol{\mu}_i(\boldsymbol{\theta},\boldsymbol{\beta},t)

β\boldsymbol{\beta} は body shape や identity、tt は time です。Residual は、skeleton だけでは表せない表情、髪、服の変形を吸収します。

関連ページ

主なソース