Project record

RESEARCH / 01

Computer 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
Two real TrackShot frames with pose tracking over the athlete; the second highlights the implement and its trajectory in yellow
Two pipeline frames showing athlete pose, implement trajectory, and the states used to audit release.

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.

  1. Side view of Caio Vilquer setting up the throw with estimated pose and the shot against his neckF. 370

    Set-up1.542 s

    The shot remains against the neck while pose records the wide base and tilted torso.

  2. Side view of Caio Vilquer delivering the shot with his free arm open and estimated pose over his bodyF. 400

    Delivery1.667 s

    The free arm opens toward the sector while the shot still follows the hand, with no flight trail yet.

  3. Side view of Caio Vilquer in the release frame detected by TrackShot, highlighted by a red borderF. 418

    Release1.742 s

    The red border identifies the frame classified by the pipeline as the instant of release.

  4. Side view of Caio Vilquer after release with the shot in flight marked by a yellow circle and trailF. 450

    Flight1.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

  1. 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.

  2. 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.

  3. 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.

  4. 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