YOLOv5训练结果分析

news2024/11/17 9:43:27

本文的目的是帮助理解每次训练后,在runs/train文件夹下出现的一系列文件,并探索如何评估准确率以及模型的好坏。

一.混淆矩阵—confusion_matrix.png

毕设跑的train有混淆矩阵,但是有点扯,需要跑一下鸟类的验证一下(待验证)

 1.概念

混淆矩阵是对分类问题预测结果的总结。使用计数值汇总正确和不正确预测的数量,并按每个类进行细分,显示了分类模型进行预测时会对哪一部分产生混淆。

混淆矩阵不仅可以让我们直观的了解分类模型所犯的错误,更重要的是可以了解哪些错误类型正在发生,正是这种对结果的分解克服了仅使用分类准确率带来的局限性。

2.图文理解

实际
类1类2类3
预测类14352
类22453
类30149

(1)横轴时预测类别,纵轴是真实类别;

(2)表格里的数目总数为150,表示共有150个测试样本;

(3)每一行之和为50,表示每类各有50个样本,每一行代表了真实的目标被预测为其他类的数量,比如第一行:43代表真实的类一中有43个被预测为类一,5个被错预测为类2,2个被错预测为类3;

二.TP/TN/FP/FN

1.逻辑关系

T(True):最终预测结果正确。

F(False):最后预测结果错误。

P(Positive):模型预测其是正例(目标本身是个鱼,模型也预测它是个鱼)。

N(Negative):模型预测其是负例(目标本身是个鱼,但模型预测它是个猫)。

TP:样本的真实类别是正例,并且模型预测的结果也是正例,预测正确(目标本身是个鱼,模型也预测它是鱼,预测正确;还有一种理解方式,模型预测它是正例,最终预测结果是正确的,所以目标是个正例))。

TN:样本的真实类别是负例,并且模型将其预测成为负例,预测正确(目标本身不是鱼,模型预测它不是了鱼,是个其他的东西,预测正确;还有一种理解方式,模型预测它是负例,最终预测结果是正确的,所以目标是个负例))。

FP:样本的真实类别是负例,但是模型将其预测成为正例,预测错误(目标本身不是鱼,模型预测它是鱼,预测错误;还有一种理解方式,模型预测它是正例,最终预测结果是错误的,所以目标是个负例)。

FN:样本的真实类别是正例,但是模型将其预测成为负例,预测错误(目标本身是鱼,模型预测它不是鱼,是个其他的东西,预测错误;还有一种理解方式,模型预测它是负例,最终预测结果是错误的,所以目标是个正例)。


2.几个指标

(1)正确率/准确率(accuracy)=\frac{}{}\frac{TP+TN}{TP+TN+FP+FN};

注:通常来说正确率越高,模型越好。

(2)错误率=\frac{FP+FN}{TP+TN+FP+FN};

(3)灵敏度(sensitive)=\frac{TP}{TP+FN}

注:表示的是所有正例中被分对的比例,衡量了分类器对正例的识别能力;

(4)特征度/特异度(specificity)=\frac{TN}{TN+FP}

注:表示的是所有负例中被分对的比例,衡量了分类器对负例的识别能力;

(5)精确率(precision)=\frac{TP}{TP+FP}

注:表示被分为正例的示例中实际为正例的比例;

(6)召回率(recall)=\frac{TP}{TP+FN}

注:度量有多个正例被分为正例;


3.label.jpg

 第一张图:classes(每个类别的数据量)

第二个图:labels(框的尺寸和数量)

第三个图:center (框的中心点坐标)

第四个图:labels width and height(框的长和宽)


4.P_curve(精确率和置信度的关系图)

精确率(查准率):表示被分为正例的示例中实际为正例的比例

解释:设置置信度为某一数值的时候,各个类别识别的精确率。

可以看到,当置信度越大的时候,类别检测的越准确。这也很好理解,只有置信度很大,才被判断是某一类别。但这样的话,会漏检一些置信度低的类别。

比如运行程序时,即便某个目标是鱼,模型预测它也是鱼,但是给它的置信度只有70%,当置信度设置在80%时才认为是鱼时,这个目标就会被忽略了。


5.R_curve(召回率和置信度的关系图)

召回率(查全率):度量有多个正例被分为正例

解释:设置置信度为某一数值的时候,各个类别查全的概率。可以看到,当置信度越小的时候,类别检测的越全面。


6.先验知识\rightarrow综合recall和precision

Precision和Recall通常是一对矛盾的性能度量指标。一般来说,Precision越高时,Recall往往越低。

原因是:如果我们希望提高Precision,即二分类器预测的正例尽可能是真实正例,那么就要提高二分类器预测正例的门槛。例如,之前预测正例只要置信度\geq0.5的样例我们就标注为正例,那么现在要提高到置信度\geq0.7我们才标注为正例,这样才能保证二分类器挑选出来的正例更有可能是真实正例;而这个目标恰恰与提高Recall相反,如果我们希望提高Recall,即二分类器尽可能地将真实正例挑选出来,那么势必要降低二分类器预测正例的门槛,例如之前预测正例只要置信度\geq0.5的样例我们就标注为真实正例,那么现在要降低到\geq​​​​​​​0.3我们就将其标注为正例,这样才能保证二分类器挑选出尽可能多的真实正例 。

注:算法会为每个目标分配一个置信度

对于二分类器,我的理解是:即便是有多个目标,因为在P_curve和R_curve中,每一类都有一条自己对应的曲线,所以在计算每一类的时候(比如鱼),鱼就是正例,其余的不管有多少类通通归为负例。


 7.PR_curve(精确率和召回率的关系图)

mAP (Mean Average Precision),即均值平均精度。

mAP是所有类别AP的均值,AP由精确率和召回率确定;而IoU 阈值、confidence(置信度) 阈值影响精确率和召回率的计算。计算精确率和召回率时需要判断TP、FP、TN、FN

@后面的数表示判定iou为正负例的阈值

可以看到:精度越高,召回率越低。

我们希望我们的网络,在准确率很高的前提下,尽可能的检测到全部的类别。所以希望我们的曲线接近(1,1)点,即希望mAP曲线的面积尽可能接近1。

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


8.F1_curve

F1分数(F1-score)是分类问题的一个衡量指标。是精确率和召回率的调和平均数,1是最好,0是最差。

                                               F_{1}Score=\frac{2*Precision*Recall}{Precision+Recall}

​​​​​​​


 

9.可视化训练结果解析

横坐标代表的是训练轮数(epoch)

obj(Objectness):推测为目标检测loss均值,越小目标检测越准。

cls(Classification):推测为分类loss均值,越小分类越准。

第二个衡量指标:宏观上一般训练结果主要观察精度召回率波动情况,波动不是很大则训练效果较好;如果训练比较好的话图上呈现的是稳步上升。


10.小感悟

Q1:在学习YOLOv5训练结果分析的过程中突然有了一个疑问:train.py不就是训练训练图片,怎么会涉及到精确率的问题?

解释:在训练过程中,有一步会生成训练集(train.txt)、验证集(val.txt)、测试集(test.txt),其中存放图片的名字(无后缀.jpg)。

训练集:用于训练模型以及确定参数。相当于老师教学生知识的过程。

验证集:用于确定网络结构以及调整模型的超参数。相当于月考等小测验,用于学生对学习的查漏补缺。

测试集:用于检验模型的泛化能力。相当于大考,上战场一样,真正的去检验学生的学习效果。

所以我感觉正是测试测试集的过程中,才出来的精确率、召回率等参数。

关于毕设训练结果文档中P_curve、R_curve都只有黑鲷的原因是:测试集里只有黑鲷的图片。

这里设计到训练集、验证集、测试集的比例划分(未解决)


半成品:仅仅是为了自己理解YOLOv5的具体原理,如有侵权,麻烦告知,立删

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

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

相关文章

吴恩达2022机器学习专项课程(一)8.2 解决过拟合

目录 解决过拟合(一):增加数据解决过拟合(二):减少特征特征选择缺点 解决过拟合(三):正则化总结 解决过拟合(一):增加数据 收集更多训…

python web开发开源规范

Hello , 大家好。首先在五一假期给所有劳动者创造者们送上祝福, 本文聊聊我对python web开源相关的规范 PEP 8 Python编程风格指南:PEP 8是Python编程的官方风格指南,提供了关于代码格式、命名规范、注释等方面的建议。遵循PEP 8可以使代码更易于阅读和…

Spring Data JPA数据批量插入、批量更新真的用对了吗

Spring Data JPA系列 1、SpringBoot集成JPA及基本使用 2、Spring Data JPA Criteria查询、部分字段查询 3、Spring Data JPA数据批量插入、批量更新真的用对了吗 前言 在前两篇文章已经介绍过,在使用Spring Data JPA时,DAO层的Respository通过继承J…

【PHP】安装指定版本Composer

1、下载指定版本composer.phar文件:https://github.com/composer/composer/releases 2、将下载的文件添加到全局路径: sudo mv composer.phar /usr/local/bin/composer 3、赋予权限: sudo chmod x /usr/local/bin/composer 4、查看compos…

Android 文件传输

经常写adb命令传文件,结果发现Android studio有自带的文件管理器,可以上传下载文件。

模型剪枝-Network Slimming算法分析

代码见文末 论文地址:Learning Efficient Convolutional Networks through Network Slimming ICCV 2017 Open Access Repository 1.概述 由于边缘设备的限制,在模型的部署中经常受到模型大小、运行内存、计算量的限制。之前的方法要么只能解决其中一个…

hdc不是内部或外部命令,也不是可运行的程序或批处理文件。【鸿蒙报错已解决】

文章目录 项目场景:问题描述原因分析:解决方案:此Bug解决方案总结Bug解决方案寄语项目场景: 最近遇到了这个问题,看到网上也有人在询问这个问题,实操了很多网上的解决方案发现并不能解决这个Bug,所以我在解决这个问题后,总结了自己和其他人的解决经验,进行了整理,写…

翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习二

合集 ChatGPT 通过图形化的方式来理解 Transformer 架构 翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习一翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习二翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深…

2024年五一杯高校数学建模竞赛(A题)|钢板切割问题 | 建模解析,小鹿学长带队指引全代码文章与思路

我是鹿鹿学长,就读于上海交通大学,截至目前已经帮200人完成了建模与思路的构建的处理了~ 本篇文章是鹿鹿学长经过深度思考,独辟蹊径,通过路径优化解决钢板切割问题。结合贪心算法,Floyd-Warshall等多元算法…

【开发技巧 | 第一篇】Typora快捷键方式给字体添加颜色

文章目录 1.Typora快捷键方式给字体添加颜色1.1下载并安装AutoHotkey1.2新建ahk脚本文件1.3运行ahk脚本文件1.4小结 1.Typora快捷键方式给字体添加颜色 1.1下载并安装AutoHotkey 点击下载: https://autohotkey.com/download/ahk-install.exe下载安装包,执行安装&a…

数据结构算法——链表带环问题——数学深度解析

前言:本节内容主要是讲解链表的两个问题 :1、判断链表是否带环; 2、一个链表有环, 找到环的入口点。 本节内容适合正在学习链表或者链表基础薄弱的友友们哦。 我们先将问题抛出来,友友们可以自己去力扣或者牛客网去找相应题目&…

STM32 F103C8T6学习笔记17:类IIC通信—MLX90614红外非接触温度计

今日学习配置MLX90614红外非接触温度计 与 STM32 F103C8T6 单片机的通信 文章提供测试代码讲解、完整工程下载、测试效果图 本文需要用到的大概基础知识:1.3寸OLED配置通信显示、IIC通信、 定时器配置使用 这里就只贴出我的 OLED驱动方面的网址链接了&#xff1a…

线上线下收银一体化,新零售POS系统引领连锁门店数字化转型-亿发

在市场竞争日益激烈的背景下,没有哪个商家能够永远屹立不倒。随着互联网技术的快速发展,传统的线下门店面临着来自电商和新零售的新型挑战。实体零售和传统电商都需要进行变革,都需要实现线上线下的融合。 传统零售在客户消费之后就与商家失…

群晖Docker部署Java jar包

安装群晖Docker组件Container Manager 打开组件,找到注册表搜索java,安装java映像 安装完成后会在映像目录里展示出来,点击运行 常规设置按需配置即可 这里要设置一个文件夹目录给这个容器来使用 一般来说给个/root来用就够了 设置完成后可以在容器目录里看到容器已经运行起来了…

判断循环链表以及其环入口

文章目录 题目题目链接题目要求 解题思路方法一:哈希表方法二:双指针 进阶思考快指针一次走三步 进阶问题(入口点)题目链接题目要求问题思路 总结 题目 题目链接 环形链表 题目要求 解题思路 显而易见的是,单纯的遍…

可靠的Mac照片恢复解决方案

当您在搜索引擎搜索中输入“Mac照片恢复”时,您将获得数以万计的结果。有很多Mac照片恢复解决方案声称他们可以在Mac OS下恢复丢失的照片。但是,并非互联网上的所有Mac照片恢复解决方案都可以解决您的照片丢失问题。而且您不应该花太多时间寻找可靠的Mac…

uniapp 对接 Apple 登录

由于苹果要求App使用第三方登录必须要求接入Apple登录 不然审核不过 所以: 一、勾选苹果登录 二、 设置AppId Sign In Apple 设置完成重新生成描述文件 !!!!证书没关系 示例代码: async appleLogin…

2024年最新省市县三级行政区划数据(审图号:GS(2024)0650号)

2024年省、市、县三级行政区划数据由国家基础地理信息中心发布,通过《2024版国家地理信息公共服务平台(天地图)》正式对外提供。这份数据涵盖了最新的省市县三级行政区划信息,更新于2024年1月,提供了详细的矢量数据下载…

食谱管理和餐饮计划应用Mealie

放假除了休闲娱乐,也不能忘了美食 什么是 Mealie ? Mealie 是一个自托管的食谱管理和餐饮计划应用,具有 RestAPI 后端和基于 Vue 构建的响应式前端应用,为整个家庭提供愉快的用户体验。通过提供 URL,您可以轻松将食谱…

知识产权 | 守护科技创新之光,共筑知识产权长城

2024年4月26日,迎来了一年一度的世界知识产权日,今年的主题是:“立足创新创造,构建共同未来。” 易我科技是一家专注于数据安全产品研发、生产、销售、服务一体化的高新技术软件企业。易我科技自成立以来,始终秉持尊重…