
第15讲 | YOLO26评估与误差分析Precision、Recall、mAP与错例先看懂指标再定位错例最后决定怎么改模型整理说明本文基于 B 站公开视频《第15讲 YOLO26评估与误差分析Precision、Recall、mAP与错例》很多同学卡在这一讲不是因为 Precision、Recall、mAP 真的难而是因为它们常被当成孤立数字记。本篇只解决一个核心问题模型训完以后怎么判断它到底哪里好、哪里坏、下一步该改什么01 先把痛点说透评估不是为了“报一个分数”而是为了把问题拆开。现象常见信号优先看什么误检多Precision 低置信度阈值、背景干扰、负样本漏检多Recall 低漏标、小目标、阈值太高框不准mAP50 高但 mAP50-95 低定位质量、IoU、标注质量某一类特别差per-class AP 很低类别混淆、样本不平衡、标注一致性评估的本质不是“模型行不行”而是“错误主要来自哪里”。如果你只盯着一个 mAP往往只能知道“差”却不知道“差在什么地方”。02 核心概念先说准目标检测评估最先要分清三件事名称含义TP预测对了而且框和类别都匹配FP预测出来了但其实是错的FN真实目标存在但模型没找出来先看两个最常用指标Precision TP / (TP FP) Recall TP / (TP FN)它们回答的是两个不同的问题Precision你报出来的框有多少是真的。Recall真实存在的目标你找到了多少。再看 IoU。IoU 是预测框和真值框的重叠程度。对检测来说类别对了不够IoU 不达标也不算 TP。Precision 和 Recall 的直觉指标高了说明什么低了说明什么Precision误检少背景容易被当成目标Recall漏检少目标经常被错过mAP 是什么AP 可以理解成“某一类在不同置信度阈值下的 P-R 曲线面积”。mAP 就是把各类 AP 再平均一次。指标解释mAP50IoU 0.50 时的 AP 平均值mAP50-95IoU 从 0.50 到 0.95每 0.05 取一个阈值后再平均per-class AP每一类单独的 AP所以mAP50 看的是“有没有大致找对”mAP50-95 看的是“框得准不准”03 用一个小例子跑通机制假设一张验证集里有 4 个真实目标模型给出 5 个预测框预测框置信度IoU判定A0.960.82TPB0.910.76TPC0.740.41FPD0.680.73TPE0.33-FP当阈值取 0.50保留 A、B、C、DTP 3FP 1FN 1Precision 3 / (3 1) 0.75 Recall 3 / (3 1) 0.75当阈值取 0.90只保留 A、BTP 2FP 0FN 2Precision 2 / (2 0) 1.00 Recall 2 / (2 2) 0.50这就是为什么阈值一高Precision 常常上升Recall 常常下降。AP 做的事就是把不同阈值下的这些点串起来再算面积。所以你看见 PR 曲线时别把它当“装饰图”它就是模型取舍关系的压缩图。04 配套代码练习1. 先跑一个纯 Python 的阈值扫表完整代码见code_snippets/01_threshold_tradeoff.py这个小脚本不依赖深度学习框架先帮你看懂“阈值变化为什么会改 Precision / Recall”。2. 再跑一次 Ultralytics 验证完整代码见code_snippets/02_ultralytics_val.pyfromultralyticsimportYOLO modelYOLO(best.pt)# 换成你自己的权重metricsmodel.val(datacustom.yaml,imgsz640,conf0.25,iou0.7,plotsTrue,)print(Precision:,metrics.box.mp)print(Recall:,metrics.box.mr)print(mAP50:,metrics.box.map50)print(mAP50-95:,metrics.box.map)print(Per-class AP:,metrics.box.maps)你重点看这几个值就够了字段说明metrics.box.mp平均 Precisionmetrics.box.mr平均 Recallmetrics.box.map50mAP0.50metrics.box.mapmAP0.50:0.95metrics.box.maps每个类别的 AP如果plotsTrue通常会生成 PR 曲线、混淆矩阵和验证可视化图先看这些再看数字。05 常见误区和排查清单先按症状查现象优先怀疑Precision 低置信度太低、背景太像目标、负样本不足Recall 低漏标、小目标多、阈值太高、NMS 太狠mAP50 高但 mAP50-95 低框能找对但定位不稳某一类 AP 特别差类别不平衡、类间相似、标注不一致PR 曲线很抖验证集太小或标注噪声大再按顺序查1. 先查标签是否干净 2. 再查数据集分布是否平衡 3. 再查验证阈值和 NMS 4. 再看 PR 曲线和混淆矩阵 5. 最后抽错例图定位到底是漏检、误检还是框不准如果你只记一句话Precision 看误检Recall 看漏检mAP 看整体错例看下一步怎么改。06 复盘这讲最重要的不是把名词背下来而是把下面三件事连起来指标怎么读。错例怎么分。问题该怎么改。换句话说评估不是终点而是下一轮优化的起点。回复YOLO评估我会建议你先做三件小事跑一次model.val(...)截一张 PR 曲线和混淆矩阵随机翻 20 张错例图这样你就会发现很多“模型不行”的判断其实只是“还没把问题拆开”。写在最后学术因方向、个人实验和写作能力以及具体创新内容的不同而无法做到一通百通关注UPAi学术叫叫兽在所有资料中留下联系方式以便在科研之余为家人们答疑解惑本up主获得过国奖发表多篇SCI擅长目标检测领域拥有多项竞赛经历拥有软件著作权核心期刊等经历。因为经历过所以更懂小白的痛苦因为经历过所以更具有指向性的指导祝所有科研工作者都能够在自己的领域上更上一层楼