评价指标
YOLOv3 评价指标完整教程
目标检测的评价通常围绕两个核心问题:
- 框的位置是否准
- 类别是否判对
- 检出率和误检率如何权衡
YOLOv3 的评估体系主要由以下几类指标构成:
- IoU(定位质量基础)
- Precision / Recall
- PR 曲线
- AP(Average Precision)
- mAP(mean Average Precision)
- F1-score(有时使用)
- 推理速度指标(FPS / latency,工程常用)
一、IoU(Intersection over Union)
IoU 是目标检测最基础、最核心的度量,用来衡量预测框与真实框的重叠程度。
定义
IoU=∣Bpred∩Bgt∣∣Bpred∪Bgt∣ IoU = \frac{|B_{pred} \cap B_{gt}|}{|B_{pred} \cup B_{gt}|} IoU=∣Bpred∪Bgt∣∣Bpred∩Bgt∣
含义:
- 分子:交集面积
- 分母:并集面积
取值范围:
IoU∈[0,1] IoU \in [0,1] IoU∈[0,1]
作用
IoU 主要用于三处:
- 判断正负样本(训练阶段)
- 判断 TP/FP(评估阶段)
- NMS 去重(推理阶段)
二、TP / FP / FN 判定规则
在计算 Precision 和 Recall 前,必须先定义检测结果的对错。
匹配规则(标准流程)
对于每个预测框(按置信度从高到低排序):
- 找到与其 IoU 最大的 GT
- 如果:
IoU≥threshold IoU \ge \text{threshold} IoU≥threshold
且该 GT 尚未被匹配 → TP
否则 → FP
FN 的定义
FN 是指:
- 所有未被任何预测框匹配到的 GT
常见 IoU 阈值
最经典:
IoU=0.5 IoU = 0.5 IoU=0.5
即:
mAP@0.5
更严格评估(COCO):
IoU=0.5:0.95 IoU = 0.5:0.95 IoU=0.5:0.95
三、Precision 与 Recall
这是检测任务最基础的性能指标。
Precision(查准率)
Precision=TPTP+FP Precision = \frac{TP}{TP + FP} Precision=TP+FPTP
含义:
- 预测为正的框中,有多少是真的
- 反映误检情况
特点:
- FP 多 → Precision 下降
- 模型"保守"时 Precision 高
Recall(查全率)
Recall=TPTP+FN Recall = \frac{TP}{TP + FN} Recall=TP+FNTP
含义:
- 所有真实目标中,被检出的比例
- 反映漏检情况
特点:
- FN 多 → Recall 下降
- 模型"激进"时 Recall 高
Precision--Recall 权衡
检测模型天然存在:
- 提高 Recall → 往往 Precision 降低
- 提高 Precision → 往往 Recall 降低
因此不能只看单点指标,需要 PR 曲线。
四、PR 曲线(Precision--Recall Curve)
构建方法
步骤:
- 按置信度从高到低排序所有预测框
- 逐步降低置信度阈值
- 每个阈值计算一组 (Recall, Precision)
- 绘制曲线
横轴:
Recall Recall Recall
纵轴:
Precision Precision Precision
曲线形状含义
理想模型:
- 曲线贴近右上角
差模型:
- 曲线快速下坠
五、AP(Average Precision)
AP 是 PR 曲线下的面积,是目标检测最重要的单类指标。
定义
AP=∫01Precision(Recall) dRecall AP = \int_0^1 Precision(Recall)\, dRecall AP=∫01Precision(Recall)dRecall
直观理解:
- PR 曲线下面积
- 越接近 1 越好
YOLOv3 常见两种 AP 计算方式
1. VOC 11-point(老)
在 11 个 Recall 点取最大 Precision 后平均。
特点:
- 粗糙
- 偏乐观
- 现在较少使用
2. 积分法(现代主流)
对完整 PR 曲线积分(COCO / YOLOv3 常用)。
特点:
- 更精细
- 更严格
- 更真实反映性能
六、mAP(mean Average Precision)
这是目标检测最核心的最终指标。
定义
对所有类别的 AP 取平均:
mAP=1C∑c=1CAPc mAP = \frac{1}{C}\sum_{c=1}^{C} AP_c mAP=C1c=1∑CAPc
其中:
- CCC:类别数
- APcAP_cAPc:第 c 类的 AP
常见 mAP 报告方式
1. mAP@0.5(YOLO 系最常见)
含义:
- IoU 阈值固定为 0.5
特点:
- 相对宽松
- 数值较高
- YOLOv3 论文主要报告这个
2. mAP@0.5:0.95(COCO 标准)
计算:
IoU=0.5,0.55,...,0.95 IoU = 0.5, 0.55, \dots, 0.95 IoU=0.5,0.55,...,0.95
共 10 个阈值求平均。
特点:
- 非常严格
- 更能反映定位精度
- 数值明显更低
工程中要看清楚是哪一种。
七、F1-score(有时使用)
用于综合 Precision 和 Recall。
定义
F1=2PRP+R F1 = \frac{2PR}{P + R} F1=P+R2PR
作用:
- 找最佳置信度阈值
- 快速对比模型
但注意:
在目标检测论文中,F1 不是主指标,mAP 才是。
八、推理速度指标
YOLO 系列非常强调实时性。
常见指标
1. FPS(Frames Per Second)
FPS=1单张推理时间 FPS = \frac{1}{\text{单张推理时间}} FPS=单张推理时间1
越大越好。
2. Latency(延迟)
单位通常为 ms / image。
越小越好。
3. 吞吐量(throughput)
批处理场景常用。
九、完整评估流程(实战顺序)
标准检测评估 pipeline:
- 模型输出预测框 + 分数 + 类别
- 对每类分别处理
- 按置信度排序
- 与 GT 按 IoU 匹配得到 TP/FP
- 计算 Precision / Recall
- 绘制 PR 曲线
- 积分得到 AP
- 各类平均得到 mAP
这是所有检测框架(包括 YOLOv3)的标准流程。
十、常见误区
误区 1:只看 Precision
错误原因:
- 可能漏检严重
必须结合 Recall 或 mAP。
误区 2:mAP@0.5 和 COCO mAP 混用
两者差别很大,必须注明:
- mAP@0.5
- mAP@0.5:0.95
误区 3:忽略置信度排序
AP 的计算必须按置信度排序,否则完全错误。
误区 4:一个 GT 被多个预测匹配
标准规则:
- 一个 GT 只能匹配一个 TP
- 其余算 FP