Object detection for specific flat objects

I am new to computer vision and want to detect concrete and flat objects in an image (or video frame).

What do I mean with concrete and flat?

Flat

Well, flat objects are like objects, but, you know, flat ... What does this mean for me:

  • Objects will always be viewed from approximately the same โ€œfrontalโ€ angle, i.e. the axis of the camera corresponds to (more or less) normal. (But they can be rotated around this axis).
  • Objects for which the angle of illumination does not change anything (i.e. it does not have bumps and creases casting shadows).

Specific

  • Lessons from which I know the exact appearance and shape. They are all the same, there are no changes.
  • I have a (accurate) photograph (or representation) of them.

Examples of such objects

  • Obverse account for 1 dollar.
  • Mona Lisa
  • Front cover of last issue (your favorite magazine is here)
  • ...

I find the problem simple enough so that I can find the computer vision library function, which basically works like this:

> findObjects("object.png", "image.png") [object at x1, y1, rotated z1 degrees, size height1*width1, object at x2, y2, rotated z2 degrees, size height2*width2, ...] 

In fact, I donโ€™t even care about the sizes and locations of objects, I just need an account.

But I can not find anything like it. All I can find are countless face recognition examples with something called a haar classifier, which seems to be unsuitable for my problem, because:

  • Faces are not flat, and therefore the classifier must cope with problems, such as various illuminations, shadows ...
  • It should recognize faces, that is, objects similar, but not quite identical.
  • He must recognize faces with which he has not been trained, just because they are โ€œsimilarโ€ to faces.
  • The proof that this is not suitable: it must be trained in hundreds or thousands of positive and negative patterns. In my problem, all the necessary information is contained in one sample. So this is not so.

So, is there something similar?

I would rather use OpenCV as it seems to be a standard computer vision library, but I am open to any solution.

+7
source share
1 answer

One way to do this is to use a breakpoint. Opencv has a demo pretending to be what you want (find http://imgur.com/a/Bbc6C#gxXGh at http://imgur.com/a/Bbc6C#UfTkn as a ready-made demo (in the opencv 2.2 distribution : samples/c/find_obj.cpp ) The result is visualized at http://imgur.com/ZF1bh - you can start by doing this to adapt it so that it finds multiple instances of the image and reads them.

+4
source

All Articles