mAP在计算机视觉中的应用

本文深入探讨了评估图像分类和目标检测算法性能的关键指标——平均精度(mAP),详细解释了准确率(Precision)、召回率(Recall)、F值等概念,并介绍了如何绘制P-R图,以及mAP在PASCAL VOC等竞赛中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要谈mAP必须先说一下,精准率(Precision, P值)和召回率(Recall,R值).P值和R值最初是信息检索领域的评价指标.

准确率Accuracy
这个概念是指分类的准确率,也就是分类准确的样本与样本总数之比.

举个例子:
假设一个样本集中有100个样本,其中99个负样本,1个正样本.

碰巧某个分类器的原理就是所有样本均判为负,那个这个分类器的accuracy就是99%.这比很多算法厉害的分类器都厉害.但是仔细想想,如果总样本中只有1个负样本但是有99个正样本,那个这个分类器,那个这个分类器的正确率将是1%. 
由此可以发现,accuracy的值与样本集中正负样本的比例关系很大.通常情况下,我们希望的算法是在不同场景下表现都比较好的算法,也就是泛化能力强的算法,显然accuracy并不能作为算法泛化能力的衡量.

P值和R值和F值
Precision中文可以翻译为“查准率”(有时候也翻译为“准确率”),也就是返回的结果中希望得到的结果所占的比例. 
Recall中文可以翻译为“查全率”或者通常说的“召回率”,也就是返回的结果希望得到的结果占总样本中所有希望的得到的结果的比例. 
这两个值都是标量,需要进行计算.数学通常希望把一个概念数字化,于是想想一种场景:比如一个搜索引擎中共有n条数据,关于“图像语义分割”的数据有m条,经过搜索,返回了k条.这k条中有一部分是和“图像语义分割”相关的,也有一部分不是.于是就有了以下几个量: 
 1
很容易可以看出,查准率P值和查全率(召回率)R值的值应该等于: 
 
简单理解一下,其实P值就是找的准,R值就是找的全.理想情况下如果以R值为横坐标,P值就一直为1.这样两者的乘积就是1.(其实这种图就是P-R图,可能有的人不太理解里边的原理,下边会说).但是实际中 
往往P值和R值是矛盾的.比如,把所有结果都返回,则R值为100%,但是此时P值就很小;如果只取一个结果且是期望的,那么P值为100%,但是此时显然没有选出全部的(R值很小). 
通常情况下,对于一个模型的P值和R值需要综合考虑(为什么?既然提出来了两个,肯定都要考虑一下了,就像山就在那里).这个时候就引出了 F-measure ,也就是F值. 
 3

4
关于F值这里就不多说了,其中参数beta是根据不同的场景进行调节的.更常用的是F1度量: 


mAP
本文是要讲mAP的,终于前面铺垫了这么多,可以开始讲mAP了.但是,为了讲述mAP,这里还需要先说一下如何画P-R图. 
P-R图:制定一个类别,根据学习器下每个样本对这个类的预测结果进行排序,排在前面的是学习器认为“最可能”的正例样本,最后的是“最不可能的”.按照此顺序逐个把样本作为正例进行预测(1个正例,2个正例,…),则每次可以计算出当前的R值和P值,然后以R值为横轴、P值为纵轴记性作图.就得到了P-R图. 
 5
应该比较容易想到B系统比C系统在这个场景下表现好(自己想想为什么). 
为了能够量化分类器的性能比较,通常采用Average Precison来作为度量标准, 连续图中AP应该是P对R在[0,1]上的积分,实际上P-R图中的值是离散值,化为sum即可. 
而mAP是对所有类别的AP值的平均,也就是所有的AP值求和除以类数.顺便说一句,average是也就是对recall取平均的,mean是对类取平均. 
现在的图像分类论文基本都是用mAP作为标准,PASCALVOC的多个屏幕项目也都是使用mAP作为标准的.

图片来自西瓜书
--------------------- 
作者:明天去哪 
来源:优快云 
原文:https://blog.youkuaiyun.com/u014451076/article/details/70308389 
版权声明:本文为博主原创文章,转载请附上博文链接!

### 计算机视觉中的mAP指标解释 在计算机视觉领域,特别是目标检测任务中,mAP(mean Average Precision)是一个广泛使用的性能度量标准。这一指标衡量模型预测框与真实标注框之间的匹配程度。 #### 定义与意义 mAP是所有类别平均精度(Average Precision, AP)的均值[^1]。对于每一个类别而言,AP反映了该类别的精确率(Precision)随召回率(Recall)变化的情况,即PR曲线下方区域所占的比例。通过求解各个分类下的AP并取其平均值得到最终的mAP分数,这有助于全面评估算法在整个数据集上的表现而不局限于单一类别。 #### 计算过程 为了获得某个特定类别的AP: 1. 首先按照置信度得分对候选边界框进行降序排列; 2. 对于每个预测结果,判断是否为真阳性(True Positive),假阳性和误报(False Negative); 3. 使用这些信息来构建P-R图表; 4. 最终计算此图下面包围的总面积作为AP; 当涉及到多标签或多实例场景时,则需重复上述步骤直至覆盖全部种类,并汇总成总的mAP数值。 ```python def calculate_ap(precisions, recalls): """Calculate the average precision from precisions and recalls.""" ap = 0. for t in np.linspace(0, 1, 11): # VOC Pascal uses 11-point sampling if np.sum(recalls >= t) == 0: p = 0 else: p = np.max(precisions[recalls >= t]) ap += p / 11. return ap def mean_average_precision(ap_per_class): """Compute mAP by averaging over all classes' APs""" return sum(ap_per_class.values()) / len(ap_per_class) ``` #### 应用范围 mAP不仅适用于静态图像的目标识别,也扩展到了视频序列分析等领域,在自动驾驶汽车感知系统、安防监控等多个实际应用场景发挥着重要作用。它能够有效地比较不同模型间的表现差异,帮助研究者们优化网络结构设计和参数调整策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值