MysteryGuy
MysteryGuy

Reputation: 1151

Is it normal that I have so poor results in my CBIR system?

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 :

results with GLCM

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.

results with 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

Answers (0)

Related Questions