What is the problem we are solving? The problem we are addressing in this project is the challenge of keeping score in a game of pool accurately. Often, when playing pool with friends, it's easy to lose track of the score or make errors in recording it. This can lead to confusion and disputes during the game. To tackle this problem, we aim to leverage video technology and computer vision to automatically identify and track pool balls on the table. This will enable us to keep an accurate and real-time record of the game scores.
What is our solution? We are creating an application called the "Billiards Scoring". This will be allow users to track their scores without manually updating it themselves. This application has several key components.
- Users can set up the table and select the playing surface
- The application will automatically warp the video frame to remove camera perspective
- Users can adjust several parameters for recognizing the balls.
- The color, saturation, and brightness can be adjusted for the entire video feed
- The thresholds used to identify different balls can be adjusted as well
- Users can see whose turn it is to play.
- Users can view the score of each team.
- (Optional) Users can access information about the rules of the game.
Visualization
The above demo utilizes the live feed feature from a local camera connected to the user's computer. This was recorded at CyBowl and Billiards in the Iowa State Memorial Union.
The above demo utilizes the file input feature to process inputs from video files saved to the user's computer.
Tech Stack and Libraries:
- Python
- OpenCV
Project Management:
- GitLab
- Discord
- Google Docs