Inspiration
We were inspired by the idea of making movement-based training more accessible and interactive. Whether it's dance, sports, or physical therapy, matching the right form is important but not always easy without a coach or feedback. We thought, what if your webcam could be your personal trainer? That’s how PoseMatch was born — a tool that compares your movements with a reference video and gives real-time feedback to help improve accuracy.
What it does
PoseMatch takes a reference video and compares it with live webcam input using pose detection. It analyzes the similarity between the two motions using OpenPose, Cosine Similarity + Euclidean distance + Joint Angle similarity. Based on how closely the movements match, it gives live feedback depending on the similarity score.
How we built it
We used Python for the backend. For pose detection, we used OpenPose to extract keypoints from both the reference video and the live camera feed. Then we calculated similarity scores using:
- Cosine Similarity for angle-based matching
*Cosine Similarity + Euclidean distance + Joint Angle similarity * for comparing sequences that may have different timing
A custom scoring system to translate similarity percentages into simple feedback labels
We built a simple front-end interface to display the reference video, webcam feed, and real-time feedback messages.
Challenges we ran into
- Getting OpenPose to run efficiently and consistently was tricky due to hardware limitations.
- Aligning the live feed and video data frame by frame was a challenge, especially with different speeds or frame drops.
- Mapping pose keypoints into meaningful similarity scores required testing and tuning to feel accurate but not too strict.
- Real-time feedback without noticeable lag took time to optimize.
Accomplishments that we're proud of
- Real-time comparison works smoothly with clear visual and text-based feedback.
- Successfully integrated pose detection with similarity metrics into a clean pipeline.
- Created an experience that is easy to use but still informative for users trying to improve their movements.
What we learned
- How to work with OpenPose and handle keypoint data.
- How to use cosine similarity and Cosine Similarity, Euclidean distance, Joint Angle similarity for pose and time series comparison.
- How to design a feedback system that feels intuitive and helpful.
- The importance of performance optimization in real-time applications.
What's next for PoseMatch
- Add more detailed feedback like which body parts are off.
- Include support for mobile or browser-based versions.
- Add training modes for dance, workouts, or rehab routines.
- Improve the UI and maybe even add a scoring or progress tracking system.
Built With
- openpose
- python

Log in or sign up for Devpost to join the conversation.