-7

I want to detect content of images.

enter image description here

For example I want to use the above image as an input, and get as output list of terms like: sky, water, sea, buildings etc.

Any idea how to start?

Ziv
  • 161
  • 8
  • 4
    You'll probably want to start with at least one good book on Computer Vision. – Paul R Jul 07 '14 at 13:16
  • No. It's a fantastic. ;) – Ivan Aksamentov - Drop Jul 07 '14 at 13:16
  • 4
    Sometimes the "too broad" close reason seems such an understatement! – Roger Rowland Jul 07 '14 at 13:19
  • 1
    Which bit of the foreground is water and which bit is sea? THey both look the same to me. For starters try these links: http://users.cecs.anu.edu.au/~sgould/papers/cvpr12-multiSeg.pdf. And this book http://szeliski.org/Book/, pdf available at that site. http://users.cecs.anu.edu.au/~sgould/papers/iccv09-sceneDecomposition.pdf – Bull Jul 07 '14 at 13:29
  • 1
    @Ziv do you have any training images from which to learn features for sky, building, sea? – Bull Jul 07 '14 at 13:40

2 Answers2

5

The short answer is: yes. Below is a quick first effort, using OpenCV - essentially I just took some training patches from each area of the image and then just classified each pixel according how close it was to each patch. The sky is easy, and plain water is easy, but it is difficult to separate buildings from reflections of buildings. This particular image is a bit difficult to start with.

You want to find some sort of features (roughly color, brightness, texture, but there are lots of different ideas that appropriate for different situaions) that are different for different things you want to recognize, and then cluster pixels with similar features together. This is a huge field, Szelinski's computer vision book amd Murphy's machine learning book are good places to start.

enter image description here

Bull
  • 11,771
  • 9
  • 42
  • 53
2

if you require a segmentation, the following keywords should get you on the way:

"Semantic Segmentation"

"Semantic Image Segmentation";

"Object Class Segmentation";

"Object Class Image Segmentation";

"Image Parsing";

"Scene Parsing",

also check out the workshops in the VOC challenge: http://pascallin.ecs.soton.ac.uk/challenges/VOC/

Unfortunately there is not a OpenCV app yet for this AFAIK. But there are some softwares:

ALE, CRF, C++

http://cms.brookes.ac.uk/staff/PhilipTorr/ale.htm

DARWIN, CRF, C++

http://drwn.anu.edu.au/drwnProjMultiSeg.html

DARWIN, PATCH MATCH, C++

http://drwn.anu.edu.au/drwnProjPatchMatch.html

TextonBoost ,CRF, C#

http://jamie.shotton.org/work/code.html

TextonForest, RF, C#

http://www.matthewajohnson.org/research/stf.html

CPMC/O2P, MATLAB

http://www.maths.lth.se/matematiklth/personal/sminchis/code/cpmc/index.html http://www.maths.lth.se/matematiklth/personal/sminchis/code/o2pCode.html

QED
  • 808
  • 8
  • 11