gem-x-motion-capture / docs /MODEL_OVERVIEW.md
cs686's picture
Deploy GEM-X ZeroGPU motion capture
49d36c0 verified
|
Raw
History Blame Contribute Delete
1.83 kB
# Model Overview
## What is GEM?
GEM (Generalist Estimation of Human Motion) is a commercial-grade monocular video 3D human pose estimation model developed by NVIDIA. It recovers full-body 77-joint motion (body, hands, and face) from monocular video using the SOMA parametric body model.
## GEM vs GENMO
GEM is the commercial successor to the research project GENMO. Key differences:
| | GENMO (Research) | GEM (This Repo) |
|---|---|---|
| Body model | SMPL (24 joints) | SOMA (77 joints: body + hands + face) |
| Modalities | Video + text + audio + music | Video only |
| License | Research only | Apache 2.0 (commercial) |
| 2D Pose Model | COCO-17 keypoints | SOMA-77 keypoints |
| Training Data | Public + internal | NVIDIA-owned only |
## SOMA Body Model
GEM uses the **SOMA** parametric body model:
- **77 joints** covering full body, hands, and face
- **MHR identity model** for body shape representation
- Bundled as a submodule in `third_party/soma`
## Architecture
| Property | Value |
|---|---|
| Parameters | ~520M |
| Architecture | 16-layer Transformer encoder |
| Positional encoding | RoPE (Rotary Position Embedding) |
| Latent dimension | 1024 |
| Attention heads | 8 |
| Decoder | Regression-based denoising decoder |
| Optimizer | AdamW (lr=2e-4) |
| Precision | 16-bit mixed |
The model takes as input video features (from SAM-3D-Body), 2D keypoints, and camera intrinsics, and outputs per-frame SOMA body parameters in both camera-relative and global coordinate frames.
## Bundled 2D Pose Model
GEM includes a trained 2D pose estimation model:
- **Backbone:** DINOv3 (ViT-based)
- **Output:** 77 SOMA keypoints per frame (x, y, confidence)
- **Usage:** Automatically invoked during the demo preprocessing pipeline
The 2D pose model is accessed via `gem.utils.vitpose_extractor.VitPoseExtractor`.