brondijk.xyz

← Back to Fun Side Quests

Squat Coach completed

🏋️ Overview

Squat Coach is a computer vision application that helps users perfect their squat form. Using a webcam, it tracks body movements in real-time, provides feedback on form, and counts reps with proper technique.

Python
OpenCV
MediaPipe
TensorFlow

Features

  • Real-time body pose tracking using webcam
  • Automatic squat rep counting
  • Form analysis with feedback (depth, knee alignment, back angle)
  • Progress tracking over time
  • Customizable workout plans
  • Audio cues for form correction

🛠️ Implementation

Squat Coach uses MediaPipe's pose estimation model to identify 33 key body landmarks in real-time. Custom algorithms analyze the relationships between these points to determine:

  • Hip angle (for squat depth)
  • Knee alignment (to prevent valgus)
  • Back angle (to maintain proper posture)
  • Rep detection (using state machine logic)

The application provides visual feedback by overlaying guidelines and indicators on the video feed, along with audio cues for form corrections.

def analyze_squat_form(landmarks):
    # Calculate hip angle
    hip_angle = calculate_angle(
        landmarks[LANDMARK_MAP['left_shoulder']],
        landmarks[LANDMARK_MAP['left_hip']],
        landmarks[LANDMARK_MAP['left_knee']]
    )
    
    # Calculate knee alignment
    knee_alignment = check_knee_alignment(
        landmarks[LANDMARK_MAP['left_hip']],
        landmarks[LANDMARK_MAP['left_knee']],
        landmarks[LANDMARK_MAP['left_ankle']]
    )
    
    # Determine squat depth
    if hip_angle < 90:
        depth = "DEEP"
    elif hip_angle < 110:
        depth = "PARALLEL"
    else:
        depth = "SHALLOW"
        
    return {
        "depth": depth,
        "knee_alignment": knee_alignment,
        "hip_angle": hip_angle
    }

🔮 Future Improvements

  • Support for additional exercise types (deadlifts, lunges, etc.)
  • Mobile app version for iOS and Android
  • Cloud-based progress tracking and analytics
  • Integration with fitness wearables for heart rate monitoring
  • Personalized coaching based on user progress