Inspiration

Each of our group members has been active in sports for a while, whether it be recreationally or competitively. However, all of us have experienced some sort of injury setback while playing sports: Bill has broken his arm, Daniel has dislocated his thumb, and Jayden has developed tendonitis. These injuries have set us back in further pursuing and enjoying sports. This has inspired us to remedy this situation by developing an app that users can use to decrease their risk of injury.

What it does

In our program, users upload a short clip of their technique and form, and select what concept is being represented in the video. Using these inputs, the program then analyzes the video frame-by-frame for destructive tendencies and gives the user an analysis of projected injuries based on the form using a predictive model.

How we built it

We constructed our program using Visual Studio Code and GitHub repositories. The program’s frontend runs on React.js, using things like Custom CSS, TypeScript, and custom fonts. The backend is mostly in Python, using many libraries like FastAPI, Pydantic, OpenCV, Pytorch, MediaPipe, NumPy, and more. These were essential for frame-by-frame processing of video and the analysis of these frames. Most of the application framework was designed through a combination of Claude and Codex, requiring many iterations. Through each frame, the backend will search for specific poses that are linked with future injury (this information is incorporated through a machine learning library), and flags any indication of said pose in the uploaded video.

Challenges we ran into

Creating a base to start coding from in and of itself was difficult, given the complexity of analyzing video in the way we did. After this, leveraging and prompting AI to help build what we really needed in terms of CV pipelines was much more complicated than expected, leading to many runtime issues in our application. We also dealt with issues regarding syncing between the frontend and backend, which we ended up fixing.

Accomplishments that we're proud of

We are extremely proud that we were able to construct a functional program that reliably outputs the same data from the same video. Specifically, the fact that the program manages to load and analyze the video uploads is a feat in itself, and the fact that every library is able to work together nearly seamlessly is another thing that we’re extremely proud of. Despite being freshmen and having limited knowledge in almost all areas, we feel like we were able to develop a unique idea that we can present and have a positive real-world impact.

What we learned

This project was especially helpful in teaching us many technical skills when it comes to full-stack development. Specifically, it taught us how to synchronize multiple databases and libraries together, as well as use git efficiently to work between multiple computers. Furthermore, figuring out and resolving the multitude of bugs throughout development was a learning experience in itself; in many instances, we had to resort to moving back to a previous version, solidifying our understanding of what changes worked and what didn’t.

What's next for InjurFree

Pursuing InjurFree would involve expanding its databases. Instead of the current predictive model, it could be swapped to involve a machine learning model based on a data set involving the technique of pro players, and how prone they were to injury in their careers. This would likely be the easiest data set to conglomerate, as pro games are recorded and there's a large repertoire of them, but it could also introduce bias, as they are trained to be resistant to injury. Additionally, we would like to expand InjurFree’s range beyond just basketball, being able to apply it to other sports such as baseball, tennis, and soccer, and even other physical activities such as weight lifting.

Share this project:

Updates