温故而知新,可以为师矣!
一、参考资料
mAP详解与计算-CSDN博客
目标检测模型评价标准-AP与mAP – 知乎
二、相关介绍
TP/FP/TN/FN
TP(True Positives)意思我们倒着来翻译就是“被分为正样本,并且分对了”,TN(True Negatives)意思是“被分为负样本,而且分对了”,FP(False Positives)意思是“被分为正样本,但是分错了”,FN(False Negatives)意思是“被分为负样本,但是分错了”。

每一行和每一列分别对应样本输出中的每一个类别,行表示实际类别,列表示预测类别。
理想的混淆矩阵:
| A类别 | 5 | 0 | 0 |
| B类别 | 0 | 6 | 0 |
| C类别 | 0 | 0 | 7 |
不理想的混淆矩阵:
| A类别 | 3 | 1 | 1 |
| B类别 | 0 | 4 | 2 |
| C类别 | 0 | 0 | 7 |
精准率 = 主对角线上的值 / 该值所在列的和
召回率 = 主对角线上的值 / 该值所在行的和
Precision vs. Recall


Precision 翻译成中文就是“分类器认为是正类并且确实是正类的部分占所有分类器认为是正类的比例”,衡量的是一个分类器分出来的正类的确是正类的概率。两种极端情况就是,如果精度是100%,就代表所有分类器分出来的正类确实都是正类。如果精度是0%,就代表分类器分出来的正类没一个是正类。光是精度还不能衡量分类器的好坏程度,比如50个正样本和50个负样本,我的分类器把49个正样本和50个负样本都分为负样本,剩下一个正样本分为正样本,这样我的精度也是100%,但是傻子也知道这个分类器很垃圾。
Recall 翻译成中文就是“分类器认为是正类并且确实是正类的部分占所有确实是正类的比例”,衡量的是一个分类能把所有的正类都找出来的能力。两种极端情况,如果召回率是100%,就代表所有的正类都被分类器分为正类。如果召回率是0%,就代表没一个正类被分为正类。
F1 分数
如果想要找到
P
P
P 和
R
R
R 二者之间的一个平衡点,我们就需要一个新的指标:
F
1
F1
F1 分数。
F
1
F1
F1 分数同时考虑了查准率和查全率,让二者同时达到最高,取一个平衡。
F
1
F1
F1 计算公式如下:
F
1
=
2
∗
P
∗
R
P
+
R
F1 = \\frac{2 * P * R}{P + R}
F1=P+R2∗P∗R
PR曲线、AP值
mAP以及AP计算方式 – Circle_Wang – 博客园
PR曲线:Precision and Recall
在不同置信度阈值下,可以计算出不同的(P,R),由这些点画出的图形即为P-R曲线。

对P-R曲线进行平滑处理后,得到平滑后P-R曲线,平滑曲线内的面积即为AP值。

ROC曲线、AUC值
AUC、精确率和召回率 – Circle_Wang – 博客园
这个指标其实和上面的精确率和召回率没有太大的联系(只不过指标间叫法不同),不过也是能反应分类器的效果的。AUC其实是一个面积,是ROC曲线下的面积。什么是ROC曲线呢?ROC曲线的x轴为:假正类率(false positive rate),ROC曲线的y轴为:真正类率(true positive rate),计算公式如下:
伪阳性率FPR =(FP)/(FP+TN)
真阳性率TPR =(TP)/(TP+FN)
注意这个真阳性率的公式其实和前面的Recall计算方式是一样的,因此ROC曲线的y轴其实就是Recall的计算。
ROC曲线内的面积即为AUC值AP值。
PR曲线 vs. ROC曲线
- PR 曲线是以 Recall 为横轴,Precision 为纵轴;而 ROC曲线则是以 FPR 为横轴,TPR 为纵轴**。P-R 曲线越靠近右上角性能越好。
- PR 曲线展示的是Precision vs Recall 的曲线,ROC 曲线展示的是 FPR(x 轴:False positive rate) vs TPR(True positive rate, TPR)曲线。
- PR 曲线与 ROC 曲线的相同点是都采用了 TPR (Recall),都可以用 AUC 来衡量分类器的效果。不同点是 ROC 曲线使用了 FPR,而 PR 曲线使用了 Precision,因此PR曲线的两个指标都聚焦于正例。类别不平衡问题中由于主要关心正例,所以在此情况下PR曲线被广泛认为优于ROC曲线。
mAP
机器学习基础—分类评价指标—AP,mAP
GitHub – Cartucho/mAP
三个常见指标
| mAP@0.5 | 只在 IoU=0.5 这一个阈值下评估 | 宽松 | 快速对比模型基础性能;对定位精度要求不高的场景(如人流计数) |
| mAP@0.75 | 只在 IoU=0.75 这一个阈值下评估 | 严格 | 对定位精度要求高的场景(如工业缺陷检测、医学影像) |
| mAP@0.5:0.95 | 在 IoU=0.5 到 0.95 之间(步长0.05)取平均 | 最严格 | 综合评价模型既有检测能力又有定位能力,是 COCO 数据集的主指标 |
举例:假设一个模型在 COCO 数据集上的 mAP@0.5 能达到 70% 以上,但 mAP@0.5:0.95 可能只有 40%~50%,这是完全正常的,因为严格的 IoU 标准下能正确匹配的框会少很多。
mAP@0.5
mAP@0.5 的含义是:在 IoU 阈值设为 0.5 的条件下,计算所有类别的平均精度(AP)并求均值。
-
@0.5 直接限定了 IoU 的判定标准。只要预测框与真实框的重叠度超过 50%(IoU > 0.5),就认为这个检测是 正确的(True Positive),否则就是错误的(False Positive)。
-
这是一个相对宽松的标准。50% 的重叠意味着只需要大致框出物体的位置即可,不要求非常精确。因此,在这个标准下,模型的 mAP 数值通常会比较高。
-
在 YOLO 系列中,mAP@0.5 能更直观地反映模型“找没找到物体”的能力,对定位精度的要求没那么苛刻。
使用 mAP@0.5 的注意事项:
在对比不同来源的 mAP@0.5 数值时,需要留意两点细节,否则可能被数字误导:
简单示例
e.g. 某班有100人,女生20人,男生80人,目标是找出所有的女生。
某人从中挑选出50人,正确判断出有20人是女生,另外把30个男生错判为女生
| True Positive(TP)正类判定为正类(这位女生是女生) | False Negative(FN)负类判定为正类(错判这位男生是女生) |
| False Positive(FP)正类判定为负类(错判这位女生是男生) | True Negative(TN)负类判定为负类(这位男生是男生) |
解:根据混淆矩阵的定义和题意可得,
| TP = 20 | FN = 0 |
| FP = 30 | TN = 50 |
准确率(Accuracy) = (TP + TN) / (TP + FN + FP + TN) = 70 / 100
精准率(Precision) = TP / (TP + FP) = 20 / 50,亦称查准率
召回率( Recall) = TP / (TP + FN) = 20 / 20,亦称全查率

