Extracting image features with CNNs
With a high level understanding of the overall pipeline, we will now discuss in detail how we can use CNNs to extract feature vectors for images. In order to get good feature vectors, we first need to either train the CNN with the images and its corresponding classes or use a pretrained CNN freely available on the internet. We will be reinventing the wheel if we train a CNN from scratch, as there are pretrained models available for free download. We also need to keep in mind that if the CNN needs to be capable of describing many objects, it needs to be trained on a set of classes corresponding to a variety of objects. This is why a model trained on a large dataset such as ImageNet (for example, compared to training on a small dataset having only 10 different classes) is important. As we saw earlier, ImageNet contains 1,000 object categories. This is more than adequate for the task we are trying to solve.
Keep in mind, however, that ImageNet contains ~1...