Skip to content

AnInsomniacy/badminton-ai-vision

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Badminton AI Vision

A computer vision system for analyzing badminton matches using AI-powered pose detection and court calibration to track player movements, distances, and speeds.

Badminton Analysis

Features

  • Pose Detection: High-precision skeletal tracking using YOLOv8/v11
  • Court Calibration: Maps pixels to real-world coordinates for accurate measurements
  • Distance Tracking: Calculates total movement distance for each player
  • Speed Analysis: Real-time measurement of player instantaneous speed
  • ROI Processing: Focus detection on relevant court areas
  • Player Identification: Automatically distinguishes between players
  • Visualization: Color-coded skeleton rendering with customizable display

Requirements

  • Python 3.8+
  • Dependencies listed in requirements.txt

Installation

# Clone the repository
git clone https://github.com/AnInsomniacy/badminton-ai-vision.git
cd badminton-ai-vision

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Create directories for videos
mkdir -p raw_videos processed_videos

Note: You'll need to place a YOLOv8/v11 pose model in the models/ directory.

Usage

1. Court Calibration

Calibrate the court coordinates for accurate distance measurements:

python court_calibration/court_calibrator.py

2. Process Video

python main.py

3. Configuration

Edit the CONFIG dictionary in main.py to customize analysis settings:

CONFIG = {
    "input_path": "raw_videos/YourMatch.mp4",
    "model_path": "models/yolo11x-pose.mlpackage",
    "enable_distance_tracking": True,
    "enable_speed_tracking": True,
    "person_aliases": {
        "upper": "PLAYER 1",
        "lower": "PLAYER 2"
    }
}

Project Structure

badminton-ai-vision/
├── court_calibration/          # Court calibration tools
│   ├── court_calibrator.py
│   └── ROISelector.py
├── processor/                  # Core processing modules
│   ├── video_processor.py
│   ├── image_processor.py
│   ├── model_processor.py
│   ├── distance_processor.py
│   ├── speed_processor.py
│   └── mask_processor.py
├── models/                     # YOLO model storage
├── raw_videos/                 # Input videos
├── processed_videos/           # Output videos
├── main.py                     # Main application
├── renderer.py                 # Visualization utilities
└── requirements.txt

Key Configuration Options

Setting Description
model_path Path to YOLO pose model
confidence_threshold Detection confidence (0.0-1.0)
input_path Path to input video file
enable_distance_tracking Enable distance measurement
enable_speed_tracking Enable speed analysis
roi Region of interest coordinates
person_aliases Custom player names

Acknowledgments

About

AI-powered badminton match analysis tool for tracking player movement, measuring distances, and analyzing speed. Future updates will include shot detection and performance metrics.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages