Say goodbye to the bitter arguments and blown calls.
Determining strikes and balls without a professional umpire is difficult and inaccurate. The catcher-as-umpire solution leads to biased calls in times of high intensity and emotion. Enter AutoUmp, the home plate that doubles as an umpire. Open the app, connect via bluetooth, start your game, and play away — no umping necessary.
The AutoUmp project is part computer vision and part embedded systems design and integration. Two cameras embedded in the plate monitor for a ball flying overhead. If seen, the point where the ball crosses the strike zone in each video feed is calculated. The data from both cameras is integrated to find the location where the ball passed through the strike zone and make the call.
To start, we perform background subtraction and thresholding on the current frame and the previous frame, creating a new image that has white pixels only where an object has moved since the last frame. This new image is passed through a denoising filter to eliminate stray noise or camera malfunctions that may be incorrectly labeled as objects.
The denoised image is then passed to an object detection function, which has two main components. First, a flood-fill algorithm identifies connected regions of white pixels, giving each a unique ID and summary information of each in a table. Second, every object ID that is connected to the edge of the image is removed. This second step allows us to detect a ball in flight instead of falsely detecting a player’s hand, a bat, etc., as these objects are not in flight and therefore must be connected to the edge of the image.
Because of the nature of the background subtraction, the images we will operate on will have two “balls” in them – each representing the location of the ball in a different frame. We can use this fact to our advantage to greatly simplify our calculations by connecting the centers of these two balls and finding the point at which they cross the middle of the image. Rather than attempt to calculate the 3-D location of a ball and seeing if it passes through the volume of the strike zone, we model the strike zone as a plane, and represent the line of pixels that make up the middle of the image as that plane. This allows us to convert a 3-D problem into a 2-D problem. The last step of our algorithm takes the point in each image where the ball passes through this plane, and uses simple geometry and the properties of the camera to calculate the x- and y-location of the ball in the plane of the strike zone. From here, it is a simple matter to match the location of the ball with the strike zone computer from the batter’s height.
If you have any questions about our project, we'd love to hear from you.
Shooot us an email at email@example.com and we'll get back to you as soon as possible.