2011-10-04 81 views
11

我想知道,如果有任何代码或任何良好的文档可用于实现HOG功能?我试着阅读文档here但它是相当困难的理解,它需要SVM ..HOG用于“检测对象”opencv

我需要的只是实施对象HOG检测....像什么它SIFT或SURF

顺便说一下,我在this工作中并不感兴趣。

谢谢。

+0

我有点晚,但对于一个简单而直接的例子看到:http://stackoverflow.com/questions/6090399/get-hog-image-features-from-opencv-python – jmunsch

回答

4

你可以看看 http://szproxy.blogspot.com/2010/12/testtest.html

他还出版了“教程”为HOG源锻造在这里: http://sourceforge.net/projects/hogtrainingtuto/?_test=beta

我知道这一点,因为我和你有同样的问题。本教程虽然不是我称之为教程,它的一堆源代码,没有文档,但我认为它的工作原理,至少可以让你到某个地方。

+0

谢谢你的回答,但为了检测这些人,已经在opencv开源中的示例中实现了一个教程,但我不知道检测对象所需的参数。 – Mario

1

在结束和简化了一下,所有你需要检测图像的特定对象是:

  • 本地化“兴趣点”,以提取补丁:

为了获得兴趣点,你可以使用一些算法,如哈里斯角点探测器,随机或类似滑动窗口的东西。

  • 从这些点获得补丁:

你将不得不采取补丁大小的decission。

  • 从这些补丁计算特征描述符。 (如HOG)。

相反HOG,你可以使用另一个特征描述像SIFT,SURF ...
HOG的实现并不太难。您必须计算使用Sobel X和Y内核的提取补丁的梯度,之后您必须将补丁分成NxM个单元(例如8x8),然后计算梯度,角度和大小的直方图。在下面的链接,你可以看到更详细的解释: HOG Person Detector Tutorial

  • 检查先前训练的分类

的特征向量一旦你得到了这个矢量,检查它是否是所期望的对象或不与先前训练过的分类器如SMV一样。相反,您可以使用NeuralNetworks作为SVM。

SVM的实现比较困难,但也有一些类似opencv的库可以使用。