Spaces:
Runtime error
A newer version of the Gradio SDK is available: 6.25.0
title: Athletic Ability Analysis
emoji: πββοΈ
colorFrom: blue
colorTo: purple
sdk: gradio
sdk_version: 4.32.2
app_file: app.py
pinned: false
license: mit
πββοΈ Athletic Ability Analysis
A powerful web application that analyzes athletic jump performance from videos using computer vision and pose estimation. Upload a video file or provide a YouTube URL to get detailed metrics about your jump height, flight time, and overall athletic performance.
β¨ Features
- π₯ YouTube Integration: Analyze videos directly from YouTube URLs
- π File Upload: Support for MP4, AVI, MOV, and other video formats
- π Comprehensive Biomechanical Analysis: Jump height, flight time, peak power, force development, and more
- π€ AI Sports Coach: Get personalized sport recommendations and technique improvements
- π― Real-time Processing: Fast analysis using Google's MediaPipe pose estimation
- π± Modern Interface: Beautiful, responsive Gradio interface with multiple analysis modes
- π¬ Scientific Accuracy: Professional-grade biomechanical analysis
- β‘ Advanced Metrics: Peak power output, rate of force development, impulse, and ground contact time
π Live Demo
Try the live demo on Hugging Face Spaces: Athletic Ability Analysis
π How It Works
- Pose Detection: Uses Google's MediaPipe to detect human pose landmarks in each video frame
- Hip Tracking: Tracks the midpoint between left and right hip joints throughout the video
- Jump Analysis: Calculates jump metrics based on hip trajectory:
- Jump Height: Vertical distance from crouch to apex (in cm)
- Flight Time: Duration of airborne phase (in seconds)
- Normalized Rise: Jump height relative to body position (0-1 scale)
- Performance Insights: Contextual feedback based on performance level
π οΈ Technology Stack
- Backend: Python with OpenCV, NumPy, and MediaPipe
- Frontend: Gradio for beautiful, interactive web interface
- Video Processing: yt-dlp for YouTube downloads, OpenCV for video analysis
- Deployment: Hugging Face Spaces
π Deploy to Hugging Face Spaces
Quick Deployment
- Fork this repository on GitHub
- Create a new Space on Hugging Face Spaces
- Connect your GitHub repo to the Space
- Set the Space type to "Gradio"
- β οΈ IMPORTANT: Set up API Key Environment Variable:
- Go to your Space's "Settings" tab
- Add a new "Secret" with name:
GEMINI_API_KEY - Add your Gemini API key as the value
- This keeps your API key secure and private
- Wait for automatic deployment
Manual Deployment
Clone the repository:
git clone https://github.com/YOUR_USERNAME/athletic-ability-analysis cd athletic-ability-analysisCreate a new Space on Hugging Face Spaces
Upload files to your Space:
app.py(main application)athletic_performance.py(analysis module)requirements.txt(dependencies)README.md(this file)
π Set up Secure API Key:
- In your Space settings, add environment variable:
GEMINI_API_KEY - Get your free API key from Google AI Studio
- NEVER commit API keys to your repository!
- In your Space settings, add environment variable:
Space will automatically deploy using Gradio
π API Key Security
For the AI Sports Coach feature, you need a Google Gemini API key:
- π Free: Get your key at Google AI Studio
- π Secure: Set as environment variable
GEMINI_API_KEYin HF Spaces - π« Never: Commit API keys to code repositories
- β Best Practice: Use HF Spaces secrets for deployment
π Project Structure
athletic-ability-analysis/
βββ app.py # Main Gradio application & UI
βββ athletic_performance.py # Core analysis & AI integration
βββ requirements.txt # Python dependencies
βββ README.md # This file (with HF Spaces header)
βββ deploy_hf.py # Deployment helper script
βββ test_deployment.py # Dependency testing
βββ .gitignore # Git ignore file
π― Usage
Web Interface
Visit your Hugging Face Space URL
Enter your height and weight for accurate biomechanical calculations
Choose your analysis type:
π Standard Analysis:
- YouTube or File Upload tabs
- Get comprehensive biomechanical metrics
π€ AI Sports Coach:
- Select your gender
- Provide video (YouTube URL or upload)
- Get personalized sport recommendations
- Receive jump technique improvement suggestions
Click analyze and wait for processing
View comprehensive results with detailed insights
Supported Video Formats
- YouTube: Any public YouTube video URL
- Upload: MP4, AVI, MOV, MKV, WebM
π Video Requirements
For optimal results, ensure your videos meet these criteria:
- π― Full Body Visible: Person should be completely visible throughout the jump
- π‘ Good Lighting: Clear visibility with minimal shadows
- π¬ Clean Background: Minimal clutter for better pose detection
- β±οΈ Optimal Duration: 3-30 seconds works best
- π Vertical Jumps: Straight vertical jumps produce most accurate results
- π Public Access: For YouTube videos, ensure they're not private
π Performance Metrics
The app analyzes and provides:
- Jump Height (cm): Absolute vertical distance based on your body height
- Flight Time (s): Duration of airborne phase
- Normalized Rise: Jump efficiency relative to body size
- Performance Level: Contextual feedback (Excellent/Good/Moderate/Starting)
- Training Insights: Personalized recommendations
π¬ Technical Details
- Pose Estimation: MediaPipe Pose with 33 body landmarks
- Processing: Real-time frame-by-frame analysis
- Smoothing: Moving average filtering for noise reduction
- Calculations: Biomechanically accurate jump metrics
- Performance: Optimized for cloud deployment
β οΈ Limitations
- Processing Time: Large videos may take 2-5 minutes to process
- File Size: Recommended maximum 100MB for uploads
- Pose Visibility: Person must be clearly visible throughout the jump
- Jump Type: Optimized for vertical jumps (not broad jumps)
π§ Local Development
To run locally:
Install dependencies:
pip install -r requirements.txtRun the application:
python app.pyOpen in browser: Gradio will provide a local URL
π€ Contributing
Contributions are welcome! Please feel free to:
- Submit bug reports and feature requests
- Improve documentation
- Add new analysis features
- Optimize performance
π License
This project is open source and available under the MIT License.
π Support & Troubleshooting
If you encounter issues:
- Video Quality: Ensure good lighting and clear visibility
- YouTube URLs: Make sure the video is public and accessible
- File Formats: Use supported video formats (MP4, AVI, MOV, etc.)
- Processing Time: Be patient with large or high-resolution videos
- Pose Detection: Person should be fully visible during the jump
π Acknowledgments
- Google MediaPipe for state-of-the-art pose estimation
- OpenCV for computer vision processing
- yt-dlp for YouTube video downloading
- Gradio for the beautiful web interface
- Hugging Face for hosting and deployment platform
π Example Results
π Jump Analysis Results
π Performance Metrics
- Jump Height: 52.34 cm
- Flight Time: 0.623 seconds
- Normalized Rise: 0.387 (38.7%)
π₯ Excellent jump height! This is above average performance.
β±οΈ Great flight time! Shows good explosive power.