Insights · Case Studies

Sports · Computer vision

Turning a TV broadcast into tactical match data

Broadcast Football Analytics

28 stats per team, straight off the TV feed.

Every player in shot placed on a to-scale map of the pitch.

Focus area
Computer Vision · Sports Analytics
Input
TV Match Broadcast
Output
Pitch Map + 28 Stats per Team

We built a system that watches a normal TV broadcast of a football match and works out where every player in shot is standing, in metres, on a map of the pitch.

From those positions it keeps a running count of 28 stats for each team, so analysts get tracking data from footage they already have.

The Challenge

Lots of footage, not much data

A scoreline and a possession figure only tell you so much. Coaches and analysts want to know how much space players had, how quickly a team moved the ball forward and how often they got into the box. All of that depends on knowing where everyone is, which usually means tracking cameras installed around the stadium. Most clubs and leagues don't have them.

Most professional matches are filmed for TV anyway, so the footage is there. It just isn't made for analysis. The camera pans and zooms, cuts to close-ups and replays, and a spot on the screen could be anywhere on the grass.

The Approach

From the TV picture to a map of the pitch

Here's the system running on a match broadcast: its pitch map on the left, the TV picture on the right. Every frame goes through four steps.

Pitch map and broadcast, in stepFrame by frame

A looping clip of the system at work: on the left its top-down pitch map, with each player as a dot in their team's colour and the ball in yellow, moving in step with the TV broadcast on the right. A bar underneath shows which team has the ball and the match clock.

The system's pitch mapTV broadcast
Home sideAway sideBall
  1. 01

    Skip what isn't usable

    Close-ups, replays and breaks in play are ignored, so they never make it into the stats.

  2. 02

    Find the players and the ball

    Each player in shot is detected and put on a team based on their kit colour.

  3. 03

    Place them on the pitch

    The camera view is matched to the real pitch, so a position on screen becomes a position in metres on a 105 × 68 m field.

  4. 04

    Keep count

    Who has the ball, where it goes, how fast, and how much space players have are worked out from the positions and added to each team's tally.

The Output

28 stats for each team

Both teams get the same set, and every number updates as the match goes on. Across the five or so minutes of this match we ran it on, it had City on 91% possession and in United's box seven times. United didn't reach the final third once.

In Practice

When the camera cuts away

TV coverage spends a lot of time away from the action. In those five minutes, only about half the footage showed play the system could use. The rest was close-ups, replays and stoppages, including a 45-second stretch of appeals and replays after a foul.

When that happens, the map goes blank and the stats pause until the wide shot comes back. We'd rather have a gap in the numbers than fill it with guesses. When the wide shot is on, the ball is on the map in 96% of frames.

What it's useful for

It means a match that was only ever filmed for TV can still be measured. A scout can compare players in leagues with no tracking data, an analyst can study an opponent's last few televised games, and older matches can be revisited from broadcast archives. The footage on this page is from 2020.

Every stat sits next to the picture it came from, so an analyst can check any number against what actually happened. And because everything is stored as positions in metres, a new stat is usually just a new definition.

Work with us

Have a problem worth publishing?

If it's hard enough to end up in this record, it's the kind of work we want. Tell us what to build, and we'll show ours.