Compute Recall和Precision评估CBIR系统

时间:2018-03-27 11:40:57

标签: opencv sift confusion-matrix precision-recall cbir

我使用SIFT和其他基于特征的算法(使用OpenCV和Python3)实现了CBIR,现在我必须评估它们的组合(即SIFT / SURF,ORB / BRISK ......)的表现。

我发现我可以使用Precision | TP | /(| TP | + | FP |)和Recall | TP | /(| TP | + | FN |)。我知道TP是正确的肯定,FN是未返回的相关文档,FP是返回但不相关的文档

我用BF计算我的比赛,我认为:

  • matches=bf.knnMatch(descriptor1, descriptor2, k=2)是我的TP + FP
  • 通过口粮测试找到的比赛是我的TP

如何计算我的FN?比如相关但未归还的比赛?

请注意,我只是在制定一个假设,所以如果我错了,请纠正我。

我想对具体实现有一些帮助,比如这些数据在图像匹配的具体情况下在哪里。

另外,您可以建议我如何评估基于特征检测和描述的CBIR系统吗?

1 个答案:

答案 0 :(得分:0)

我终于找到了我的问题的答案,也许它可以帮助别人!

PRECISION和RECALL在信息检索上下文和分类上下文中有区别。

用于信息检索:

precision = (relevant documents + retrieved documents) / retrieved documents
recall = (relevant documents + retrieved dcuments) / relevant documents

对于分类上下文,可以谈论混淆矩阵:

precision = TP/TP+FP
recall = TP/TP+FN

在我的情况下,例如,无法使用混淆矩阵。