我正在尝试训练我自己的检测器以与 OpenCV::HOGDescriptor 一起使用,但是我无法让现有的 HOGDescriptor 与我新训练的 SVM 一起使用.
我计算了正负训练图像的 HOG 特征,标记它们并使用 CvSVM 训练 SVM.我使用的参数是:
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() 使用原始支持向量进行分类,因此我计算原始形式的方式可能有问题.
有没有人训练过自己的探测器,可以为我指明正确的方向?