Reputation: 1151
I am building a CBIR system with Corel Database (100 classes of 100 pictures). I have implemented some "current" (non deep learning) descriptors (Sift, Surf, HOG, Color Histogram, HSV histogram, LBP histogram, ORB, Hu Moments of the image, GLCM descriptors (contrast, homogeneity,...)). Also, I implemented FlannMatcher and BFMatcher for Sift, Surf and ORB ; compareHist
function of OpenCV and its four distances for all the histograms and NORM1,2,INF pour vectors (Hu & GLCM).
However, I get really poor results and bad R/P curve. More precisely, it seems to really depend on the query. For example, for the bear, the best results (Top 50) are reached with GLCM where I get this :
On the other hand, when the query is a playing card (which is rather simple), that gives rather good results, at least with some algorithms such as Sift.
Is it normal to have such bad and variable results ? Actually, I just used OpenCV functions so I don't see where I could have been wrong...
Could it be relevant to make a weighted sum of some descriptors ? Just by normalizing the distances, weight them add sort the global sum ?
Is there another way to improve "simply" the results ? By simply, I mean keeping the same kind of descriptors, in OpenCV.
Upvotes: 1
Views: 202