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检测方法的主要内容,如果未能解决你的问题,请参考以下文章

第九弹:HOG

将 svm 分类器设置为 HOG 检测器

opencv学习笔记SVM+HOG

第十八节基于传统图像处理的目标检测与识别(HOG+SVM附代码)

detectMultiScale 读取冲突的一个解决方法

图像特征提取三大法宝:HOG特征,LBP特征,Haar特征