Skip to content

A real-time boxing assistant application that uses computer vision and machine learning to track, count, and analyze your punches.

License

Notifications You must be signed in to change notification settings

tblakex01/PunchTracker-AI-Boxing-Assistant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🥊 PunchTracker - AI Boxing Assistant 🥊

License Python TensorFlow OpenCV Status

A real-time boxing assistant application that uses computer vision and machine learning to track, count, and analyze your punches.

✨ Features

  • 📹 Real-time webcam punch detection
  • 🔍 Advanced pose estimation using TensorFlow's MoveNet
  • 👊 Detects and classifies different punch types (jabs, crosses, hooks, uppercuts)
  • 📊 Live statistics and performance tracking
  • 🎯 Visual feedback for punch detection
  • 🔧 User calibration for personalized detection
  • 💾 Session history and progress tracking
  • 📈 Performance analytics and visualization

🚀 Tech Stack

🛠️ Installation

Prerequisites

  • Python 3.8 or higher
  • Webcam
  • Required libraries (see requirements.txt)

Setup

  1. Clone the repository:

    git clone https://github.com/yourusername/punchtracker.git
    cd punchtracker
  2. Create a virtual environment (optional but recommended):

    python -m venv venv
  3. Activate the virtual environment:

    • Windows:
      venv\Scripts\activate
    • macOS/Linux:
      source venv/bin/activate
  4. Install the required dependencies:

    pip install -r requirements.txt

📋 Usage

  1. Start the application:

    python main.py
  2. Controls:

    • ESC: Exit the application
    • C: Start calibration
    • D: Toggle debug view (shows skeleton)
    • R: Reset current session
    • S: Show detailed statistics
  3. Calibration:

    • Follow the on-screen instructions to calibrate the application to your movements
    • Move through each step of different punch types
    • The system will adjust its detection parameters to your specific style

📊 Data Storage

All session data is stored in a local SQLite database in the data folder. This includes:

  • Session date and duration
  • Total punch count and types
  • Punches per minute
  • Historical performance data

🏗️ Project Structure

punchtracker/
├── main.py              # Main application entry point
├── requirements.txt     # Required dependencies
├── data/                # Session data storage
├── models/              # Model storage (downloaded automatically)
└── utils/
    ├── pose_detector.py # TensorFlow pose detection module
    ├── punch_counter.py # Punch detection and classification
    ├── ui_manager.py    # UI and visualization components
    ├── data_manager.py  # Data storage and retrieval
    └── calibration.py   # User calibration system

🔧 Advanced Configuration

The application can be customized by modifying the following parameters:

  • Pose Detection: Change model type in pose_detector.py (lightning or thunder)
  • Detection Sensitivity: Adjust thresholds in punch_counter.py
  • UI Customization: Modify colors and layout in ui_manager.py

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgements


Made with ❤️ by Anthony M

About

A real-time boxing assistant application that uses computer vision and machine learning to track, count, and analyze your punches.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages