レベルエンター山本大のブログ

面白いプログラミング教育を若い人たちに

BLOCKVROCKリファレンス目次はこちら

おもしろそう、Javaで画像検索

id:audioswitchさんとid:nowokayさんのブログで取り上げられている、画像検索関連の話題について`

そのうち、手を出そうと思う。

OpenCVもあわせてなんか作るつもり。



■あんまネットやらないのにWeb系の研究やってるっていうwww

二次元画像の特徴ベクトルで、Color Cohrence Vector(CCV)というのがあります。

Comparing Images Using Color Coherence Vectors
http://www.cs.cornell.edu/~rdz/Papers/PZM-MM96.pdf

Gregさんたちによって、10年以上前に提案された手法ですが、最近の論文でもその名前を見かけます。


画像の特徴ベクトルとして、色ヒスグラムがあります。

ヒストグラムでは、画像中の色の出現頻度を見ます。

そのため、赤いシャツと赤い花は似ているなどとなってしまいます。

また、青色が中央に集中しているなどの、空間的な情報を捉えることはできません。


それに対してCCVは、似ている色が密になっているか疎になっているかを表し、

色の情報と空間的な情報を共に捉えることができます。

Color Coherence Vectorを実装してみた

■[Java][機械学習]Color Coherence VectorJavaで実装してみた
http://d.hatena.ne.jp/nowokay/20081007

Color Coherence Vectorを実装してみた

■[Java][機械学習]Color Coherence Vectorで画像検索を作ってみた
http://d.hatena.ne.jp/nowokay/20081008#1223496501

ということで、昨日のColor Coherence Vector使って、似た画像を検索するプログラム作ってみた。
ちょっと簡単に似た画像を求めたいときには、なかなかよさげ。

■[java][機械学習]画像同士の距離がとれたら近い画像マップができるよね
http://d.hatena.ne.jp/nowokay/20081009#1223499803

CCVで画像同士の距離が取れたってことは、画像同士どれが近いかというマップができるよね。


QRコードのデコードもJavaでできるらしい。
http://blog.livedoor.jp/dankogai/archives/50789549.html