Solved – Clustering images

clusteringconv-neural-networkimage processingmatrix

I do have about 700 matrices (200*200 pixels) and I would like to cluster them into 5-10 groups.

I wanted to try the k-medoids method for this but am not sure how to implement it. According to what I found out I would have to convert the 200*200 matrix into a 40000 element vector and then use that as input to the clustering. However I am not very convinced about the ability of this algorithm to handle such high dimensional data.

I read about convolutional neural networks and it seemed more suitable. However I would like to know if there is maybe a simpler algorithm that could do the job instead.

Best Answer

Images clustering using the pixels as features is very unlikely to work well. Standard practice is to embed the images in a feature space designed for images, then apply a clustering method on that feature space. Standard feature representations include HOG (Histogram of Oriented gradients) and SIFT/SURF features. SIFT in particular is widely used for image search, which involves similar measurements of between image distances as for clustering.

You could use a convolutional neural network to embed the images in a lower dimensional space, then apply clustering in that space. It's a lot of work though. I wouldn't recommend it unless you already have experience with neural networks.

Related Question