Using deep learning models on Nespresso images
One great resource in machine learning is pre-trained neural networks for image processing. While training a deep network is complex and needs large amounts of data, using pre-trained models is as easy as using functions from a software library.
Just for some fun I picked a few images from the Nespresso webshop and used the VGG19 pre-trained network with the goal of finding a way to sort the images by similarity. This just needs two steps, the first is to get the network layer outputs for each image.
The network returns a vector for each image, then using PCA the vector is reduced to a single dimension, which is then the sort order.
The result is the following sort order for the images (sorted from top to bottom, left to right).
Not perfect but very close, don't you think?
Just for some fun I picked a few images from the Nespresso webshop and used the VGG19 pre-trained network with the goal of finding a way to sort the images by similarity. This just needs two steps, the first is to get the network layer outputs for each image.
base_model = VGG19(include_top=True, weights='imagenet') model = Model(input=base_model.input, output=base_model.get_layer('block5_pool').output) img_features = np.vstack([model.predict(img).flatten() for img in imglst])
The network returns a vector for each image, then using PCA the vector is reduced to a single dimension, which is then the sort order.
pca = PCA(n_components=1) img_score = pca.fit_transform(img_features)
The result is the following sort order for the images (sorted from top to bottom, left to right).
Not perfect but very close, don't you think?