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

19 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

🌟 Future Features / Contributing Ideas

Looking for ways to contribute or curious about what's next? Check out our list of feature ideas!


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

 
 
 

Contributors

Languages