Object Detection - HOG Descriptor + SVM

I am experiencing the HOG Descripter + SVM detection using .multiScaleDetect() function takes approx 250ms, in comparion to 50ms as with Haar features. Is this relative time increase correct ? (CPU only I thinK). What kind of times are you experiencing on non GPU computer, using CPU?.

I see a trained file .xml is created using HOG Descriptor and SVM. But can this file accomate the detection of several differnet objects type (e.g. Car, Building). I ask as in the example source code, I do see the SVM been given HOG features together with labels of objects, for 2 diffrent objects. So I am wandering ? (I cannot see how myself it can)

definitely not. it’s a binary, one class classifier (object or not).
if you need several different types of objects detected at the same time, use a cnn (like yolo or SSD)

no, you misread it, it gets trained on foreground(object) and background(not object) images

there is opencl support for this, try to feed UMat’s

no, you misread it, it gets trained on foreground(object) and background(not object) images

So it is just to craft the data during its time in the SVM ?, to kind of train it away from from what kind of things to avoud ?.

And so therefore it is just 2 types in the SVM ? Positive and Negative ?, or can there be 3+ types like Posotive, Negative1 Negative2. I ask due to seeing that ‘labels’ are given to the data in the SVM, Which makes me think were they really required ? (Would labelling be required for SVM usage , in general ?)

What kind of times are you experiencing on non GPU computer?.

Non, I wrote NON-GPU, i.e CPU.

in general, yes. (as with any kind of supervised ml)

yes.
you can train a classification SVM on multiple classes
(it will dispatch to multiple “one-against-all-others” binary SVM’s internally),
however, for detection, a single support vector is trained,
and the dot product of that, and the hog-feature of a sliding window in the image is used to determine if it’s an object or not

you can train a classification SVM on multiple classes
(it will dispatch to multiple “one-against-all-others” binary SVM’s internally),
however, for detection , a single support vector is trained,
and the dot product of that, and the hog-feature of a sliding window in the image is used to determine if it’s an object or not

I have read the HOGDescripotor object detection tutorial (that used SVM). THis tutorial is all the knowlege I have about SVM. I found the source code, the way it was structured difficult to follow, so some parts are difficult to remember/understand.

So I ask; In the tutorial, 2 objects types were given to the SVM to be trained, each with an index/description/label, This was an example of Positive vs Negative. How would I use SVM as a multiclass classifier?, does it allow more than 2 objects and index/description/labels ?.

however, for detection , a single support vector is trained,

(from the HOG Descriptor tutorial) , is this due to the Implementation of HOG (Histogram of Oriented Gradients) descriptor and object detector, can only support trained models that are binary/for single obkects per model ?. Is this where the limitation is?.

yes, exactly. so for 5 different objects, you need to train / run 5 seperate HOG Descriptors, which makes this impractical