Scope
Draw for show, follow for dough!!! Use Computer vision and AI to create the ultimate billiards coach.
Slack Channel
Join our slack channel to follow the projects progress. #billiardscoach
If you had something to add, please comment in the slack channel.
https://app.slack.com/client/T013G365GF5/C014A4VNDQE
Application
Github
This is our Billiards coach github repository.
https://github.com/brisbaneroboticsclub/billiardscoach
Research
Thank you Dr Dave from Billiards University for your suggestion to look at these resources…
https://billiards.colostate.edu/videos/miscellaneous/
First Challenge
A lot of billiards games are now live streamed. The most common camera angle is from the foot of the table as shown below.

The first challenge is to convert this video/image into a two dimensional layout.
Keep in mind, every table has different dimensions.
The different table characteristics are shown in the wikipedia link below.
https://en.wikipedia.org/wiki/Billiard_table
Homography may be the best solution to convert a 3D image to 2D.
https://docs.opencv.org/master/d9/dab/tutorial_homography.html
https://docs.opencv.org/master/d1/de0/tutorial_py_feature_homography.html
https://www.learnopencv.com/homography-examples-using-opencv-python-c/
http://howto.goplaypool.com/dr-dave-drills-games.html
The first challenge is to convert the 3D image to data where each ball has an (x,y) co-ordinate.
Robot Table Setup
An overhead lighting system provides enough light to illuminate the balls without creating unwanted shadows.

The hardware is attached using corflute and wood screws…

We’re using a Nvidia Nano to process our images. We’re using a USB ELP wide angle lense camera. We tried using PiCameras, but the image captured was not wide enough to capture the entire pool table. We tried using dual PiCameras, it did not work either. The single center mounted wide angle camera works perfectly.

Below is the video we’re getting from our Camera. The lag is less than 0.5 seconds over the wi-fi network.

