Spaces:
Running on Zero
Running on Zero
A newer version of the Gradio SDK is available: 6.22.0
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.