views:

67

answers:

1

What are some fast and somewhat reliable ways to extract information about images? I've been tinkering with openCV and this seems so far to be the best route plus it has Python bindings.

So to be more specific I'd like to determine what I can about what's in an image. So for example the haar face detection and full body detection classifiers are great - now I can tell that most likely there are faces and / or people in the image as well as about how many.

okay - what else - how about whether there are any buildings and if so what do they seem to be - huts, office buildings etc? Is there sky visible, grass, trees and so forth.

From what I've read about training classifiers to detect objects, it seems like a rather laborious process 10,000 or so wrong images and 5,000 or so correct samples to train a classifier.

I'm hoping that there are some decent ones around already instead of having to do this all myself for a bunch of different objects - or is there some other way to go about this sort of thing?

+2  A: 

Your question is difficult to answer without more clarification about the types of images you are analyzing and your purpose.

The tone of the post seems that you are interested in tinkering -- that's fine. If you want to tinker, one example application might be iris identification using wavelet analysis. You can also try motion tracking; I've done that in OpenCV using the sample projects, and it is kind of interesting. You can try image segmentation for the purpose of scene analysis; take an outdoor photo and segment the image according to texture and/or color.

There is no hard number for how large your training set must be. It is highly application dependent. A few hundred images may suffice.

Steve
Ultimately I'm interested at automating the process of describing what a set of somewhat related images pertains to without requiring a human look at them and say "Ah these are some pictures of a vacation in Tuscany". While that's going to be insanely difficult to pull off - perhaps something more reasonable would be like ok this picture shows a vineyard, some sky and villa.
Khorkrak
That particular example includes an ill-posed problem. Vineyard, sky, and villa are not well defined objects. Even "house" is not well defined. My current work is in music information retrieval; there, people try to do genre classification. The difficulty is similar: jazz, rock, hip-hop, and classical are not easily defined. Once you do decide upon some sort of quantitative feature that discriminates among classes, your accuracy may be low. That said, this difficulty hasn't stopped researchers worldwide from trying!
Steve
Yep I know it's a wicked problem however I'm sure there must be some way to garner some useful nuggets of info via trained classifiers - but where to get them and what's possible. I read one example of training a classifier for identifying a bowl from various angles - that required a very large set of "is a bowl" - "is not a bowl" pics.
Khorkrak
It may help to recall the two fundamental steps in pattern recognition: feature extraction, and classification. Much of the creativity and novelty lies in feature extraction. Once you have chosen a feature that discriminates among different classes, you can use one of many suitable classifiers. The example of a bowl might benefit from something that measures curvature. (Maybe the Hough transform?) My advice: ask yourself what *features* best discriminate objects of one class from another. OpenCV can still help here. Good luck!
Steve