Using the function 'find_circles'...

Hey!

So currently I have an OpenMV M7 camera which will be used to detect a circular object. I have tried using find_blobs however it finds too many ‘errors’ (in the sense that it detects other objects, even with colour and size limits/thresholds set) and as there was a video showcasing the new firmware for the M7 having the function ‘find_circles’, I’d like to test it out as all of the ‘wrong objects’ found by the camera is not circular.

I’ve tried looking for it on github but couldn’t find it, I’ve tried looking for it on this forum but came across to like 4 different firmwares (that were all more or less uploaded in July) and also found a link to download OpenMV IDE 1.7.0 (presumed it has the beta firmware) however the download seems to be corrupted as it won’t install and every single time the downloaded file size was different (first time was 18.4MB, second time was 21.3MB, third time was 19.8MB).

So in a nutshell, I’d like to be able to use the function ‘find_circles’ however it does not work on the 2.4.1 firmware that is currently installed on my camera.

Thanks.

Hi, find_circles isn’t released just yet. However, here’s the pre-release firmware along with the example. It should run fine on the current IDE version. Just use the “Tools->Run Bootloader” option to update the firmware.
find_circles.zip (1010 KB)

If you’re filtering objects then you should try to use as many ways to classify as possible. Using find_circles is the first step. You can of-course then call find_blobs on detected circle ROIs to filter by color too. (or get_statistics, etc.)

As noted in the video, you need to set the magnitude threshold correctly as very contrasty objects saturate the hough detector more easily causing them to be false positives.

Do objects you’re looking for fit within a particular min/max of attributes? E.g. do you know what detections are immanently invalid and that you can toss? Having defined limits makes it easier to filter things.

Hi, thanks for linking the download.

The specific object I’m trying to detect is some coffee in a coffee filter (which results in the coffee being round). Just with machine vision-threshold editor (i.e. adjusting the colour thresholds), I’ve able to remove a large number of false detections. Changing the region min and max has also helped in reducing the number of false detections although due to the requirements (i.e. the camera having to be able to detect the coffee in more or less its complete FOV), the region min has to be set rather low resulting in non-ideal results.

Anyway, I’ll play around with the thresholds, implement it and work from there.

Thanks for the help!