我正在尝试训练自己的检测器,用于OpenCV::HOGDescriptor,但我无法使现有的HOGDescriptor与我的新训练SVM配合使用。
我已经为正样本和负样本的训练图像计算了HOG特征,对它们进行了标记,并使用CvSVM进行了训练。我使用的参数是:
我已经为正样本和负样本的训练图像计算了HOG特征,对它们进行了标记,并使用CvSVM进行了训练。我使用的参数是:
CvSVMParams params;
params.svm_type =CvSVM::EPS_SVR;
params.kernel_type = CvSVM::LINEAR;
params.C = 0.01;
params.p = 0.5;
然后我计算支持向量的原始形式,这样我就只得到一个向量而不是很多个,并使用HOGDescriptor.setSVMDetector(vector)设置计算出来的支持向量。
当我使用CvSVM.predict()时,我能够正确地对SVM进行分类,但HOGDescriptor.detect()或detectMultiScale()总是返回很多正匹配,并且不能给出准确的预测。
CvSVM.predict()使用原始支持向量进行分类,因此我的原始形式计算可能有问题。
有没有训练过自己的检测器的人可以指点我正确的方向?