Davidsv/CourtSide-Computer-Vision-v1
1197
CourtSide Computer Vision v1 - Complete Tennis Detection
Fine-tuned YOLOv11n model for comprehensive tennis analysis with 10-class detection: rackets, balls, and court zones. The most complete model in the CourtSide Computer Vision suite.
Model Details
- Model Name: CourtSide Computer Vision v1
- Model ID:
Davidsv/CourtSide-Computer-Vision-v1 - Model Type: Object Detection
- Architecture: YOLOv11 Nano (n)
- Framework: Ultralytics YOLOv11
- Parameters: 2.6M
- Input Size: 640x640
- Classes: 10
Classes Detected
Performance Metrics
Training Details
Datasets
This model was trained on 3 combined datasets:
- Tennis Ball Dataset - Ball detection
- Tennis Racket Dataset - Racket detection
- Tennis Court Dataset - Court zones and net detection
Training Configuration
Model: YOLOv11n (nano)
Epochs: 150
Batch size: 16
Image size: 640x640
Device: Apple Silicon (MPS)
Optimizer: AdamW
Learning rate: 0.001 → 0.01
Patience: 50 (early stopping)Augmentation
- HSV color jitter (h=0.015, s=0.7, v=0.4)
- Random horizontal flip (p=0.5)
- Translation (±10%)
- Scaling (±50%)
- Mosaic augmentation
Loss Weights
- Box loss: 7.5
- Class loss: 0.5
- DFL loss: 1.5
Usage
Installation
pip install ultralyticsPython API
from ultralytics import YOLO
# Load CourtSide Computer Vision v1 model
model = YOLO('Davidsv/CourtSide-Computer-Vision-v1')
# Predict on image
results = model.predict('tennis_match.jpg', conf=0.25)
# Display results
results[0].show()
# Get detections by class
for box in results[0].boxes:
cls = int(box.cls[0])
conf = float(box.conf[0])
class_name = model.names[cls]
print(f"{class_name}: {conf:.2%}")Video Processing
from ultralytics import YOLO
model = YOLO('Davidsv/CourtSide-Computer-Vision-v1')
# Process video with tracking
results = model.track(
source='tennis_match.mp4',
conf=0.25,
tracker='bytetrack.yaml',
save=True
)Command Line
# Predict on image
yolo detect predict model=Davidsv/CourtSide-Computer-Vision-v1 source=image.jpg conf=0.25
# Predict on video
yolo detect predict model=Davidsv/CourtSide-Computer-Vision-v1 source=video.mp4 conf=0.25 save=True
# Track objects in video
yolo detect track model=Davidsv/CourtSide-Computer-Vision-v1 source=video.mp4 conf=0.25Recommended Hyperparameters
Inference Settings
# Balanced (recommended)
conf_threshold = 0.25 # Confidence threshold
iou_threshold = 0.45 # NMS IoU threshold
# High precision (fewer false positives)
conf_threshold = 0.40
iou_threshold = 0.45
# High recall (detect more objects)
conf_threshold = 0.15
iou_threshold = 0.40Use Cases
- Real-time tennis match analysis
- Player position and movement tracking
- Ball trajectory prediction
- Court zone occupancy analysis
- Automated highlight generation
- Swing detection and technique analysis
- Sports analytics dashboards
- Training video analysis
CourtSide Computer Vision Suite
Model Card Authors
- Developed by: Davidsv (Vuong)
- Model date: November 2024
- Model version: v1
- Model type: Object Detection (YOLOv11)
- Part of: CourtSide Computer Vision Suite
Citations
This Model
@misc{courtsidecv_v1_2024,
title={CourtSide Computer Vision v1: Complete Tennis Detection with YOLOv11},
author={Vuong},
year={2024},
publisher={Hugging Face},
howpublished={\url{https://huggingface.co/Davidsv/CourtSide-Computer-Vision-v1}}
}Ultralytics YOLOv11
@software{yolov11_ultralytics,
author = {Glenn Jocher and Jing Qiu},
title = {Ultralytics YOLO11},
version = {11.0.0},
year = {2024},
url = {https://github.com/ultralytics/ultralytics},
license = {AGPL-3.0}
}Datasets
tennis-court-keypoints Computer Vision Model
@misc{
tennis-court-keypoints_dataset,
title = { tennis-court-keypoints Dataset },
type = { Open Source Dataset },
author = { TennisCV },
howpublished = { \url{ https://universe.roboflow.com/tenniscv-yywpa/tennis-court-keypoints } },
url = { https://universe.roboflow.com/tenniscv-yywpa/tennis-court-keypoints },
journal = { Roboflow Universe },
publisher = { Roboflow },
year = { 2024 },
month = { mar },
note = { visited on 2025-11-21 },
}dataset1 Computer Vision Dataset
@misc{
dataset1-yx5qr_dataset,
title = { dataset1 Dataset },
type = { Open Source Dataset },
author = { Tesi },
howpublished = { \url{ https://universe.roboflow.com/tesi-mpvmr/dataset1-yx5qr } },
url = { https://universe.roboflow.com/tesi-mpvmr/dataset1-yx5qr },
journal = { Roboflow Universe },
publisher = { Roboflow },
year = { 2023 },
month = { mar },
note = { visited on 2025-11-21 },
}tennis ball detection Computer Vision Dataset
@misc{
tennis-ball-detection_dataset,
title = { tennis ball detection Dataset },
type = { Open Source Dataset },
author = { Viren Dhanwani },
howpublished = { \url{ https://universe.roboflow.com/viren-dhanwani/tennis-ball-detection } },
url = { https://universe.roboflow.com/viren-dhanwani/tennis-ball-detection },
journal = { Roboflow Universe },
publisher = { Roboflow },
year = { 2023 },
month = { feb },
note = { visited on 2025-11-21 },
}License
MIT License - Free for commercial and academic use.
Acknowledgments
- Built with Ultralytics YOLOv11
- Training datasets from Roboflow Universe
- Part of the CourtSide Computer Vision project for tennis analysis
Contact & Support
- Hugging Face: @Davidsv
Model Size: ~5.4 MB Supported Formats: PyTorch (.pt), ONNX, TensorRT, CoreML Model Hub: Davidsv/CourtSide-Computer-Vision-v1
