Skip to content

AI-powered fitness assistant for real-time pose estimation, exercise counting, and workout feedback.

License

Notifications You must be signed in to change notification settings

yo-WASSUP/Good-GYM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Good-GYM: AI Fitness Assistant ๐Ÿ’ช

Good-GYM Logo

GitHub stars GitHub forks GitHub license

AI Fitness Assistant Based on RTMPose

English | ไธญๆ–‡

LinkedIn introduction

๐Ÿ†• Changelog

  • 2025-06-07: Major update! Dropped YOLO models and all GPU support. Now uses only RTMPose for pose detection, and runs on CPU only. Simpler, more compatible, and easier to use.
  • 2025-06-12๏ผšOptimize exercise_counters.py for counting accuracy, code structure optimization
  • 2025-11-14: Reverted asynchronous pose detection due to accuracy issues, restored synchronous pose detection. Fixed crash when switching from statistics mode back to detection mode.
  • 2025-11-15: New exercise database feature! All exercise configurations are now managed in data/exercises.json file. You can easily add, modify, or remove exercise types without modifying code.

๐Ÿ”ฎ Future Development

  • Multi-language interface
  • Improve pose detection accuracy
  • Add support for more exercise types
  • Add custom exercise types template
  • Recognizing Motion Accuracy
  • Motion Error Correction Indication
  • Add voice feedback
  • Mobile Application Support

ๆผ”็คบ

ๆผ”็คบ

๐ŸŒŸ Features

  • Real-time Exercise Counting - Automatically counts your repetitions
  • Multiple Exercise Support - Including squats, push-ups, sit-ups, bicep curls, and many more
  • Advanced Pose Detection - Powered by RTMPose for accurate tracking
  • CPU Only - No GPU required, works on most computers
  • Visual Feedback - Live skeleton visualization with angle measurements
  • Workout Statistics - Track your progress over time
  • User-friendly Interface - Clean PyQt5 GUI with intuitive controls
  • Works with any webcam - No special hardware required
  • Runs locally - Complete privacy

๐Ÿ“ฆ Direct Download

  • If you don't want to set up a Python environment, you can download our pre-packaged executable:

    Windows EXE package:

    Baidu Netdisk Link code: 8866

    Google Drive

๐Ÿ“ Usage Guide

Controls

  • Use the interface buttons to select different exercises
  • Real-time feedback shows your current form and repetition count
  • Press the "Reset" button to reset the counter
  • Use manual adjustment buttons to correct the count if needed
  • Toggle skeleton visualization on/off
  • View your workout statistics over time

๐ŸŽฏ Custom Exercise Types

All exercise types are now stored in the data/exercises.json file. You can easily add, modify, or remove exercise types without modifying code!

How to Add a New Exercise Type

  1. Keypoint Index Reference

    • The system uses COCO 17 keypoint format:
      • 0: nose, 1: left_eye, 2: right_eye, 3: left_ear, 4: right_ear
      • 5: left_shoulder, 6: right_shoulder, 7: left_elbow, 8: right_elbow
      • 9: left_wrist, 10: right_wrist, 11: left_hip, 12: right_hip
      • 13: left_knee, 14: right_knee, 15: left_ankle, 16: right_ankle
  2. Configuration Parameters

    • down_angle: Angle threshold when lowering (degrees)
    • up_angle: Angle threshold when raising (degrees)
    • keypoints.left: Left side three keypoint indices [pt1, pt2, pt3] for angle calculation
    • keypoints.right: Right side three keypoint indices [pt1, pt2, pt3] for angle calculation
    • is_leg_exercise: Whether it's a leg exercise (true/false), affects counting logic
    • angle_point: Keypoint indices [pt1, pt2, pt3] for displaying angle lines on video
  3. Example: Adding a New Exercise

    "my_custom_exercise": {
      "name_zh": "ๆˆ‘็š„่‡ชๅฎšไน‰่ฟๅŠจ",
      "name_en": "My Custom Exercise",
      "down_angle": 120,
      "up_angle": 170,
      "keypoints": {
        "left": [5, 7, 9],
        "right": [6, 8, 10]
      },
      "is_leg_exercise": false,
      "angle_point": [6, 8, 10]
    }
  4. Restart the Application

๐Ÿ“‹ Requirements

  • Python 3.9
  • Webcam
  • Windows/Mac/Linux: CPU only, no GPU required. Performance may vary by hardware.

๐Ÿš€ Environment Setup

Installation

  1. Clone and install

    git clone https://github.com/yo-WASSUP/Good-GYM.git
    cd Good-GYM
    
    # Create virtual environment
    python -m venv venv
    # Activate (Windows)
    .\venv\Scripts\activate
    # or (Mac/Linux)
    source venv/bin/activate
    
    # Install dependencies
    pip install -r requirements.txt
  2. Run the application

    python workout_qt_modular.py

๐Ÿ–ผ๏ธ Screenshots

Screenshot 1

Screenshot 2

Screenshot 3

Screenshot 4

Screenshot 5

๐Ÿค Contributing

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

Thanks to RTMPose open source pose detection model: https://github.com/Tau-J/rtmlib

๐Ÿ“„ License

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

About

AI-powered fitness assistant for real-time pose estimation, exercise counting, and workout feedback.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors 2

  •  
  •  

Languages