I have a set of images of various products from different websites. I want to cluster the images based on the product shown in the image. How can I generate a suitable feature vector for an image for this purpose?? I just need to know how to generate a feature vector given an image. I tried NetVLAD, but it is very slow. I would like something that is fast and gives high accuracy for clustering in the scenario I have described. Please help me.
Feature extraction is basically reducing the amount of resources required to describe a large set of data. Analysis with a large number of variables (like images) generally requires a big amounts of memory and computation power. You can start from the simplest and slowly work your way up (in computational requirements) until you reach your desired accuracy.
ORB (oriented FAST, rotated robust independent features) -> SURF (speed up robust feature) -> SIFT (scale invariant feature transform) -> OverFeat (Convolutional Network) -> vgg16 ... (There are many more, any neural network model can be used for this)
One option is to use a pre-trained deep learning model for object detection. It would be fast because it would only do the prediction / forward-pass.
For example, PyTorch has out-of-the-box object detection models.