Project record
RESEARCH / 01Computer vision applied to shot put
TrackShot CV
It measures the release speed, angle, and height of a shot put from a phone video. Today that takes a radar gun or a biomechanics lab, out of reach for nearly every coach and athlete.
TrackShot separates pose, tracking, and physical computation to measure release from smartphone slow-motion video. Each point states whether it was detected, predicted, or interpolated; speed, angle, and height carry the uncertainty of the chosen calibration.
- Period
- 2026 · present
- My contribution
- Research, pose pipeline, implement tracking, calibration, and release-metric computation.
- Technology
- Python · MMPose · MediaPipe · OpenCV · SciPy · 240 fps video
- Status
- Desktop prototype in development

RING
Turning pixels into a defensible measurement
Video containers report a playback rate that may differ from the real capture rate. The arm and implement become occluded during the turn, and a scale measured on the ground plane does not automatically apply to flight. A final number is useful only when it preserves those error sources.
FRAME BY FRAME
Release from the side
All four frames come from the same side-view recording. Frame 418 is the instant the pipeline marked as release, at 1.742 s in the original 240 fps video.
F. 370Set-up1.542 s
The shot remains against the neck while pose records the wide base and tilted torso.
F. 400Delivery1.667 s
The free arm opens toward the sector while the shot still follows the hand, with no flight trail yet.
F. 418Release1.742 s
The red border identifies the frame classified by the pipeline as the instant of release.
F. 450Flight1.875 s
The yellow circle has separated from the hand, and the trail makes the opening segment of the trajectory visible.
SECTOR
Layers of the experiment
Real capture time
The pipeline receives the recording's actual 240 fps. Derivatives and filters use that clock, avoiding the eightfold error caused by the 30 fps stored in the video container.
Per-frame pose state
MMPose is the main estimator and MediaPipe remains a lightweight alternative. Short occlusions use conservative prediction, and each point stays labeled as detected, predicted, interpolated, or missing.
Flight checked against physics
The tracker searches for the arc leaving the hand and combines visual detection with a Kalman filter. Length, displacement, speed, and parabolic fit prevent a short patch of foliage from being accepted as the shot's trajectory.
Metrics kept separate from detection
The physics module receives a trajectory, release frame, frame rate, and calibration. Scale comes from a body reference on the vertical plane; reconstructed points and the single-plane approximation remain visible in reports.
MARK
Recorded results and limits
- Seven synthetic tests recover known speed, angle, and height with error below 1e-6
- In the controlled scenario, Kalman RMSE was 4.15 px with 6 px noise and crossed a six-frame occlusion
- In one real video, the flight window reached 94% detection with a parabolic fit of R² 0.98
- Metrics still require validation against tape measurements and manual digitization on a proprietary dataset before IMU fusion begins
SHEET