YOLOv7训练结果解析

news2024/12/23 9:44:55

前言:

已训练完模型,且把结果下载下来,以下某一次id识别训练结果为例,如下图所示。

注:YOLOv7每次train完成(如果没有中途退出)都会在run目录下生成expX目录(X代表生成结果次数 第一次训练完成生成exp0 第二次生成exp1…以此类推)
expX目录下会保存可视化的训练结果 result.png,result.txt,weights(last.pt和best.pt)等等。

1.P曲线

P_curve.png:准确率precision与置信度confidence的关系图。
【置信度confidence:用来判断边界框内的物体是正样本还是负样本,大于置信度阈值的判定为正样本,小于置信度阈值的判定为负样本即背景。】

那么图片就好理解了,即置信度阈值越高,模型才认为图片是该物品,模型判断的越准确,这是很自然的,无需解释。但置信度阈值过高,可能会导致掉那些忽略信度低,但确实有该物品的图像。

 可以看到,14个类别的曲线,有的精度比较好,有的不太好,通过整合成一条曲线来展示一个综合性能,即蓝线,是全体类别判断精度。

2.R曲线

Recall/召回率/查全率曲线。显然,置信度越底,查全率会越高,即不容易漏过有对象的图片。蓝线同上。

 3.P-R曲线

preciousrecall之间的关系,PR曲线下围城的面积称作AP,所有类别AP的平均值即为mAP。

毫无疑问,我们希望R越低越好,P越高越好,但这是矛盾的,前者需要置信度阈值降低,后者需要置信度阈值增高,它们是一对矛盾的性能度量指标。
于是有了PR_curve,精确度和召回率曲线,此处的P为mAP(mean Average Precision),即平均精度,毫无疑问,我们希望P与R都能到1,即曲线围成最大的正方框,面积接近1

平衡点(BEP)是 P=R(准确率 = 召回率)时的取值,即斜率为1,F1值越大,我们可以认为该学习器的性能较好。

 4.result.png

Box:YOLO V7使用 GIOU Loss作为bounding box的损失,Box推测为GIoU损失函数均值,越小方框越准;
Objectness:推测为目标检测loss均值,越小目标检测越准;
Classification:推测为分类loss均值,越小分类越准;


Precision精确率,,或者说正确率(所有分类正确中的正样本比例);翻译成中文就是“分类器认为是正类并且确实是正类的部分占所有分类器认为是正类的比例”,衡量的是一个分类器分出来的正类的确是正类的概率。两种极端情况就是,如果精度是100%,就代表所有分类器分出来的正类确实都是正类。如果精度是0%,就代表分类器分出来的正类没一个是正类。光是精度还不能衡量分类器的好坏程度,比如50个正样本和50个负样本,我的分类器把49个正样本和50个负样本都分为负样本,剩下一个正样本分为正样本,这样我的精度也是100%,但是显然这个分类器不太行。比如说机器一共标了十个框框,这十个框框标的对象和标签都对应了,那么不管有没有漏标对象,精度都算是百分之百。


Recall召回率,又叫查全率(有多少正样本被找到);翻译成中文就是“分类器认为是正类并且确实是正类的部分占所有确实是正类的比例”,衡量的是一个分类能把所有的正类都找出来的能力。两种极端情况,如果召回率是100%,就代表所有的正类都被分类器分为正类。如果召回率是0%,就代表没一个正类被分为正类。比如说机器要检测的图里由十个飞机,但机器只标了五个,尽管这五个都标对了,精度是100%,那么recall依旧只有50%。因为机器漏标了一半。


val Box: 验证集bounding box损失
val Objectness:验证集目标检测loss均值
val classification:验证集分类loss均值
mAP@0.5:阈值大于0.5的平均mAP。【其中,mAP指PR曲线下的面积AP的平均值,@后面的数表示判定IoU为正负样本的阈值】


mAP@0.5:0.95:表示在不同IoU阈值(从0.5到0.95,步长0.05)(0.5、0.55、0.6、0.65、0.7、0.75、0.8、0.85、0.9、0.95)上的平均mAP。【@0.5:0.95表示阈值取0.5:0.05:0.95后取均值】

坐标为轮数(epoch),纵坐标为各类损失,越小,效果越好些。个人认为box为预测标框与标注标框偏差,obj是图片有无识别出对象偏差,cls为对象分类偏差。

一般训练结果主要观察精度和召回率波动情况(波动不是很大则训练效果较好
然后观察mAP@0.5 & mAP@0.5:0.95 评价训练结果。如果训练比较好的话图上呈现的是稳步上升。

 5.F1_curve.png

F1-score与置信度间的关系。F1-score是分类问题的一个衡量指标,是精确率precision和召回率recall的调和平均数,最大为1,最小为0。【1是最好,0是最差】

引用“第一个衡量指标:mAP曲线的面积大小。”

6.result.txt 

训练完成后生成的result.txt,我在第一列对它们进行了解释,目前还不知道最后三行是啥意思。

参考文章:

​​​​​​​yolov5 训练结果解析_yolov5训练结果图_g_grace1的博客-CSDN博客 

YOLO-YOLOV5训练结果认识初探记录_yolo结果_Erromana的博客-CSDN博客

深度学习图像识别笔记(三):yolov5检测结果分析_borrrrrring的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/903184.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CentOS7.9手工配置静态网络流程

进入网卡配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33 配置 TYPE"Ethernet" PROXY_METHOD"none" BROWSER_ONLY"no" BOOTPROTO"static" //static 配置静态网络 DEFROUTE"yes" IPV4_FAILURE_FATAL"no…

电脑找不到MSVCR120.dll怎么办,三个完美解决方法

在计算机领域,MSVCR120.dll是一个非常重要的动态链接库文件。它是Microsoft Visual C 2010 Redistributable Package的一部分,用于支持某些程序的运行。然而,在某些情况下,我们可能会遇到MSVCR120.dll丢失的问题。在这篇文章中&am…

(详解踩坑)GIT版本回滚git stash、git reset、git reset --hard、git revert

目录 背景 一、(git log、git reflog)查看git提交日志及命令历史 1.1 git log(提交日志) 1.2 git reflog(命令历史) 二、git reset(回退到指定的版本,并且保留更改) …

LEADTOOLS Imaging SDK Crack

LEADTOOLS Imaging SDK Crack 高级开发人员工具包包括ActiveX和WPF/XAML控件。 LEADTOOLS Imaging SDK为文件格式导入/导出、图像压缩、图像显示和效果、颜色转换、图像处理、TWAIN扫描、图像通用对话框、数据库集成、打印和互联网提供了基本和高级的彩色图像功能。 LEADTOOLS …

【数据分享】2013-2023年全国370个城市逐月空气质量数据(Excel格式/无需转发)

空气质量的好坏反映了空气污染程度,它是依据空气中污染物浓度的高低来判断的。在各项涉及城市环境的研究与实际项目中,城市空气质量都是一个十分重要的指标。那么,去哪里能获取到各城市空气质量的历史数据呢? 之前我们分享了2014…

前端vue自定义柱形图 选中更改柱形图颜色及文字标注颜色

随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。 通过组件化开发,可以有效实现…

Dubbo高手之路3,Dubbo服务消费详解

目录 引言1. 介绍 Dubbo 服务消费的详解的目的和背景2. 概述 Dubbo 服务消费的过程和核心概念 一、Dubbo 服务消费的基础知识1. Dubbo 服务消费的架构和流程2. Dubbo 服务消费的基本配置和使用方法 二、Dubbo 服务消费的注册与发现1. Dubbo 服务消费的注册中心和发布中心的基本…

09_Redlock算法和底层源码分析

Redlock算法和底层源码分析 一、当前代码为8.0版接上一步 自研分布式锁的重点: 按照juc里面Lock接口规范进行编写lock加锁关键逻辑 加锁:在redis中,加锁实际上是给key设置一个值,为避免死锁,并给key一个过期时间自旋…

01.Django入门

1.创建项目 1.1基于终端创建Django项目 打开终端进入文件路径(打算将项目放在哪个目录,就进入哪个目录) E:\learning\python\Django 执行命令创建项目 F:\Anaconda3\envs\pythonWeb\Scripts\django-admin.exe(Django-admin.exe所…

protobuf+netty自定义编码解码

protobufnetty自定义编 项目背景 protobufnetty自定义编码解码 比如心跳协议,客户端请求的协议是10001,在java端如何解码,心跳返回协议如何编码,将协议号带过去 // 心跳包 //10001 message c2s_heartbeat { }//10002 message …

【数据分享】2006-2021年我国省份级别的市政公用设施建设固定资产投资相关指标(30多项指标)

《中国城市建设统计年鉴》中细致地统计了我国城市市政公用设施建设与发展情况,在之前的文章中,我们分享过基于2006-2021年《中国城市建设统计年鉴》整理的2006—2021年我国省份级别的市政设施水平相关指标、2006-2021年我国省份级别的各类建设用地面积数…

02.案列项目Demo

1.创建项目 1. 创建项目 用pycharm 选择对应的编译器,输入对应的文件名,点击创建项目。删除默认外层生成的template和DIRS 配置项: 2. 创建App 创建appo1的命令: python manage.py startapp app01 如果使用pycharm>tool>…

Qt项目报错:Cannot run compiler ‘clang++‘. /bin/sh: 1: clang++: not found

在一台旧电脑上装了深度系统,装了Qt,导入项目, build提示 clang找不到: Project ERROR: Cannot run compiler clang. Output: /bin/sh: 1: clang: not found Maybe you forgot to setup the environment? Error while parsing …

​8th参考文献:[8]许少辉.乡村振兴战略下传统村落文化旅游设计[M]北京:中国建筑工业出版社,2022.

​8th参考文献:[8]许少辉.乡村振兴战略下传统村落文化旅游设计[M]北京:中国建筑工业出版社,2022&a…

2022数学建模国赛C题官网展示论文C155论文复现

2022数学建模国赛C题C155论文复现 1.内容比对2.第一问第二小问复现代码2.1 页表合并2.2 数据的正态性检验2.2.1数据的正态性检验效果图 2.3不满足正态性,进行中心化对数比变换2.3.1 核心步骤-inf用0值替换2.3.2中心化对数比变换效果图 2.4描述性统计2.5 箱线图绘制 …

回归预测 | MATLAB实现TSO-LSSVM金枪鱼群算法优化最小二乘支持向量机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现TSO-LSSVM金枪鱼群算法优化最小二乘支持向量机多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现TSO-LSSVM金枪鱼群算法优化最小二乘支持向量机多输入单输出回归预测(多指标,多图&a…

五种网络IO模型

五种模型出自:RFC标准。可参考: 《UNIX网络编程-卷一》 6.2 很多程序员是从高级语言的网络编程/文件操作了解到nio,继而了解到五种io模型的; 这五种io模型不止用于网络io “阻塞与****系统调用”是怎么回事?我知道了线…

Redis之持久化机制

文章目录 一、redis持久化二、持久化方式2.1. RDB方式2.1.1 RDB手动2.1.2 RDB自动2.1.3RDB优缺点 2.2AOF方式2.2.1 AOF写数据遇到的问题2.2.2 AOF重写方式 二、RDB和AOF优缺点对比总结 一、redis持久化 Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘&a…

Azure防火墙

文章目录 什么是Azure防火墙如何部署和配置创建虚拟网络创建虚拟机创建防火墙创建路由表,关联子网、路由配置防火墙策略配置应用程序规则配置网络规则配置 DNAT 规则 更改 Srv-Work 网络接口的主要和辅助 DNS 地址测试防火墙 什么是Azure防火墙 Azure防火墙是一种用…

ELK日志监控系统搭建docker版

目录 日志来源elk介绍elasticsearch介绍logstash介绍kibana介绍 部署elasticsearch拉取镜像:docker pull elasticsearch:7.17.9修改配置⽂件:/usr/share/elasticsearch/config/elasticsearch.yml启动容器设置密码(123456)忘记密码…