Task Overview
Input: Panoramic 4K video (full match)
Output: Temporal action labels for 12 ball event classes with global timestamps
✅ Same: 12 action classes, temporal detection, team assignment
⚠️ Different: Panoramic view + full match (not broadcast clips)
Input / Output Definition
Input
videos/match_XXXXX.mp4— Full match panoramic video (4K)
Output (per action)
| Field | Type | Description |
|---|---|---|
time |
float | Global timestamp in video (seconds) |
event_class |
string | One of 12 action classes (see below) |
team |
string | left / right / null |
player_id |
int/null | Track ID (when available) |
12 Action Classes
File Layout
SoccerTrack-v2/
├── videos/
│ ├── 117093/
│ │ ├── 117093_panorama_1st_half.mp4
│ │ └── 117093_panorama_2nd_half.mp4
│ └── ...
├── gsr/
├── bas/
│ ├── 117093/
│ │ └── 117093_12_class_events.json
│ └── ...
├── mot/
└── raw/
└── ...
Each match ships one BAS annotation file covering both halves. The gameTime field encodes which half each event belongs to.
See format-bas.md for the full schema reference.
Schema & SoccerNet Mapping
Example JSON Structure
{
"UrlLocal": "117093",
"UrlYoutube": null,
"annotations": [
{
"gameTime": "1 - 12:30",
"position": "750000",
"label": "Pass",
"team": "left",
"player_id": "117093_L_9",
"visibility": "visible"
},
...
]
}
position is milliseconds from kickoff of the half encoded in gameTime, not from match start. Convert to a frame index with round(int(position) / 40) at 25 fps.
SoccerNet BAS Correspondence
| SoccerTrack v2 | SoccerNet BAS | Notes |
|---|---|---|
time |
timestamp |
Global time in seconds |
event_class |
label |
12 action classes |
team |
team |
left / right |
player_id |
— | Unique to SoccerTrack v2 |
Evaluation / Metrics
Evaluation uses tolerant mean Average Precision, following the SoccerNet Ball Action Spotting Challenge. Report two tolerances:
- mAP@1s — tight (precise temporal localisation)
- mAP@5s — loose (event-level detection)
Reference CLI:
python -m src.evaluation.bas_map \
--pred preds/bas --gt data/bas --matches 117099 117100 \
--tolerances 1 5
Starter Kit
Differences vs SoccerNet BAS
- Camera view: Panoramic (full-pitch visibility) vs. broadcast (partial/zoomed)
- Duration: Full match (~90 min) vs. half/clip segments
- Additional info: Player IDs available (linked to GSR tracks)
- Camera setup: Fixed panoramic vs. moving broadcast camera