3
votes

I'm playing a little bit with image similarity. In fact i'm playing with image retrieval system. Ideally i wanna to create some kind of image index that I can query to get similar images.

My current thought is to store some kind of ImageDescriptor into index and each descriptor can have different features in it, e.g. k-mean-cluster-centroids, histograms, ... And i have some simple wight based calculation - each feature has distance function and result of that function is multiplied by it's wight and summed across all features. Final sum is distance from my image. Not sure is this good line of thought?

So i started to play with histograms. I stored index of histograms, than query them for distance between histogram and index stored histograms. It gives some kind of similarity but in most case is far from good ideal.

Now I'm playing with k-mean clustering. I already implemented segmentation based on RGB distance (will try also in Lab color mode). My index consists of vector of centroids (from clustering). Now I'm doing just min-distance comparison between centroids. It give better results but also far from good.

My first question can i do something better with segments (clusters) than to query for distance? How can i include shape information?

Just as side note, most images are images of everyday objects (different pencils, different glasses, different shoes, ...) and with different textures on the background of same color. No natural images, faces, trees, clouds, mountains, ...

Regards Zaharije

1
I am playing with something very similar, did you end up resolving this issue? Any suggestions on best clustering algo, specifically for pizel colors in a an image?R Ghosh

1 Answers

0
votes

image similarity is not only pixel based. There ara several dimensions for image similarity. For good similarity, you need to have extra informs from images. Low level features etc.