YOLOv5 - yolov5s.yaml 文件

 

基于深度学习的目标检测模型的结构:输入->主干->脖子->头->输出。主干网络提取特征,脖子提取一些更复杂的特征,然后头部计算预测输出。

YOLOv5网络结构主要由以下几部分组成:
骨干网络(Backbone) :Backbone:骨干网络,主要指用于特征提取的,已在大型数据集(例如ImageNet|COCO等)_上完成预训练,拥有预训练参数的卷积神经网络,例如: ResNet-50、 Darknet53等
颈部网络(Neck):Neck:颈部网络,在Backone和Head之间, 会添加一-些用于收集不同阶段中特征图的网络层。
头部网络(Head):主要用于预测目标的种类和位置(bounding boxes)

 YOLOv5的配置文件(通常是`.yaml`文件)包含了用于训练和测试YOLOv5模型的各种参数和超参数设置。

# YOLOv5 🚀 by Ultralytics, AGPL-3.0 license# Parameters
nc: 80  # number of classes
depth_multiple: 0.33  # model depth multiple
width_multiple: 0.50  # layer channel multiple
  •     nc 表示 "number of classes",即目标检测任务中的类别数量。
  •    depth_multiple 是模型深度的倍数,它用于调整YOLOv5的网络深度。在这里,它被设置为0.33,意味着模型的深度将是标准深度的1/3。
  •    width_multiple 是模型通道宽度的倍数,它用于调整YOLOv5的通道宽度。

 

anchors:- [10,13, 16,30, 33,23]  # P3/8- [30,61, 62,45, 59,119]  # P4/16- [116,90, 156,198, 373,326]  # P5/32

anchors 参数包含了一组锚框(anchor boxes),每个锚框是一个宽度和高度的列表。这些锚框通常是在不同尺度的特征图上使用的,以便模型可以检测不同大小的目标。

每行对应一个不同尺度的特征图。在这个示例中,有三个不同尺度的特征图,分别是P3/8、P4/16和P5/32。每个特征图使用两个锚框,因此每个特征图有两行,每行包含了两个锚框。

每个锚框的宽度和高度的值是按顺序排列的,这些值通常是根据目标数据集和任务来选择的。

  1. 作用

    • 提供不同尺度的预定义边界框,以适应不同大小的目标。这些锚框有助于模型精确地定位目标的位置。

    • 通过使用不同比例的锚框,模型可以更好地处理大尺寸和小尺寸的目标。

  2. 如何使用

    • 在训练YOLOv5模型时,anchors参数会被用于计算目标检测框的损失函数。模型会预测每个锚框的位置和类别,然后使用这些预测值与真实目标框进行比较,从而计算损失。

    • 模型会根据训练数据自动调整锚框,以便更好地适应目标的大小和形状。训练过程中,模型会学习如何根据预测值来调整锚框,以提高检测准确性。

    • 在推理(测试)阶段,模型使用这些锚框来生成目标检测框。它会使用预测的坐标偏移量和锚框的宽度、高度来确定目标框的位置。模型会使用类别预测来确定目标的类别。

    • 锚框的选择和调整通常会影响模型的性能和准确性。如果数据集包含特定尺寸和比例的目标,可以根据数据集的特点来选择或优化锚框的值,以获得更好的检测性能。

# YOLOv5 v6.0 backbone
backbone:# [from, number, module, args][[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2[-1, 1, Conv, [128, 3, 2]],  # 1-P2/4[-1, 3, C3, [128]],[-1, 1, Conv, [256, 3, 2]],  # 3-P3/8[-1, 6, C3, [256]],[-1, 1, Conv, [512, 3, 2]],  # 5-P4/16[-1, 9, C3, [512]],[-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32[-1, 3, C3, [1024]],[-1, 1, SPPF, [1024, 5]],  # 9]
  1. [[from, number, module, args]]:这个部分包含了一系列的网络模块,每个模块由一个列表表示。每个模块描述了一个阶段或层的配置。

  2. [-1, 1, Conv, [64, 6, 2, 2]]:这是第一个模块,它执行卷积操作。具体来说,它执行了以下操作:

    • from:-1 表示从上一个阶段继承特征图。
    • number:1 表示只有一个卷积层。
    • module:Conv 表示卷积层。
    • args:[64, 6, 2, 2] 包含了卷积层的参数,包括输出通道数(64)、卷积核大小(3x3),步幅(2),和填充(2)等。
  3. [-1, 1, Conv, [128, 3, 2]]:这是第二个模块,它也是一个卷积层,输出通道数为128,卷积核大小为3x3,步幅为2。

  4. [-1, 3, C3, [128]]:这是一个C3模块,它执行一系列的卷积操作以提取特征。[-1, 3, C3, [128]]中的3表示它包含3个卷积层,[128]表示输出通道数。

  5. 类似地,接下来的模块定义了主干网络中的其他阶段,每个阶段包括不同数量的卷积层和特定的配置。

  6. [-1, 1, SPPF, [1024, 5]]:最后一个模块是SPPF(Spatial Pyramid Pooling with Fused),它执行空间金字塔池化操作。这个操作用于捕获不同尺度的上下文信息,以提高模型的感知能力。

# YOLOv5 v6.0 head
head:[[-1, 1, Conv, [512, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 6], 1, Concat, [1]],  # cat backbone P4[-1, 3, C3, [512, False]],  # 13[-1, 1, Conv, [256, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 4], 1, Concat, [1]],  # cat backbone P3[-1, 3, C3, [256, False]],  # 17 (P3/8-small)[-1, 1, Conv, [256, 3, 2]],[[-1, 14], 1, Concat, [1]],  # cat head P4[-1, 3, C3, [512, False]],  # 20 (P4/16-medium)[-1, 1, Conv, [512, 3, 2]],[[-1, 10], 1, Concat, [1]],  # cat head P5[-1, 3, C3, [1024, False]],  # 23 (P5/32-large)[[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)]

 

  1. [[from, number, module, args]]:这个部分包含了一系列的网络模块,每个模块由一个列表表示。每个模块描述了一个阶段或层的配置。

  2. [-1, 1, Conv, [512, 1, 1]]:这是第一个模块,它执行一个卷积操作。具体来说,它执行了以下操作:

    • from:-1 表示从上一个阶段继承特征图。
    • number:1 表示只有一个卷积层。
    • module:Conv 表示卷积层。
    • args:[512, 1, 1] 包含了卷积层的参数,包括输出通道数(512)、卷积核大小(1x1),步幅(1)等。
  3. [-1, 1, nn.Upsample, [None, 2, 'nearest']]:这个模块执行上采样操作,将特征图的分辨率增加两倍。

  4. [[-1, 6], 1, Concat, [1]]:这个模块使用Concat操作,将来自主干网络的P4特征图与当前特征图进行连接。

  5. [-1, 3, C3, [512, False]]:这是一个C3模块,它包含了一系列卷积操作,用于处理特征。[512, False]表示输出通道数为512。

  6. 类似地,接下来的模块定义了头部网络中的其他阶段,每个阶段包括不同数量的卷积层和特定的配置。

  7. [[17, 20, 23], 1, Detect, [nc, anchors]]:最后一个模块是Detect模块,用于执行目标检测。它将来自不同尺度的特征图(P3、P4、P5)进行连接,以便进行目标检测。nc表示类别的数量,anchors表示锚框的配置。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

求解一个整数中含多少个1

1.问题描述:给定一个整数,统计其对应的二进制中含有1的个数。比如8(0000 1000),对应的二进制数中,只含有一个1. 2.设计思路:对x取余:zx%2。如果z!0,说明x的末尾不是为1.对于一个二进制x4x3x2x1…

提升ChatGPT答案质量和准确性的方法Prompt engineering

文章目录 怎么获得优质的答案设计一个优质prompt的步骤:Prompt公式:示例怎么获得优质的答案 影响模型回答精确度的因素 我们应该知道一个好的提示词,要具备一下要点: 清晰简洁,不要有歧义; 有明确的任务/问题,任务如果太复杂,需要拆分成子任务分步完成; 确保prompt中…

JAVA 实现PDF转图片(spire.pdf.free版)

1.引入jar包 导入方法1: 手动引入。将Free Spire.PDF for Java下载到本地,解压,找到lib文件夹下的Spire.PDF.jar文件。在IDEA中打开如下界面,将本地路径中的jar文件引入Java程序: 导入方法2:如果您想通过…

百度 | 文心一言也开始收费了

好久没用文心一言了 之前一直用ChatGPT的 今天打开文心一言一看,好家伙 出了文心大模型4.0,想体验一下来着 可惜是收费的 看下价格,没买 50块钱一个月,对比ChatGPT4来说,确实不算贵 毕竟gpt4一个月20美刀 ,…

MySQL数据库干货_16—— SQL99标准中的查询

SQL99标准中的查询 MySQL5.7 支持部分的SQL99 标准。 SQL99中的交叉连接(CROSS JOIN) 示例: 使用交叉连接查询 employees 表与 departments 表。 select * from employees cross join departments;SQL99中的自然连接(NATURAL JOIN) 自然连接 连接只能发生在两…

多测师肖sir_高级金牌讲师_性能指标

性能指标 一、性能测试指标 性能测试是通过测试工具模拟多种正常、峰值及异常负载条件来对系统的各项性能指标进行测试。 目的:验证软件系统是否能够达到用户提出的性能指标,发现系统中存在的性能瓶颈并加以优化。 二、指标分为两大类: 软件…

C++ 赋值运算重载,const成员,取地址及const取地址操作符重载

C 赋值运算重载,const成员,取地址及const取地址操作符重载 1. 赋值运算符重载1.1 运算符重载1.2 赋值运算符重载1.3 前置/--和后置/--重载 2. const成员3. 取地址及const取地址操作符重载 所属专栏:C“嘎嘎" 系统学习❤️ 🚀…

内置对象和方法、前端基础之BOM和DOM

内置对象和方法 RegExp对象 // 定义正则表达式两种方式 var reg1 new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}"); var reg2 /^[a-zA-Z][a-zA-Z0-9]{5,9}$/;// 正则校验数据 reg1.test(jason666) reg2.test(jason666)/*第一个注意事项,正则表达式中不能有…

多输入多输出 | Matlab实现k-means-ELM(k均值聚类结合极限学习机)多输入多输出组合预测

多输入多输出 | Matlab实现k-means-ELM(k均值聚类结合极限学习机)多输入多输出组合预测 目录 多输入多输出 | Matlab实现k-means-ELM(k均值聚类结合极限学习机)多输入多输出组合预测预测效果基本描述程序设计参考资料 预测效果 基…

服务器数据恢复-VSAN环境下ESXI虚拟机无法访问的数据恢复方案

一、用户信息: 广东某单位 二、数据恢复环境: 主机操作系统:ESXI 分区类型:VSAN 存储介质清单 :一共8台服务器节点,每节点2个磁盘组,其中1个磁盘组配置1块SSD固态硬盘,4块1.2T机…

Docker安装部署[8.x]版本Elasticsearch+Kibana+IK分词器

文章目录 Docker安装部署elasticsearch拉取镜像创建数据卷创建网络elasticsearch容器,启动!踩坑:虚拟机磁盘扩容 Docker安装部署Kibana拉取镜像Kibana容器,启动! 安装IK分词器安装方式一:直接从github上下载…

人工智能基础_机器学习011_梯度下降概念_梯度下降步骤_函数与导函数求解最优解---人工智能工作笔记0051

然后我们来看一下梯度下降,这里先看一个叫 无约束最优化问题,,值得是从一个问题的所有可能的备选方案中选最优的方案, 我们的知道,我们的正态分布这里,正规的一个正态分布,还有我们的正规方程,他的这个x,是正规的,比如上面画的这个曲线,他的这个x,就是大于0的对吧,而现实生活…

论文阅读 - Detecting Social Bot on the Fly using Contrastive Learning

目录 摘要: 引言 3 问题定义 4 CBD 4.1 框架概述 4.2 Model Learning 4.2.1 通过 GCL 进行模型预训练 4.2.2 通过一致性损失进行模型微调 4.3 在线检测 5 实验 5.1 实验设置 5.2 性能比较 5.5 少量检测研究 6 结论 https://dl.acm.org/doi/pdf/10.1145/358…

nodejs express vue 点餐外卖系统源码

开发环境及工具: nodejs,vscode(webstorm),大于mysql5.5 技术说明: nodejs express vue elementui 功能介绍: 用户端: 登录注册 首页显示搜索菜品,轮播图&#xf…

Diango项目-简易个人博客项目

项目实现功能 在admin后台自定义添加上传文档。对展示在首页的文章分页显示。在首页点击文章的阅读全文按钮可进入该文章全文详情页进行浏览。对文章实现了内容分类何以发布时间进行归档分类。使用django的whoose搜索引擎对全文实现内容的搜索。 项目涉及技术 Mysql Djan…

【设计模式】第10节:结构型模式之“组合模式”

一、简介 组合模式:将一组对象组织成树形结构,将单个对象和组合对象都看做树中的节点,以统一处理逻辑,并且它利用树形结构的特点,递归地处理每个子树,依次简化代码实现。使用组合模式的前提在于&#xff0…

ts 简易封装 axios,统一 API

文章目录 为什么要封装目标文件结构封装通用请求方法获得类型提示http 方法文件上传使用示例实例化post 请求类型提示文件上传 总结完整代码: 为什么要封装 axios 本身已经很好用了,看似多次一举的封装则是为了让 axios 与项目解耦。比如想要将网络请求…

【广州华锐互动】风景区规划VR虚拟现实教学系统

风景区规划VR虚拟现实教学系统是一种新兴的教学工具,它可以通过虚拟现实技术,为学生提供一种沉浸式的、实时的、全方位的景区规划体验。 在风景区规划VR虚拟现实教学系统中,学生可以通过虚拟现实技术,实时地与景区进行交互。他们可…

Spring - 手写模拟Spring底层原理

手写Spring 定义配置类AppConfig ComponentScan("com.spring.zsj") public class AppConfig {Beanpublic ApplicationListener applicationListener() {return new ApplicationListener() {Overridepublic void onApplicationEvent(ApplicationEvent event) {System…

【WinForm详细教程五】WinForm中的MenuStrip 、ContextMenuStrip 、ToolStrip、StatusStrip控件

文章目录 1.MenuStrip2.ContextMenuStrip3.ToolStrip4.StatusStrip 1.MenuStrip MenuStrip作为一个容器可以包含多个菜单项。MenuStrip 的重要属性包括: Name:菜单的名字Dock:菜单的停靠位置Items:菜单项的集合 ToolStripMenuI…