2011-10-04 79 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的庫可以使用。