PoseJi is an advanced human pose estimation application designed to provide comprehensive pose analysis and biomechanical insights. Leveraging stateβofβtheβart machine learning models, the app supports realβtime detection, detailed metrics, and intuitive visualization for applications in sports analysis, fitness tracking, rehabilitation, and more.
PoseJi Version 2 builds upon the solid foundation of Version 1 with several significant enhancements:
- Enhanced Modular Code Structure:
The codebase has been reorganized into more modular components. New modules for Comparison Mode, Yoga Pose Analysis, and Gesture Recognition have been added to expand the appβs functionality. - Expanded Analysis Modes:
In addition to the modes available in Version 1 (Basic Pose Detection, Biomechanical Analysis, Detailed Metrics, 3D Pose Visualization, Video Pose Estimation, Live Webcam Pose Detection, Realβtime Posture Feedback, and Exercise Analysis & Coaching), Version 2 introduces:- Comparison Mode: Upload two images to compare pose estimations side by side.
- Improved Performance:
Optimizations in media processing and keypoint smoothing result in better realβtime performance and reduced flicker in metric displays. - Revamped User Interface:
The user interface now features a modern, mobile-responsive design with enhanced sidebar management, improved session management, and clearer visualizations.
- Models Supported:
- OpenPose: Uses OpenCVβs DNN module to load a frozen graph (
graph_opt.pb
) for keypoint detection. - MediaPipe Pose: Leverages Googleβs MediaPipe Pose solution for efficient and realβtime pose detection.
- MoveNet: Utilizes TensorFlow Liteβs MoveNet model (
movenet_lightning_fp16.tflite
) for fast and accurate pose estimation.
- OpenPose: Uses OpenCVβs DNN module to load a frozen graph (
- Functionality:
- Basic pose detection in images and videos.
- Webcam integration and basic metrics display.
- Session management and data export as ZIP files.
- Models Supported:
Version 2 continues to support the same models as Version 1, with updates to paths and improved inference (smoothing and optional preprocessing) for more stable keypoint detection. - New & Enhanced Features:
- Comparison Mode: Compare two images side by side with detailed metrics and visualizations.
- Improved UI/UX: A modern layout with custom CSS, enhanced sidebar instructions, and session management.
- Expanded Analysis Modes: More robust modes such as advanced detailed metrics, 3D visualization, and performance optimizations for video processing.
- Code Organization:
The code is further modularized under theposeji_v2/modules/
directory, making it easier to maintain and extend. - Performance:
Better smoothing of keypoints and reduced flicker in realβtime metrics; efficient media handling via temporary files and dynamic frame rate adjustments.
- Real-time Pose Detection:
Analyze images and videos using advanced models for fast and accurate pose estimation. - Customizable Settings:
Adjust confidence thresholds, calibration factors, and more. - Multiple Analysis Modes:
Choose from:- Basic Pose Detection
- Biomechanical Analysis (angles, posture evaluation)
- Detailed Metrics
- 3D Pose Visualization
- Video Pose Estimation
- Live Webcam Pose Detection
- Realβtime Posture Feedback
- Exercise Analysis & Coaching
- Comparison Mode
- Session History
- Video & Image Processing:
Upload images (PNG, JPG, JPEG) and videos (MP4, AVI, MOV, GIF) for detailed analysis. - Live Webcam Integration:
Access the webcam for live pose estimation with realβtime feedback. - Session Management:
Save session outputs and download all results as a ZIP file. - User-Friendly Interface:
Modern, mobile-responsive layout with a dynamic sidebar for easy navigation.
itzdineshx-edunet_ai_internship_2025/
βββ README.md
βββ LICENSE
βββ packages.txt
βββ requirements.txt
βββ assets/
β βββ images/
β βββ videos/
βββ Demo/
β βββ images/
β βββ videos/
β βββ streamlit-app-2025-01-26-20-01-13.webm
βββ internship_files/
βββ models/
β βββ graph_opt.pb
β βββ movenet_lightning_fp16.tflite
β βββ saved_model.pb
βββ poseji_v2/
β βββ app.py
β βββ modules/
β βββ __init__.py
β βββ comparison_mode.py
β βββ config.py
β βββ graph_opt.pb
β βββ helpers.py
β βββ image_analysis.py
β βββ main_ui.py
β βββ movenet_lightning_fp16.tflite
β βββ pose_estimators.py
β βββ session_history.py
β βββ video_estimation.py
β βββ webcam_transformers.py
β βββ __pycache__/
βββ src/
β βββ app.py
β βββ graph_opt.pb
β βββ movenet_lightning_fp16.tflite
β βββ saved_model.pb
β βββ app/
β βββ advanced_pose_app.py
β βββ app.py
β βββ pose_estimation.py
β βββ pose_estimation_Video.py
β βββ test.py
β βββ test2.py
βββ .devcontainer/
βββ devcontainer.json
The application supports multiple pose estimation models:
-
OpenPose:
Uses OpenCVβs DNN module to load thegraph_opt.pb
model for detecting keypoints and drawing skeletal connections. -
MediaPipe Pose:
Utilizes MediaPipeβs Pose solution for efficient, realβtime pose estimation with builtβin drawing utilities for skeleton visualization. -
MoveNet:
Employs TensorFlow Liteβs MoveNet model (movenet_lightning_fp16.tflite
) for high-speed, accurate pose detection.
- Confidence Threshold:
Adjust the minimum confidence level for keypoint detection. - Calibration Factor:
Scale distance-based metrics for personalized analysis. - Analysis Mode:
Select from:- Basic Pose Detection
- Biomechanical Analysis (angles, posture evaluation)
- Detailed Metrics
- 3D Pose Visualization
- Video Pose Estimation
- Live Webcam Pose Detection
- Realβtime Posture Feedback
- Exercise Analysis & Coaching
- Comparison Mode
- Session History
- Exercise Analysis:
Choose an exercise type (currently supports Squats) for tracking repetitions.
- Image Upload:
Drag and drop PNG, JPG, or JPEG files. - Video Upload:
Upload MP4, AVI, MOV, or GIF files for detailed pose analysis. - Live Webcam:
Access live video feed for instant pose estimation.
- Realtime Metrics:
View live updates on joint angles and other metrics during processing. - Download Options:
Download individual outputs (images, videos, metrics) or all session outputs as a ZIP archive. - Session History:
Save and review previous sessions with detailed logs and metrics.
- Python 3.8 or higher
- Install dependencies with:
pip install -r requirements.txt
- Navigate to the
src
directory. - Start the Streamlit app:
streamlit run app.py
- Open the provided URL in your browser to interact with the app.
- Sports Training:
Analyze and optimize athletes' movements. - Fitness Tracking:
Monitor posture and exercise form to improve workouts. - Rehabilitation:
Track progress in physical therapy and recovery. - Gaming & AR/VR:
Integrate pose estimation into interactive applications.
- Advanced Real-Time Feedback:
More in-depth posture analysis and exercise coaching. - Multi-Person Detection:
Extend support for multiple people in a single frame. - Mobile Optimization:
Further enhance the mobile user experience. - Integration APIs:
Offer REST APIs for third-party integration.
This project is part of the Edunet AI Internship 2025 program. Contributions are welcome to further enhance functionality and extend features.
This project is licensed under the Apache License 2.0. See the LICENSE file for more details.
DINESH S
PoseJi Β© 2025 DINESH S All Rights Reserved