YOLOv5 vs YOLOv8

news2024/10/6 22:23:51

1 概述

YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本。
https://github.com/ultralytics/yolov5
https://github.com/ultralytics/ultralytics

在这里插入图片描述

2 网络结构

YOLOv5 N/S/M/L/X 骨干网络的通道数设置使用同一套缩放系数;
YOLOv8 N/S/M/L/X 骨干网络的通道数设置不一样,使用不同的缩放系数。YOLOv7 网络设计也采用类似的方式作用于所有模型。

scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
  # [depth, width, max_channels]
  n: [0.33, 0.25, 1024]  # YOLOv8n summary: 225 layers,  3157200 parameters,  3157184 gradients,   8.9 GFLOPs
  s: [0.33, 0.50, 1024]  # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients,  28.8 GFLOPs
  m: [0.67, 0.75, 768]   # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients,  79.3 GFLOPs
  l: [1.00, 1.00, 512]   # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs
  x: [1.00, 1.25, 512]   # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs

YOLOv5:
在这里插入图片描述

YOLOv8:
在这里插入图片描述

2-1 Backbone

a) 第一个卷积层的 kernel 从 6x6 变成了 3x3
b) 所有的 C3 结构换成了梯度流更丰富的 C2f 结构, C2f 比 C3 多了更多的跳层连接和额外的 Split 操作
在这里插入图片描述

c) Backbone 中 C2f 的 block 数从 3-6-9-3 改成了 3-6-6-3

2-2 Neck

a) 所有的 C3 结构换成了梯度流更丰富的 C2f 结构, C2f 比 C3 多了更多的跳层连接和额外的 Split 操作
b) 去掉了 Neck 模块中的 2 个卷积连接层

2-3 Head

a)从原先的耦合头变成了解耦头
b) YOLOv5 的 Anchor-Based 变成了 Anchor-Free
c) 回归分支使用了 Distribution Focal Loss 中提出的积分形式表示法

3 Loss

a)正负样本分配策略
YOLOX 使用 simOTA、TOOD 使用 TaskAlignedAssigner 和 RTMDet 使用 DynamicSoftLabelAssigner,
YOLOv5 采用的依然是静态分配策略,YOLOv8 直接使用 TOOD 的 TaskAlignedAssigner。
TaskAlignedAssigner 的匹配策略简单总结为: 根据分类与回归的分数加权的分数选择正样本。
b) Loss计算
Loss 计算包括 2 个分支: 分类和回归分支,没有了yolov5的 objectness 分支。
分类分支依然采用 BCE Loss;
回归分支 Distribution Focal Loss;同时还使用了 CIoU Loss。
3 个 Loss 采用一定权重比例加权即可。

4 Data augmentation

a) 引入YOLOX 中提出的最后 10 个 epoch 关闭 Mosaic 的操作
在这里插入图片描述

b) 对于不同大小模型,部分超参会进行修改,如大模型会开启 MixUp 和 CopyPaste。

5 Training strategy

a) 训练总 epoch 数从 300 提升到了 500

6 Inference

YOLOv8 的推理过程和 YOLOv5 几乎一样,唯一差别在于前面需要对 Distribution Focal Loss 中的积分表示 bbox 形式进行解码,变成常规的 4 维度 bbox.
在这里插入图片描述
yolov8 推理和后处理过程为:
(1) bbox 积分形式转换为 4d bbox 格式
对 Head 输出的 bbox 分支进行转换,利用 Softmax 和 Conv 计算将积分形式转换为 4 维 bbox 格式
(2) 维度变换
YOLOv8 输出特征图尺度为 80x80、40x40 和 20x20 的三个特征图。Head 部分输出分类和回归共 6 个尺度的特征图。将 3 个不同尺度的类别预测分支、bbox 预测分支进行拼接,并进行维度变换。为了后续方便处理,会将原先的通道维度置换到最后,类别预测分支 和 bbox 预测分支 shape 分别为 (b, 80x80+40x40+20x20, 80)=(b,8400,80),(b,8400,4)。
(3) 解码还原到原图尺度
分类预测分支进行 Sigmoid 计算,而 bbox 预测分支需要进行解码,还原为真实的原图解码后 xyxy 格式。
(4) 阈值过滤
遍历 batch 中的每张图,采用 score_thr 进行阈值过滤。在这过程中还需要考虑 multi_label 和 nms_pre,确保过滤后的检测框数目不会多于 nms_pre。
(5) 还原到原图尺度和 nms
基于前处理过程,将剩下的检测框还原到网络输出前的原图尺度,然后进行 nms 即可。最终输出的检测框不能多于 max_per_img。

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

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

相关文章

Axure教程——滑动解锁

本文将教大家如何用AXURE中的动态面板制作滑动解锁 一 、效果 预览地址:https://6dnu91.axshare.com 二、功能 滑动滑块从左到右,提示验证成功 三、制作 拖入一个动态面板组件,如图: 点击动态面板进入,拖入一个矩形…

【生态经济学】R语言机器学习方法在生态经济学领域中的实践技术

查看原文>>>基于R语言机器学习方法在生态经济学领域中的实践技术 近年来,人工智能领域已经取得突破性进展,对经济社会各个领域都产生了重大影响,结合了统计学、数据科学和计算机科学的机器学习是人工智能的主流方向之一&#xff0c…

RK3288 Android logo

一、Android 系统开机logo的修改 安卓系统的开机分为u-boot logo 和 kernel logo开机logo图片必须是 bmp 格式,并且分辨率必须为偶数将制作好的BMP格式logo图片放置Android源码kernel目录下,重新编译即可 二、Android logo常见问题分析 1、RK3288 Andr…

基于SSM+jsp的电子商城系统设计与实现

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

IT云运维技术分享

1 运维体系 1.1 市场对运维的需求 时代发展到今天,社会的生活方式与生产方式的全面的数字化,无论是传统企业还是互联网企业,都在全面上云,这也意味着企业的关键业务乃至“身家性命”都已经全部放在 IT 系统之上,因此…

UWB自组网定位方案_基于UWB技术的消防应急救援定位解决方案

目前国内应急救援市场都是基于被动定位应用,在特殊情况下救援也大多处于单兵作战的情况,并不能及时知道自己和自己组员的位置信息和状态,且没有场景感知和室内外一体位置信息结合,使相关救援人员处于更加危险境地。本篇就带大家详…

【SWAT水文模型】Tips1:土地利用/土壤类型以全国数据分类

Tips1:土地利用/土壤类型以全国数据分类 1 土壤类型处理Step1 从全国土壤数据库中裁剪得到研究区域内土壤类型Step2 确定研究区域内重分类标准及类型 参考 1 土壤类型处理 直接对全国土壤类型数据进行分类,在SWAT模型中输入全国土壤类型,亦可…

【Linux】文件权限解析

一、Linux用户分类 Linux下有两种用户:超级用户(root)、普通用户 超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情。 超级用户的命令提示符是“#”,普通用户的…

近期煤矿事故及电力综合自动化系统的介绍

安科瑞虞佳豪 5月29日,山西灵石红杏鑫鼎泰煤业有限公司发生一起死亡1人的安全事故;5月24日,山西华阳集团新能股份有限公司二矿发生一起死亡1人的安全事故。 ​山西省应急管理厅、山西省地方煤矿安全监督管理局责令山西灵石红杏鑫鼎泰煤业有…

软考高级系统架构设计师(三) 基础知识之操作系统3文件管理

目录 文件管理 索引文件结构 位示图 ​树形目录结构 文件管理 文件管理,主要涉及文件的逻辑组织和物理组织,目录的结构和管理 索引文件结构 索引文件结构:通常是13个节点的结构,分为直接索引(0-9)&#…

星辰天合与中飞院合作 成立“民航高性能数据分析与存储联合实验室”

近日,星辰天合与中国民航飞行学院(以下简称“中飞院”)宣布合作成立“民航高性能数据分析与存储联合实验室”(以下简称“存储实验室”),并由星辰天合 CTO 王豪迈与现任中飞院总飞行师的“中国民航英雄机长”…

Winfrom多语言切换

“ 实现多语言的切换原理和ResXResourceManager使用。” ,时长00:08 实现多语言的切换原理就很简单了,例如默认是中文,from下就会有一个Form1.resx资源文件,所有的资源文件都是.resx。换个思路如果是WPF程序,那么资源文…

String类—javaSE

文章目录 1.常用方法1.1字符串构造1.2String对象的比较1.3字符串查找1.4转化1.5字符串替换1.6字符串拆分1.7字符串的截取1.8去掉字符串中的左右空格,保留中间空格 2.字符串常量池2.1 直接使用字符串常量进行赋值2.2通过new创建String类对象2.3 intern方法2.4String类…

韵达快递,你在玩我吗?请你不要挑战用户的底线!

这个周末真的是被韵达快递给气死了。 面对这样的服务,真的是不吐不快。 搞笑之处在于,表面功夫很到位,看似服务很全面,然后就是落实不到位。 为什么会被韵达快递气到呢?在网上买了 6 箱认养一头牛的儿童牛奶&#xff0…

持 PMP®证书增持 CSPM-2证书,大有用处,靠谱!

2023年起,持有PMP证书的朋友可以直接增持一个同等级证书CSPM-2,不用重新考试,不用重新学习,原PMP证书不影响正常使用,相当于多了一个国标项目管理领域的证书。 第一步准备资料 1、填写能力评价表(简历和业绩不用填&am…

ASP.NET Core Web API入门之三:使用EF Core

ASP.NET Core Web API入门之三:使用EF Core 一、引言二、EF Core 的优缺点2.1 优点:2.2 缺点: 三、使用前安装:NuGet包四、实体类更新到数据库实体表4.1 创建 DBEntity 属性4.2 appsettings.json 配置数据库连接串4.3 修改 DemoCo…

Spring Boot 如何使用 Web 容器

Spring Boot 如何使用 Web 容器 在使用 Spring Boot 进行开发时,我们通常需要使用 Web 容器来处理 HTTP 请求和响应。本文将介绍 Spring Boot 如何使用 Web 容器,包括如何配置 Web 容器、如何处理 HTTP 请求和响应等内容,并提供相应的代码示…

堡垒机免费版在哪里下载?是否安全可靠?

2023年整体大环境都不容乐观,很多企业预算有限。但安全运维又至关重要,因此很多企业都在寻找堡垒机免费版,都在问堡垒机免费版在哪里下载?是否安全可靠?这里我们小编就来简单解答一下。 堡垒机免费版在哪里下载&#…

聚焦行业云方案共性,Gartner 给出最新建议:建设行业云平台

出品 | CSDN 云计算 对绝大部分 IT 从业者来说,云计算是从 2005 年开始以 IaaS 进入他们眼中,同时,云计算的相关技术演化从基础设施、技术平台、数据/分析、人工智能机器学习等多个领域都产生了颠覆性的技术变革。不过,在云化之后…

如何监测Android网络类型:5G/4G/3G/2G能力

如何监测Android网络类型:5G/4G/3G/2G能力 App可以通过了解所连接的网络类型来获益,例如启用某些功能需要5G提供的带宽和低延迟。如果只有2G或3G网络可用,加载时间会比较慢,因此我们可以对加载时间有一定的预期。 在这里&#xf…