Inspiration
Most of our team members are passionate about fitness and regularly workout, whether it be through weightlifting or calisthenics. We wanted to create a program that would make it less daunting for the New Year New Me gym goers who are looking forward to improve their physical health, but who are unsure about the quality of execution of a movement. We all had to go through that stage at one point as well, so we wanted to find a way that might accelerate that "gym noob" phase while making sure that users do not hurt themselves because they did not perform an exercise correctly.
What it does
In addition to keeping track of the number of repetitions executed for a certain exercise, the program tells users the point at which a repetition for a given exercise would be considered as a good repetition. In other words, the execution of a movement can be counted towards a rep, but that would not necessarily mean that it was well executed. The program is catered towards helping beginner lifters get the ball rolling at the gym by telling them what they have done well or what could be improved.
How we built it
For the FormCheck AI, we built the program using Python and by installing MediaPipe, the framework used to recognize holistic models, and OpenCV, the program used to access the PC's camera. It is the whole team's first Hackathon, so we had a lot of help from online resources. In fact, most of the building blocks of FormCheck AI were inspired by the YouTuber Nicholas Renotte link from the following video link, from which we tweaked and added some things to cater it more towards our needs. Renotte built a program that was able to recognize different poses and calculate to the angles between joints in order to count repetitions. We took it one step further by implementing a feedback response that would tell users if they had performed had a valid rep or not. This was done by comparing the joint angles of a certain body part depending on the exercise to an established joint angle that we deemed was small/large enough to count towards a good repetition. Also, we did not limit ourselves to bicep curls only. We used the program to check users' squats and push-ups as well. Our team also lacked a lot of experience in the creation of websites, but with the help of Google, YouTube videos and the infamous ChatGPT, we were able to build the front-end using Java, Javascript, and CSS
Challenges we ran into
One of the most time consuming challenge that we ran through was trying to install the MediaPipe framework that would allow for holistic recognition. We are still not sure how we managed to get it downloaded (we do not know if it is because of our Python version, the OS that we were running on, or a combination of the two), but after a long couple of hours of trying everything, we eventually managed to install and to finally start our project. Also, MediaPipe and OpenCV, another program that we had to download, are not frameworks that we are familiar with, so it was challenging to work to decypher and actually understand the program that we were producing. For the frontend side of things, a difficulty that we encountered was trying to embed our Python program, aka FormCheck AI, into our HTML website. It is not something that we have not done before and with the time constraints, it was not something that was worth investing too much time in.
Accomplishments that we're proud of
Despite being unable to integrate our program into our website, we think that we are fairly proud of the these two projects independently. FormCheck AI was our first ever project of this magnitude and we are fairly impressed by the progress and the learning that we have done considering the short time frame. The website that we created is also something we are satisfied with, because it was made with close to no prior experience. It fit the aesthetic that we were aiming for and we feel like it is something that is worthy of being seen by the public. As a whole, the thing that we are most proud of was being able to come up with a plan and sticking to that plan without deviating too much despite our lack in Hackathon experience.
What we learned
We learned that Python has so much more potential than we had initially thought it had and there are so many more things that we need to learn about coding before we can feel actually prepared for a Hackathon. With barely any sleep, we also learned that 24 hours is a way shorter amount of time that we had initially expected. One of the main takeaways from this Hackathon was the process of creating a website. Since we had barely any knowledge on creating websites, there are so many things we had to learn on our own to eventually produce our website.
What's next for FormCheck AI
Our dream with FormCheck AI is to increase our repertoire of exercises so that it is not limited to only the three exercises that we created the program for (squats, push-ups, bicep curls). We would like to include other things such as bench press, deadlift, pull-ups, etc. We would also like to be able to provide more constructive criticism to the user so that the program does not feel so linear; the only feedback the user is able to get thus far is "good rep" or "bad rep", but we would like it to be able to tell users how they would be able to improve their form or what specific thing they did well. And of course, we would love to see the program integrated into the website we developed for it. As a bonus, it would also be nice to be able to create an app for FormCheck AI.
Built With
- css
- html
- javascript
- mediapipe
- opencv
- python
Log in or sign up for Devpost to join the conversation.