I've got an Oak-D Lite that I'm trying to use to track billiard balls with. My camera is fixed above the center of the table, but I also have a projector that is projecting an interactive playing field on the table. I've been playing with different methods, but having very limited success. Ultimately I'd like to be able to determine which ball is which (Cue, 1, 2, 3, etc.), but for now I'm just trying to track them reliably. Right now I'm using the color camera on the device and using a HoughCircles approach which is somewhat reasonably working, but struggles the camera's low light capabilities don't perform well at all in this application. I'm thinking an Oak-D Pro may be better with it's IR and Laser projection capabilities, but wanted to see what suggestions someone who actually understands this stuff has to optimize the current setup. I was thinking the left/right cameras may work well for this application, but unfortunately, I'm brand new to the CV world and honestly don't know where to start
Billiard Ball Detection
Hi AdamShortland ,
Classical CV approaches (like houghCircles) have a lot of trouble at edge cases, like you mentioned in low-light environments. NN-based object detection is usually preferred in such scenarios, as you can just add some images in low-light to your training dataset, so model would work in such edge cases as well. To train your own model, I'd suggest checking Roboflow, as it's a great platform to start with.
A few useful links:
- https://roboflow.com/integration/luxonis-oak
- To deploy the model from roboflow to OAK: https://blog.roboflow.com/deploy-roboflow-model-luxonis-depth-sdk/
I hope this helps!
Thanks, Erik