Overview
Systems like Veo put AI cameras at the pitch. I’m building the analysis side as software: take an existing recording or a live stream from any camera, and turn it into match data automatically.
The goal: detect shots and other key events, track where players move on the pitch, and identify exactly who each player is when the squad has been preloaded, to make our league feel professional without professional budgets.
It builds directly on the federation platform, which already knows every team, squad and fixture. The preview at the top of this page shows where it’s heading.
Training data

- Players labelled frame by frame
- Referee as its own class, so officials never count as players
- Ball the hardest class: small, fast, often hidden
- Frame 1,537 of 98,834 a full match is close to 100,000 frames
- Six classes player, goalkeeper, referee, ball, goal and blank
Detection starts with good labels. I annotate match footage in Label Studio with six classes, then train YOLOv8 on our own pitches, kits and camera angles instead of relying on generic sports datasets.
How it works
- Recording or stream
- Frame sampling
- YOLOv8 detection
- Tracking
- Pitch positions
- Events
- Player identity
- Clips and stats
Target pipeline, from video to match data.
Detection, labelling, backend and MCP are in place; events, positions and identity are what I’m building now.
How I’m approaching it
Use the data we already have
The federation already stores every squad, jersey number and fixture. Identity becomes a matching problem against known players, not open-ended face recognition.
Specialised models first, a general model on top
YOLOv8 does the fast, frame-level work. The vision model, reached through MCP, handles context and judgement, the same split I use for AI match previews: compute what you can, let the model decide only what it must.
Works with any camera
Recordings and streams from ordinary cameras, so clubs don’t need dedicated hardware.
Where it stands
- In placeLabel Studio annotation project, YOLOv8 connected to my backend, and an MCP server with a vision stream model.
- In progressShot and event detection, player tracking and pitch positions, and identifying players from preloaded squad data.
- NextAutomatic clips and per-player stats, published to the league website next to live scores and AI match previews.