Architecture · Published 26 August 2026
Building a failure-aware tennis vision pipeline from one phone camera
How validation, court geometry, ball and player tracking, pose, shot detection, and immutable publication keep uncertainty visible.
One camera does not contain every truth
A normal phone video can support image-space tracks, court reprojection when calibration is sufficient, event classification, and pose-derived observations. It cannot automatically provide lab-grade kinetics, calibrated 3D ball position, or official line calls.
The pipeline starts by naming those boundaries and refuses to fill missing evidence with a plausible number.
Stage the inference contract
Media validation and normalization precede gameplay segmentation, court detection, ball and player tracking, bounce and shot detection, and relationship validation. Each stage records readiness and failure rather than returning one opaque success flag.
Global court and scene decisions are made before chunk workers so a chunk boundary cannot silently change geometry.
Publish atomically
Workers write a new immutable generation and upload the canonical result last. Create-only remote publication prevents a late competing worker from replacing the winner.
If a rerun fails, the previous complete report remains canonical.
Evidence stays frame-linked
Every coaching claim should link to the source moment and retain confidence or unavailable state. Coaches add intent, fatigue, injury history, and tactical context that pixels cannot recover.
That evidence boundary turns automated indexing into a review aid rather than a synthetic authority.
Production checklist
- Verify Owner isolation against the deployed environment, not a screenshot.
- Verify Atomic publication against the deployed environment, not a screenshot.
- Verify Measurement honesty against the deployed environment, not a screenshot.
- Verify Bounded video access against the deployed environment, not a screenshot.