Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version
  1. Yes you can use OpenCV's SVM for multi-class classification. See also the example "letter_recog.cpp" under samples/cpp.

  2. What do you mean by scale the features? If you mean normalization: then yes, typically you normalize your data (see e.g. http://metaoptimize.com/qa/questions/8168/why-is-data-normalization-a-good-thing).

  3. Unfortunately not. You can compute them from the response-values and your labels using e.g. Platt's algorithm (see e.g. http://www.csie.ntu.edu.tw/~cjlin/papers/plattprob.pdf).

Imho the ML module and especially the SVM-part is not the strongest part of OpenCV (underlying libSVM is not a recent version and some functionality like the posterior probability is missing). If you have the choice, have a look at Python+ScikitLearn or WEKA or the statistic programming language 'R' (apparently not the best programming language but contains the reference implementations of the most ML-algorithms).