MotoReID A deep learning pipeline for **MotoGP team detection, tracking, and re-identification** from race broadcast footage. This system combines **YOLOv8** for robust object detection with **DINOv3** (Vision Transformer) embeddings for semantic team classification. It addresses specific challenges in high-speed sports computer vision: persistent identity tracking across extreme occlusions, rapid camera cuts, and motion blur. This project is in active development.

GitHub

Model Overview

This repository contains trained model weights for the MotoReID project.

Included Weights

File Description Size
motogp_yolov8m_detector.pt Fine-tuned YOLOv8m for MotoGP prototype (bike) detection ~50MB
dinov3_team_classifier.pkl Logistic Regression classifier trained on DINOv3 embeddings ~35KB

Pipeline Architecture

Video Frame โ†’ YOLOv8 Detector โ†’ Crop โ†’ DINOv3 Feature Extraction โ†’ Team Classifier โ†’ Re-ID Tracking
  1. Detection: YOLOv8m (fine-tuned) localizes motorcycles in each frame
  2. Feature Extraction: DINOv3 ViT-S/16 extracts dense semantic features from detected regions
  3. Classification: Logistic Regression head predicts team identity from DINO embeddings
  4. Re-ID & Tracking: ByteTrack + Cosine Similarity Memory Bank for persistent tracking

Supported Teams (2025 Season)

Manufacturer Teams
Ducati Lenovo Team, Gresini Racing, VR46 Racing
Aprilia Factory Racing, Trackhouse Racing
KTM Factory Racing, Tech3
Honda Repsol HRC, LCR Honda
Yamaha Monster Energy, Prima Pramac

Usage

1. Download Weights

from huggingface_hub import hf_hub_download

# Download YOLOv8 detector
detector_path = hf_hub_download(
    repo_id="johnamit/motogp-team-detection",
    filename="motogp_yolov8m_detector.pt"
)

# Download team classifier
classifier_path = hf_hub_download(
    repo_id="johnamit/motogp-team-detection",
    filename="dinov3_team_classifier.pkl"
)

2. Prerequisites (Base Models)

These weights require the following base models:

YOLOv8 (Ultralytics)

pip install ultralytics

YOLOv8 Documentation

DINOv3 (Meta AI)

Clone the DINOv3 repository for feature extraction:

git clone https://github.com/facebookresearch/dinov3.git

Download the ViT-S/16 pretrained weights from the DINOv3 repo.

Training Details

YOLOv8 Detector

  • Base Model: YOLOv8m
  • Dataset: 501 annotated instances (404 motorcycles, 97 null/background)
  • Augmentation: Rotations, exposure adjustments, noise injection
  • Platform: Roboflow

DINOv3 Team Classifier

  • Backbone: DINOv3 ViT-S/16 (frozen, pretrained on LVD-142M)
  • Head: Scikit-learn Logistic Regression
  • Dataset: ~700 high-quality crops across 11 teams
  • Features: 384-dimensional embeddings

Performance

The system is optimized for broadcast footage with:

  • High-speed motion blur handling
  • Rapid camera cut recovery
  • Persistent identity tracking across occlusions
  • Label locking after high-confidence agreement

Citation

If you use these weights in your research, please cite:

@software{motogp_team_detection_2025,
  author = {Amit John},
  title = {MotoGP Team Detection and Re-Identification},
  year = {2025},
  publisher = {GitHub},
  url = {https://github.com/johnamit/mgp-detect}
}

License

MIT License - See the GitHub repository for full details.

Acknowledgments

Downloads last month
39
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support