I'm new to machine vision, but have been doing embedded development for a long time (and work for a microcontroller semiconductor company - not ST.) I'm very impressed with OpenMV and recently purchased an M7. I'm very much looking forward to the H7 and am ready to dive in. I have some basic questions about MV - particularly how to approach certain MV problems:

I want to start with some basic detection type use cases to start learning the ropes, but could use some guidance on what MV techniques are relevant to what use cases. I get the impression that there are numerous techniques that could potentially be used to achieve the same result for uses cases such as:

I want to:

Detect the presence of my car in the garage and know if it's arriving or leaving.

These all have some common themes - an object is arriving and departing from the field of view. But there are lots of variations on the theme like 1) detecting the tiniest indication of an arrival vs the full object being in view, vs final exit 2) how to filter out bogus stuff like a pet walking by or some other visual aberration that is not the focus of the use case 3) in the sports, lap counting use case, how to constrain the counting to a specific "lane" or range of "lanes" 4) in the sports case, at a finish line, competitors 'mill around' after it's over and the MV application needs to sort of trigger one-shot or even automatically "reset" by determining that the competitor has "left the stage" (some sense of visual hysteresis) 5) dealing with lighting variations in a robust way.

I know all these things have been hammered out in some form or another by the MV experts and I'm looking for some good resources that discuss these issues both in general terms and, all the better, in terms of OpenMV APIs.

Which specific object types or algorithms would be most applicable to certain use cases? Even a "taxonomy" of MV use cases would be helpful, I think.

If you had one book, one article, one course (ie: udacity, coursera, etc) or one web site to read on MV, what would it be?

What have you found most helpful in terms of approaching MV use cases and problems associated with various techniques? With or without OpenMV in the picture.

Hi, we recently added the CNN stuff to support these problems. Basically, everything you want to do is data driven. There's not perfect traditional algorithm that will do the job. Instead you need to train the CNN using some image data set for what you want to detect and then have the OpenMV Cam run the CNN on the image for that problem. Right now we basically have no CNN's ready except for CIFAR-10 and Lenet. However, I just bought a deep learning rig and will be porting alexa net to the OpenMV Cam. Since we're an MCU you can't detect 1K classes at once, but, we can make a small CNN for each class of object that you'll be able to load the run on the image to detect that thing.

If you're serious about this in the mean-time I suggest you get started with deep learning and gathering a data set for what you want to do. Because you will have to train a CNN for it to work well.