Kevin Kyi Status Report (02/15/2025)

This week, I focused on implementing computer vision for boundary edges and pockets on a full-sized pool table before transitioning to the smaller demo/testing table. The primary goal was to develop edge detection algorithms to accurately determine the physical dimensions and placement of the pool table boundaries in real-world coordinates. This step is crucial for precise ball position calculations during the shot simulation and calculating pocket position. Additionally, I began working on the thresholding portion of the project, which involves identifying pocket position based on the table boundaries and depth. This will help establish a reliable reference corners for ball placement and shot calculation as well.

I also dedicated time to researching ball detection and categorization techniques, which falls in the later stages of the CV pipeline. While most of the week was spent on boundary and pocket detection, I compiled several resources to guide the ball categorization and placement phase. These include GitHub repositories and tutorials on ball tracking and detection:

https://pyimagesearch.com/2015/09/14/ball-tracking-with-opencv/
https://github.com/sgrieve/PoolTable
https://github.com/danilwithonei/billiard_balls_detection

 

Kevin Kyi Status Report (2/8/2025)

This week, I focused on designing the framework for the computer vision portion of the project. Specifically, I explored image preprocessing techniques to improve input quality for ball detection and categorization, including:

  • normalization and resizing image
  • converting image to the CIE LAB color space for better color representation
  • noise reduction using a filter bank.

To meet computational constraints, I proposed an initial method for ball categorization by using white color detection to separate the cue and striped balls from solids, reducing the reliance on a computationally expensive neural network for this phase. I collaborated closely with Luke Han to align these methods with our embedded hardware’s computational capabilities.

Additionally, I began investigating edge and hole detection for the pool table. For edge detection, I am testing algorithms like Canny and Harris, while for hole detection, I am experimenting with thresholding to isolate shaded regions that represent pockets.

I am on schedule and expect to finalize the image preprocessing pipeline next week, including categorization and detection methods. My next steps will include testing these algorithms on sample table images to evaluate their accuracy and runtime efficiency.