How to Make Automatic Highlight Reels from Kids' Soccer Games




Summary
This tutorial builds a highlight-cutting pipeline for kids' soccer footage: two RF-DETR models trained in the Roboflow UI (a player/ball/goal detector and a jersey digit detector) run inside a Roboflow Workflow with BoT-SORT tracking, and a local Python pipeline turns those detections into jersey numbers, a single tracked kid, detected goals, and a finished highlight reel. A small FastAPI web app wraps the whole thing so a parent can upload a game, click their kid once, and get clips back.
If you've ever stood on the sideline of a soccer game, you've probably seen a few parents film matches and segments of the game on their phone. Somewhere in there are the eleven seconds grandma actually wants to see.
I wanted to fix that with computer vision. The idea is that clips can be uploaded into a web app and the computer vision system would be able to track the ball and every player, read jersey numbers, find the goals, and hand back a highlight reel with every play your kid was part of.
Detection and tracking run in a Roboflow Workflow on two trained models. Everything downstream (jersey-number voting, identity stitching, goal scoring, and clip cutting) is a local Python pipeline.
I'll show you how you can build it too. Follow along with this github repository.
Using Computer Vision to Make Automatic Highlight Reels
The eyes are a Roboflow Workflow. It runs object detection on every sampled frame, tracks the people with BoT-SORT, and emits per-frame observations: players with stable track ids, the ball, and goal boxes.
The memory is the local pipeline. It runs through the sampled frames once, collects those observations into a list, and every later stage just works off that list. Each stage also caches its output, so re-tuning the goal scoring never re-runs detection. Detection is the expensive part, and I re-tuned everything else constantly, so this saved me a lot of time.
The judgment happens in three stages: reading jersey numbers, deciding which trac…