I am trying to understand cascade classifiers for computer vision. I use OpenCV Traincascade for now and successfully trained some cascades.

However I am trying to grasp the whole process. One thing I do not understand about the cascade training is how the features are selected on each stage.

How does an image classifier select only relevant features?

  • $\begingroup$ This seems to be a question about the behaviour of a specific piece of software; I don't think that's on-topic, here. (Not sure where it would be; perhaps on Stack Overflow?) $\endgroup$ Jan 13, 2017 at 13:21
  • $\begingroup$ @DavidRicherby I guess my question is about finding the relevant features for an image classifier. I talked about OpenCV because this is what I use but I do not necessarily want OpenCV oriented response. I will edit my question. $\endgroup$
    – Pierre C.
    Jan 13, 2017 at 13:42
  • $\begingroup$ Did you check the references given at the bottom of the OpenCV documentation? This paper for example $\endgroup$
    – adrianN
    Jan 13, 2017 at 15:12
  • $\begingroup$ @adrianN Interesting paper. I read some but not this one thanks. I all comes down to how the algorithm evaluates the features. Does it run detection on every samples and watch the output? That sounds like a really expensive task. $\endgroup$
    – Pierre C.
    Jan 13, 2017 at 16:00

1 Answer 1


There is no single answer. A cascade is a very simple idea: it basically represents a bunch of classifiers, applied sequentially.

You are free to decide how each individual cascade will work. You could design the cascade so that every classifier uses the same set of features. Or, you could design the cascade so that each classifier has a different subset of features. They're both considered cascades.

In the standard cascades I've seen used in computer vision, there is one set of features. Each stage in the cascade is a single classifier which is trained on the entire feature vector. Part of the training involves selecting a subset of the features (perhaps only a few features) to use at that stage of the cascade. The training process is responsible for that, and there are many different algorithms for training out there. One example is ADAboost, with decision stumps as the weak classifier; you could take a look at that to see how it works.


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.