This repository serves as the research lab and archive for the High-Speed Badminton Match AI Analyser. It contains the raw notebooks used for data preparation, model experimentation, and training.
Please note: The notebooks in this repository are raw research artifacts.
- Code State: Many notebooks are messy and may contain non-working code, debug blocks, or hardcoded paths specific to the original environment, which include Google Colab, Google Drive, and H100 servers (via RunAI).
- Version Uncertainty: As this project evolved rapidly, it is not able to determine which specific notebook version produced the final production weights.
- Purpose: These files are provided for transparency and reference regarding the development methodology, rather than as a clean, execute-from-top-to-bottom tutorial.
For the clean, production-ready inference pipeline, please refer to the Backend API repository linked below.
This project is divided into three main repositories to handle the frontend, backend logic, and model development separately:
- Frontend: https://github.com/bryanlje/mds06-frontend
- Backend API: https://github.com/bryanlje/mds06-backend
- Model Training & Data Preparation (This Repo): https://github.com/bryanlje/mds06-ml
FINAL_FULL_PIPELINE.ipynb: The most complete integration notebook used to prototype the end-to-end logic (Detection → Tracking → Shuttle → Action) before it was refactored into the production backend.
Scripts used to transform raw annotations into training datasets.
cvat_to_csv_bryan.ipynb: Converting raw CVAT export JSONs into standardised CSV formats.generate_clips_from_csv_bryan.ipynb: Slicing full match videos into action-specific clips.new_dataset_format.ipynb: Formatting data for PyTorchVideo loaders.
Notebooks for training YOLOv8/11 to detect players.
yolo_bryan training my_yolo11s_finals.ipynb(Final training run).
Experiments with StrongSORT and OSNet for player Re-Identification.
Extensive experimentation with SlowFast (ResNet-101) for classifying badminton shots.
- Note on Training Process: The training for the final SlowFast model was highly iterative and is not fully captured by a single notebook. It involved:
- Many stop-start cycles.
- Manually adjusting learning rates and epochs based on interim results.
- Swapping datasets (high and standard frame rate clips) mid-training to refine performance.
- Therefore, the notebooks here represent snapshots of this process, with NO exact uninterrupted training run.
Exploratory work including DINOv3 foundation models and pose estimation tests.
Please be aware that the following notebooks are not included in this archive:
- 1D CNN Training: The training script for the contact detection model (Shuttlecock trajectory analysis).
- Visualisation: The standalone notebook used for generating charts to showcase our results (bar charts, heatmaps, etc).
This project was developed by Team MDS06:
- Bryan Leong Jing Ern
- Phua Yee Yen
- Ting Shu Hui
- Lee Jian Jun Thomas
Email: 2025mds06@gmail.com