多次元尺度構成法を使って画像の類似度を可視化する(その1)
類似画像をプロットしてみました。MDS(多次元尺度構成法)を使って二次元平面上に関係を落とし込んでいます。
環境
Python2.7/OpenCV3.0/GNU Rで作成しました。多次元尺度構成法については、GNU Rにパッケージが入っているのでそちら(cmdscale関数)を使用しています。
特徴量
今回は、簡単な統計量を特徴量として使用しました。1枚の画像あたり81次元となります。
- 画像データをHSVに変換し、チャンネルごとに分解
- 画像を3x3の領域に等分割(計9ブロック)
- 各チャンネルごとに統計量を調べる
- 統計量は平均、分散、歪度
9[ブロック]x3[チャンネル]x3[統計量] = 81となります。
この特徴量は、こちらからアイデアです。 http://www.ijcsit.com/docs/Volume%205/vol5issue03/ijcsit20140503424.pdf
所見
結果を見ると、なんとなくデータが分類されているように見えます。特に、左上の部分は、輝度が高く、明るい画像が綺麗に集まっています。しかし、大域特徴量を使った分類方法を選んだため、輪郭や形状が似ていたとしても類似度が高くなりませんでした。
大域特徴量については、ほかにもCCV(color coherence vector)などがあります。最近では大域特徴量ではなく、局所特徴量(SHIFT/SURF/FAST/ORB/BRISK etc..)が高く評価されて注目されています。そのせいなのか、大域特徴量について記述しているブログが少ない印象を受けますね。
局所特徴量の使用も検討して、もっと自分の直感に近い結果になるように調整しようと思います。