Volleyball is a competitive sport in which power and speed are metrics that, when measured, can determine the relative ability of a player. On the current market, the only reasonable way to track the speed of a volleyball is through the use of a radar gun, a piece of equipment that can cost roughly $80 to purchase. The goal of this project is to develop an application and mathematical system that can track a volleyball and estimate its speed real time using computer vision.
I made the application in Xcode with the OpenCV library and used the language Objective-C++. The program tracks the ball using various computer vision methods, and uses the real diameter of the ball to calculate its position and speed. The speed is calculated by taking the average of the motion vectors that are created between the balls positions over multiple frames. To test the application, I setup a volleyball launcher, and recorded the volleyball launch from different camera angles. The ideal speed was calculated by measuring the distance and height of the launch. The results showed that the mean estimate speed produced by the application was within a 6.9% margin of error compared to the theoretical speed of the volleyball, with a standard deviation of 5.5 ft/s. While the standard deviation is high, the overall accuracy of the application was high as well. With this we can conclude that the mathematics behind the application is correct. In addition, the application is completely free to produce, and is capable of being put into the hands of players, coaches, and spectators easily. The portability of the system allows for quick setup time before use. For example, a sports recruiter can easily move from athlete to athlete, easily take a full survey of their hitting speeds. The methods used in the application are not strictly limited to volleyball, and with some modifications they can be used to determine speeds of other objects including various sports items, cars, and many more.