news 2026/5/6 15:38:38

yolo结果中的指标

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
yolo结果中的指标

YOLO训练过程中核心的训练 / 验证指标 + 学习率调度指标,按训练迭代、训练损失、验证性能、多组学习率四大类划分,每个指标都对应模型训练的关键状态,下面逐行通俗讲解(附实际意义,帮你判断模型训练好坏):

一、基础迭代指标:训练的 "进度条"

指标全称核心含义
epoch-训练轮次,1 个 epoch 表示模型把训练集的所有图片都学了 1 遍;比如训练 100 个 epoch,就是数据被模型反复学习 100 次

二、训练损失指标(train/xxx):模型 "学的好不好"(越小越好)

损失值 = 模型预测结果 vs 真实标签的误差大小,训练损失持续降低,说明模型在训练集上不断拟合、学习效果在提升;YOLO 的训练损失拆分为 3 类核心损失,覆盖目标检测的核心任务(定位 + 分类):

指标全称核心含义
train/box_lossBox Loss(边框损失)模型预测的目标边框位置 / 大小,和真实边框的误差;越小表示目标定位越精准(比如想检测人,框能精准框住人体不偏不歪)
train/cls_lossClassification Loss(分类损失)模型对检测到的目标分类判断的误差;越小表示目标分类越准确(比如框住的是 "人" 不是 "狗",分类不混淆)
train/dfl_lossDistribution Focal Loss(分布焦点损失)YOLOv5/v8 特有的边框回归损失,专门优化边框的精准度(解决普通边框损失定位不精细的问题);越小表示边框预测的细节越准(比如小目标、边缘目标的框更贴合)

三、验证性能指标(metrics/xxx(B)):模型 "泛化能力好不好"(越大越好)

最核心的评估指标,区别于训练损失(只看训练集),这类指标是在独立的验证集上计算的(模型没见过的图片),直接反映模型的实际应用能力(泛化能力),括号里的(B)表示针对 Bounding Box(边框检测)的评估(YOLO 默认核心任务);这 4 个指标是目标检测的行业通用评估标准,越大说明模型性能越好:

指标全称核心含义(通俗版)
metrics/precision(B)Precision(精确率 / 查准率)模型预测为 "正样本"(比如检测出是 "车")的结果中,真正是正样本的比例;公式:精准率 = 正确检测的目标数 / 所有检测出的目标数比如模型检测出 100 个 "车",其中 90 个真的是车,精准率就是 90%;越大表示模型 "不乱标",减少误检(比如不会把路边石头当成车)
metrics/recall(B)Recall(召回率 / 查全率)数据集中所有真实的正样本,被模型成功检测出来的比例;公式:召回率 = 正确检测的目标数 / 所有真实的目标数比如图片里有 100 辆车,模型检测出 80 辆,召回率就是 80%;越大表示模型 "不漏检",能找到更多目标(比如图片里的小目标、遮挡目标也能检测到)
metrics/mAP50(B)mean Average Precision@IoU=0.5平均精确率(IoU 阈值 50%),目标检测的核心核心指标;先理解 IoU:交并比,即 "模型预测框" 和 "真实框" 的重叠比例,IoU=0.5 表示重叠一半以上;mAP50 表示:对所有检测类别,计算 IoU≥50% 时的精确率,再取平均值;越大表示模型在宽松标准下(框重叠一半就算检测成功)的整体性能越好
metrics/mAP50-95(B)mean Average Precision@IoU=0.5:0.95平均精确率(IoU 阈值 50% 到 95%),目标检测的黄金指标(比 mAP50 更严格);计算 IoU 从 50% 到 95%(步长 5%)的所有 mAP 值,再取平均值;越大表示模型在严格标准下(框几乎完全重叠才算成功)的整体性能越好,能反映模型的综合检测能力(定位 + 分类双优)

四、验证损失指标(val/xxx):模型 "有没有过拟合"(越小越好,且和训练损失接近)

和训练损失对应,但在验证集上计算,核心作用是判断模型过拟合 / 欠拟合

指标核心含义关键判断
val/box_loss验证集上的边框损失正常情况下,验证损失应和训练损失趋势一致、数值接近
val/cls_loss验证集上的分类损失训练损失持续降低,验证损失突然升高,说明模型过拟合(只记住了训练集,不会泛化到新数据)
val/dfl_loss验证集上的分布焦点损失若训练 / 验证损失都居高不下,说明模型欠拟合(学习不充分,没学会特征)

五、学习率指标(lr/pg0~lr/pg7):模型 "学习的节奏"(按需调整,非越大 / 越小越好)

lr= Learning Rate(学习率),是模型训练的核心超参数,表示模型每次学习时参数更新的步长:步长太大容易 "学过头"(损失震荡不收敛),步长太小容易 "学的慢"(训练耗时久,甚至学不到核心特征);pg= Parameter Group(参数组),YOLOv5/v8 会把模型的不同层参数分成多组(pg0-pg7 共 8 组),并为每组设置独立的学习率(原因:模型浅层(如卷积层)学通用特征(边缘、纹理),需要小学习率;深层学专属特征(目标轮廓),需要大学习率,精细化调度效果更好);

指标核心含义实际意义
lr/pg0~lr/pg78 个参数组的实时学习率每个值表示对应参数组当前的参数更新步长;训练过程中,学习率会按预设策略(如余弦退火、热身)动态变化(比如前期热身小学习率,中期大学习率快速学习,后期小学习率精细调优);若某组学习率固定不变 / 异常偏高,可能是学习率调度策略配置错误

补充:核心指标的训练趋势判断技巧(快速看模型训练是否正常)

  1. 损失类:训练损失(train/xxx)持续平稳降低,验证损失(val/xxx)同步降低且和训练损失差距小→ 训练正常;
  2. 性能类:mAP50、mAP50-95持续升高,精准率 / 召回率稳步提升且无明显下降→ 模型性能在提升;
  3. 过拟合信号:训练损失持续降低,验证损失开始升高,同时验证集 mAP 下降 → 立即停止训练 / 加入正则化(如 dropout、数据增强);
  4. 欠拟合信号:训练 / 验证损失都居高不下,mAP 始终很低 → 增大学习率 / 增加训练轮次 / 丰富训练数据;
  5. 学习率信号:若损失曲线剧烈震荡→ 学习率设置过大;若损失几乎不下降→ 学习率设置过小。

总结

这些指标从训练进度、训练拟合度、泛化性能、学习节奏四个维度,完整监控 YOLO 的训练过程:

  • epoch知训练进度,看train/xxx知模型在训练集的学习效果;
  • metrics/xxx(B)知模型真实检测能力(最关键),看val/xxx判断过拟合;
  • lr/pg0~pg7知学习率调度是否合理,为超参数调整提供依据。

训练生成的文件

YOLOv8 训练完成后自动生成的核心评估文件,按 “指标曲线、可视化结果、数据记录” 三类划分,我帮你逐个讲清楚怎么看:

一、先看 “关键指标曲线”(判断模型性能)

这几个*.png曲线是评估模型的核心,直接反映检测能力:

  • BoxF1_curve.png:F1 分数曲线(F1=2× 精准率 × 召回率 /(精准率 + 召回率))。曲线越接近 1,说明模型在 “减少误检” 和 “减少漏检” 之间的平衡越好。
  • BoxP_curve.png:精准率曲线(横轴是置信度阈值,纵轴是精准率)。曲线越陡、最终值越高,说明模型 “误检少”(高置信度的预测基本都是对的)。
  • BoxR_curve.png:召回率曲线(横轴是置信度阈值,纵轴是召回率)。曲线越平缓、最终值越高,说明模型 “漏检少”(低置信度的预测也能覆盖更多真实目标)。
  • BoxPR_curve.png:PR 曲线(横轴是召回率,纵轴是精准率)。曲线下的面积越大(越接近右上角),模型整体性能越好。

二、再看 “可视化结果”(直观看检测效果)

这些图片能直接看到模型的检测表现:

  • train_batchX.jpg:训练集的批量可视化,展示 “原始图 + 模型预测框 + 真实标签框”。可以看模型在训练数据上的拟合情况(框是否准、分类是否对)。
  • val_batchX_labels.jpg:验证集的 “真实标签” 可视化,只有真实目标的框,用来对照模型预测。
  • val_batchX_pred.jpg:验证集的 “模型预测” 可视化,只有模型预测的框。和val_batchX_labels.jpg对比,能直观看到 “漏检(真实有但预测没有)”“误检(预测有但真实没有)”“框不准” 等问题。

三、辅助分析文件(补充细节)

  • confusion_matrix.png / confusion_matrix.normalized.png:混淆矩阵。
    • 非归一化(前者):看 “各类别被预测成其他类别的数量”,数字越大说明该类别的混淆越严重。
    • 归一化(后者):看 “各类别被预测错的比例”,比如某类别的行里,非对角线的数值越高,说明该类别的分类错误率越高。
  • labels.jpg:数据集的标签分布可视化。能看到各类别目标的数量占比,判断是否有 “类别不平衡”(比如某类样本极少,模型对它的检测效果可能差)。
  • results.csv / results.png:训练过程的所有指标记录(就是你之前分析的损失、mAP 等)。results.png是指标曲线的汇总图,能快速看训练趋势;results.csv可以用 Excel 打开,做更细致的数据分析。
  • weights 文件夹:保存的模型权重,包括best.pt(验证集性能最好的模型)和last.pt(最后一轮的模型),实际部署用best.pt即可。
  • args.yaml:训练时的参数配置(比如模型版本、batch_size、学习率等),方便复现训练过程。

总结怎么用这些文件

  1. 先看results.png和曲线类图片,判断模型整体性能(mAP、F1 是否达标);
  2. 再看val_batchX_pred.jpgval_batchX_labels.jpg,直观找检测问题(漏检、误检、框不准);
  3. 最后用混淆矩阵和labels.jpg,定位具体类别的问题(比如某类总是被分错,可能是样本少 / 特征不明显)。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/5 1:55:07

单调队列+滑动窗口

对应力扣239滑动窗口的最大值 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 暴力解法: 设置左右指针形成固定…

作者头像 李华
网站建设 2026/5/6 9:48:16

计算机Java毕设实战-基于springboot的宠物领养及健康管理系统宠物信息管理、领养申请审核【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/5/4 2:12:43

Java毕设项目推荐-基于SpringBoot的网上购物商城设计与实现基于springboot的个性化推荐电商平台的设计与实现【附源码+文档,调试定制服务】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/5/5 18:53:27

Java毕设项目推荐-基于springboot+bs架构的校园体育器材管理系统设计与实现器材名称、器材类型、规格、数量、注意事项【附源码+文档,调试定制服务】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/5/2 15:03:56

Java计算机毕设之springboot企业绩效考核系统设计与实现基于springboot的员工绩效管理系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/29 7:39:36

从 Redis 缓存设计谈起:如何避免缓存击穿、穿透与雪崩

在高并发系统中,Redis 往往并不是“锦上添花”的组件,而是直接决定系统能否扛住流量的核心基础设施。缓存设计做得好,数据库压力可以下降一个数量级;反过来,缓存设计一旦失误,在流量高峰时甚至会成为“放大…

作者头像 李华