Can I use OpenCV to analyze image content? [closed

2019-10-02 15:28发布

问题:

I want to detect content of images.

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?

回答1:

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.



回答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