Zero-Shot Multimodal Event Spotting in Soccer Broadcasts
Organizations: Department of Computer Science and Engineering, University of Maryland Baltimore County, Maryland, USA · Comcast Applied AI, Comcast, Philadelphia, USA
Abstract
Automatic soccer event spotting supports highlight generation, video indexing, and sports analytics, but existing methods depend on large annotated datasets and soccer-specific training. We present a zero-shot framework that detects, classifies, and temporally localizes events in full-length soccer broadcasts without task-specific parameter training. Each match is segmented into overlapping clips represented by a compact visual storyboard and the aligned commentary transcript, which a general-purpose multimodal model processes jointly. On three manually annotated matches containing 130 events, the best configuration achieves 72.0% F1@5s and outperforms SoccerNet-trained CALF and NetVLAD++ in a cross-dataset setting, while the storyboard representation reduces inference cost by 72% compared with individual frames. We further analyze the effects of model family, input representation, and prompt optimization, and introduce an evidence-grounded excitement-scoring stage that ranks detected events with natural-language explanations for highlight selection.
Figures & tables
| Model | Training | Input | P@5s | R@5s | F1@5s | mAP@5s | MAE (s) | Pred./match | Cost/match |
|---|---|---|---|---|---|---|---|---|---|
| CALF | Yes (SoccerNet) | Video | 12.91 | 43.06 | 19.60 | 31.95 | 0.94 | 147 | N/A |
| NetVLAD++ | Yes (SoccerNet-v2) | Video | 27.23 | 65.96 | 38.49 | 56.82 | 0.81 | 103 | N/A |
| GPT-5.5 | No | Storyboard | 63.85 | 82.61 | 72.02 | 76.24 | 0.27 | 56 | $18.01 |
| GPT-5.6 Sol | No | Storyboard | 60.93 | 82.45 | 70.05 | 74.77 | 0.47 | 58 | $18.01 |
| GPT-5.6 Terra | No | Storyboard | 59.90 | 77.98 | 67.75 | 74.08 | 0.35 | 56 | $7.20 |
| GPT-5.6 Luna | No | Storyboard | 45.83 | 77.19 | 57.32 | 67.16 | 0.30 | 74 | $0.72 |
| Model | Corner | Goal | Kickoff | Miss | Shot | Yellow Card |
|---|---|---|---|---|---|---|
| GPT-5.5 | 16/22 (72.7%) | 18/21 (85.7%) | 6/6 (100.0%) | 19/26 (73.1%) | 35/41 (85.4%) | 14/14 (100.0%) |
| GPT-5.6 Sol | 16/22 (72.7%) | 17/21 (81.0%) | 6/6 (100.0%) | 18/26 (69.2%) | 37/41 (90.2%) | 14/14 (100.0%) |
| GPT-5.6 Terra | 17/22 (77.3%) | 17/21 (81.0%) | 6/6 (100.0%) | 17/26 (65.4%) | 31/41 (75.6%) | 14/14 (100.0%) |
| GPT-5.6 Luna | 15/22 (68.2%) | 18/21 (85.7%) | 6/6 (100.0%) | 15/26 (57.7%) | 33/41 (80.5%) | 12/14 (85.7%) |
| Qwen3.5-4B | 14/22 (63.6%) | 19/21 (90.5%) | 3/6 (50.0%) | 15/26 (57.7%) | 14/41 (34.1%) | 14/14 (100.0%) |
| Qwen3-VL-8B | 7/22 (31.8%) | 11/21 (52.4%) | 0/6 (0.0%) | 0/26 (0.0%) | 0/41 (0.0%) | 7/14 (50.0%) |
| Input | P@5s | R@5s | F1@5s | MAE | Pred. | Cost |
|---|---|---|---|---|---|---|
| Transcript only | 53.85 | 46.67 | 50.00 | 0.68 | 52 | 13.56 |
| 15 frames only | 59.42 | 68.33 | 63.57 | 0.24 | 69 | 64.47 |
| 15 frames + transcript | 67.14 | 78.33 | 72.31 | 0.91 | 70 | 64.69 |
| Storyboard + transcript | 65.38 | 85.00 | 73.91 | 0.43 | 78 | 18.01 |
| Prompt Strategy | Model | P@5s | R@5s | F1@5s | MAE (s) | Pred./match | Cost ($) |
|---|---|---|---|---|---|---|---|
| Storyboard | GPT-5.6 Sol | 60.93% | 82.45% | 70.05% | 0.47 | 58 | 18.01 |
| Storyboard-2 | GPT-5.6 Sol | 62.24% | 71.5% | 61.30% | 0.14 | 54 | 18.01 |
| GEPA | GPT-5.6 Sol | 55.41% | 71.83% | 62.17% | 0.23 | 56 | 20.00 |
| MIPROv2 | GPT-5.6 Sol | 53.09% | 80.37% | 63.89% | 0.27 | 65 | 20.00 |
| Prompt | Model | Corner | Goal | Kickoff | Miss | Shot | Yellow Card |
|---|---|---|---|---|---|---|---|
| Storyboard | GPT-5.6 Sol | 72.7% (16/22) | 81.0% (17/21) | 100.0% (6/6) | 69.2% (18/26) | 90.2% (37/41) | 100.0% (14/14) |
| Storyboard-2 | GPT-5.6 Sol | 63.6% (14/22) | 76.2% (16/21) | 66.7% (4/6) | 65.4% (17/26) | 73.2% (30/41) | 85.7% (12/14) |
| GEPA | GPT-5.6 Sol | 72.7% (16/22) | 81.0% (17/21) | 83.3% (5/6) | 65.4% (17/26) | 68.3% (28/41) | 85.7% (12/14) |
| MIPROv2 | GPT-5.6 Sol | 68.2% (15/22) | 81.0% (17/21) | 100.0% (6/6) | 73.1% (19/26) | 85.4% (35/41) | 100.0% (14/14) |
| Event | N | GPT Avg. | Avg. Conf. | Flow Avg. | GPT-J Avg. |
|---|---|---|---|---|---|
| Corner | 21 | 2.66 | 0.79 | 2.67 | 3.38 |
| Goal | 27 | 7.87 | 0.92 | 7.70 | 8.00 |
| Kickoff | 11 | 2.44 | 0.86 | 1.45 | 2.18 |
| Miss | 26 | 5.03 | 0.85 | 4.46 | 4.81 |
| Shot | 72 | 5.81 | 0.82 | 4.69 | 5.96 |
| Yellow Card | 18 | 2.36 | 0.87 | 2.56 | 3.00 |
| Match | N | GPT Avg. | Flow Avg. | Flow | Flow MAE | GPT-Judge Avg. | GPT-Judge | GPT-Judge MAE |
|---|---|---|---|---|---|---|---|---|
| Match 1 | 78 | 5.05 | 4.46 | 0.785 | 1.28 | 5.28 | 0.943 | 0.57 |
| Match 2 | 43 | 5.52 | 4.53 | 0.683 | 1.51 | 5.67 | 0.908 | 0.66 |
| Match 3 | 54 | 4.74 | 4.39 | 0.581 | 1.38 | 4.87 | 0.880 | 0.72 |
| Overall | 175 | 5.07 | 4.46 | 0.716 | 1.37 | 5.25 | 0.926 | 0.64 |
| Match | Event | GPT-5.4 | Conf. | FlowJudge | GPT-5.6 | Explanation |
|---|---|---|---|---|---|---|
| Match 1 | Goal | 8.61 | 0.91 | 9.0 | 9.0 | Ferran Torres scores after a cross, with the ball inside the goal and sustained celebration from the scorer and team. The commentator’s disbelief at two goals in two minutes makes the moment highly exciting. |
| Match 2 | Shot | 8.62 | 0.93 | 6.0 | 8.0 | The goalkeeper saves a close-range Aguero attempt after a City move into the penalty area. The commentator’s “to seal it for City! What a save” makes the moment highly dramatic. |
| Match 3 | Miss | 5.83 | 0.88 | 4.0 | 6.0 | Bruno Fernandes spots Ortega off his line and attempts a long-range effort toward an open goal, but it goes wide. The near-open-goal setup adds tension, while the miss and muted commentary limit the excitement. |
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 83 papers