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:
json
1{2"selected_model":"temporal.pt",3"selected_artifact":"temporal.pt",4"reason":"prefer BiLSTM temporal when available; baseline falls back when temporal is missing"5}
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.
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.