Inspiration
Our team leader, Charlie, is an avid ice skater, and he originally came up with our idea because he wanted a way to compare his ice skating jumps to a professional ice skater’s in order to work on his form.
What it does
Techniq takes in two user inputs: an image of the athlete and an image of the professional athlete they want to compare their image to. With the two images, Techniq uses MediaPipe and OpenCV to track the position of the joints and limbs of the user and the professional athlete. Using these coordinates, a graph is created of both images that are then compared to find the differences between them. With every difference between the two poses, advice is given to the user on how they can improve and perfect their form.
How we built it
We built Techniq using Python and the MediaPipe and OpenCV open-source code. The Python code contains several functions that create coordinates for each body part, transform them into a graph, rotate the graph to be in the same orientation, and then compares the differences between the graphs and gives the user advice. The advice was planned to be printed out onto a web page made with HTML and styled with CSS, and subsequently had lots of work put into it, but we ultimately did not have time to implement it.
Challenges we ran into
We ran into several challenges while making Techniq. A very big challenge we faced was our rotation function. This function would rotate the user “skeleton” created from the inputted images so that they are oriented the same way. The matrix math behind the rotations of all the coordinates gave us trouble because we had to rotate in 3 dimensions.
Accomplishments that we're proud of
We’re really proud of our standardization functions. Our work on transformation, scaling, and rotation required a heavy amount of advanced linear algebra as well reconstructing skeletons from the ground up, one coordinate at a time. We also figured out how to draw the two skeletons on top of the actual image so the difference between the two is much more clear to the user.
What we learned
We learned a lot about motion tracking and coordinate mapping during this project. All of us got more acquainted with the MediaPipe framework as well as the Flask Python module. Overall, we thoroughly enjoyed HackGT, and we're happy our first in-person hackathon experience was here!
What's next for Techniq
Our next goal is to be able to take in videos of different exercises and movements and be able to track them frame by frame in order to compare them to a video of a professional athlete doing the same movements. Due to the time restraints and our limited knowledge of motion tracking, implementing video motion tracking was something we could not execute. Additionally, our website would soon be put up and hopefully we can transition soon to Android and iOS, which would be the ideal environment for Techniq!
Log in or sign up for Devpost to join the conversation.