SMPL and Human Body Models
SMPL は、人間の body shape と pose を parameter で表す parametric body model です。Human pose estimation、mesh recovery、avatar reconstruction、motion capture で広く使われます。
SMPL の基本
SMPL は、shape parameter と pose parameter を入力として human mesh を出力します。
- : 身長、体格、体型などの shape を表します。
- : 各 joint の rotation を表します。
なぜ parametric model が必要か
Image から直接 mesh を推定するだけでは、人体としてありえない形状が出ることがあります。SMPL は、
- Skeleton 構造
- Body shape prior
- Pose-dependent deformation
を持つため、human body として妥当な reconstruction を得やすくします。
関連する model
| Model | 対象 |
|---|---|
| SMPL | Body |
| SMPL-X | Body + hands + face |
| MANO | Hands |
| FLAME | Face / head |
Whole-body avatar では、SMPL-X のように body、hand、face を統合した model が使われます。
Pose estimation での使い方
Human Mesh Recovery では、image から SMPL parameter を回帰します。
2D keypoint loss、3D joint loss、silhouette loss、pose prior などを組み合わせて training します。
数式で見る SMPL の body model
SMPL は、shape parameter と pose parameter から human mesh を生成する differentiable model です。概念的には次のように書けます。
ここで、 は mesh vertices です。SMPL では、template mesh に shape blend shape と pose blend shape を足し、linear blend skinning によって関節変形を行います。
は vertex が joint に従う重み、 は joint transformation、 は shape / pose 補正後の canonical vertex です。この式の気持ちは、「人体 mesh の各頂点を、複数の関節変換の重み付き平均で動かす」というものです。
画像から SMPL を推定する場合は、2D keypoint reprojection loss がよく使われます。
ここで、 は keypoint confidence です。Confidence が低い観測は、optimization に与える影響を小さくします。
関連ページ
主なソース
- SMPL: https://smpl.is.tue.mpg.de/
- SMPL-X: https://smpl-x.is.tue.mpg.de/
- MANO: https://mano.is.tue.mpg.de/
- FLAME: https://flame.is.tue.mpg.de/