2012-11-12 44 views
4

我想在opencv中使用Freak來檢測特徵並提取描述符,然後構建我的BOW詞彙表,併爲每個圖像使用詞彙表來匹配BOW。你知道,整個事情。我知道BOW可以與SIFT或SURF等其他描述符一起使用,但我不清楚Freak描述符是二進制的,它可以與BOW一起使用。更具體地說,當opencv構建BOW詞彙表時,它使用k-means集羣。我不清楚k-均值聚類算法使用什麼距離函數。對於像Freak這樣的二進制描述符,海明距離似乎是唯一的選擇。opencv怪胎 - 我可以在BOW中使用Freak特徵描述符嗎?

在我看來,opencv k-means在計算距離時只使用歐幾里德距離,無賴。看起來我必須建立自己的k-means和我自己的詞彙匹配。任何聰明人都知道解決方法?

謝謝!

+0

不要在標題中包含標籤的詳細信息,請在提問之前閱讀這個http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles。 –

+0

我認爲你應該實現你自己的漢明距離k-means。 – luhb

+0

FREAK只是一個描述符。爲了檢測,您可能需要使用BRISK。 –

回答

1

我在紙上讀到Freak並不容易被使用。以下是論文的摘錄「......這些算法不能很容易地用於許多檢索算法中,因爲它們必須與漢明距離進行比較,漢明距離不容易適用於加速的搜索結構,例如詞彙樹或近似最近鄰居( ANN)....「 (ORB,FREAK和BRISK)

0

FREAK適用於局部敏感性散列。您可以將它與OpenCV中包含的FLANN(快速近似最近鄰居)一起使用。

對於BOW,只有描述符的前5,6,7,8個字節可能足以構造樹。

相關問題