HOG检测方法
Posted
技术标签:
【中文标题】HOG检测方法【英文标题】:HOG Detection methods 【发布时间】:2018-10-07 23:11:19 【问题描述】:我是计算机视觉和机器学习的新手,我搜索了很多,但没有找到适合我的问题的答案。
首先:我想知道所有这些检测方法之间的区别。
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 = new HOGDescriptor()
hog1.setSvmDetector(第一类)
hog2.setSvmDetector(第二类)
【问题讨论】:
【参考方案1】:HOG.detect
它检测单个图像中的对象。
HOG.detectMultiScale
它检测图像中具有原始大小的对象,然后使用某个因素对图像进行下采样,例如使用 1.2 作为因子。然后它检测下采样图像中的对象并进一步下采样图像。重复此过程,直到图像大小小于检测窗口大小。然后它结合在所有图像上找到的所有检测。
HOG.setSvmDetector()
用于设置训练好的分类器。 OpenCV 为您提供了针对不同数据集的预训练分类器,例如 getDefaultPeopleDetector()(使用 INRIA 行人数据集训练)和 getDaimlerPeopleDetector()(使用戴姆勒行人数据集训练)。
您还可以训练自己的分类器,无论是二分类还是多分类,并在 setSvmDetector() 中使用它。
【讨论】:
以上是关于HOG检测方法的主要内容,如果未能解决你的问题,请参考以下文章