Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Clustering images using unsupervised Machine Learning

I have a database of images that contains identity cards, bills and passports.
I want to classify these images into different groups (i.e identity cards, bills and passports).
As I read about that, one of the ways to do this task is clustering (since it is going to be unsupervised).
The idea for me is like this: the clustering will be based on the similarity between images (i.e images that have similar features will be grouped together).
I know also that this process can be done by using k-means.
So the problem for me is about features and using images with K-means.
If anyone has done this before, or has a clue about it, please would you recommend some links to start with or suggest any features that can be helpful.

like image 254
singrium Avatar asked Oct 09 '18 12:10

singrium


1 Answers

Most simple way to get good results will be to break down the problem into two parts :

  1. Getting the features from the images: Using the raw pixels as features will give you poor results. Pass the images through a pre trained CNN(you can get several of those online). Then use the last CNN layer(just before the fully connected) as the image features.
  2. Clustering of features : Having got the rich features for each image, you can do clustering on these(like K-means).

I would recommend implementing(using already implemented) 1, 2 in Keras and Sklearn respectively.

like image 100
Deepak Saini Avatar answered Nov 10 '22 00:11

Deepak Saini