HOG检测方法

时间:2018-04-27 06:45:15

标签: opencv image-processing computer-vision svm

我是计算机视觉和机器学习的新手,我搜索了很多,但没有找到我的问题的答案。

首先:我想知道所有这些检测方法之间的区别。

1)HOG.detect()

2)HOG.detectMultiScale()

3)HOG.setSvmDetector()

第二:我读到HOG.setSvmDetector()仅用于检测一个对象,因为SVM是二进制分类,我想知道我们可以训练多类SVM(One vs All),对于每一类SVM,我们应用一个HOG.setSvmDetector()的新实例?

如果我构建了2个SVM,这意味着现在我拥有2个类的多类SVM,我可以这样做:

  

HOGDescriptor hog1 = newHOGDescriptor()

     

HOGDescriptor hog2 =新的HOGDescriptor()

     

hog1.setSvmDetector(CLASS ONE)

     

hog2.setSvmDetector(CLASS TWO)

1 个答案:

答案 0 :(得分:1)

HOG.detect 它可以检测单个图像中的对象。

HOG.detectMultiScale 它以原始大小检测图像中的对象,然后使用某个因素对图像进行下采样,例如使用1.2作为因素。然后,它检测下采样图像中的对象,并进一步对图像进行下采样。重复该过程直到图像尺寸小于检测窗口尺寸。然后它将所有图像中的所有检测结合起来。

HOG.setSvmDetector() 它用于设置训练的分类器。 OpenCV为您提供了不同数据集的预训练分类器,如getDefaultPeopleDetector()(使用INRIA行人数据集训练)和getDaimlerPeopleDetector()(使用戴姆勒行人数据集训练)。

您也可以训练自己的分类器二进制或多类,并在setSvmDetector()中使用它。