Question

I'm using an OpenCV Haar classifier in my work but I keep reading conflicting reports on whether the OpenCV Haar classifier is an SVM or not, can anyone clarify if it is using an SVM? Also if it is not using an SVM what advantages does the Haar method offer over an SVM approach?

Was it helpful?

Solution

  • SVM and Boosting (AdaBoost, GentleBoost, etc) are feature classification strategies/algorithms. Support Vector Machines solve a complex optimization problem, often using kernel functions which allows us to separate samples by working in a much higher dimension feature space. On the other hand, boosting is a strategy based on combining lots of "cheap" classifiers in a smart way, which leads to a very fast classification. Those weak classifiers can be even SVM.

  • Haar-like features are a kind of features based in integral images and very suitable for Computer Vision problems.

This is, you can combine Haar features with any of the two classification schemes.

OTHER TIPS

It isn't SVM. Here is the documentation: http://docs.opencv.org/modules/objdetect/doc/cascade_classification.html#haar-feature-based-cascade-classifier-for-object-detection

It uses boosting (supporting AdaBoost and a variety of other similar methods -- all based on boosting).

The important difference is related to speed of evaluation is important in cascade classifiers and their stage based boosting algorithms allow very fast evaluation and high accuracy (in particular support training with many negatives), at a better balance point than an SVM for this particular application.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top