9

我想训练数据并使用 HOG 算法来检测行人。现在我可以用defaultHog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());inopencv来检测了,但是对我的测试视频效果不是很好。所以我想使用我的数据库进行培训。

我准备了 1000+ 个正样本和 1000+ 个负样本。它们被裁剪为 50 * 100 的大小,我已经做了列表文件。

而且我在互联网上阅读了一些教程,它们都很复杂,有时甚至很深奥。其中大部分是分析HOG的源代码和算法。但是只有更少的例子和简单的anylize。

libsvm\windows\svm-train.exe一些可以用来训练的指令显示,任何人都可以根据1000+ 50 * 100个正样本给出一个例子吗?
例如,like haartraing,我们可以从opencv, likehaartraining.exe –a –b使用一些参数,并得到一个*.xml用于人员检测的结果?

或者有没有其他方法来训练和检测?

我更喜欢知道如何使用它和详细的程序。作为细节算法,它对我来说并不重要。我只想实现它。

如果有人知道,请给我一些提示。

4

1 回答 1

7

我提供了一些示例代码和说明来开始使用 openCV 训练您自己的 HOG 描述符:请参阅https://github.com/DaHoC/trainHOG/wiki/trainHOG-Tutorial

简而言之,该算法确实太复杂,无法提供,但基本思想是:

  1. 从相同大小和类型的负样本图像和正样本图像中提取 HOG 特征。
  2. 使用提取的特征向量及其各自的类来训练 SVM 分类器,在此步骤中,您可以将 svm-train.exe 与包含特征向量及其类的正确格式的生成文件一起使用(或直接包含并解决源中的 libsvm 库类)。
  3. 将生成的 SVM 模型和支持向量计算为可与 openCV 检测器一起使用的单个描述符向量。

此致

于 2013-04-21T17:51:55.483 回答