YOLO V5 和 YOLO V8 对比学习

news2024/12/24 9:20:05

参考文章:
1、YOLOv5 深度剖析
2、如何看待YOLOv8,YOLOv5作者开源新作,它来了!?
3、anchor的简单理解

完整网络结构

YOLOv5-l-P6

YOLO v8

YOLO v5和YOLO v8的Head部分

在这里插入图片描述
YOLO v8的Head 部分相比 YOLOv5 改动较大,换成了目前主流的解耦头结构,将分类和检测头分离,同时也从 Anchor-Based 换成了 Anchor-Free。anchor-based和anchor-free方法的本质区别,就是如何定义正负样本
Anchor-Based:事先通过手工或聚类方法设定好的具有不同尺寸、宽高比的方框anchor_boxes。这些方框覆盖了整张图像,目的是为了防止漏检。在模型训练过程中,根据anchor_boxes与ground truth的IoU(交并比)损失对anchor_boxes的长宽以及位置进行回归,使其越来越接近ground truth,在回归的同时预测anchor_boxes的类别,最终输出这些回归分类好的anchors。目前主流的目标检测算法多是anchor-based这一类,其中有two-stage也有one-stage。two-stage方法要筛选和优化的anchors数量要远超one-stage方法,筛选步骤较为严谨,所以耗费时间要久一些,但是精度要高一些。在常用的检测基准上,SOTA的方法一般都是anchor-based的。
Anchor-Free:由于FPN和Focal Loss的出现,有效解决了特征语义信息不足和正负样本不均衡的问题,又涌现出了一批anchor-free的算法。anchor-free检测器以两种不同的方式检测物体,一种是首先定位到多个预定义或自学习的关键点,然后约束物体的空间范围,称为Keypoint-based方法;另一种是利用中心点或中心目标区域来定义正样本,然后预测其到目标四个边的距离,称为Center-based方法。anchor-free的方法使得目标检测的流程进一步精简,减少了相关超参数,使得网络搭建训练更简便,泛化能力也更强。

YOLOv5的C3结构 和 YOLOv8的C2f结构

在这里插入图片描述
YOLO v8将 YOLOv5 的 C3 结构换成了梯度流更丰富的 C2f 结构,并对不同尺度模型调整了不同的通道数,不过这个 C2f 模块中存在 Split 等操作对特定硬件部署没有之前那么友好了。

YOLO v5和YOLO v8的loss

1、YOLO v5在类别的损失函数中,使用的是二元交叉熵损失函数,而不是softmax损失函数。因为softmax损失函数对于每个类别的处理是互斥的。而yolo考虑到了类别不互斥的情况,例如,一个类别可以是车,但也可以是汽车或货车,如果用softmax,是车就不可以是汽车,但二元交叉熵既可以是车也可以是汽车。
2、YOLO v8采用了 TaskAlignedAssigner 正样本分配策略,并引入了 Distribution Focal Loss。Loss 计算包括 2 个分支: 分类和回归分支,没有了之前的 objectness 分支。分类分支依然采用 BCE Loss。回归分支需要和 Distribution Focal Loss 中提出的积分形式表示法绑定,因此使用了 Distribution Focal Loss, 同时还使用了 CIoU Loss。3 个 Loss 采用一定权重比例加权即可。
TaskAlignedAssigner 正样本分配策略核心思想是在候选框与真实目标之间建立正确的对应关系,以便在训练过程中能够准确地学习目标检测模型,即根据分类与回归的分数加权的分数选择正样本。在目标检测中,类别不平衡是指不同类别的目标数量差异很大,这可能会导致模型在训练过程中对少数类别的预测效果较差。Focal Loss 通过在损失函数中引入一个可调节的因子,来减小易分类样本的权重,从而集中训练模型在困难样本上。Distribution Focal Loss是 Focal Loss 的一个变体,专门用于应对类别不平衡问题。其主要思想是将 Focal Loss 与样本分布信息相结合,从而更好地处理不平衡的类别。具体而言,分布 Focal 损失会根据每个类别的样本分布情况来调整 Focal Loss 中的因子,以便更有效地关注罕见类别。

YOLO v5和YOLO v8训练数据增强

YOLO v8数据增强方面和 YOLOv5 差距不大,只不过引入了 YOLOX 中提出的最后 10 个 epoch 关闭 Mosaic 的操作。假设训练 epoch 是 500,其示意图如下所示:
在这里插入图片描述
Mosaic是YOLOV4中提出的新方法,适用于目标检测,主要思想是将四张图片进行拼接到一张图上作为训练样本。由于Mosaic用于目标检测,进行拼接时目标框的坐标也要做相应的变化。Mosaic的主要操作如下:

  • 对每一张图进行随机裁剪得到A;crop的目标是选择原图的某一块区域,而不是全图进行后续的拼接;
  • 将A进行resize到输出图大小得到B;目标是统一坐标系尺寸,方便后续拼接;坐标框会进行相应的缩放
  • 将B随机裁剪一块指定大小的区域C;
  • 将C粘贴到输出图相应的位置;此时只需要坐标平移就可以调整坐标框

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

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

相关文章

半导体晶片机器视觉测量及MARK点视觉定位

半导体晶片机器视觉测量及MARK点视觉定位 客户的需求: 检测内容: SMT行业晶片位置角度与PCB板Mark点位置的测试测量 检测要求: 精度0.04mm,移动速度100mm/s 视觉可行性分析: 对样品进行了光学实验,并进行图像处理&#xff0c…

华为OD机试 - 硬件产品销售方案 - 回溯(Java 2023 B卷 200分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、补充说明五、解题思路六、Java算法源码七、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(…

【SVN】 代码版本管理工具使用步骤以及全局忽略不需要提交的文件夹

2023年,第36周。给自己一个目标,然后坚持总会有收货,不信你试试! SVN是Subversion的简称,是一个开源的版本控制系统,用于管理软件开发过程中的代码版本和文件变更。 它提供了跟踪文件修改、协同开发、版本回…

上海市青少年算法2023年7月月赛(丙组)

T1先行后列 题目描述 从 1 开始的 nm 个整数按照先行后列的规律排列如下: 给定 n 与 m,再给定一个数字 c,请输出 c 所在的行数与列数。 输入格式 第一行:两个整数表示 n 与 m 第二行:一个整数表示 c 输出格式 两个整数:表示 c 所在的行数与列数。 数据范围 1≤n,m≤10000…

Oracle DBlink使用方法

DBlink作用:在当前数据库中访问另一个数据库中的表中的数据 create public database link dblink名称 connect to 对方数据库用户名 identified by 对方数据库用户密码 using (DESCRIPTION (ADDRESS_LIST (ADDRESS (PROTOCOL TCP)(HOST 要连接的数据库所在服务…

封闭式园区人员定位及轨迹跟踪管理系统的功能和作用

在当今充满竞争的商业环境中,企业安全和员工管理变得尤为重要。尤其是在封闭式园区这样的环境中,确保员工的安全和准确管理变得尤为关键。为了满足这一需求,封闭式园区人员定位及轨迹跟踪管理系统应运而生,该系统结合了最新科技和…

回文链表00

题目链接 回文链表 题目描述 注意点 回文的定义:回文就是反转以后和以前一样的就是回文结构用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题 解答思路 用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题要求有限遍历且避免使用O(n) 额外空间,避免使用 O…

护眼台灯拒交智商税!明基/SUKER书客/米家三款热门护眼台灯深度测评

Hello我是装修研究爱好者,最近后台收到多位家长们咨询,让推荐一款儿童护眼台灯 要求灯光质量和光源稳定,光线舒适护眼效果好的台灯,为此我开始整理儿童护眼台灯攻略 选护眼灯时首先必须关注与护眼相关的指标,其次在考…

打造高效便利的同城跑腿外卖小程序

随着移动互联网的发展,人们的生活方式发生了翻天覆地的变化。外卖行业作为其中的一部分,正日益蓬勃发展。为了满足用户对便利的需求,我们可以开发一个名为“同城跑腿外卖小程序”的应用,让用户能够轻松地下单外卖、送货上门以及处…

python编辑器推荐及配置

vscode首推,(个人喜好) 安装Python解释器 打开Python官网 https://www.python.org/ 在 Downloads 下面选择自己的对应系统,本文以 Windows 为例 下载完成后解压,双击 .exe 文件开始安装 注意勾选下面选项,将其 python.exe 添加到环境变量…

OA项目之会议通知(查询是否参会反馈详情)

目录 会议查询 是否参会 反馈详情 讲解思路 会议通知SQL语句分析 反馈详情SQL语句分析 后台代码编写 前端代码编写 效果预览 会议查询 MeetingFeedBack.java package com.zking.oa.model;import org.lisen.mvc.util.AutoIncrement; import org.lisen.mvc.util.…

Ubuntu入门04——目录与文件

目录 1.显示当前工作目录 2.更改目录 3.创建工作目录 4.删除工作目录 5.移动文件或者文件夹 6.文件夹and文件查看命令 7. 回到根目录,回到上一级 8.删除工作目录 9.查看目录和文件 10.以树状图列出目录内容 11.文件查找 12.在数据库中查找文件或目录 1…

从零开始学习数据服务API的最佳指南

随着互联网的快速发展,数据已经成为企业和个人的重要资产。为了更好地利用这些数据,数据服务API(Data Service API)应运而生。本文将为您介绍如何从零开始学习数据服务API的最佳指南,并推荐一款优秀的产品FDL&#xff…

[C/C++]内存管理,对内存进行操作

目录 一.内存结构 二.内存拷贝函数 三.栈空间与堆空间 四.变量的四种存储类型 五.函数返回值使用指针 六.常见错误总结 🎈个人主页:北海 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏✨收录专栏:C/C&…

如何让Midjourney角色保持一致的5个核心技巧

hi,同学们,我是赤辰,本期是赤辰第2期AI教程或推荐实用AI工具,文章底部准备了粉丝福利,看完可以领取! 今天给大家介绍Midjourney5个控制AI绘画角色一致性的技巧。 近期整理了学员在使用Midjourney生图时遇…

KVM中的四种简单网络模型

KVM中的四种简单网络模型,分别如下: 1、隔离模型(QEMU内置的用户模式网络(user mode networking)):虚拟机之间组建网络,该模式无法与宿主机通信,无法与其他网络通信&…

3D数字孪生技术应用到河道治理的整体方案

无论是城市还是农村的污水处理厂,在建设完毕并稳定运行以后,日常的巡检是最重要的现场管理环节。污水处理由于其自身工艺的特点,污水处理设备众多 ,进水水质变化大,处理流程长,这期间需要经常对设备的运行情…

java安全问题处理

一、客户端的计算不可信 1、服务端计算价格,如果不这么做的话,很可能会被黑客利用,商品总价被恶意修改为比较低的价格。 二、客户端提交的参数需要校验 1、误以为客户端的数据来源是服务端,客户端就不可能提交异常数据 2、对参数进…

『PyQt5-Qt Designer篇』| 08 Qt Designer中容器布局和绝对布局的使用

08 Qt Designer中容器布局和绝对布局的使用 1 容器布局1.1 设计容器布局1.2 保存文件并执行2 绝对布局2.1 设计绝对布局2.2 保存文件并执行1 容器布局 1.1 设计容器布局 先拖入一个容器Frame容器,然后拖入几个控件: 把拖入的控件拖入容器中: 选中容器,右键-布局-栅格布局:…

拥抱储能新时代!科士达闪耀EESA第二届中国国际储能展览会

2023年8月30日,EESA第二届中国国际储能展览会在苏州国际博览中心拉开帷幕,科士达以“零碳光储数能未来”为主题,亮相G3-20展台,多维度展现户用光储、工商业储能、大型储能等解决方案,彰显安全、高效、可靠的产品性能和…