1

我正在使用 Corel 数据库(100 类 100 张图片)构建一个 CBIR 系统。我已经实现了一些“当前”(非深度学习)描述符(Sift、Surf、HOG、颜色直方图、HSV 直方图、LBP 直方图、ORB、图像的 Hu 矩、GLCM 描述符(对比度、同质性......))。此外,我为 Sift、Surf 和 ORB 实现了 FlannMatcher 和 BFMatcher;compareHistOpenCV 的函数及其所有直方图和 NORM1,2,INF 倾倒向量 (Hu & GLCM) 的四个距离。

然而,我得到了非常糟糕的结果和糟糕的 R/P 曲线。更准确地说,它似乎真的取决于查询。例如,对于熊来说,使用 GLCM 达到了最好的结果(前 50 名),我得到了这个:

GLCM 结果

另一方面,当查询是一张扑克牌(这很简单)时,会给出相当好的结果,至少对于某些算法,如 Sift。

筛选结果

我想知道结果如此糟糕和多变是否正常?实际上,我只是使用了 OpenCV 函数,所以我看不出我可能错在哪里......

对某些描述符进行加权求和是否相关?只是通过对距离进行归一化,对它们进行加权,然后对全局总和进行排序?

还有另一种方法可以“简单地”改善结果吗?简单地说,我的意思是在 OpenCV 中保持相同的描述符。

谢谢

4

0 回答 0