一文讲清楚目标检测中mAP、AP、precison、recall、accuracy、TP、FP、FN、TN

TP、FP、FN、TN

分类中TP、FP、FN、TN含义

首先理解下在机器学习分类中的含义:
TP(True Positive):指正确分类的正样本数,即预测为正样本,实际也是正样本。
FP(False Positive):指被错误的标记为正样本的负样本数,即实际为负样本而被预测为正样本。
TN(True Negative):指正确分类的负样本数,即预测为负样本,实际也是负样本。
FN(False Negative):指被错误的标记为负样本的正样本数,即实际为正样本而被预测为负样本。

由此可知:
样本总数:TP+FP+TN+FN 。
实际正样本数:TP+FN。
预测结果为正样本的总数(包括预测正确的和错误的):TP+FP。
实际负样本数:FP+TN。
预测结果为负样本的总数(包括预测正确的和错误的):TN+FN。
预测正确的样本数:TP+TN。
positive negative

目标检测中TP、FP、FN、TN的含义

目标检测中的每一个预测结果包含三部分,类别(class),预测框(bounding box)和置信概率(P confidence)。对应的还有真实的检测框,Ground Truth。

什么样的检测结果才叫正确?
1、类别正确
2、预测框(score、confidence)的置信度大于一定阈值
3、预测框与真实框的交并比IoU(Intersection Over Union)大于一定阈值
IoU
由此引入两个评价参数。
交并比阈值记为IoU_th,在VOC中一般取0.5(0.5意味着框与框大约有2/3交叉。)
置信度阈值记为confidence_th。

我们将confidence>confidence_th的检测框记为Positive。
TP:IoU>IoU_th 的检测框数量(同一 Ground Truth 只计算一次)。
FP:IoU<IoU_th的检测框数量,或者是检测到同一个 GT 的多余检测框的数量。
TN:(用不到这个概念)。
FN:没有检测到的 GT 的数量。

假设红色的框是Ground Truth,绿色的框是检测结果, IoU_th 、confidence_th均设为0.5:
这张图中的绿色框就是一个TP。
TP
这张图中的绿色框IoU<IoU_th,所以它就是一个FP。
在这里插入图片描述
这张图中有两个检测框且IoU>IoU_th,那么置信度较高的那个就是TP,剩下的就是FP。
FP1
这张图虽然检测到了框,类别也正确,但是由于confidence<confidence_th,那么这里红色框就是一个FN。注意,FN是从Ground Truth中取,就是如果有n个类似这种的confidence<confidence_th的检测框,我们仍然记FN=1。
在这里插入图片描述

precision 、recall 、accuracy

这几个概念是从信息检索领域来的。

precision

precision = TP/(TP+FP)
个人认为翻译成查准率比较好。

recall

recall = TP/(TP+FN)
个人认为翻译成查全率或者召回率比较好。TP+FN其实就是所有的Ground Truth的数量。

accuracy

accuracy = (TP+TN)/(TP+FN+FP+TN)
在目标检测领域中一般不会用。

抽样范围

precision 和 recall 的抽取样本方式不同:recall是从数据集的同一标签的样本抽样;而precision是从已经预测为同一类别的样本抽样。

一个疑问

(在网上看到下面这张图,我不知道应该怎么理解。)
obj

AP、mAP

这两个概念都是为了衡量模型性能。

AP

AP( Average Precision ):衡量单类别的模型平均准确度。

mAP

mAP(mean Average Precision)
目标检测通常有多个类别,mAP是多个类别平均准度的综合度量,用来衡量模型性能。
简单来说把所有类的AP值取平均。比如有两类,类A的AP值是0.5,类B的AP值是0.2,那么mAP=(0.5+0.2)/2=0.35。

下面通过一个例子介绍AP的计算

一个例子

假如我们计算目标类别为Dog:
有5张Image,共包含7只Dog,也即GT(GroundTruth)数量为7。预测得到了Dog的10个预测结果,然后按confidence从高到低排序。
其中,BB表示BoundingBox,GT=1表示GT与预测的BoundingBox的IoU>=IoU_th,BoundingBox序号相同代表所对应的GT是同一个。
在衡量模型性能时,IoU_th一般取一个定值,然后综合考虑不同的confidence_th取值时的性能。

IndexBBconfidenceGT
1BB10.911
2BB20.831
3BB10.751
4BB30.560
5BB40.490
6BB50.461
7BB60.350
8BB70.230
9BB80.181
10BB90.091

如果设置confidence_th=0,所有的BoundingBox都是Positive。则有 TP=5 (BB1, BB2, BB5, BB8, BB9),FP=5 (重复检测到的BB1也算FP)。除了表里检测到的5个GT以外,我们还有2个GT没被检测到, FN = 2。
precision = TP/(TP+FP) = 5/(5+5) = 0.5
recall = TP/(TP+FN) = 5/(1+6) = 5/7 = 0.71

IndexBBconfidenceGTTPFPFN
1BB10.911YN
2BB20.831YN
3BB10.751YN
4BB30.560NY
5BB40.490NY
6BB50.461YN
7BB60.350NY
8BB70.230NY
9BB80.181YN
10BB90.091YN
合计552

如果设置confidence_th=0.9,只有BB1为Positive,则有 TP=1 (BB1),FP=0。我们还有6个GT没被检测到, FN = 6。
precision = TP/(TP+FP) = 1/(1+0) = 1
recall = TP/(TP+FN) = 1/(1+6) = 1/7 = 0.14

IndexBBconfidenceGTTPFPFN
1BB10.911YN
2BB20.831NN
3BB10.751NN
4BB30.560NN
5BB40.490NN
6BB50.461NN
7BB60.350NN
8BB70.230NN
9BB80.181NN
10BB90.091NN
合计106

以此类推,设定不同的confidence_th(每次增加一个BoundingBox为Positive),然后计算对应的Precision和Recall。
Top1 confidence_th=0.9 precision=1.00 and recall=0.14
Top2 confidence_th=0.82 precision=1.00 and recall=0.29
Top3 confidence_th=0.74 precision=0.66 and recall=0.29
Top4 confidence_th=0.55 precision=0.50 and recall=0.29
Top5 confidence_th=0.48 precision=0.40 and recall=0.29
Top6 confidence_th=0.45 precision=0.50 and recall=0.43
Top7 confidence_th=0.34 precision=0.43 and recall=0.43
Top8 confidence_th=0.22 precision=0.38 and recall=0.43
Top9 confidence_th=0.17 precision=0.44 and recall=0.57
Top10 confidence_th=0.08 precision=0.50 and recall=0.71

P-R曲线

以Precision为Y轴,Recall为X轴,画出P-R 曲线。
随着confidence_th不断降低,Recall稳步变大,Precision局部波动但整体减小。(这也很好理解,阈值越低,能找到的目标越多,但同时精度也可能会下降。)
P-R
AP(Average Precision)的计算为Interpolated PR曲线下的面积。
Interpolated PR曲线是将取Recall大于等于r时最大的Precision的点(图中红色点)连起来。即下图中红色虚线所示:
在这里插入图片描述
大家可以算一下,这里AP=0.5。

思考

1、mAP虽然综合考虑了平均模型准确度,使得模型优劣的评判标准不随confidence_th和IoU_th取值变化而变化。
但在工程应用中,物体是否被正确检测到,还是需要具体的confidence_th和IoU_th,工程上更关心在固定的confidence_th和IoU_th下的准确率。
2、在工程应用中,根据对于confidence和IoU的侧重不同,来设计loss函数。

参考:
https://www.jianshu.com/p/fbb96bb49782
https://blog.csdn.net/asasasaababab/article/details/79994920
https://zhuanlan.zhihu.com/p/56961620

<think>好的,用户现在问的是APmAP的区别,我需要先回顾一下之前讨论的内容。之前用户问的是权重残差链接(WRC),而这次是关于目标检测中的评估指标。所以可能需要先确认用户是否了解目标检测的基础知识,但根据问题本身,用户可能已经有一定了解,但需要明确两者的区别。 首先,AP是Average Precision,即平均精度,通常用于单一类别的检测任务。而mAP是mean Average Precision,即平均AP,是对多个类别的AP取平均。我需要详细解释这两个概念,以及它们在不同场景下的应用。 我需要分步骤解释,结构清晰。可能先定义AP,然后解释mAP,再对比两者的区别。同时要确保使用正确的中文术语和LaTeX格式。用户之前的对话中,系统级指令要求数学表达式用$...$和$$...$$,所以要注意这一点。 还要考虑用户可能的背景。用户可能在研究目标检测模型,或者在准备论文,需要准确区分这两个指标。用户可能想知道在什么情况下使用AP,什么时候用mAP,以及它们的计算方式有什么不同。 需要检查是否有常见的误解需要澄清。例如,AP是否只用于单一类别,而mAP是多类别的平均。另外,可能还需要提到不同数据集(如PASCAL VOC和COCO)中mAP的计算差异,比如使用IoU阈值不同,或者是否考虑不同IoU下的平均。 最后,总结部分要简明扼要,强调两者的核心区别和应用场景。确保回答真实可靠,结构清晰,符合用户的要求。</think>以下是关于AP(Average Precision)和mAP(mean Average Precision)的对比解析: --- ### 一、基础定义 1. **AP(平均精度)** - **核心作用**:评估**单一类别**的检测性能 - **计算步骤**: 1. 按置信度排序预测结果 2. 计算不同召回率下的精度值 3. 绘制Precision-Recall曲线 4. 计算曲线下面积(AUC) 2. **mAP(均值平均精度)** - **核心作用**:评估**多类别**检测系统的整体性能 - **计算步骤**: 1. 对每个类别单独计算AP 2. 对所有类别的AP取算术平均 --- ### 二、数学表达对比 | 指标 | 公式 | 参数说明 | |------|-------------------------------|---------------------------------| | AP | $$AP = \int_0^1 p(r) dr$$ | $p(r)$: 召回率为$r$时的精度值 | | mAP | $$mAP = \frac{1}{C}\sum_{c=1}^C AP_c$$ | $C$: 类别总数,$AP_c$: 第$c$类的AP | --- ### 三、关键差异点 | 特征 | AP | mAP | |---------------------|-------------------------------|-------------------------------| | 适用场景 | 单类别任务(如人脸检测) | 多类别任务(如COCO数据集) | | 敏感性 | 反映特定类别性能波动 | 体现模型整体泛化能力 | | 计算复杂度 | 较低(单曲线计算) | 较高(需遍历所有类别) | | 典型应用 | 二分类问题评估 | 多目标检测竞赛标准指标 | --- ### 四、实例说明 **PASCAL VOC数据集评估**: - **AP计算**:对20个类别分别计算AP - **mAP计算**:将20个AP值平均 - 当某类AP=0.9,另一类AP=0.7时: $$mAP = \frac{0.9+0.7}{2} = 0.8$$ **COCO数据集扩展**: - 采用**mAP@[0.5:0.95]**(在不同IoU阈值下计算平均值) - 计算公式: $$mAP = \frac{1}{10}\sum_{t=0.5}^{0.95} mAP_{IoU=t}$$ --- ### 五、常见误区澄清 1. **不是简单平均关系**: - mAP计算前需确保各类别评估标准统一(如IoU阈值、正负样本定义) 2. **AP的变体**: - 在目标检测中,AP常特指**IoU=0.5**时的计算结果 - 严格定义下应标注为AP@0.5 3. **COCO的特殊性**: - COCO官方定义的mAP包含**多尺度测试**结果 - 包含对小/中/大目标的分别评估 --- ### 六、选择建议 - **研究场景**:需同时报告AP(分析单类性能)和mAP(整体评估) - **工程部署**:优先关注mAP,但需检查关键类别的AP值 - **竞赛优化**:COCO等比赛以mAP@[0.5:0.95]为权威指标 --- ✎ **总结**:AP是单类别的精度积分,mAP是多类别的平均表现。理解二者的区别,需结合具体任务需求选择评估指标:单类问题关注AP,复杂多类系统必看mAP
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值