2017-07-27 105 views
2

我不太清楚如何用HOG描述符實現「Bag of Words」方法。 我檢查了幾個通常會提供以下幾個步驟的來源:帶HOG描述符的單詞包

  1. 計算有效訓練圖像集的HOG。
  2. 應用聚類算法從描述符中檢索n個質心。
  3. 執行一些魔術來創建具有計算HOG的最接近質心頻率的直方圖,或使用OpenCV實現來執行此操作。
  4. 列車的線性SVM與直方圖

涉及魔法(3)是沒有真正明確的步驟。如果我不使用OpenCV,我將如何實現它?

HOG是以細胞方式計算的向量。所以我對每個單元格都有一個向量。我可以迭代矢量並計算矢量的每個元素的最接近的質心,並相應地創建直方圖。這是否是一個正確的方法來做到這一點?但如果是這樣,我仍然有不同大小的載體,並沒有從中受益。

回答

1

可以表示主要步驟;

1-從整個訓練集中提取特徵。 (HOG功能爲您的目標)

2-將這些功能聚類到詞彙表V中; (K-Means,K-Medoid,你的超參數爲K)

3-將每個訓練圖像編碼爲每個詞彙元素在圖像中出現的次數的直方圖。然後每個圖像由長度爲K的矢量表示。

例如; K的第一個元素可能會出現5次,K的第二個元素可能會在您的圖像中出現10次。最後你會有一個有K個元素的向量。

K [0] = 5 K [1] = 10 .... .... K [η] = 3

4-列車使用該載體的分類器。 (線性SVM)

當給出測試圖像時,提取特徵。現在將測試圖像表示爲每個聚類中心與V最接近的測試圖像中某個要素的直方圖。這是一個長度爲K的矢量。

+0

感謝您的回答!如何用felzenszwalb生豬做這件事?因爲這些HOG通常是一組32維向量。 –

+1

我沒有確切的解決方案,也許你可以嘗試最簡單的方法來計算向量的平均值。例如:x1 + x2 + ... + xn/n = X,這個X可以是您的固定尺寸描述符。 也許它不起作用,我們可以試試。 – BlackCode

+0

你有沒有嘗試過任何解決方案來處理這個問題?如果您有解決方案,可以與我們分享嗎?謝謝 – BlackCode