Kicky AI, RF-DETR-Seg-Small (football: ball / player / goal)
RF-DETR-Seg-Small instance segmentation model that detects ball, player, goal in amateur football clips. Distilled from SAM3 and NVIDIA LocateAnything-3B auto labels with zero manual annotation.
Built for the Build Small Hackathon (Hugging Face and Gradio), June 2026. Every model in the pipeline stays under the 32B parameter cap.
Results (held-out 12 clip test set)
| detector | goal | leg | pose capture |
|---|---|---|---|
| SAM3 + LocateAnything-3B (teacher) | 83% | 82% | 92% |
| this model (student) | 75% | 75% | 100% |
Real time, runs about 50x faster than the SAM3 and LocateAnything teacher. It beats the teacher on pose because the player masks are cleaner, and it recovers the ball on clips SAM3 missed entirely.
Use
from rfdetr import RFDETRSegSmall
m = RFDETRSegSmall(pretrain_weights="checkpoint_best_ema.pth")
det = m.predict(image, threshold=0.3) # classes: ball, player, goal
Classes: 0 ball, 1 player, 2 goal. Trained at 384px on about 1.8k auto labelled frames.
Hardest part
The ball is 3 to 4 pixels wide and motion blurred at 30fps. Most of the pipeline work went into recovering it.
Links
- Demo Space: https://huggingface.co/spaces/build-small-hackathon/kicky-ai
- Dataset: https://huggingface.co/datasets/build-small-hackathon/kicky-ai-spf
- Writeup: https://dcrey7.substack.com/p/world-fut-coach
- Video demo: https://www.youtube.com/watch?v=knL8shghyBU
Credit
Originally published during the Build Small Hackathon at
build-small-hackathon/kicky-ai-rfdetr-seg. Mirrored here by the author, dcrey7.