Ask Your Question

Revision history [back]

Cascade classifier training with HOG and different-scale blocks

Hello everyone, first question for me so be patient! =)

I'm working on a project related to pedestrian detection and i started from the Histogram of Oriented Gradients from Dalal et al; we have successfully trained an svm based classifier with libSVM and it is working quite good; unfortunately the poblem is related to computational time: to process an entire frame (960x540) it took 1.3-1.6 seconds, that is far away from real-time applications. So i'm moving to the cascade classifier as i know that it should work with the same performances (more or less) but in a really less time. Yesterday i successfully trained a cascade classifier with the HOG features (a very stupid one, with a small dataset and no optimization on parameters; let's say it was just a try - it's the first time i work on cascadeclassifiers); actually the classifier is really bad (i knew it as i say) but it is also really fast (let's say 1/4 of process time wrt the svm one). This was the introduction, sorry for the lenght...

Now, before start the "real" training with the real dataset and so on, i would like to implement the "use of blocks of different scale and size during the training phase" to improve the detection rate as it is done in papers like “Fast Human Detection Using a Cascade of Histograms of Oriented Gradients”, Qiang Zhu, Shai Avidan,Mei-Chen Yeh, Kwang-Ting Cheng, 2006; or “Pedestrian Detection Using Boosted HOG Features”, Zhen-Rui Wang, Yu-Lan Jia, Hua Huang, and Shu-Ming Tang, 2008". The papers are quite clear but they do not provide information about how to reach such a goal.

My question: since, as i understood, this technique is applied during the training phase to better generalize the model, is there some kind of option that i have to set in the opencv_traincascade (as for the other parameters as -numStages i mean, something like -multiScaleBlocks)? how can i tell the train cascade to do the multi scale block process? is it something not yet integrated in opencv that i need to "develop" myself? Has someone actually tried it and knows if effectively it boost the performances (detectiuon rate)?

thank you in advance, have a nice day!

Marco.