Team Status Report 4/19/2025

This week, our team made steady progress in preparing our systems for the final demonstration. Luke focused on enhancing the camera system by disabling the auto-focus and auto-blur features that were causing instability during fast motion capture. He made progress on motion detection capabilities through frame-difference analysis, though this remains a post-MVP feature. After team discussion, we collectively decided to deprioritize the Raspberry Pi web server implementation to concentrate on core deliverables.

Samuel achieved a major improvements in optimizing our shot simulation algorithm by implementing scipy.spatial.cKDTree for collision detection. This change improved the simulation speed by an impressive 600% by reducing the computational complexity from O(n) to O(log n). Alongside these technical improvements, Samuel dedicated time to finalizing our presentation materials and preparing demonstration assets.

Kevin made improvements to our ball categorization system by transitioning from square HSV sampling regions to circular ones, significantly increasing accuracy. His work on differentiating between similarly colored balls using HSV gradient analysis has brought our categorization accuracy in testing. Kevin continues to refine the system to handle the remaining edge cases, particularly in distinguishing between the 1-ball and 9-ball.

Looking ahead, Luke will finalize camera calibration for the demo environment, Samuel will polish the simulation integration and demo flow, and Kevin will complete the remaining refinements to ball identification. The team remains on schedule for our final demonstration, with all core systems operational and only minor tuning remaining. While motion detection has been deferred to post-MVP development, our primary systems are performing at target levels, with ball categorization currently achieving 95% accuracy and expected to improve further with final adjustments.

Kevin Kyi Status Report 4/19/2025

This week I kept working on the ball categorization and tested different techniques for segmenting the ball from the rest of the table. In the previous implementation we were using squared segments which was causing issues when calculating mean HSV values used to categorize. By switching to a circular region around the ball coupled with the HSV gradient visualizer implemented last week, the categorization accuracy is almost perfect. I am still working on refining the categorization between the 1-ball and 9-ball but am making steady progress using the gradient visualizer. I am on track to finish for the final presentation and have been communicating my progress to Luke and Samuel.

 

Kevin Kyi Status Report 4/12/25

This week I mainly worked on refining the color thresholding for ball categorization and started implementing a new solution regarding edge/rail detection that could serve as an alternative for pocket detection. Currently, for ball categorization solid differently colored balls are accurately being detected, but similar colored balls(blue 2-ball, purple 4-ball) struggle differentiating. To debug this problem I created a gradient function that shows the different HSV thresholding gradients to give us a visual reference. I also started implementing an edge detector as an alternative to our hough circles pocket detector, but it still needs a lot more refinement. I am on track to have a finalized pipeline soon and only have categorization and pocket detection left to refine.

Kevin Kyi Status Report 03/29/25

This week I was working closely with the team to ensure we had our table prepped for demo which included: testing lighting, ensuring a secure projector mount, and camera angle/distance. Aside from helping the team me and Samuel have been working closely on ensuring an accurate integration between ball/pocket coordinates and physics simulation. Lastly, on the technical side, this week I spent a lot of time on error handling for the CV processing, this included things such as mis-detected balls and pocket position.

Team Status Report 3/22/25

This week our team continued to make steady and significant progress especially now that we have the physical table and foundation for our project. While there are a couple roadblocks in our physical setup, the software progress is on track, and we are still confident in meeting our desired MVP goals.

Luke focused on setting up the pool table mount for the camera and projector system. He encountered challenges with securely attaching the equipment while upholding safety standards. Initial mounting attempts either made the system unstable or darkened the playing area, impacting out CV system. Luke plans to refine the mount further to balance stability, visibility, and functionality, with the goal of having the camera and projector system fully operational by the end of next week.

Samuel made progress on the find_best_shot algorithm for the physics simulation. His current approach successfully identifies 9-ball shots that meet key criteria, such as hitting the lowest-numbered ball, avoiding scratches, potting balls, and positioning the cue ball strategically. However, the algorithm still relies on a brute-force approach. Samuel is exploring the use of Simulated Annealing to optimize the algorithm and reduce computation time to under four seconds, as required by our use-case. He remains on schedule and aims to complete the algorithm and display mapping in time for MVP testing.

Kevin supported Luke with the physical setup, providing input on camera/projector placement and lighting to minimize image quality issues. He also began implementing code to project predicted holes, pockets, and ball positions onto the physical table. Kevin is on track and will pivot his efforts toward smooth integration, including refining position coordinates and addressing potential image occlusions.

The team is confident in overcoming current challenges and delivering a functional and polished MVP in time for carnival.

Kevin Kyi Status Report 3/22/25

This week I worked on helping Luke setup the table and give ideas on how to setup the camera/projector system and lighting in order to minimize image quality issues. Aside from helping with the physical components I started working on implementing code to project my predicted holes, pockets, and ball placements on the physical table. I am on track and will try to pivot my work towards smooth integration, including position coordinates and mitigating image occlusions. Below I have attached an image of the coordinate system we are using and how it looks on the physical table.

Kevin Kyi Status Report 03/15/2025

This week, I mainly focused on testing my position coordinates algorithm to validate on the downscaled project table. I also implemented additional fail-safes in my pocket detection algorithm to ensure valid rectangle dimensions based on corner pocket positions, making ball position calculations less error-prone. Additionally, upon receiving the table I had to adjust the algorithm used to compute the homography matrix from the corner stickers because there was an offset from the true corners of the table unlike a traditional layout.

Aside from technical updates, I have been communicating my progress closely with Luke and Samuel who are working on the later stages of the processing pipeline to ensure smooth integration. I have also attached an image demonstrating how position coordinates will be laid out on the physical table and how I am making position calculations less error prone.

Kevin Kyi Status Report 03/08/2025

This week, I focused primarily on coding and documenting my progress to facilitate a smooth integration with the physics simulation portion. I detailed the physical layout/setup of the table, specifically highlighting the portions relevant to our CV computations. This included documenting the placement of corner stickers, which will be used to compute a more accurate homography for gathering positional coordinates. Additionally, I mapped the layout to real-world coordinates to provide better insight into the input data for the physics simulation.

Beyond coding, I have been closely communicating my progress with my teammates to ensure they understand the data transfer process. I am on track with my tasks and will aim to speed up my progress to allow more time for the later stages of our processing pipeline.

Team Status Report 02/22/2025

This week, our team primarily focused on preparing for the Design Review Presentation and refining various aspects of our project’s implementation beforehand. We finalized the GitHub repository setup, installed necessary dependencies, and began initial coding for both the computer vision and physics simulation components. Additionally, we made key decisions regarding hardware selection, including researching projector options and materials for mounting the overhead camera.

Samuel focused on the physics simulation setup, setting up the GitHub repository and installing the required dependencies. He also contributed significantly to the Design Review Presentation slides and written report. Moving forward, his main priority will be coding the physics simulation, particularly shot simulation and best shot selection. Next week, his availability will be slightly limited due to exams, but he plans to dedicate spring break to making significant progress on the project.

Luke concentrated on preparing for the Design Review Presentation and researching the materials for the camera/projector mount. He also narrowed down the projector selection to two options (Yaber V6 and ViewSonic PA503W), weighing factors such as keystone correction and input lag. His next steps involve ordering the necessary materials for the frame, assembling the mount, and assisting Samuel with the shot simulation algorithm. While he faced a slight delay due to the pool table not arriving yet, he expects to catch up next week as he has more time to focus on the project.

Kevin worked on finalizing his section for the Design Review Presentation and collaborated with Samuel to set up the repository and integrate dependencies. His upcoming focus is on coding and optimizing data extraction to support the post-processing physics simulation. He remains on track and is coordinating with Samuel and Luke to ensure smooth integration between components.

Overall, our team is making steady progress despite minor delays related to hardware availability and course pressure. In the upcoming weeks, we will finalize the design report, begin full integration, and start assembling the physical components of the system. We remain on schedule and will continue refining our implementation while preparing for the next project milestone.

Kevin Kyi Status Report 02/22/2025

This week, I spent most of my time finalizing different parts of my area for the design review presentation and working on the design slides. I helped set up the repository with Samuel to install the necessary dependencies for integrating my code. The majority of my time in the following weeks will be spent coding and ensuring accurate data extraction early for the post-processing physics simulation part of the project that Samuel is working on. I am on track and will be working with Samuel and Luke to ensure a smooth integration from the start.

Additionally, this coming week I have an exam and essay due that may slightly hinder my progress, but I have time in the coming week to ensure I keep on track.