Inspiration

Our members of the group are interested in doing activities that require proper technique such as weightlifting and Taekwondo. However, it is difficult to tell if you're doing a specific activity incorrectly without someone more experienced helping out. Thus, the idea for Guru was formed as a way to give feedback to users on how to properly execute certain moves or poses without anyone else helping out.

What it does

The program helps one improve their form for yoga or other related activities by recording a livestream of a person doing various yoga poses with a picture of the model as a reference, and compares it to the positions of the model. A percentage score is given as feedback on how closely the user emulates the model's pose.

How we built it

We built the program by modifying CMU's Pose estimation software to recognize different model poses using opencv. Html, CSS, and Javascript were used to build the user interface and frontend of Guru. The backend, which processed the tracking software, was hosted in Flask, and the backend was connected to the frontend with Flask-Socket-io.

Challenges we ran into

We had some challenges that we overcame such as learning how to connect the frontend interface with the backend using Flask-Socket-io. While working with Google Cloud, we temporarily lost access to the Google account we were using as we got 3 JSON credentials and logged onto 3 different PCs in a very short time as Google believed we were doing cryptocurrency mining, which related Google's terms of service.

Accomplishments that we're proud of

We're proud to build an app that can help users improve their form while practicing for yoga or other similar based activities such as Taekwondo, while also learning how to work with unfamiliar technologies such as Flask-Socket-io.

What we learned

We learned how to integrate the backend and frontend of the project using Flask-socket.io as this was our group's first time working with Flask-socket.io. We increased our knowledge of pose estimation technology using opencv and machine learning. We also learned how to use google-cloud to store our images of our reference model and skeletons so we could pull this data from anywhere.

What's next for Guru

We hope to continue improving our tracking software to increase recognition of poses, and to continue adding support for more poses in different areas to help expand our possible user base.

Share this project:
×

Updates