Skip to main content

How is this thing doing?

Court Vision teaches a computer to chart tennis matches from broadcast video. Every number below comes from grading the machine against 511 points hand-charted by humans, across 8 matches. Dots on the trend lines are grading runs. How the numbers got here →

Who served, from which end?
Trust
83%Jul 20 · v2 · 7 matches · 84%Jul 23 · 8 matches · 83%Jul 20Jul 23
How many shots in the rally?
Verify
35%–83%
Which way did the shot go?
Verify
71%Jul 10 · pre-rebuild · 4 matches · 48%Jul 15 · v1 · 4 matches · 75%Jul 20 · v2 · 7 matches · 72%Jul 23 · 8 matches · 71%Jul 10Jul 23
Forehand or backhand?
Verify
60%Jul 15 · v1 · 4 matches · 60%Jul 20 · v2 · 7 matches · 60%Jul 15Jul 20
Where did the serve land?
Re-key
40%Jul 15 · v1 · 4 matches · 26%Jul 20 · v2 · 7 matches · 40%Jul 23 · 8 matches · 40%Jul 15Jul 23
How did the point end?
Re-key
20%Jul 15 · v1 · 4 matches · 30%Jul 20 · v2 · 7 matches · 20%Jul 23 · 8 matches · 20%Jul 15Jul 23
nothing to show yet
Faults and second serves
Missing
not attempted — every draft assumes a first serve
Out-balls: wide or deep, from flight physics
on the bench
0 → 47%
was totally blind · the post
Hearing every hit in the soundtrack
on the bench
½ confirmed
196 impacts heard where video was blind · the post
Court finds itself — no human clicks
on the bench
7 of 8
within 2–16 px of the human; declines the 8th · the post
Player skeletons for forehand/backhand
on the bench
+13 pts
on grass, the worst surface · the post

Devlog

Working notes, written as the work happens.

All devlog entries →

The road to auto-charting

Each milestone is a devlog entry. Here's where things stand.

  • M0Track ball and players through one rally with SAM 3
  • M1Court keypoints → homography → real court coordinates
  • M2Detect hits and bounces from ball trajectory
  • M3Rally segmentation → shot sequences → MCP notation
  • M4Validate against a human-charted Match Charting Project match