This project is a Posture Analysis System built using OpenCV, MediaPipe, and Streamlit, capable of tracking knee movement, drawing pose landmarks, and visualizing joint motion paths.
The entire application is Dockerized, making it extremely easy to run anywhere without dependency issues.
- Real-time posture estimation using MediaPipe Pose
- Knee tracking with live plotted trajectories
- Visual output of pose skeleton
- Streamlit interface for:
- Uploading custom videos
- Using built-in sample videos
- Running analysis with a single click
- Fully containerized using Docker
- Works consistently across systems due to Docker isolation
PostureAnalysis/
│── Analyzer.py
│── app.py
│── Sample1.mp4
│── Sample2.mp4
│── requirements.txt
│── Dockerfile
└── README.md
- The
Analyzer.pyfile handles all processing:- Reads video frames
- Extracts pose landmarks
- Tracks knee positions
- Displays pose and extracted keypoints
- The Streamlit app provides a simple UI for interacting with the analyzer.
- With Docker, everything runs the same on any machine.
python -m venv venvWindows:
venv\Scripts\activateMac/Linux:
source venv/bin/activatepip install -r requirements.txtstreamlit run app.pyRun this inside your project folder:
docker build -t marti18/analyzer .docker run -p 8501:8501 marti18/analyzerNow open your browser and go to:
docker logindocker tag marti18/analyzer marti18/analyzer:latestdocker push marti18/analyzer:latestYou can now pull it from anywhere using:
docker pull marti18/analyzer
docker run -p 8501:8501 marti18/analyzer- Uploaded video
- Sample1.mp4
- Sample2.mp4
Streamlit provides:
- Pose skeleton window
- Extracted pose window
- Knee trajectory plot
All dependencies are listed inside requirements.txt:
opencv-python
mediapipe
numpy
matplotlib
streamlit
- Python
- OpenCV
- MediaPipe
- Matplotlib
- Streamlit
- Docker
Aditya Pratap Singh