title: Training custom SVM to use with HOGDescriptor in OpenCV
body: <p>I'm trying to train my own detector for use with OpenCV::HOGDescriptor but I'm having trouble making the existing HOGDescriptor work with my newly trained SVM. </p>
  
  <p>I have calculated HOG features for positive and negative training images, labeled them and trained the SVM using CvSVM. The parameters I have used are:</p>
  
  <pre><code>    CvSVMParams params;
      params.svm_type =CvSVM::EPS_SVR;
      params.kernel_type = CvSVM::LINEAR;
      params.C = 0.01;
      params.p = 0.5;
  </code></pre>
  
  <p>Then I calculate Primal Form of the support vectors so that I only get one vector instead of many and set the calculated support vector using HOGDescriptor.setSVMDetector(vector);</p>
  
  <p><a href="http://en.wikipedia.org/wiki/Support_vector_machine#Primal_form" rel="noreferrer">This is Primal Form</a></p>
  
  <p>When I use CvSVM.predict() I am able to correctly classify objects with the SVM, but HOGDescriptor.detect() or detectMultiScale() always returns a lot of positive matches and does not give accurate predictions. </p>
  
  <p>CvSVM.predict() uses the original support vectors for classification so there might be something wrong with the way I'm calculating primal form. </p>
  
  <p>Is there anyone who has trained their own detector who can point me in the right direction? </p>