Halmon Lui, Ryan Parekh, Logan O'keefe
A senior design project
With a team of three bowling and coding enthusiasts, we came up with a solution to get the best of both worlds. We created an application to record a bowl and compare to bowls where the user has gotten a strike before. The program will then tell the user what angles and positions of their form to change in order to perform a strike again.
- Phone camera records bowler and ball
- OpenPose is used to track the bowler's form
- OpenCV is used to track the ball down the lane
- Scikit-Learn takes the features of both bowler's form and ball to return strikes
- A decision tree then tells the user how to improve
You must first have these on your system:
- Python3
- Jupyter Notebook
- OpenCV
- OpenPose
- Scikit-learn
- Numpy
- Scipy
- Pandas
- Matplotlib
The three parts of the system are not connected yet so you have to run them separately
- HSV_Picker.ipynb is used to select the HSV range for the ball you are going to track
- ball_tracking_final.ipynb is used to track the ball down the lane and output the trajectory
- driver.py is used to track the form of the bowler and outputs a JSON datafile
- ML_bowling_code_final.ipynb is used to apply supervised learning model KNN and outputs the suggestion