多分类问题中的mAP计算

PASCAL VOC AP计算

图表参考http://blog.sina.com.cn/s/blog_9db078090102whzw.html


       比如有10类,20个样本,判断为其中一类car的置信度如下表所示,降序排列。


      从表中gt_label可以看出正例是6个,其他是负例。PASCAL VOC CHALLENGE 2010年后计算AP的方法是:假设N个样本中有M个正例,如上表我们N20M6,则有6recall值,分别为1/6,2/6,3/6,4/6,5/6,6/6。对于每个recall值,都对应着很多种top取法,所以每个recall值对应的诸多取法中(包括等于此recall的取法)有一个最大的precision,把每种recall对应最大的precision求和取平均即AP

   比如2/6recall,查找上表,能得到recall2/6值的种类:从第2个开始到第5个,而到上表第6个,因为对应的是正例,所以就不是recall2/6的范围了(因为前面已经有2个正例,如果再加一个正例,recall值就是3/6了),这几个取法对应最大的precision是2/2。同理,recall 4/6的取法就是第四个正例开始(4/7)到第5个正例前(4/10)之间的范围,对应最大的pricision是4/7。如下表


所以mAP就是10个种类的AP求平均值。

### 计算机视觉中的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、付费专栏及课程。

余额充值