I would like to understand if pixel-based classification algorithm (e.g. Maximum Likelihood classification ) can be used for object-based classification (i.e. after a segmentation procedure). On the other hand, can object-based classification algorithm (e.g. random forest, SVM) be used for pixel-based classification?


3 Answers 3


Classification algorithms such as Maximum Liklihood, random forests, and SVM are statistical methods for grouping data. These data may be words, colors, sounds or anything you can imagine. In a remote sensing context, these algorithms are used to group pixels or image objects (segments) based on statistical properties, or spectral profiles.

To answer the first part of your question, all three of these algorithms can be used to classify image objects (e.g. segments created in Matlab or eCognition). Since these image objects, or segments, are essentially created by drawing a line around statistically similar groups of pixels, these segments can be classified into further classes too (e.g. forest, grassland, etc) if you create a set of rules or statistical properties deciding which objects are grouped together.

For the second part of the question, all three of these algorithms can also be used as pixel-based classifiers. The same principle holds true for classifying pixels as it does image objects or segments; the specific algorithm determines how the pixels are grouped together based on a given set of statistical rules.

From a software point of view, you can implement these classification algorithms at the pixel level or the image object level in software such as eCognition. You can also implement an object-based classification on image objects, or a pixel-based classification within image objects.

  • 1
    To confound things I might add that, in an unlabeled case, statistics such as; random forests, Kernel SVM and K-means could be used to create image objects. Nov 6, 2014 at 16:49

A classifier, any classifier, can classify any kind of data. These objects, as Aaron correctly states, can be pixels, objects, superpixels, bananas, sounds, DNA, etc.

The main differences which, in my opinion, is really relevant between superpixel- and pixel-based classification are as follows:

pixel based : The resolution of the prediction is maximal, but it is common to encounter noise in predictions. Structured models such as Markov / conditional random fields are possibly needed to enforce spatial smoothness of the predictions. In general, the computational load is also very high, since training models on possibly many training pixels and predicting also on the full image matrix.

superpixel based : This greatly reduces the number of samples to be classified. Also, it provides good spatial support to extract very powerful features (see histograms of bag-of-words, object shape, etc.). Otherwise, you simply average the value of the pixels feature value in the spatial domain of the superpixels (also their standard deviation usually helps conveying information about texture). This should somehow compensate the smaller number of training samples. Drawbacks are that is not that easy to compute good superpixels. I don't know much about eCognition, but in the vision community many excellent implementations are available.

Regarding the type of classifier, it is an important choice that you need to make once you defined what are you trying to classify. In this case, what refers to the type of features rather than the samples. If you are working on simple spectral values, all the classifiers that you list are ok (from computationally light and supereasy maximum likelihod to accurate but heavy nonlinear SVM). If you extract a lot of features from, say, a single family of filters (e.g. mathematical morphology) SVM are a good choice. In general avoid parametric classifiers in high dimensional space. SVM in general works well when features are not too diverse, and you are working in a high dimensional space, with possibly few training samples. However, if you are working in high dimensional spaces composed by very different feature sets, go for random forest. It is an awesome model, insensible to the curse of dimensionality (just test plenty of variables per node), it basically cannot overfit (by training plenty of trees) and it is superfast compared to the other ones. The alternative is to train different SVM for each feature block and combine the decision (usually robust) or to train multiple kernels specific for each feature block (accurate but computationally heavy).

Hope this clarifies a bit what are the main pros- and cons- of pixel vs object based segmentation.


The statistics that you highlight do not care if the data is a set of discrete "objects" or individual pixel based. I would also point out that it is quite incorrect to assert that "Random Forests" or "Support Vectors" are object-based and "Maximum Likelihood" pixel based classification algorithms. The model specification is dependent on a response vector [y] and a matrix representing the independent variables [X...]. In the case of an unsupervised classification, it is not necessary to have the problem labeled thus, negating the need for [y]. Spend some time reading up on multivariate statistics and some of these specific methods. It will help put things into context.

You do not specify what software you are using and the "correct" answer may very well be dependent on a given software. It could be that a specific software implementation of a statistic is only applicable to a single datatype. This would however, be due to software workflow and not limitations of a given statistic. It is quite trivial to implement any of the aforementioned statistics, on raster stacks or polygon objects, in R. Although, I have no idea if it is possible to apply random forests to a pixel-level dataset in eCognition.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.