4

opencvでFreakを使用して機能を検出し、記述子を抽出してから、BOW語彙を構築し、各画像に対してBOWと一致するように語彙を使用しようとしています。あなたが知っている、全部。BOWはSIFTやSURFなどの他の記述子で使用できることは知っていますが、バイナリであるフリーク記述子をBOWで使用できるかどうかはわかりません。より具体的には、opencvがBOW語彙を構築するとき、k-meansクラスターを使用します。k-meansクラスターアルゴリズムがどの距離関数を使用するかは私にはわかりません。Freakのようなバイナリ記述子の場合、ハミング距離が唯一の選択肢のようです。

opencv k-meansは、距離を計算するときにユークリッド距離のみを使用するように見えます。独自のk-meansと独自の語彙マッチングを構築する必要があるようです。そこにいる賢い人は回避策を知っていますか?

ありがとう!

4

2 に答える 2

1

フリークは使いにくいと紙で読みました。ここに論文からの抜粋があります「....これらのアルゴリズムは、語彙ツリーや近似最近傍などの高速検索構造に簡単に適応できないハミング距離と比較する必要があるため、多くの検索アルゴリズムで簡単に使用することはできません ( ANN....」 (ORB ,FREAK and BRISK)

于 2012-11-12T15:09:07.697 に答える
0

FREAK は、ローカリティ センシティブ ハッシュで動作します。OpenCV に含まれる FLANN (Fastapproximatenearestneighbors) で使用できます。

BOW の場合、記述子の最初の 5、6、7、8 バイトだけでツリーを構築するのに十分な場合があります。

于 2012-12-12T09:23:22.693 に答える