**CS519 Final Project**

For the final project, I decided to apply some Computer Vision techniques to the sports world. The goal of the project is to determine whether or not a basketball player will score using a the first few frames of the video data.

This project consisted of three main parts:

Segmentation - The moving objects (ball, people, random artifacts) were distinguished from the non-moving objects (background). | |

Tracking - Using a circle filter, I determined which of the moving objects was a basketball. The center of the ball was used to plot the trajectory. | |

Estimation - Using the points from the given frames, the best-fit parabola was calculated using least-squares estimation and a guess is made as to whether or not the shot will be successful. |

This project was implemented in Java, using the ImageJ package for PGM file loading and the Jama package for linear algebra. The (uncommented and hacked) source code can be found here.

Overall, the project went well. One surprise was the accuracy with which I found the basketball. There wasn't much noisy data. However, along those same lines, I also noticed that the points on the plotted trajectory needed to be quite accurate. The estimation of the parabola was thrown off wildly by points that were only somewhat off. The main drawback of this method was the use of one camera. As such, I was limited to analysis in 2 dimensions, so making definitive statements about successful shots was impossible.

Here are a few examples of output from the program. The green dots are where the ball was tracked in earlier frames and the red dots are estimates of the path of the ball. The blue dots are rough estimates of the rim.

This is shot that the program (correctly) guesses will score.

This is an unsuccessful shot that the program guesses will miss.

This is an example of not using enough data points to correctly estimate a parabola. For these points, the least-square estimate for the parabola plots a trajectory that most basketball fans would probably not expect.