TL;DR
- 10 full matches (~900 minutes) of 4K panoramic full-pitch footage covering entire playing field
- Per-frame GSR annotations: 2D pitch coordinates, track IDs, jersey numbers, roles, and team assignments
- Ball Action Spotting: 12 action classes (Pass, Drive, Shot, Header, Cross, etc.) with global timestamps
- Three benchmark tasks: Multi-Object Tracking (MOT), Game State Reconstruction (GSR), Ball Action Spotting (BAS)
- Open access: Available on GitHub and Google Drive for reproducible research
Dataset Visuals
Panoramic 4K Coverage
GSR Annotations Example
Demo Video
What is SoccerTrack v2?
SoccerTrack v2 addresses critical gaps in existing soccer datasets by providing full-pitch panoramic coverage with comprehensive per-frame annotations. Unlike broadcast-view datasets limited by occlusions and partial field coverage, our dataset captures the entire pitch using panoramic 4K cameras.
The dataset features 10 university-level amateur matches recorded with BePro camera systems, providing approximately 900 minutes of gameplay. Each frame is annotated with detailed game state information including player positions in 2D pitch coordinates, persistent track IDs, jersey numbers, player roles (player/goalkeeper/referee), and team assignments.
Beyond tracking, SoccerTrack v2 includes Ball Action Spotting annotations covering 12 action classes aligned to the video timeline, enabling comprehensive tactical analysis and event detection research.
Dataset Contents
Matches & Videos
- 10 university-level amateur matches
- Approximately 900 minutes of gameplay
- 4K panoramic MP4 videos with full-pitch coverage
- Camera setup: BePro Cerberus (2 matches) + 3-camera panoramic systems (8 matches)
GSR (Game State Reconstruction) Annotations
Per-frame annotations including:
- 2D pitch coordinates (meters) for all players
- Unique track IDs persistent throughout the match
- Player roles: player, goalkeeper, referee, other
- Team assignments: left, right, or null
- Jersey numbers: 0–99 or null
BAS (Ball Action Spotting) Annotations
12 action classes with global timestamps:
Tasks & Benchmarks
Game State Reconstruction (GSR) →
Generate 2D pitch minimaps from panoramic video. Reconstruct complete game state including all player positions, roles, and team assignments for tactical analysis. This task evaluates the ability to accurately map players from video frames to standardized pitch coordinates while maintaining identity and role information.
Inspired by SoccerNet GSR Challenge
Ball Action Spotting (BAS) →
Detect and classify 12 types of ball actions from video. Event detection task aligned with global timestamps for comprehensive match analysis. Actions include Pass, Drive, Shot, Header, High Pass, Out, Cross, Throw In, Ball Player Block, Player Successful Tackle, Free Kick, and Goal.
Inspired by SoccerNet BAS Challenge
Multi-Object Tracking (SoccerTrack Challenge) →
Full-pitch player tracking with persistent IDs across long sequences. Evaluate tracking performance, ID maintenance, and re-identification in complex game scenarios. A subset of matches with bounding box annotations is featured in the SoccerTrack Challenge 2025.
Data Format & Folder Structure
The dataset is organized as follows:
production/
├── videos/ # Panoramic 4K video files (1 MP4 per match)
│ ├── 117093.mp4
│ └── ...
├── gsr/ # Game State Reconstruction annotations
│ ├── 117093/
│ │ └── 117093.json
│ └── ...
├── bas/ # Ball Action Spotting annotations
│ ├── 117093/
│ │ └── 117093.json
│ └── ...
├── mot/ # Multi-Object Tracking annotations (MOTChallenge format)
│ ├── 117093/
│ │ ├── gt/
│ │ │ └── gt.txt
│ │ └── seqinfo.ini
│ └── ...
└── raw/ # Original calibration data and source files
├── 117093/
│ ├── 117093_keypoints.json
│ ├── 117093_mapx.npy
│ ├── 117093_mapy.npy
│ ├── 117093_12_class_events.json
│ ├── 117093_tracker_box_data.xml
│ └── ...
└── ...
GSR Annotation Fields
frame: Frame numbertime: Timestamp in videoplayer_id: Unique track ID (persistent throughout match)x, y: 2D pitch coordinates in metersrole: player / goalkeeper / referee / otherteam_side: left / right / nulljersey_number: 0–99 / null
BAS Annotation Fields
time: Global timestamp aligned to video timelineevent_class: One of 12 action classesteam: Team performing the actionplayer_id: Track ID (when available)
Download Dataset
Choose your preferred platform:
Getting Started
1. Download the Dataset
Download the dataset files from Google Drive.
2. Clone the Repository
git clone https://github.com/AtomScott/SoccerTrack-v2.git
cd SoccerTrack-v2
pip install -r requirements-dev.txt
3. Visualize Tracking Data
python -m src.main command=plot-coordinates-on-video \
plot_coordinates_on_video.match_id=117093
See the scripts/ directory for data preprocessing pipelines, feature extraction,
model training configurations, and evaluation benchmarks. All experiments are fully reproducible.
License & Terms of Use
SoccerTrack v2 is released under the MIT License. The dataset has been collected with approval from the university ethics board, and all data has been de-identified.
- No player names are included; identification is jersey-number based only
- All matches feature university-level amateur players with informed consent
- Free for both academic research and commercial use
Please see the LICENSE file for full details.
Citation
If you use this dataset in your research, please cite:
@article{soccertrack_v2_2025,
title={SoccerTrack v2: A Full-Pitch Multi-View Soccer Dataset for Game State Reconstruction},
author={Scott, Atom and others},
journal={arXiv preprint arXiv:2508.01802},
year={2025},
url={https://arxiv.org/abs/2508.01802}
}
Acknowledgements
This work was supported by JST SPRING (Grant Number JPMJSP2108) and JSPS KAKENHI. We thank all participating teams and universities for their cooperation in data collection.
Note: I've started a startup called Playbox, making human movement computable through cutting-edge sports video analysis technology. Check out our automatic camera systems and AI-powered analysis tools for soccer and other sports! ⚽