Hi. I am developing a reverse image search web application for my undergrad semester project. I am using Milvus to store the features extracted from a single pretrained model trained on ImageNet using PyTorch. I got some good results (using PASCAL VOC2012 as our dataset) but I would like to improve it further.
I have read online about using color histograms as features (although I am not sure if they are too relevant nowadays). I have also read that convolutional neural networks can be trained to classify colors as well so they could also be useful. Another possible approach would be storing multiple feature vectors from different pretrained models (VGG, Densenet, etc). Or I could use features from an object detection model like YOLO.
I want to ask if you all think I am going in the right direction or not (are my suggestions valid?). Any other suggestions regarding how to improve image search, in general, would really be appreciated!
I also have another question. I would like to know whether it’s better (in terms of time, accuracy, and space) to store different feature vectors in one collection and then search OR create multiple collections with a single feature vector and create a “multi-level” image search by reducing the number of nearest neighbors returned at each level.