Badminton Court Keypoint Detector (YOLOv11n-pose, fine-tuned)
A YOLOv11n-pose model that localises a single badminton court as one object with 30 keypoints. The keypoints are ordered in a boustrophedon (snake) layout so they can be mapped to known court coordinates and used to estimate a perspective homography (image ↔ real-world metres) for single-camera broadcast footage.
- Task: pose / keypoint detection (
task=pose) - Classes:
item(the court), 1 class - Keypoints: 30 per court (
kpt_shape = [30, 3]) - Base checkpoint:
yolo11n-pose.pt(Ultralytics) - Framework: Ultralytics 8.4.47
Intended use
Detect the court and its 30 keypoints in a broadcast frame, then solve a homography to convert player/shuttle pixel positions into court-plane coordinates. Part of a hybrid CV + VLM tactical-analysis pipeline.
Not intended for: non-broadcast angles, doubles-court markings it was not trained on, or as a general keypoint detector outside badminton.
How to use
from ultralytics import YOLO
from huggingface_hub import hf_hub_download
w = hf_hub_download("<your-username>/badminton-court-keypoints-yolov11", "court_yolo11n_pose.pt")
model = YOLO(w)
res = model.predict("frame.jpg", imgsz=640, conf=0.25)[0]
kpts = res.keypoints.xy # (num_courts, 30, 2) pixel coordinates
Training
| Base model | yolo11n-pose.pt |
| Epochs | 200 |
| Image size | 640 |
| Batch | 16 |
| Dataset | Roboflow Universe — Badminton Court Keypoint Dataset (learning-9i34b) |
| Dataset link | https://universe.roboflow.com/learning-9i34b/badminton-court-keypoint-dataset |
Evaluation (validation split, from the training checkpoint)
| Metric | Value |
|---|---|
| Precision (box) | 0.999 |
| Recall (box) | 1.000 |
| mAP@50 (box) | 0.995 |
| mAP@50-95 (box) | 0.933 |
| mAP@50 (pose) | 0.995 |
| mAP@50-95 (pose) | 0.199 |
These are the metrics baked into the checkpoint on the dataset's own validation split. The low pose mAP@50-95 reflects strict keypoint-localisation tolerance; for homography the downstream reprojection error is the more meaningful figure (~0.042 m in our pipeline on the evaluated segment — measured downstream, not a checkpoint metric).
Limitations
- Single fixed broadcast viewpoint; not validated on other camera angles or venues.
- Validation split is small (see source dataset); treat metrics as in-domain.
License
Inherits AGPL-3.0 from Ultralytics YOLO. If you use these weights in a network service, AGPL obligations apply.
Citation
@software{jocher2023yolo,
author = {Jocher, Glenn and Qiu, Jing and Chaurasia, Ayush},
title = {Ultralytics YOLO},
url = {https://github.com/ultralytics/ultralytics},
version = {11.0.0}, year = {2024}
}
@misc{roboflow_badminton_court,
title = {Badminton Court Keypoint Dataset},
author = {learning-9i34b},
howpublished = {\url{https://universe.roboflow.com/learning-9i34b/badminton-court-keypoint-dataset}},
journal = {Roboflow Universe}, publisher = {Roboflow}, year = {20XX}
}