🏀 Shoot Like the Greats
Inspiration
As basketball players, we know how hard it is to improve your shooting form. You can watch tutorials and compare yourself to NBA players, but it is difficult to actually see what is different about your own shot. We wanted to make that process easier. Our idea was to build a program that could watch a free throw and analyze the shooter's movement, then compare it to the form of some of the greatest shooters in basketball, for example: Klay Thompson, Ray Allen etc.
Instead of only asking "Did the shot go in?", we wanted to ask:
"How did you shoot it, how is it different from the greats, and how can you improve your shots and form."
What We Built
We built an AI-powered basketball shooting analysis program that analyzes free throw videos.
We selected 10 elite basketball shooters as references for shooting form. A user can record their own free throw and upload the video to our program.
Our program then tracks their movement throughout the shot and looks at important parts of their form while comparing it to the gold standard, reference created by the AI module.
The system can track movement on:
- Shoulders
- Elbows
- Wrists
- Hips
- Knees
- Hands
- Fingers
- Follow through
From this information, we can analyze things such as joint angles and movement throughout the shooting motion.
How We Built It
Our main tools were:
- Python — main programming language
- Google MediaPipe — detects body and hand landmarks
- OpenCV — processes the video frame by frame
- NumPy — calculates angles and movement
- Pandas — organizes our data
- Matplotlib — visualizes our results
MediaPipe's pretrained AI models allow us to detect body and hand landmarks from the video. We then use those landmarks as data for our own basketball analysis.
We did not want to just show the player a bunch of numbers. We wanted to turn the data into something that could actually help someone understand their shooting form.
To use this tool for free throw feedback. You would have to upload a video of your free throw shot to our website, and the AI modules would compare your shot to our integrated reference made from the 10 NBA players' footages, and provide feedback for each aspect of your shooting form. Feedback is given in text, graphs, in real time. The AI will visualize your shot and how it's different from reference in the form of graphs. It will then give a score out of 100.
What We Learned
This project gave us our first experience applying computer vision to a real-world problem.
We learned how to work with pose estimation, hand tracking, video processing, and movement motion data.
We also learned that getting useful information from a video is much harder than simply detecting a person. Small changes in camera angle, lighting, and movement can affect the landmarks that are detected.
Most importantly, we learned how to take raw data and turn it into something that a basketball player can actually understand.
Challenges
One of our biggest challenges was getting consistent tracking during a fast basketball movement.
The shooter's hands can move quickly, body parts can overlap, and different camera angles can produce different results.
Another challenge was figuring out which measurements were actually useful for analyzing a shot. There are dozens of landmarks available, but not all of them are relevant to shooting form.
We had to experiment with different measurements and figure out how to connect the computer vision data to actual basketball mechanics.
What's Next
This is only the beginning.
With more time, we would like to make the analysis more accurate, add more professional shooters to our reference database, and provide more personalized recommendations.
We could also expand the program beyond free throws to analyze jump shots, three-pointers, and other basketball movements.
Our goal is to make shooting analysis accessible to anyone with a camera.
The Idea
Don't just shoot. Analyze.
Shoot Like the Greats.
Log in or sign up for Devpost to join the conversation.