Pozify Exercise Router
This repository contains the Pozify exercise-router artifacts for classifying pose windows as
squat, push_up, shoulder_press, or unknown.
Model Details
The active artifact is selected by router_selection.json.
Current selected artifact:
{
"selected_model": "temporal.pt",
"selected_artifact": "temporal.pt",
"reason": "prefer BiLSTM temporal when available; baseline falls back when temporal is missing"
}
Artifacts:
temporal.pt: selected PyTorch BiLSTM temporal model trained over 30-frame feature tensors.router_selection.json: active artifact selector used by Pozify runtime loading.router.joblib: scikit-learn baseline artifact kept for comparison and fallback.training_report.md: training and evaluation metrics.
Intended Use
The router is intended for Pozify's local app pipeline. It routes normalized pose sequences to the
appropriate exercise-specific analyzer or rejects unsupported/uncertain clips as unknown.
Supported labels:
squatpush_upshoulder_pressunknown
Training Data
Primary source:
RickyRiccio/Real_Time_Exercise_Recognition_Dataset
Unsupported classes from the source dataset, including curl variations, are mapped to unknown.
Custom unknown clips can include idle standing, setup motion, stretching, partial reps, severe
occlusion, and bad camera angles.
Features
The router uses 30-frame sliding windows with engineered pose features:
- normalized landmarks
- landmark visibility
- knee, hip, elbow, and shoulder angles
- relative distances such as hand width over shoulder width
- frame deltas and velocities
Evaluation
The latest training report is included as training_report.md.
Summary:
| Model | Artifact | Accuracy | Unknown rejection rate |
|---|---|---|---|
| Baseline | baseline.joblib |
0.9987 | 0.9984 |
| BiLSTM temporal | temporal.pt |
0.9964 | 0.9984 |
Limitations
- Metrics are based on the current router-window cache, not a broad deployment benchmark.
- The router expects usable pose extraction and full-body framing where relevant.
- Unsupported exercises are intentionally routed to
unknown. - Additional independent held-out videos are needed before treating this as production-grade.
Runtime Loading
Pozify loads this repository by default. Set POZIFY_ROUTER_HF_REPO_ID only to override the default
with another compatible router repo:
export POZIFY_ROUTER_HF_REPO_ID=owner/other-pozify-router
For private repositories, authenticate with hf auth login or set HF_TOKEN.