なにメモ

コンピュータビジョンや機械学習関係の話題を書き綴ると思うブログです。

Bag-of-Featuresの実装

Bag-of-Featuresが必要になったものの、OpenCVではPython用に実装されていないという悲しい現実が待ち受けていたので実装しました。(ちなみにコーディングスタイルはJavaです。)

 

 

ベクトルの量子化にK-meansを使う一般的なものとGMMクラスタリングを使うものを作りました。GMMクラスタリングにはscikit-learnが必要です。

This is a class of Bag-of-Features for OpenCV

 

これのサンプルコードは以下のとおりです。

Test for BagOfFeatures.py

 

サンプルコードの実行結果は以下のとおりです。

The result of bofTest.py

 

多くのコードブックサイズでK-meansのほうが認識率が良かったので、GMMクラスタリングの収束条件などを変えると良くなるかもしれません。

 

Fisher VectorとかVLADとかにすれば、たぶんあると思うんですけどね。

何かありましたら、お気軽にコメントください。