Inspiration
This project serves as a virtual boxing assistant, designed to assist users in refining their punching techniques. The web application’s intended functionality is to enable users to upload videos of a punch, which is then processed to extract image vectors. Leveraging a machine learning model from the GitHub repository “Punch DL”, the goal is for these vectors to be used for classification, with a higher confidence score for classification being correlated with the punch having better form.
What it does
Presently, the web application successfully processes uploaded videos and returns the associated vector coordinates. However, in its current state, it cannot predict the type of punch being thrown, and just as of now the video processing functionality is hardcoded, thus the demo is just a proof of concept. With further development time, the goal is to enhance the application’s functionality to predict the user’s punch time. This predictive feature would provide users with valuable feedback on their punching form, enabling them to identify areas for improvement.
How we built it
We built this program using Streamlit, a Python library that makes developing web applications for Data Science/ Machine Learning libraries extremely easy. We integrated Streamlit alongside Pytorch, and an implementation of the Movenet model provided in Pytorch.
Challenges we ran into
A huge problem we ran into was compatibility issues with Tensorflow, we were initially planning on using a Tensorflow implementation of Movenet, but Streamlit is incompatible with more recent versions of Tensorflow, thus we had to pivot and translate a decent amount of Tensorflow code into Pytorch in order for the project to function.
Accomplishments that we're proud of
We are really proud of being able to translate a decent amount of Tensorflow code, and learn how to preprocess image data using pytorch's interpolate function in order to make image data the right size in order to fit into the Movenet model.
What's next for the Project
Future work would involve fixing the video data functionality, creating visualizations with the outputed feature vectors from Movenet, alongside providing insights to the user.
Sources
Resources used for inspiration, particularly for using the Movenet model
Punch_DL is used for training data, and the movenet repository is used for the Movenet model. Multiple files from repository (2) are in the final repository in order to utilize the Movenet model's implementation in Pytorch.
(1) https://github.com/balezz/Punch_DL (2) https://github.com/lee-man/movenet-pytorch
Ethics Statement
The goal for the project is to give feedback to people interested in doing some independent training in boxing, particularly trying to prevent them from developing bad form/ bad training habits by providing some feedback about the correctness of their form.
The goal of the project is just to provide supplemental feedback for people training in boxing, in no way is the intended goal of the project to automate away the role of a personal trainer, thus we believe that the goal of the project is one which is beneficial to independent training in boxing, and in no way would have negative effects if developed further.
Log in or sign up for Devpost to join the conversation.