Skip to content
Showcase/SoccerNet Action Spotting
intermediatevideo

SoccerNet Action Spotting

Temporal action spotting in soccer broadcast videos. Annotators identify and timestamp key match events including goals, cards, substitutions, and fouls.

Frame 847 / 3200Running01:12 - 01:28Segments:WalkRunStandActionWalkRunStandWalkSceneOutdoorIndoorDrag to create and label temporal segments

Configuration Fileconfig.yaml

# SoccerNet Action Spotting Configuration
# Based on Giancola et al., CVPR 2018
# Task: Identify and timestamp key soccer match events

annotation_task_name: "SoccerNet Action Spotting"
task_dir: "."

# Data configuration
data_files:
  - data.json
item_properties:
  id_key: "id"
  text_key: "video_url"

# Output
output_annotation_dir: "annotation_output/"
output_annotation_format: "json"

# Annotation schemes
annotation_schemes:
  - name: "soccer_events"
    description: |
      Mark key events in the soccer match. Click at the exact moment each event occurs.
      Use keyboard shortcuts for faster annotation.
    annotation_type: "video_annotation"
    mode: "keyframe"
    labels:
      # Scoring events
      - name: "goal"
        color: "#22C55E"
        key_value: "g"
      - name: "penalty"
        color: "#EAB308"
        key_value: "p"
      - name: "own_goal"
        color: "#DC2626"
        key_value: "o"

      # Card events
      - name: "yellow_card"
        color: "#FACC15"
        key_value: "y"
      - name: "red_card"
        color: "#EF4444"
        key_value: "r"
      - name: "second_yellow"
        color: "#F97316"
        key_value: "2"

      # Game flow events
      - name: "substitution"
        color: "#3B82F6"
        key_value: "s"
      - name: "kick_off"
        color: "#8B5CF6"
        key_value: "k"
      - name: "foul"
        color: "#EC4899"
        key_value: "f"

      # Set pieces
      - name: "corner"
        color: "#06B6D4"
        key_value: "c"
      - name: "free_kick"
        color: "#14B8A6"
        key_value: "1"
      - name: "offside"
        color: "#6366F1"
        key_value: "3"

    frame_stepping: true
    show_timecode: true
    playback_rate_control: true
    zoom_enabled: true
    video_fps: 25

# User configuration
allow_all_users: true

# Task assignment
instances_per_annotator: 20
annotation_per_instance: 2

# Instructions
annotation_instructions: |
  ## Soccer Action Spotting Task

  Your goal is to identify and timestamp key events in soccer match footage.

  ### Event Types to Annotate:

  **Scoring Events:**
  - **Goal (g)**: When the ball crosses the goal line
  - **Penalty (p)**: When a penalty kick is awarded or taken
  - **Own Goal (o)**: When a player scores against their own team

  **Card Events:**
  - **Yellow Card (y)**: When referee shows yellow card
  - **Red Card (r)**: When referee shows red card
  - **Second Yellow (2)**: Second yellow card leading to red

  **Game Flow:**
  - **Substitution (s)**: Player substitution
  - **Kick-off (k)**: Start/restart of play
  - **Foul (f)**: When referee calls a foul

  **Set Pieces:**
  - **Corner (c)**: Corner kick awarded
  - **Free Kick (1)**: Free kick awarded
  - **Offside (3)**: Offside called

  ### Instructions:
  1. Watch the video carefully
  2. When you see an event, pause at the exact moment it occurs
  3. Press the keyboard shortcut or click the label to mark the event
  4. The timestamp will be recorded automatically

  ### Tips:
  - Use frame stepping (< >) for precise timing
  - Mark events at the moment they START (e.g., when card is shown, not raised)
  - Use playback speed control to slow down fast action
  - You can zoom the timeline for precision

Sample Datasample-data.json

[
  {
    "id": "match_001_half1",
    "video_url": "https://example.com/videos/match001_half1.mp4",
    "match_id": "match_001",
    "half": 1,
    "home_team": "Team A",
    "away_team": "Team B",
    "competition": "League Cup",
    "date": "2024-10-15",
    "duration_seconds": 2700,
    "description": "First half of League Cup match between Team A and Team B"
  },
  {
    "id": "match_001_half2",
    "video_url": "https://example.com/videos/match001_half2.mp4",
    "match_id": "match_001",
    "half": 2,
    "home_team": "Team A",
    "away_team": "Team B",
    "competition": "League Cup",
    "date": "2024-10-15",
    "duration_seconds": 2850,
    "description": "Second half of League Cup match between Team A and Team B"
  }
]

// ... and 2 more items

Get This Design

View on GitHub

Clone or download from the repository

Quick start:

git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/video/action-recognition/soccernet-action-spotting
potato start config.yaml

Details

Annotation Types

video_annotation

Domain

Computer VisionSports Analytics

Use Cases

Action SpottingEvent DetectionSports Video Analysis

Tags

videosoccersportsaction-spottingeventssoccernet

Found an issue or want to improve this design?

Open an Issue