2

I'm searching for algorithms/methods that are used to classify or differentiate between two outdoor environments. Given an image with vehicles, I need to be able to detect whether the vehicles are in a natural desert landscape, or whether they're in the city.

I've searched but can't seem to find relevant work on this. Perhaps because I'm new at computer vision, I'm using the wrong search terms.

Any ideas? Is there any work (or related) available in this direction?

user961627
  • 12,379
  • 42
  • 136
  • 210
  • Cross-post http://cs.stackexchange.com/questions/18437/environment-detection-how-to-detect-city-versus-landscape-background-envir – mags Nov 29 '13 at 08:21

5 Answers5

3

I'd suggest reading Prince's Computer Vision: Models, Learning, and Inference (free PDF available). It covers image classification, as well as many other areas of CV. I was fortunate enough to take the Machine Vision course at UCL which the book was designed for and it's an excellent reference.

Addressing your problem specifically, a simple MAP or MLE model on pixel colours will probably provide a reasonable benchmark. From there you could look at more involved models and feature engineering.

Mike
  • 1,814
  • 4
  • 22
  • 36
1

Color components, textures, and degree of smoothness(variation or gradient of image) may differentiate the desert and city background. You may also try Hough transform, which is used for line detection that can be viewed as city feature (building, road, bridge, cars,,,etc).

I would recommend you this research very similar with your project. This article presents a comparison of different classification techniques to obtain the scene classifier (urban, highway, and rural) based on images.

lennon310
  • 12,503
  • 11
  • 43
  • 61
1

See my answer here: How to match texture similarity in images? You can use the same method. I already solved in the past problems like the one you described with this method.

Community
  • 1
  • 1
DanielHsH
  • 4,287
  • 3
  • 30
  • 36
1

The problem you are describing is that of scene categorization. Search for works that use the SUN database.

However, you only working with two relatively different categories, so I don't think you need to kill yourself implementing state-of-the-art algorithms. I think taking GIST features + color features and training a non-linear SVM would do the trick.

Urban environments is usually characterized with a lot of horizontal and vertical lines, GIST captures that information.

GilLevi
  • 2,117
  • 5
  • 22
  • 38
1

Seemingly complex classifications similar to "civilization" vs "nature" might be able to be solved simply with the help of certain heuristics along with classification based on color. Like Gilevi said, city scenes are sure to contain many flat lines and right angles, while desert scenes are dominated by rolling dunes and so on.

To address this directly, you could use OpenCV's hough - lines algorithm on the images (tuned for this problem of course) and look at:

a) how many lines are fit to the image at a given threshold b) of the lines that are fit what is the expected angle between two of them; if the angles are uniformly distributed then chances are its nature, but if the angles are clumped up around multiples of pi/2 (more right angles and straight lines) then it is more likely to be a cityscape.

samfr
  • 656
  • 1
  • 6
  • 19