OpenCVとscikit-learnを組み合せて何か面白いことが出来ないか、なんて試行錯誤をしています。 画像の類似度を調べて何か出来そうな気がしたので、ひとまず類似度を調べてみることにしました。 画像が似ているかどうかを調べる方法として、Bag-of-Visual Wordsというのがあるそうです。Bag-of-Wordsっていう文書をベクトルとして表現する手法の応用だとか。 一枚一枚にベクトルを対応付けて、そのベクトルの距離で画像が似ているかどうかを判別するもののようです。 ま、難しいことは良いでしょう、とりあえず。 ここで掲載したプログラムを実行するにはpython3とscikit-learn、OpenCV、numpyが必要になります。適当にインストールしておいてください。 手順大雑把に言うと、以下のような手順でVisual Wordというものを作ります。 全ての画像の特徴点(局所
![pythonでBag-of-Visual Wordsとやらを実装してみた。 - Blanktar](https://cdn-ak-scissors.b.st-hatena.com/image/square/00f4d241d123a3514d5dd3a14fd94e9b6750b4ff/height=288;version=1;width=512/https%3A%2F%2Fblanktar.jp%2Fimages%2Fblog%2F2016%2F03%2Fpython-visual-words.png)