diff --git a/.gitignore b/.gitignore index b73129d..01aad50 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,7 @@ # Keeping .gitkeep to maintain the folder structure in the repository data wandb -*.mp4 + # Scratch folder: Contains temporary files for development and testing scratch/* diff --git a/docs/assets/demo-gsr_and_bas.mp4 b/docs/assets/demo-gsr_and_bas.mp4 new file mode 100644 index 0000000..bcfb747 Binary files /dev/null and b/docs/assets/demo-gsr_and_bas.mp4 differ diff --git a/docs/assets/demo-minimap.mp4 b/docs/assets/demo-minimap.mp4 new file mode 100644 index 0000000..bf3fa71 Binary files /dev/null and b/docs/assets/demo-minimap.mp4 differ diff --git a/docs/assets/demo-tracking.mp4 b/docs/assets/demo-tracking.mp4 new file mode 100644 index 0000000..8914b39 Binary files /dev/null and b/docs/assets/demo-tracking.mp4 differ diff --git a/docs/assets/og-image.jpg b/docs/assets/og-image.jpg new file mode 100644 index 0000000..67349d9 Binary files /dev/null and b/docs/assets/og-image.jpg differ diff --git a/docs/assets/panorama-day.jpg b/docs/assets/panorama-day.jpg new file mode 100644 index 0000000..41fde81 Binary files /dev/null and b/docs/assets/panorama-day.jpg differ diff --git a/docs/assets/panorama-night.jpg b/docs/assets/panorama-night.jpg new file mode 100644 index 0000000..38a9c70 Binary files /dev/null and b/docs/assets/panorama-night.jpg differ diff --git a/docs/assets/task-bas.jpg b/docs/assets/task-bas.jpg new file mode 100644 index 0000000..f47c164 Binary files /dev/null and b/docs/assets/task-bas.jpg differ diff --git a/docs/assets/task-gsr.jpg b/docs/assets/task-gsr.jpg new file mode 100644 index 0000000..9fed7af Binary files /dev/null and b/docs/assets/task-gsr.jpg differ diff --git a/docs/assets/task-mot.jpg b/docs/assets/task-mot.jpg new file mode 100644 index 0000000..479b5b0 Binary files /dev/null and b/docs/assets/task-mot.jpg differ diff --git a/docs/index-ja.html b/docs/index-ja.html new file mode 100644 index 0000000..bf42e79 --- /dev/null +++ b/docs/index-ja.html @@ -0,0 +1,580 @@ + + + + + + + + SoccerTrack v2 - ゲーム状態再構築のためのフルピッチサッカーデータセット + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +

⚽ SoccerTrack v2

+

ゲーム状態再構築のためのフルピッチ・マルチビューサッカーデータセット

+

+ フレーム単位のゲーム状態再構築(GSR)およびボールアクション検出(BAS)ラベル付き、10試合分のパノラマ4K映像(フルマッチ) +

+ +
+ +
+
+

概要

+
    +
  • 10試合分のフルマッチ(約900分)の4Kパノラマ映像で、ピッチ全体をカバー
  • +
  • フレーム単位のGSRアノテーション:2Dピッチ座標、トラックID、背番号、役割、チーム割り当て
  • +
  • ボールアクション検出:12種類のアクションクラス(パス、ドリブル、シュート、ヘディング、クロスなど)にグローバルタイムスタンプ付き
  • +
  • 3つのベンチマークタスク:Multi-Object Tracking(MOT)、Game State Reconstruction(GSR)、Ball + Action Spotting(BAS)
  • +
  • オープンアクセス:GitHubとGoogle Driveで公開、再現可能な研究を実現
  • +
+
+ +
+

データセット画像

+ +

パノラマ4K映像

+
+
+ パノラマビュー - 昼の試合 +

昼の試合 - フルピッチカバレッジ

+
+
+ パノラマビュー - 夜の試合 +

夜の試合 - スタジアム環境

+
+
+ +

GSRアノテーション例

+
+ +

2Dピッチミニマップ with 選手位置 & トラックID

+
+ +

デモ動画

+
+ +

GSRオーバーレイ付きトラッキング可視化サンプル

+
+
+ +
+

SoccerTrack v2とは?

+

+ SoccerTrack + v2は、フルピッチのパノラマカバレッジと包括的なフレーム単位アノテーションを提供することで、既存のサッカーデータセットの重要なギャップに対処します。オクルージョンや部分的なフィールドカバレッジに制限される放送視点のデータセットとは異なり、本データセットはパノラマ4Kカメラを使用してピッチ全体を捉えています。 +

+

+ 本データセットには、BeProカメラシステムで記録された大学レベルのアマチュア試合10試合分が含まれ、約900分のゲームプレイを提供します。各フレームには、2Dピッチ座標での選手位置、永続的なトラックID、背番号、選手の役割(プレイヤー/ゴールキーパー/審判)、チーム割り当てなどの詳細なゲーム状態情報がアノテーションされています。 +

+

+ トラッキングに加えて、SoccerTrack + v2には動画タイムラインに整合した12種類のアクションクラスをカバーするボールアクション検出アノテーションが含まれており、包括的な戦術分析とイベント検出研究を可能にします。 +

+
+ +
+

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:

+
+
• Pass
+
• Drive
+
• Header
+
• High Pass
+
• Out
+
• Cross
+
• Throw In
+
• Shot
+
• Ball Player Block
+
• Player Successful Tackle
+
• Free Kick
+
• Goal
+
+
+ +
+

タスク & ベンチマーク

+ +

ゲーム状態再構築(GSR)

+
+ GSRタスク可視化 +

GSR: + パノラマ映像 → 選手役割付き2Dピッチ座標

+
+

+ パノラマ映像から2Dピッチミニマップを生成します。戦術分析のため、すべての選手位置、役割、チーム割り当てを含む完全なゲーム状態を再構築します。このタスクでは、映像フレームから標準化されたピッチ座標へ選手を正確にマッピングし、アイデンティティと役割情報を維持する能力を評価します。 +

+

+ SoccerNet GSR Challengeにインスパイアされています +

+ +

ボールアクション検出(BAS)

+
+ BASタスク可視化 +

BAS: + 12種類のボールイベントクラスを持つ時系列アクション検出

+
+

+ 映像から12種類のボールアクションを検出・分類します。包括的な試合分析のため、グローバルタイムスタンプに整合したイベント検出タスクです。アクションには、パス、ドリブル、シュート、ヘディング、ハイパス、アウト、クロス、スローイン、ボールプレイヤーブロック、プレイヤーサクセスフルタックル、フリーキック、ゴールが含まれます。 +

+

+ SoccerNet BAS Challengeにインスパイアされています +

+ +

マルチオブジェクトトラッキング(SoccerTrack + Challenge)

+
+ MOTタスク可視化 +

MOT: + バウンディングボックスとIDを用いた永続的な選手トラッキング

+
+

+ 長いシーケンスにわたって永続的なIDを持つフルピッチの選手トラッキング。複雑なゲームシナリオにおけるトラッキング性能、ID維持、再識別を評価します。バウンディングボックスアノテーション付きの一部の試合は、 + SoccerTrack Challenge 2025で使用されています。 +

+
+ +
+

Data Format & Folder Structure

+

データセットの構成は以下のようになっております:

+
SoccerTrack-v2/
+├── videos/          # Panoramic 4K video files (1 MP4 per match)
+│   ├── 117092/
+│   │   ├── 117092_panorama_1st_half.mp4
+│   │   └── 117092_panorama_2nd_half.mp4
+│   ├── 117093.mp4
+│   └── ...
+├── gsr/             # Game State Reconstruction annotations
+│   ├── 117092/
+│   │   ├── 117092_1st.json
+│   │   └── 117092_2nd.json
+│   ├── 117093/
+│   └── ...
+├── bas/             # Ball Action Spotting annotations
+│   ├── 117092/
+│   │   └── 117092_12_class_events.json
+│   ├── 117093/
+│   └── ...
+├── mot/             # Multi-Object Tracking annotations (MOTChallenge format)
+│   ├── 117092/
+│   │   ├── gt/
+│   │   │   └── gt.txt
+│   │   └── seqinfo.ini
+│   └── ...
+└── raw/             # Original calibration data and source files
+    ├── 117092/
+    │   ├── 117092_keypoints.json
+    │   ├── 117092_mapx.npy
+    │   ├── 117092_mapy.npy
+    │   ├── 117092_tracker_box_data.xml
+    │   └── ...
+    └── ...
+ +

GSR Annotation Fields

+
    +
  • image_id: 各動画内のフレーム番号
  • +
  • track_id: 試合を通して各選手に一貫して付与されるトラッキングID
  • +
  • player_id: 選手に固有に割り当てられている識別用ID
  • +
  • role: 対象の役割(player / goalkeeper / referee / other)
  • +
  • jersey_number: 選手の背番号(0–99 または null)
  • +
  • team_side: 所属チーム(left / right / null)
  • +
  • x, y: ピッチ上の選手座標(メートル単位、bbox_pitch.x_bottom_middle および + bbox_pitch.y_bottom_middle)
  • +
+ +

BAS Annotation Fields

+
    +
  • gameTime: 試合時間(前後半 - 分:秒)
  • +
  • position: イベント発生時刻(ミリ秒)
  • +
  • label: プレーの種類(全12クラス)
  • +
  • team: プレーを行ったチーム(left / right)
  • +
  • player_id: プレーをした選手のID
  • +
+
+ +
+

データセットのダウンロード

+
+

お好みのプラットフォームを選択してください:

+
+ 💾 Google Drive +
+
+
+ +
+

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. +

+
+ +
+

ライセンス & 利用規約

+

+ SoccerTrack v2はMITライセンスの下で公開されています。本データセットは大学倫理委員会の承認を得て収集され、すべてのデータは匿名化されています。 +

+
    +
  • 選手名は含まれておらず、背番号ベースの識別のみです
  • +
  • すべての試合は、インフォームドコンセントを得た大学レベルのアマチュア選手によるものです
  • +
  • 学術研究および商用利用のいずれも自由に利用可能です
  • +
+

+ 詳細についてはLICENSEファイルをご覧ください。 +

+
+ +
+

引用

+

本データセットを研究で使用する場合は、以下を引用してください:

+
@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}
+}
+
+ +
+

謝辞

+

+ 本研究は、JST SPRING(助成番号 JPMJSP2108)およびJSPS科研費の支援を受けて実施されました。 + データ収集にご協力いただいたすべての参加チームおよび大学に感謝いたします。 +

+

+ データ収集は、Playboxにより実現されました。 + Playboxは、最先端のスポーツ映像解析技術で人の動きを計算可能にする大学発スタートアップです。 + サッカーやその他のスポーツ向けの自動カメラシステムとAI駆動の解析ツールをぜひご覧ください!⚽ +

+
+
+ + +
+ + + \ No newline at end of file diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..bfa407a --- /dev/null +++ b/docs/index.html @@ -0,0 +1,621 @@ + + + + + + + + SoccerTrack v2 - Full-Pitch Soccer Dataset for Game State Reconstruction + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +

⚽ SoccerTrack v2

+

A Full-Pitch Multi-View Soccer Dataset for Game State Reconstruction

+

+ 10 full-length panoramic 4K matches with per-frame Game State Reconstruction (GSR) and Ball Action + Spotting (BAS) labels for soccer analytics +

+ +
+ +
+
+

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

+
+
+ Panoramic view - Day match +

Daytime Match - Full Pitch Coverage

+
+
+ Panoramic view - Night match +

Night Match - Stadium Conditions

+
+
+ +

GSR Annotations Example

+
+ +

2D Pitch Minimap with Player Positions & + Track IDs

+
+ +

Demo Video

+
+ +

Sample Tracking Visualization with GSR + Overlay

+
+
+ +
+

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:

+
+
• Pass
+
• Drive
+
• Header
+
• High Pass
+
• Out
+
• Cross
+
• Throw In
+
• Shot
+
• Ball Player Block
+
• Player Successful Tackle
+
• Free Kick
+
• Goal
+
+
+ +
+

Tasks & Benchmarks

+ +

+ Game State Reconstruction + (GSR) → +

+
+ GSR Task Visualization +

GSR: + Panoramic view → 2D pitch coordinates with player roles

+
+

+ 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) + → +

+
+ BAS Task Visualization +

BAS: + Temporal action detection with 12 ball event classes

+
+

+ 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) → +

+
+ MOT Task Visualization +

MOT: + Persistent player tracking with bounding boxes and IDs

+
+

+ 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:

+
SoccerTrack-v2/
+├── videos/          # Panoramic 4K video files (1 MP4 per match)
+│   ├── 117092/
+│   │   ├── 117092_panorama_1st_half.mp4
+│   │   └── 117092_panorama_2nd_half.mp4
+│   ├── 117093.mp4
+│   └── ...
+├── gsr/             # Game State Reconstruction annotations
+│   ├── 117092/
+│   │   ├── 117092_1st.json
+│   │   └── 117092_2nd.json
+│   ├── 117093/
+│   └── ...
+├── bas/             # Ball Action Spotting annotations
+│   ├── 117092/
+│   │   └── 117092_12_class_events.json
+│   ├── 117093/
+│   └── ...
+├── mot/             # Multi-Object Tracking annotations (MOTChallenge format)
+│   ├── 117092/
+│   │   ├── gt/
+│   │   │   └── gt.txt
+│   │   └── seqinfo.ini
+│   └── ...
+└── raw/             # Original calibration data and source files
+    ├── 117092/
+    │   ├── 117092_keypoints.json
+    │   ├── 117092_mapx.npy
+    │   ├── 117092_mapy.npy
+    │   ├── 117092_tracker_box_data.xml
+    │   └── ...
+    └── ...
+ +

GSR Annotation Fields

+
    +
  • image_id: Frame index in the video sequence
  • +
  • track_id: Unique track ID (persistent throughout match)
  • +
  • player_id: Unique player identifier assigned to the real-world player
  • +
  • role: Entity role (player / goalkeeper / referee / other)
  • +
  • jersey_number: Player jersey number (0–99 or null)
  • +
  • team_side: Team affiliation (left / right / null)
  • +
  • x, y: Player position on pitch in meters (bottom-center of bbox_pitch)
  • +
+ +

BAS Annotation Fields

+
    +
  • gameTime: Event time in match clock format (half - mm:ss)
  • +
  • position: Event timestamp in milliseconds (global timeline)
  • +
  • label: Action class (one of 12 predefined classes)
  • +
  • team: Team performing the action (left / right)
  • +
  • player_id: ID of the player who performed the action
  • +
+
+ +
+

Download Dataset

+
+

Choose your preferred platform:

+
+ 💾 Google Drive +
+
+
+ +
+

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! ⚽ +

+
+
+ + +
+ + + \ No newline at end of file diff --git a/docs/task-bas.html b/docs/task-bas.html new file mode 100644 index 0000000..d07e33c --- /dev/null +++ b/docs/task-bas.html @@ -0,0 +1,390 @@ + + + + + + BAS Task - SoccerTrack v2 + + + +
+
+ +

⚡ Ball Action Spotting (BAS)

+
+ +
+
+

Task Overview

+

+ Input: Panoramic 4K video (full match)
+ Output: Temporal action labels for 12 ball event classes with global timestamps +

+ +
+ Alignment with SoccerNet Ball Action Spotting:
+ ✅ 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)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
timefloatGlobal timestamp in video (seconds)
event_classstringOne of 12 action classes (see below)
teamstringleft / right / null
player_idint/nullTrack ID (when available)
+ +

12 Action Classes

+
+
Pass
+
Drive
+
Header
+
High Pass
+
Out
+
Cross
+
Throw In
+
Shot
+
Ball Player Block
+
Player Successful Tackle
+
Free Kick
+
Goal
+
+
+ +
+

File Layout

+
production/
+├── videos/
+│   ├── 117093.mp4
+│   └── ...
+├── gsr/
+├── bas/
+│   ├── 117093/
+│   │   └── 117093.json
+│   ├── 117094/
+│   │   └── 117094.json
+│   └── ...
+├── mot/
+└── raw/
+    ├── 117093/
+    │   ├── 117093_12_class_events.json    # Original BePro events
+    │   └── ...
+    └── ...
+ +

+ Each match has one annotation file in its own directory containing all ball action events. + Original BePro event files are preserved in raw/ for reference. +

+
+ +
+

Schema & SoccerNet Mapping

+ +

Example JSON Structure

+
{
+  "match_id": "117093",
+  "fps": 25.0,
+  "actions": [
+    {
+      "time": 12.5,
+      "event_class": "Pass",
+      "team": "left",
+      "player_id": 10
+    },
+    {
+      "time": 45.2,
+      "event_class": "Shot",
+      "team": "right",
+      "player_id": 7
+    },
+    ...
+  ]
+}
+ +

SoccerNet BAS Correspondence

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SoccerTrack v2SoccerNet BASNotes
timetimestampGlobal time in seconds
event_classlabel12 action classes
teamteamleft / right
player_idUnique to SoccerTrack v2
+
+ +
+

Evaluation / Metrics

+

+ Evaluation uses Average-mAP at various temporal tolerances (e.g., ±1s, ±2s), + following the SoccerNet Ball Action Spotting Challenge. +

+
    +
  • Tight tolerance: ±0.5s (precise detection)
  • +
  • Loose tolerance: ±2s (event detection)
  • +
+

+ Official devkit: Coming soon +

+
+ +
+

Differences vs SoccerNet BAS

+ +
+ Key Differences: +
    +
  • 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
  • +
+
+
+
+ + +
+ + + diff --git a/docs/task-gsr.html b/docs/task-gsr.html new file mode 100644 index 0000000..33fcfc8 --- /dev/null +++ b/docs/task-gsr.html @@ -0,0 +1,383 @@ + + + + + + GSR Task - SoccerTrack v2 + + + +
+
+ +

🗺️ Game State Reconstruction (GSR)

+
+ +
+
+

Task Overview

+

+ Input: Panoramic 4K video (full match)
+ Output: Per-frame game state on 2D pitch minimap (position + role + team + jersey number) +

+ +
+ Alignment with SoccerNet-GSR:
+ ✅ Same: 2D pitch coordinates, player roles, team assignment, jersey numbers
+ ⚠️ Different: Fixed panoramic camera + full match (not broadcast clips) +
+
+ +
+

Input / Output Definition

+ +

Input

+
    +
  • videos/match_XXXXX.mp4 — Full match panoramic video (4K)
  • +
  • Camera: BePro Cerberus (2 matches) or 3-camera panoramic (8 matches)
  • +
+ +

Output (per frame)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
frameintFrame number
timefloatTimestamp in video (seconds)
player_idintUnique track ID (persistent throughout match)
x, yfloat2D pitch coordinates in meters
rolestringplayer / goalkeeper / referee / other
team_sidestringleft / right / null
jersey_numberint/null0–99 or null
+
+ +
+

File Layout

+
production/
+├── videos/
+│   ├── 117093.mp4
+│   ├── 117094.mp4
+│   └── ...
+├── gsr/
+│   ├── 117093/
+│   │   └── 117093.json
+│   ├── 117094/
+│   │   └── 117094.json
+│   └── ...
+├── bas/
+├── mot/
+└── raw/
+    ├── 117093/
+    │   ├── 117093_keypoints.json
+    │   ├── 117093_mapx.npy
+    │   ├── 117093_mapy.npy
+    │   └── ...
+    └── ...
+ +

+ Each match has one annotation file in its own directory. + Unlike SoccerNet-GSR which uses img1/ for image frames, we reference the video directly + from videos/ to save storage space. +

+
+ +
+

Schema & SoccerNet Mapping

+ +

Example JSON Structure

+
{
+  "match_id": "117093",
+  "fps": 25.0,
+  "annotations": [
+    {
+      "frame": 0,
+      "time": 0.0,
+      "objects": [
+        {
+          "player_id": 1,
+          "x": 52.5,
+          "y": 34.0,
+          "role": "player",
+          "team_side": "left",
+          "jersey_number": 10
+        },
+        ...
+      ]
+    },
+    ...
+  ]
+}
+ +

SoccerNet-GSR Correspondence

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SoccerTrack v2SoccerNet-GSRNotes
x, yx_pos, y_posPitch coordinates (meters)
team_sideleft / rightTeam assignment
jersey_numberjersey_number0–99
roleroleplayer/goalkeeper/referee/other
player_idtrack_idPersistent across full match
+
+ +
+

Evaluation / Metrics

+

+ Evaluation uses GS-HOTA (Game State Higher Order Tracking Accuracy), + following the SoccerNet-GSR Challenge definition. +

+

+ Official devkit: Coming soon +

+
+ +
+

Differences vs SoccerNet-GSR

+ +
+ Key Differences: +
    +
  • Camera view: Panoramic (full-pitch) vs. broadcast (partial view with occlusions)
  • +
  • Duration: Full match (~90 min) vs. short clips
  • +
  • Camera setup: Fixed BePro/3-camera system vs. moving broadcast camera
  • +
  • Level: University amateur matches vs. professional leagues
  • +
+
+
+
+ + +
+ + + diff --git a/docs/task-mot.html b/docs/task-mot.html new file mode 100644 index 0000000..4f34991 --- /dev/null +++ b/docs/task-mot.html @@ -0,0 +1,385 @@ + + + + + + MOT Task - SoccerTrack v2 + + + +
+
+ +

🎯 Multi-Object Tracking (MOT)

+
+ +
+
+

Task Overview

+

+ Input: Panoramic 4K video (full match)
+ Output: Per-frame bounding boxes + persistent track IDs for all players +

+ +
+ Alignment with SoccerNet/MOTChallenge:
+ ✅ Same: MOTChallenge-style format (bbox + ID per frame)
+ ⚠️ Different: Panoramic full-pitch view, long sequences (~90 min) +
+ +
+ 🏆 SoccerTrack Challenge 2025
+ A subset of matches with bounding box annotations is featured in the + SoccerTrack Challenge 2025. +
+
+ +
+

Input / Output Definition

+ +

Input

+
    +
  • videos/match_XXXXX.mp4 — Full match panoramic video (4K)
  • +
+ +

Output (per frame, per object)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
frameintFrame number (1-indexed)
track_idintUnique persistent ID
x, y, w, hfloatBounding box (top-left x, y + width, height)
conffloatConfidence score (0–1)
classintObject class (1=person, -1=ignored)
+
+ +
+

File Layout

+
production/
+├── videos/
+│   ├── 117093.mp4
+│   └── ...
+├── gsr/
+├── bas/
+├── mot/
+│   ├── 117093/
+│   │   ├── gt/
+│   │   │   └── gt.txt
+│   │   └── seqinfo.ini
+│   ├── 117094/
+│   │   └── ...
+│   └── ...
+└── raw/
+    ├── 117093/
+    │   ├── 117093_tracker_box_data.xml    # Original BePro tracking
+    │   └── ...
+    └── ...
+ +

+ Format follows MOTChallenge structure for compatibility with existing tools. + Original BePro tracking XML files are preserved in raw/ for reference. +

+
+ +
+

Schema & MOTChallenge Mapping

+ +

Example gt.txt Format (CSV)

+
# frame, track_id, x, y, w, h, conf, class, visibility
+1, 1, 1024.5, 512.3, 64.2, 128.5, 1.0, 1, 1.0
+1, 2, 1500.2, 600.1, 68.3, 135.2, 1.0, 1, 1.0
+2, 1, 1026.1, 513.0, 64.5, 129.0, 1.0, 1, 1.0
+...
+ +

seqinfo.ini Example

+
[Sequence]
+name=match_117093
+imDir=videos
+frameRate=25
+seqLength=135000
+imWidth=3840
+imHeight=2160
+imExt=.mp4
+ +

MOTChallenge Correspondence

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldMOTChallengeNotes
frameColumn 11-indexed frame number
track_idColumn 2Persistent ID
x, y, w, hColumns 3–6Bounding box (pixels)
confColumn 7Confidence (1.0 for GT)
classColumn 81 = person
+
+ +
+

Evaluation / Metrics

+

+ Evaluation uses standard MOT metrics: +

+
    +
  • HOTA (Higher Order Tracking Accuracy) — primary metric
  • +
  • MOTA (Multi-Object Tracking Accuracy)
  • +
  • IDF1 (ID F1 Score)
  • +
  • AssA, DetA (Association & Detection accuracy)
  • +
+

+ Compatible with TrackEval library. +

+

+ Official devkit & challenge leaderboard: See SoccerTrack Challenge 2025 +

+
+ +
+

Differences vs SoccerNet Tracking

+ +
+ Key Differences: +
    +
  • Camera view: Panoramic (full-pitch) vs. broadcast (partial/zoomed)
  • +
  • Duration: Full match (~90 min, ~135k frames) vs. short clips
  • +
  • Challenges: Long-term ID persistence, scale variation across pitch
  • +
  • Resolution: 4K panoramic (3840×2160) vs. HD broadcast
  • +
+
+
+
+ + +
+ + +