3

我正在使用OpenCV實現Bag-of-Words圖像分類器。最初我已經測試了在SURF關鍵點中提取的SURF描述符。我聽說密集SIFT(或PHOW)描述符可以爲我的目的更好地工作,所以我也嘗試了它們。密集SIFT比SIFT更適合單詞袋?

令我驚訝的是,他們表現更差,實際上差近10倍。我可能做錯了什麼?我使用OpenCV中的DenseFeatureDetector獲取關鍵點。我從9個圖層中提取每個圖像約5000個描述符並將它們聚類爲500個簇。

我應該試試VLFeat庫中的PHOW描述符嗎?另外,我不能在OpenCV的SVM實現中使用卡方內核,這在許多論文中都是推薦的。這對分類器質量至關重要,我應該嘗試另一個庫嗎?

另一個問題是規模不變性,我懷疑它可能受密集特徵提取的影響。我對嗎?

回答

8

這取決於問題。你應該嘗試不同的技術,以便知道什麼是最適合你的問題的技術。當你需要分類任何一種場景時,通常使用PHOW是非常有用的。 您應該知道PHOW與密集SIFT有點不同。幾年前我使用了vlfeat PHOW,並且看到代碼,它只是調用不同大小的密集篩選,以及一些平滑處理。這可能是一個線索,能夠不變規模。 同樣在我的實驗中,我使用了libsvm,結果是直方圖相交對我來說是最好的。默認情況下,卡方和直方圖交集內核不包含在libsvm和OpenCV SVM(基於libsvm)中。你是決定是否應該嘗試的人。我可以告訴你,RBF內核實現了近90%的準確率,直方圖交點93%,卡方91%。但是這些結果是在我的具體實驗中。你應該開始使用自動調整參數的RBF,看看它是否足夠。

總結一切取決於你的具體實驗。但是如果你使用密集SIFT,也許你可以嘗試增加簇的數量,並調用不同尺度的密集SIFT(我推薦你使用PHOW方式)。

編輯:我一直在尋找的OpenCV DenseSift,也許你可以用

m_detector=new DenseFeatureDetector(4, 4, 1.5); 

開始認識thath vlfeat PHOW用途[4 6 8 10]塊大小。