1. CMC: Cumulative Matching Characteristics 累计匹配特征
CMC是一种计算 top-n
的评价指标,主要用来评估闭集中rank-n
的正确率。
下面举例说明:
在双模态特征匹配中。底库 Gallery
中有10条数据(label分别为1,2,3,4···10),现在来了一个待查询 query
的数据(label = 1)。通过模型提取特征并计算相似度以后,如果和Gallery中的数据按照相似度从高到低进行排序后,得到的识别结果是:
- {1,2,3,4,5···,10}, 因为第一个就已经匹配上了,所以说
rank-1 = 100%
- {2,1,3,4,5···,10}, 因为第一个计算出来的label是2,没有匹配上,因此
rank-1 = 0, rank-2 = 100%
,rank -5同理肯定也是100% 因为前两个已经得到了正确的结果,那么前五个中一定包含正确的结果。
- 如果存在多条query数据时,CMC指标一般会直接 取平均 的做法
2. mAP: mean Average Precision
mAP 其实就是对AP的平均值,因为mAP是对准确率进行两次平均以后的一个评价指标,因此我们需要首先明确准确率precision
、召回率 recall
的概念:
在一般情况下,Precision就是指检索出来的条目有多少是正确的,而Recall则表示库中所有正确的条目,有多少被检索出来。
可以表示为以下公式:
P r e c i s i o n = 检索出来的正确信息数目 检索出来的信息总数 Precision = \frac {检索出来的正确信息数目} {检索出来的信息总数} Precision=检索出来的信息总数检索出来的正确信息数目
R e c a l l = 检索出来的正确信息数目 库中的信息总条数 Recall = \frac{检索出来的正确信息数目}{库中的信息总条数} Recall=库中的信息总条数检索出来的正确信息数目
- 需要注意的是Precision和Recall都是针对某一个类别而言的。
在信息检索领域,AP指的是不同召回率上正确率的平均值。而现在的有些检索系统为了能够快速返回结果,在计算AP时就不再考虑召回率。换句话说,如果数据库中和查询信息相关的5条信息,分别出现在查询结果中的第1、3、6、9、10位,那么这次查询的AP就是:
A P = ( 1 1 + 2 3 + 3 6 + 4 9 + 5 10 ) 5 = 0.62 AP = \frac{(\frac{1}{1} + \frac{2}{3} + \frac{3}{6} + \frac{4}{9} + \frac{5}{10})}{5} = 0.62 AP=5(11+32+63+94+105)=0.62
而多次查询的AP值的平均,也就是mAP,附图说明: