Inspiration

What inspired me to create this project is that not everybody has a coach to tell them what is wrong and right with their jumpshot in basketball, and without a good jumpshot, it can be hard to play well.

What it does

What my app does is it lets the user input a video of them shooting a basketball, and then provides feedback for the release, beginning, and end of their jumpshot. It also uses Kintone to let the user look at their past videos and feedback, providing trends in their jumpshot if they have uploaded 10 different videos over different days.

How we built it

I built the app by using Python, a coding language, and used Flask to turn the project into a web application. I used MediaPipe-AI powered pose estimation-to analyze the body movements in videos and detect the release, beginning, and end of the jumpshot. I also used OpenCV to look at the video files frame by frame and let MediaPipe analyze the body movements. In addition, I used the Python Requests library to interact with Kintone’s API.

Challenges we ran into

It was hard for me to keep track of the field codes at first. Also, in the beginning, the process of analyzing the video took a lot of time to process, so I made it skip every 3 or 5 frames. In addition, at first, MediaPipe had difficulty handling scene changes in the uploaded videos, which led to unreliable pose estimations. To fix this, I had the program analyze the difference between two consecutive frames, and if the difference was very large—indicating a scene change—the program automatically skips and ignores those sections.

Accomplishments that we're proud of

I am proud that my app is well-organized and is easy to go through. In addition, I am proud that my app can successfully differentiate between different scenes and pick out the different sections of a jumpshot and provide feedback. I am also proud that this app helps players who may not have access to a coach to help them with their jumpshot, and helps give that feedback that those players need.

What we learned

I learned how to use MediaPipe and OpenCV, learning pose detection and extracting information from video frames. I also gained experience in staying organized in my app and learned how to use the Requests library.

What's next for Shot Analyzer

I want to be able to collect feedback from real users, and I also want to use the pose analysis to detect even more ranges of motion like layups and free throws. I also want the app to be able to give real time feedback, such as maybe interacting with the computer or iPhone camera so that it can see what is wrong with their stance and give feedback in real time so they can change it instantly.

Built With

Share this project:

Updates