How will the various algorithms/methods scale to higher resolution images? Will it be linear with pixels? So an algorithm currently running at 640x480 will run 16x slower on a 5MP image? For now I’m using find_circles, but may be using find_blobs or difference. Frame rate isn’t that important for me, so I’m just trying to figure out what to expect.
Also, are there any plans to have Larry look at the circle, blobs or difference methods for optimization?
Yes, but, after qrcode, barcode, and datamatrix stuff. If you want to offer financial support to help make these faster now email us.
As for speed… Yeah, going beyond 640x480 you are looking at sub 1 fps for any of the more serious algorithms. The point of the OpenMV Cam H7 plus was to allow folks to take high res snapshots and for algorithms to run at VGA for some things. But, the fps will be slow.
Find_circles() will actually go a lot faster on the H7 Plus however. The way the algorithm works… When it has access to more RAM it does significantly less work because it can store the Hough table in memory versus recalculating it per circle size. I made the code automatically do less work when it has more ram. So, that algorithm should run faster. Also, it does a convolution that Larry can probably make 4x faster once he gets to it.
I don’t really need any optimization until I can get my hands on the H7 plus, but I’d still consider offering financial support. I’ll email you for more details.
It’s good to know that the find_circles will be faster without any optimization work. Right now, when I run find_circles at the VGA resolution I get an error. I’m hoping that error will go away on the H7 plus?
Can you explain taking hi res snapshots and then running the algorithm at VGA? How is that advantageous as compared to simply taking both the snapshots and running the algorithms at VGA?
The OV5640 supports outputting jpeg images, so, it’s cheap to get a 5MP image stream since we just have to receive the data and write it to disk.