Hi, i have made a simple dart detection game of 501 . my problem is to get better dart detection of the tip of the dart . im using 3 camera modules ov9732 place 120 degrees around the board . my accurace is about 90% if luck . if anyone has some good tips please let me know . Zoofly85/automatic-darts-: darts scoring .use 3 ov 9732 webcams to detect the dart position and give a score of the dart .#darts scoring (github.com)
instead of thinking like a human, think like a machine.
work with light and shadow. orient the cameras so they look at the “horizon” of the board plane, where the ring light is. that is the only piece of the picture you need. you also want the ring light to be close to that plane. you’d want to “cut” a plane (from camera to ring light) just a few millimeters above the board plane, so the only thing intersecting the plane is the darts.
a dart, obstructing the ring light, would look dark. if it doesn’t, dial down the exposure until the ring lights are bright but not saturated.
that dark “gap” in the light band is easy to locate. then you can get a ray from the camera through the dart. given three rays (or just two), that’ll be nicely pinned down in 2D.
if that’s not enough, you might have to modify the ring light to be able to light one third of it in turn, the third that is opposite each camera. you’d also need the ability to precisely time the camera exposures, like in a resolution of microseconds or single milliseconds at worst. for that to not look like a strobe light, it’d have to happen quickly, so a whole turn (three thirds) happens in 1/60 s, i.e. each segment lights for 1/180 s or less.
if you use camera modules rather than “webcams”, you might have this ability. the module would have to have a digital input for “exposure”. it might just trigger an exposure, or it might even be able to control the duration of the exposure.
also, maybe solve this electronically rather than visually
i looked into having the cameras looking over the dartboard horizon and using triangilation . but i would like to keep my setup as is as i us the setup playing autodarts.io . problem with autodarts you need internet . my main problem is finding the center of the dart tip all the time . some pics to see the view of camera and detection
how did you detect the board or the score areas?
The scoring area is the easy part . I can manually select four point on the dartboard or i used a trained yolov8 model to detect the four point and calculate the scoring Rea and save a matrics .https://youtu.be/itPIFlxOcFc?si=jcXo9If_r0-OW47y the hard part is to find the tip of the dart accurately
Thats interesting. I’ve only just started on this. I have a model that I use to detect the dart right now. probably similar to what you have. But I see your point it would be hard to determine based on the noise how far the tip actually extends.
Any chance I could pick your brain on this. I’m still struggling to get the Board detected and Scoring zones figured out. I’ve been using openCV and its not going well. I even tried using a Homography transformation with 4 points and a Perspective transformation then map that to a Polar graph. Its close but not accurate. Anythoughts.
do you want to select the 4 point with your mouse ? what cameras are you using ?
Dart detection opencv find me here