My use case is to have a mini rover chase after red ball (circle). I was using find blob to detect the red initially, and obviously it wasn’t good enough as it pick up so many other reds.
So I decided to use two level detection: 1st check the red blob then windowing the blob ROI, 2nd check the circle within the ROI.
This approach works when the background has no other red objects. I ran into several problems:
- When the red ball overlap with a red chair, it can’t recognize the red ball as circle.
- Worst still, it recognize different part of red chair as circle.
- I attempted to convert the red blob ROI using image.to_greyscale (use red channel), find_circle pick up noises as circle. Same thing happened when I attempted in binary image too.
- Attempted to use canny edge hoping to find the circle but that doesn’t work.
I must admit the filtering part of my image is not good and that’s the reason I come to forum seek for advise.
I’m wondering how the find_circle works, does it have “roundness” parameter? I have seen some of the image end up recognize noises as circle like below.
Or, will find_keypoints be able to detect a circle?