Can Event Detectors Leave the Broadcast Camera? Evidence from Tennis
Organizations: Racine.ai, Paris, France
Abstract
Ball bounces and racket hits are the events from which tennis statistics are derived, and on monocular video the two are easy to confuse. We release a benchmark of 345 bounce and hit annotations at frame level on eight clips that mix broadcast, fixed elevated, phone and court-level viewpoints, with a frozen development and test split, a confusion-aware matcher, clip-level bootstrap intervals and a blind second annotation of three clips. On it we score supervised precise spotters with published broadcast weights, two zero-shot vision-language models, and RallyArb, an arbitration layer over a ball track and player poses that fits no parameter on event labels. The supervised spotters score near-perfectly on broadcast footage and almost nothing on phone and court-level footage, where the pooled bounce F1 of E2E-Spot is 0.130. RallyArb keeps a bounce F1 above 0.8 on the three phone and court-level clips, two of which were used to tune it, and finds 8 of 11 bounces on the held-out one, but it places hits too far from the contact frame to match human timing. The vision-language models detect events on every viewpoint and miss the contact frame by about 0.1 s. Fine-tuned leave-one-clip-out from its broadcast weights, the spotter reaches about 0.8 bounce F1 on two phone and court-level clips and stays at 0.2 on a grazing phone angle. The annotations, the evaluator and the frozen predictions of every scored row are released.
Figures & tables
| Clip | Split | Camera and setting | fps | B | H | Events | Tags present |
|---|---|---|---|---|---|---|---|
| demo3 | dev | broadcast oblique, pro rally | 50 | 10 | 9 | 19 | serve, toss |
| felix | dev | static phone, grazing angle, amateur | 60 | 18 | 22 | 40 | dead, serve |
| clay-am | dev | fixed camera, indoor clay, amateur | 60 | 22 | 18 | 40 | dead, serve |
| hard-pro | dev | court-level practice, pro (near-only) | 60 | 27 | 34 | 61 | dead, far, offscreen, toss |
| clay-pro | test | broadcast, clay, pro | 25 | 27 | 25 | 52 | dead, serve |
| clay-am2 | test | elevated fixed camera, outdoor clay, amateur | 59.94 | 25 | 27 | 52 | serve, toss |
| Row | Labels from this corpus | Choices made on development clips | Test runs |
|---|---|---|---|
| RallyArb | development, through its refinements | constants refined on all four | 1 |
| E2E-Spot, T-DEED | none | none (thresholds fixed a priori) | 1 |
| Gemini 3.8 Flash | none | model choice, sampling rate, two protocol fixes | 1 |
| Qwen3-VL-235B | none | sampling rate inherited from Gemini | 1 |
| E2E-Spot fine-tuned | the seven other clips, test clips included | none | 1 per fold |
| Broadcast (3 clips) | Fixed elevated (2) | Phone or court level (3) | ||||
|---|---|---|---|---|---|---|
| Row | B-F1 | H-F1 | B-F1 | H-F1 | B-F1 | H-F1 |
| RallyArb (training-free) | 0.709 | 0.590 | 0.647 | 0.456 | 0.831 | 0.594 |
| E2E-Spot, published weights | 0.989 | 1.000 | 0.667 | 0.824 | 0.130 | 0.154 |
| T-DEED, published weights | 0.978 | 0.957 | 0.623 | 0.817 | 0.000 | 0.000 |
| Gemini 3.8 Flash, zero-shot | 0.415 | 0.667 | 0.427 | 0.532 | 0.525 | 0.475 |
| Qwen3-VL-235B, zero-shot | 0.221 | 0.228 | 0.100 | 0.286 | 0.142 | 0.232 |
| Dev (pooled) | Test (pooled, one execution) | Test errors | ||||||
|---|---|---|---|---|---|---|---|---|
| Row | B-F1 | H-F1 | B-F1 | 95% CI | H-F1 | 95% CI | Spur. | Conf. |
| RallyArb (training-free) | 0.852 | 0.646 | 0.621 | [0.49, 0.84] | 0.459 | [0.40, 0.53] | 26 | 8 |
| E2E-Spot, published weights | 0.557 | 0.522 | 0.776 | [0.44, 0.99] | 0.905 | [0.68, 1.00] | 0 | 0 |
| T-DEED, published weights | 0.494 | 0.507 | 0.752 | [0.36, 0.97] | 0.859 | [0.55, 0.96] | 6 | 0 |
| Gemini 3.8 Flash, zero-shot | 0.519 | 0.523 | 0.406 | [0.37, 0.48] | 0.593 | [0.49, 0.69] | 59 | 9 |
| Qwen3-VL-235B, zero-shot | 0.135 | 0.217 | 0.190 | [0.13, 0.22] | 0.257 | [0.23, 0.28] | 256 | 28 |
Appendix figures & tables1 asset
Supplementary material from the paper’s appendix.
Appendix
| Clip | Split | RallyArb | E2E-Spot | T-DEED | Gemini | Qwen | E2E LOCO |
|---|---|---|---|---|---|---|---|
| demo3 | dev | 1.00/1.00 | 1.00/1.00 | 1.00/0.94 | 0.43/0.59 | 0.24/0.12 | 1.00/1.00 |
| felix | dev | 0.83/0.50 | 0.00/0.10 | 0.00/0.00 | 0.41/0.29 | 0.00/0.22 | 0.20/0.26 |
| clay-am | dev | 0.81/0.54 | 0.81/0.75 | 0.74/0.77 | 0.53/0.67 | 0.09/0.32 | 0.93/0.85 |
| hard-pro | dev | 0.83/0.78 | 0.24/0.00 | 0.00/0.00 | 0.65/0.62 | 0.18/0.19 | 0.80/0.71 |
| clay-pro | test | 0.49/0.49 | 1.00/1.00 | 1.00/0.98 | 0.39/0.67 | 0.23/0.27 | 0.98/1.00 |
| clay-am2 | test | 0.50/0.38 | 0.55/0.86 | 0.53/0.84 | 0.36/0.45 | 0.11/0.26 | 0.68/0.96 |
Sports Video Analysis
Sports video analysis uses computer vision and multimodal models to track athletes, locate events, and explain tactics in game footage.
See all 85 papers