CMC、mAP解析:图像检索领域评价指标

news/2024/6/18 21:11:08 标签: python

1. CMC: Cumulative Matching Characteristics 累计匹配特征

CMC是一种计算 top-n 的评价指标,主要用来评估闭集中rank-n的正确率。
下面举例说明:
在双模态特征匹配中。底库 Gallery 中有10条数据(label分别为1,2,3,4···10),现在来了一个待查询 query的数据(label = 1)。通过模型提取特征并计算相似度以后,如果和Gallery中的数据按照相似度从高到低进行排序后,得到的识别结果是:

  1. {1,2,3,4,5···,10}, 因为第一个就已经匹配上了,所以说rank-1 = 100%
  2. {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,附图说明:
    在这里插入图片描述

http://www.niftyadmin.cn/n/4952945.html

相关文章

年薪100w的项目组合和项目集经理与项目经理的区别

项目经理未来的发展是什么?很多人经常问,专业的路可以是项目集,项目组合经理,也可以是PMO等等。为什么项目集经理,项目组合经理就挣得比较多呢?今天为大家一一揭秘! 项目经理、项目集经理和项目…

python 编程规范有哪些?

Python 编程规范主要包括代码布局、命名规范、注释规范、函数编写规范等多个方面,下面给出一些常见的编程规范及其示例代码。 1. 代码布局规范 代码布局规范主要是指代码的缩进、行宽、空行、换行等方面,下面是一些常见的代码布局规范: 使…

BC99 序列中整数去重

描述 输入n个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的整数,只保留该数第一次出现的位置,删除其余位置。 输入描述 输入包含两行,第一行包含一个正整数n(1 ≤ n…

《合成孔径雷达成像算法与实现》Figure3.10

代码复现如下: clc clear close all% 参数设置 TBP 100; % 时间带宽积 T 7.2e-6; % 脉冲持续时间 t_0 1e-6; % 脉冲回波时延% 参数计算 B TBP/T; …

Pytorch的torch.utils.data中Dataset以及DataLoader等详解

在我们进行深度学习的过程中,不免要用到数据集,那么数据集是如何加载到我们的模型中进行训练的呢?以往我们大多数初学者肯定都是拿网上的代码直接用,但是它底层的原理到底是什么还是不太清楚。所以今天就从内置的Dataset函数和自定…

听GPT 讲Prometheus源代码--discovery

Prometheus是一个开源的系统监控和警报工具包,以下是Prometheus源代码中一些主要的文件夹及其作用: cmd/:这个目录包含了Prometheus主要的命令行工具,如prometheus/,promtool/等。每个子目录都代表一个可执行的命令行应…

【C++】详解内存中的堆和栈

2023年8月20日,周日早上 感觉很多东西还没吃透,很多疑问还没解决。 这篇文章可能会不定期更新。 还没解释为什么栈的空间有限,而堆的空间很大 还没解释栈和堆在内存中的位置 ...... 目录 怎么申请栈空间语法举例说明 怎么申请堆空间语法…

n5173b是德科技keysight N5173B信号发生器

产品概述 是德科技/安捷伦N5173B EXG模拟信号发生器 当您需要平衡预算和性能时,是德科技N5173B EXG微波模拟信号发生器是经济高效的选择。它提供解决宽带滤波器、放大器、接收机等参数测试的基本信号。执行基本LO上变频或CW阻塞,低成本覆盖13、20、31.…