Yolo指标解读
1、混淆矩阵TP/FP/FN/TN
(1)每个字母解释
1)第1个字母(T/F)评价预测的结果
它代表预测的结果是对的还是错的。
T(True):预测对了
F(False):预测错了
2)第2个字母(P/N)指代预测的标签
它代表预测的结果具体是什么。
P(Positive):预测为有目标(正样本)
N(Negative):预测为无目标(负样本/背景)
(2)逐个含义
1)TP:真正样本。
P:模型预测这里有目标。T:预测对了,这里确实有目标。场景:正确检测到一个物体。
2)FP:假正样本。
P:模型预测这里有目标。F:预测错了,这里没有目标(是背景)或者不是这个目标(类别搞错了)。场景:误检,把背景或别的东西当成了目标。
3)FN:假负样本。
N:模型预测这里没有目标;F:预测错了,这里其实有目标。场景:漏检,没有把真实的目标找出来。
4)TN:真负样本。
N:模型预测这里没有目标。T:预测对了,这里确实没有目标。场景:正确识别了背景,在目标中我们通常不关注它。
2、准确率/召回率
(1)准确率
它衡量的是模型预测为正样本(有目标)的结果中,有多少是真正的目标,即预测的准确性。它关注的是误检的问题。
计算公式:
假设模型一共预测了 100 个框(TP + FP = 100),其中 85 个是预测正确的(TP = 85),另外 15 个是把背景或别的物体误判为目标的(FP = 15)。
精确率 (P) = 85 / (85 + 15) = 85%
这意味着,模型每找出 100 个目标,里面有 85 个是真的,15 个是错的。
(2)召回率
它衡量的是在所有真实存在的正样本(有目标)中,模型成功找出来的比例,即预测的完整性。它关注的是漏检(FN)的问题。
计算公式:
假设测试集中一共有 50 个真实的目标(TP + FN = 50),模型成功找到了其中的 40 个(TP = 40),漏掉了 10 个(FN = 10)。
召回率 (R) = 40 / (40 + 10) = 80%
这意味着,所有真实存在的目标里,模型成功找回了 80%。
3、IOU
(1)定义
IOU:Inersection over union,交并比,是目标检测中用来衡量预测框准不准的核心指标。
计算公式:
0 < IoU < 1:数值越大,表示框得越准
(2)IoU如何影响精确率计算
精确率的公式是TP/(TP + FP),而IoU就是决定一个预测结果到底是TP还是FP的判决官。
在计算精确率之前,我们必须先通过IoU进行二元判定:
1)设定阈值
我们通常设定一个IoU阈值,最常用的是0.5.
>=0.5:算作正确,TP。
<0.5:算作错误,FP。
2)具体判定流程
假设模型在一张图里输出了 1 个预测框,我们要判定它是 TP 还是 FP。
步骤1:寻找最佳匹配。计算这个预测框与图像中所有真实框的IoU,找到IoU最大的哪个真实框作为候选框。
步骤2:双重考核(定位+类别)
设定IoU阈值是0.5。
考核A:定位考核(IoU)。如果IoU>=0.5,定位过关。如果IoU<0.5,定位不过关。
考核B:类别考核(Clas)。如果预测类别=真实框类别,类别过关,否则不过关。
步骤3:最终判决。只有当考核A和考核B同时过关时,才是TP,否则就是FP。
表格
| 场景 | IoU 值 | 预测类别 | 真实类别 | 判定结果 | 原因分析 |
|---|---|---|---|---|---|
| 场景 1 (完美) | 0.8 | Cat | Cat | TP | 双项达标:位置准(0.8>0.5),类别对。 |
| 场景 2 (位置差) | 0.3 | Cat | Cat | FP | 单项不达标:位置太偏(0.3<0.5),虽然类别对,但判错。 |
| 场景 3 (认错人) | 0.8 | Dog | Cat | FP | 单项不达标:位置很准,但是把猫认成了狗。 |
| 场景 4 (误检) | 0.0 | Dog | (无) | FP | 全都不达标:背景区域,纯属乱猜。 |
4、mAP50/mAP50-95
(1)mAP50
【概念】
mAP50是一个综合性的评估指标,在 IoU 阈值为 0.5 的情况下,综合考察模型在不同置信度下的精确率(Precision)和召回率(Recall)。
- AP(Average Precison),平均精度,是针对单个类别计算的精确率-召回率(P-R)曲线下的面积
- mAP(mean Average Precision),平均精度均值,是所有类别AP的平均值
【示例】
1)场景设定
假设我们有一张测试图片,里面实际上有 3 只猫(Ground Truth, GT)。
模型对这张图片进行了预测,输出了 5 个检测框(Predictions)。
2)真实标签
| 编号 | 类别 | 坐标 (模拟) |
|---|---|---|
| GT1 | 猫 | [10, 10, 50, 50] |
| GT2 | 猫 | [100, 100, 150, 150] |
| GT3 | 猫 | [200, 50, 250, 100] |
3)模型预测结果
模型输出了5个框,每个框都有类别、置信度(Confidence)和坐标。我们需要先计算每个预测框与真实框的 IoU。
| 预测框编号 | 预测类别 | 置信度 (Score) | 对应真实框 (IoU计算) | IoU 值 | 判定结果 (阈值=0.5) |
|---|---|---|---|---|---|
| Pred A | 猫 | 0.95 | 与 GT1 重叠 | 0.8 | TP (真阳性) |
| Pred B | 猫 | 0.80 | 与 GT2 重叠 | 0.6 | TP (真阳性) |
| Pred C | 猫 | 0.70 | 与 GT1 重叠 (重复检测) | 0.7 | FP (假阳性)* |
| Pred D | 猫 | 0.60 | 与 GT3 重叠 | 0.4 | FP (假阳性) |
| Pred E | 猫 | 0.40 | 背景 (无对应真实框) | 0.0 | FP (假阳性) |
判定规则说明:
Pred C (重复检测): 虽然 IoU > 0.5,但 GT1 已经被置信度更高的 Pred A 匹配过了。在目标检测评估中,一个真实框只能被匹配一次。因此 Pred C 被视为误检(FP)。
Pred D (定位不准): 虽然检测到了 GT3 的位置,但 IoU = 0.4 < 0.5,未达到阈值,被视为误检(FP)。
4)按置信度排序
将所有预测结果按置信度从高到低排序,并逐个判断是 TP 还是 FP。
| 排名 | 预测框 | 置信度 | 结果 (TP/FP) |
|---|---|---|---|
| 1 | Pred A | 0.95 | TP |
| 2 | Pred B | 0.80 | TP |
| 3 | Pred C | 0.70 | FP |
| 4 | Pred D | 0.60 | FP |
| 5 | Pred E | 0.40 | FP |
5)计算累积的精确率和召回率
我们需要计算在每一个检测步骤后的 Precision 和 Recall。
Precision = 当前累计的 TP / 当前累计的所有预测数
Recall = 当前累计的 TP / 真实目标总数 (本例中为 3)
| 排名 | 置信度阈值 | TP 数量 | FP 数量 | Precision (P) | Recall (R) |
|---|---|---|---|---|---|
| 1 | > 0.95 | 1 | 0 | 1/1 = 1.00 | 1/3 = 0.33 |
| 2 | > 0.80 | 2 | 0 | 2/2 = 1.00 | 2/3 = 0.67 |
| 3 | > 0.70 | 2 | 1 | 2/3 = 0.67 | 2/3 = 0.67 |
| 4 | > 0.60 | 2 | 2 | 2/4 = 0.50 | 2/3 = 0.67 |
| 5 | > 0.40 | 2 | 3 | 2/5 = 0.40 | 2/3 = 0.67 |
6)绘制P-R曲线并计算AP(插值法)
AP 是 P-R 曲线下的面积。为了计算平滑且准确,通常使用 11点插值法 或 全点插值法(COCO/VOC标准)。这里使用更精确的全点插值法逻辑:
核心思想: 在某个 Recall 值下,取该点及之后所有点中 最大的 Precision 值。
让我们整理用于计算面积的点 (Recall, Max_Precision):
-
Recall = 0.33 时: 对应 P=1.00。后续最大的 P 也是 1.00。
-
Recall = 0.67 时: 对应 P=1.00 (在排名2处达到)。虽然后面 Precision 下降了,但在计算面积时,我们会取 Recall=0.67 这个点上能达到的最高 Precision
简化计算 (矩形面积累加):
我们可以直接看 Recall 从 0 增加到 0.67 再到 1.0 的过程。
-
区间 1 (Recall 0 -> 0.33): Precision 最高为 1.0。
-
面积 = (0.33−0)×1.0=0.33(0.33−0)×1.0=0.33
-
-
区间 2 (Recall 0.33 -> 0.67): 在这段区间内,最高 Precision 依然是 1.0 (由排名2的点贡献)。
-
面积 = (0.67−0.33)×1.0=0.34(0.67−0.33)×1.0=0.34
-
-
区间 3 (Recall 0.67 -> 1.0): 我们没能检测到第3只猫(GT3),所以 Recall 最高只到 0.67。这部分面积为 0。
AP50 (单类别) = 0.33 + 0.34 = 0.67
7)计算mAP50
mAP 是 "mean" AP,即所有类别 AP 的平均值。
- 在这个示例中,我们只计算了“猫”这一个类别。
- 所以,mAP50 = AP50(猫) = 0.67 (即 67%)。
如果有“狗”类别,且算出 AP50(狗) = 0.80,那么:mAP50 = (0.67 + 0.80) / 2 = 0.735
(2)mAP50-95
mAP50-95 的意思是:在 IoU 阈值从 0.5 到 0.95 的多个不同标准下,计算出的 AP 的平均值。
核心标准:它不是只看 IoU=0.5 这一种情况,而是要看 10 种情况。
- 它会分别计算 IoU 阈值为 0.50, 0.55, 0.60, 0.65, ..., 0.95 时的 AP 值。
- 然后把这 10 个 AP 值求平均,得到的数字就是 mAP50-95。
| 指标 | 名称 | IoU 阈值设定 | 严格程度 | 通俗比喻 | 分数高低 |
|---|---|---|---|---|---|
| mAP50 | 基础及格线 | 固定为 0.5 | 宽松 | “差不多就行” | 通常较高 |
| mAP50-95 | 权威标准 | 范围 0.5 ~ 0.95 (共10个阈值) | 严格 | “必须精益求精” | 通常较低 |
一句话总结:如果你在论文或模型介绍里看到 mAP50-95 很高,那说明这个模型非常强,不仅检测率高,而且框选位置极其精准;而 mAP50 很高只能说明模型具备了基本的检测能力。
5、val集的指标
yolo训练完成后,会自动输出验证集的指标,参考如下。
Validating /data/yolo/models/ai_inspection_20260313/weights/best.pt...
YOLOv12l summary (fused): 283 layers, 26,344,469 parameters, 0 gradients, 88.6 GFLOPs
Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 27/27 9.6it/s 2.8s
all 424 1165 0.842 0.82 0.874 0.75
ashtray 47 63 0.677 0.587 0.664 0.528
bin 143 192 0.846 0.686 0.805 0.696
cup 30 44 0.701 0.773 0.809 0.585
front_windshield 139 176 0.883 0.943 0.971 0.916
Speed: 0.1ms preprocess, 5.8ms inference, 0.0ms loss, 0.2ms postprocess per image
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)