David Nister と Henrik Stewenius によって提案された「ボキャブラリー ツリーによるスケーラブルな認識」と呼ばれる、画像を照合する方法の実装または改善を知っていますか? 私はそれを実装しようとしていますが、アルゴリズムの一部を理解するのに苦労しています (より具体的には、スコアの計算)。
6 に答える
これは、語彙ツリーの適切な実装であるlibvotです。C++11 標準マルチスレッド ライブラリを使用してビルド プロセスを高速化するため、非常に高速に実行されます。
語彙ツリーを構築するために 3 つのステップを使用します。最初のステップは、sift 記述子を使用して kmeans ツリーを構築することです。2 番目のステップは、最初のステップで構築した語彙ツリーを使用して画像データベースを構築することです。3 番目のステップは、画像データベースに対して画像を照会することです。逆リストや L1 距離測定などの高度な手法も、このリポジトリに反映されています。
語彙ツリーに関しては、C ++ / pythonでそれらを実装するこの論文( http://www.tango-controls.org/Members/srubio/MasterThesis-VocabularyTree-SergiRubio-2009.pdf )を見つけました。しかし、どこにもコードが見つからないので、作者に連絡してコードを入手しましたが、この日まで成功しませんでした。
さらに、この他の実装(http://www.inf.ethz.ch/personal/fraundof/page2.html)を見つけましたが、それを機能させることができませんでした。
すでに実装しましたか?画像認識についても同じことをしたいのですが、大変な作業のようです。
よろしくお願いします。
最近私は DBow と呼ばれる C++ でのフリーではない非常に優れたボキャブラリ ツリーの実装を見つけました。
コードはよく整理されており、多くのコメントがあります。
ここでチェックアウト: http://webdiis.unizar.es/~dorian/index.php?p=31
空間充填曲線または空間インデックスを探したい。sfc は 2 次元の複雑さを 1 次元の複雑さに減らしますが、それは表面の並べ替えにすぎません。sfc recursivley は、サーフェスをより小さなタイルに分割し、近くのタイルの情報を選び続けます。四分木と比較できます。これは、近くのタイルを比較するため、画像を比較するのに役立ちます。難しいのは、タイルを比較可能にすることです。ここでは DCT が役立つと思います。Nick のヒルベルト曲線四分木空間インデックス ブログを探します。
Grauman と Darrell によって提案されたPyramid Match カーネル法は、一般的にさらに優れていると考えられていると思います。ここでC++ ライブラリの実装を入手できます。