Sports video analytics

Computer Vision for Sports

We build video pipelines that detect and track every player and the ball, work out who is on which team, and turn ball movement into passes, interceptions and match statistics you can act on.
  • Works on standard match video
  • Player IDs kept across the match
  • Events and stats, not just boxes
sample-match_2nd-half.mp4
Processing
LIVE 23:411080p · 25 fps · single camera

1/4Standard match footage goes in. No special cameras: a broadcast feed or a single elevated camera is enough to start.

Why it matters

The video exists. The numbers behind it usually don't.

Clubs, academies and media teams record everything and watch it back by hand. Tagging a match takes hours, clip turnaround misses the news cycle, and coaching feedback ends up based on impressions rather than counts.

  • Manual tagging eats the week

    An analyst scrubs through a full match to log passes, turnovers and set pieces before anyone can use them.
  • Highlights arrive late

    By the time clips are cut and captioned, the moment has passed on social.
  • Players get lost in the footage

    Occlusions and similar kits break simple tracking, so per-player numbers are unreliable.
  • Technique feedback is subjective

    Without joint angles and repeatable measurements, coaching notes are hard to compare week to week.
TopicManual video analysisVision pipeline on the same footage
TaggingHours of scrubbing per matchEvents logged automatically as the video is processed
Per-player dataSpot counts for a few playersEvery tracked player, with an ID kept through the match
ClipsCut by hand after the gameClips built around detected events
TechniqueCoach's eye and slow motionJoint angles and ball trajectories measured frame by frame

How it works

A pipeline, not a single model

This is the structure we built for MiniStats: detection, tracking, team identification and then event logic on top of the tracks. Each stage is trained and checked on your own footage.

Soccer match footage with each player in a numbered tracking box, coloured movement trails across the pitch and a ball possession panel showing 21 percent against 79 percent
Tracking, team colours and possession from our MiniStats match analytics project.
  1. Stage 1

    Ingest the footage

    Broadcast video, a single elevated camera or phone footage from the sideline. Frames are extracted and the playing area is located so positions can be related to the pitch.
    Frames with field geometry
  2. Stage 2

    Detect players and the ball

    A detector trained on annotated match video finds every player and the ball in each frame, including the small, fast-moving cases that general models miss.
    Boxes per frameYOLOv8
  3. Stage 3

    Track and re-identify

    A tracker links detections across frames so each player keeps an ID, and re-identification picks players back up after they leave the frame or are occluded.
    Player and ball tracksNorfair
  4. Stage 4

    Assign teams

    Players are clustered by appearance using the full player crop, which in our testing separated teams more reliably than shirt-colour histograms alone.
    Team label per trackk-means clustering
  5. Stage 5

    Derive events

    The ball's position and the nearest player drive the event logic: ball moving between team-mates is a pass, to an opponent an interception. Each event carries a timestamp.
    Timed event log
  6. Stage 6

    Produce stats and clips

    Events roll up into possession, pass counts and per-player numbers, and the timestamps mark the moments worth cutting into highlight clips.
    Match report and clipsJSONAPI

What we build

Tracking, technique and match intelligence

Every sport has its own objects, rules and camera angles. We train for yours rather than forcing a generic model onto the footage.

  • Player tracking and re-identification

    Multi-object tracking that holds an ID through occlusions and substitutions, giving distance covered, positioning and heatmaps per player.
    Per-player movement data
    Match analytics case study
  • Ball detection and trajectory

    Small, fast objects tracked frame by frame for release speed, flight path and deviation, in cluttered outdoor conditions.
    Trajectories and speeds
    Golf ball detection
  • Pose and form analysis

    Joint keypoints per frame for bowling actions, swings and serves, with angles you can compare between sessions and athletes.
    Joint angles over time
  • Event detection and tagging

    Passes, interceptions, shots and possession changes derived from ball and player tracks, each with a timestamp into the video.
    Timestamped event log
  • Automated highlights

    Detected events become short clips ready for social or broadcast, without an editor scrubbing the full match.
    Clips cut around events
  • Training drill analysis

    Repetition counting and form checks over practice footage, so coaches see what happened across a whole session.
    Rep counts and form flags
    Custom model training

In practice

Projects we have shipped in sports

Match analytics for MiniStats

MiniStats wanted analytics from ordinary match video. We annotated around ten matches, trained a YOLOv8 detector for players and ball, tracked them with Norfair, clustered players into teams, and derived passes and interceptions from the ball's movement between players.
  • Player and ball detection trained on annotated matches
  • Re-identification through occlusions and re-entries
  • Possession, passes and interceptions per team
Soccer match with numbered tracking boxes on players, movement trails across the pitch and a ball possession panel
Tracked players, movement trails and possession from the MiniStats build.

Find My Ball: detection on the phone in your pocket

FMB needed golf ball detection that works in tall grass and leaf litter, on the course, with no connection. We fine-tuned a YOLO model for small objects outdoors and optimised it with quantization and CoreML so it runs in real time on the phone.
  • Small-object detection in cluttered terrain
  • Quantized and compiled for on-device inference
  • No cloud round trip during a round
Phone screen showing the camera view of long grass with a golf ball circled by the app and an 88 percent confidence label
On-device golf ball detection in the Find My Ball app.

Find My Ball, on iPhone hardware

On-device inference time
<30ms
Detection recall
92%

Open-source foundations: AS-One

We also build the tooling. AS-One is our open-source framework that puts YOLO detectors, trackers such as ByteTrack and DeepSORT, segmentation and pose behind one Python API, which is how we prototype a new sport quickly.
  • Detectors and trackers behind one API
  • PyTorch, ONNX and CoreML runtimes
  • 580+ GitHub stars
AS-One object tracking dashboard: a crowd video with tracked people and bags labelled, beside settings for confidence, custom classes and frame rate
The AS-One tracking dashboard, counting tracked objects in a video.

Delivery

Batch after the match, or live on the wire

Post-match processing is the simplest place to start. Where latency matters, the same models run optimised on a GPU or an edge device; our Jetson deployment tutorial shows the approach.

  • Batch processing

    Upload a match, get an event log, stats and clips back through an API.
  • Live overlays

    Low-latency inference for real-time graphics on a stream or broadcast.
    Edge deployment
  • On-device apps

    Quantized models running on phones for coaching and consumer apps.
  • Your dashboards

    JSON events and stats into your own analytics platform or app.

Getting started

Start with a few matches of your own video

We work from your footage and your definitions of the events that matter in your sport.

  1. Step 1: Scoping call

    30 minutes

    We look at sample footage, camera angles and the metrics you want, and say what is realistic from that video.

    • NDA on request
  2. Step 2: Proof of concept

    4–6 weeks

    Annotation, detector training and tracking on your matches, measured against manually tagged clips.

    • Accuracy checked on held-out video
  3. Step 3: Production

    Ongoing

    Integrated with your platform or app, scaled for the season, and retrained as kits, venues and camera setups change.

    • You own the IP

FAQ

Questions, answered

What clubs, academies and media teams ask before a pilot.

Need tracking somewhere other than a pitch? See computer vision development.

  • Our models are trained to handle standard broadcast video at various resolutions and lighting conditions, so no special cameras are needed.

Book a strategy session

Talk to an AI engineer about your project

Tell us what you want to automate. The first call is a 30-minute working session with an engineer, not a sales pitch.

  • Send the form, it takes 2 minutes
  • We reply within 1 business day, under NDA if you need it
  • A 30-minute call to scope feasibility and next steps

Tell us about your project

By submitting, you agree to our Privacy Policy. We never share your details.