YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
Pose Encoder
Trains a shared adapter on top of a frozen PoseFormerV2 encoder for two tasks:
- Metric rating β
Good/Okay/Needs workper exercise metric - Exercise classification β which exercise is being performed
The trained adapter weights feed into the multimodal MotiVate pipeline.
Pipeline
MediaPipe 2D
β H36M remap + pad/crop + normalize
β PoseFormerV2 (frozen, 27Γ544)
β Shared Adapter (trainable, 27Γ256)
β mean pool
β Rating Head + Exercise Head
Loss = rating_loss + exercise_loss_weight Γ exercise_loss
Data Sources
| Source | Path | Used for |
|---|---|---|
training.csv / validation.csv |
train/unimodal/ |
Train/val split only β provides (dataset, clip_id) pairs. No labels are read from these CSVs. |
pose_data.npz |
processed/<dataset>/<clip_id>/mediapipe_result/ |
Model input β MediaPipe 2D pose landmarks per frame. |
raw_gt.csv |
processed/<dataset>/<clip_id>/pose/ |
Rating labels β raw pose measurements. Fed to compute_metrics() at load time to produce Good / Okay / Needs work per metric. |
metadata.json |
processed/<dataset>/ |
Exercise labels β maps each clip_id to its exercise name (fallback: infer from clip_id prefix). |
Labels are not pre-computed in the CSVs. They are derived on the fly:
- Rating targets:
raw_gt.csvβcompute_metrics(df, exercise)βevaluate_rating()β one ofGood(0) /Okay(1) /Needs work(2) per metric. Metrics that can't be evaluated getIGNORE_INDEX = -100and are excluded from the loss. - Exercise targets: looked up from
metadata.jsonand mapped to a class index viaEXERCISE_TO_ID.
Setup
cd MotiVate/train
bash setup_poseformer.sh # clone + download checkpoint
bash setup_poseformer.sh --force # re-clone
Training
uv run python train/pose_encoder/train_shared_adapter.py --config train/pose_encoder/config.json
Outputs
Saved to checkpoints/shared_adapter/:
best_shared_adapter.ptβ adapter weights for the multimodal pipelinebest_model.pt/last_model.ptβ full checkpoints
val_score = 0.5 Γ (rating_acc + exercise_acc) β used for scheduling, early stopping, and best checkpoint selection.
Inference Providers NEW
This model isn't deployed by any Inference Provider. π Ask for provider support