This week I worked on developing a computer vision model to detect and distinguish between different objects on our pool table. Initially, I did a bit of exploration on different computer vision models online for detecting the pool balls. I looked through different implementations people have done online and tried running these locally to determine which method would have the best accuracy and low latency.
My main focus this week was on detecting the four edges (walls) of the pool table. This data will be used in our physics calculations to predict the trajectory of a ball when it bounces on the wall. I decided to use Hough Line transforms to derive this data as it seemed to be the most effective in detecting straight lines.
I got a decent amount of work done this week; however, there were some goals I didn’t meet. As I have become more familiar with open-cv this week, I am confident that I can finish these up in the coming week. Next week I plan to develop more models to be able to distinguish between striped and solid balls. Furthermore, I plan to make the wall detection model more robust as it currently is prone to some errors. I also plan to do some research and implement physics calculations to simulate interactions between different objects in our system (i.e. ball-to-ball or cue-to-ball interactions). I will also test out our current computer vision models on live video feed since I am currently running tests on static images.