第Y3周:yolov5s.yaml文件解读

  • 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
  • 🍖 原作者:K同学啊|接辅导、项目定制

✅本周任务:将yolov5s网络模型中第4层的C3*2修改为C3*1,第6层的C3*3修改为C3*2。

简单介绍:

YOLOv5配置了4种不同大小的网络模型,分别是YOLOv5sYOLOv5mYOLOv5lYOLOv5x,其中YOLOv5s是网络深度和宽度最小但检测速度最快的模型,其他3中模型都是在YOLOv5s的基础上不断加深、加宽网络使得网络规模扩大,在增强模型检测性能的同时增加了计算资源和速度消耗。出于对检测精度、模型大小、检测速度的综合考量,本文选择YOLOv5s作为研究对象进行介绍。

./models/yolov5s.yaml文件是YOLOv5s网络结构的定义文件,如果你想改进算法的网络结构,需先修改该文件中的相关参数,然后再修改./models/common.py./models/yolo.py中的相关代码。

yolov5s.yaml文件解读

  • 一、前导知识-yaml文件介绍
  • 二、查看配置文件
    • 1. 参数配置
    • 2.anchors配置
    • 3、backbone
    • 4、head
  • 三、修改配置文件

一、前导知识-yaml文件介绍

YAML简单介绍

二、查看配置文件

yolov5的所有网络yaml文件如下:

在这里插入图片描述
我们需要修改的网络参数配置文件为yolov5s.yaml,其文件的内容如下:

在这里插入图片描述

1. 参数配置

在这里插入图片描述

  • depth_multiple:channel的缩放系数,就是将配置里面的backbone和head部分有关通道的设置,全部乘以该系数即可
  • width_multiple:BottleneckCSP模块的层缩放系数,将所有的BottleneckCSP模块的number系数乘上该参数就可以最终的层个数

2.anchors配置

在这里插入图片描述

小 目标3组:[10, 13], [16, 30], [33, 23]
中 目标3组:[30, 61], [62, 45], [59,119]
大 目标3组:[116,90], [156,198], [373,326]

YOLOv5初始化了9个anchor,在3个Detect层(3个feature map)中使用,每个feature map的每个grid_cell都有3个anchor进行预测。分配规则是:尺度越大的feature map越靠前,相对原图的下采样率越小,感受野越小,则相对可以预测一些尺度比较小的物体,所有分配到定anchor越小;尺度越小的feature map越靠后,相对原图的下采样率越大,感受野越大,则相对可以预测一些尺寸比较大的物体,所有分配到的anchor也越大。即可以在小特征图(feature map)上检测大目标,也可以在大特征图上检测小目标。
YOLOv5根据工程经验得到了这么3组anchors(9对尺寸参数),对于很多数据集而言已经很合适了。但也不能保证这3组anchor就适用于所有数据集,所以YOLOv5还有一个anchor进化的策略:使用k-means和遗传进化算法,找到与当前数据集最吻合的anchors。

3、backbone

在这里插入图片描述

  • from: 表示当前模块的输入来自哪一层的输出,-1表示来自上一层的输出,层编号由0开始计数。
  • number: 表示当前模块的理论重复次数,实际的重复次数还要由上面的参数depth_multiple共同决定,该参数影响整体网络模型的深度。
  • module: 模块类名(也可以理解为模块的功能),通过这个类名在common.py中寻找相应的类,进行模块化的网络搭建。
  • args: 是一个list,对应到模块类搭建时需要的参数,主要是channel、kernel_size、stride、padding、bias等

4、head

在这里插入图片描述

三、修改配置文件

主要修改backbone

在这里插入图片描述

  • python yolo.py,you will see:

在这里插入图片描述

参考:yolov5s.yaml中各参数作用意义及使用netron工具来可视化yolov5s的结构
YOLOV5-5.x 源码解读-autoanchor.py
【YOLOV5-5.x 源码解读】yolov5s.yaml

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MapBox实现框选查询,多边形范围查询

还是老规矩先来看效果: mapbox官方没有为我们提供框选查询的案例,所以这个功能需要我们自己写。在openlayers框架中是有一个矩形范围查询的例子,但是在maobox没有。 那么我们就来说一下如何来做这个效果吧,首先这个效果可以分为两…

6道常见hadoop面试题及答案解析

Q1.什么是Hadoop?   Hadoop是一个开源软件框架,用于存储大量数据,并发处理/查询在具有多个商用硬件(即低成本硬件)节点的集群上的那些数据。总之,Hadoop包括以下内容:   HDFS(Ha…

红外人体感应灯单片机开发方案

近来,红外人体感应灯受到了居家人们关注和喜爱。为此,宇凡微推出了一款低成本红外人体感应灯单片机方案。红外人体感应灯可应用于走廊、床边、楼梯、衣柜等地方,提供柔和照明作用。人来即亮,人走即灭,不受强光影响睡眠…

位姿估计 | 空间目标位姿估计方法分类总结

目录 前言位姿估计方法分类一、传统位姿估计方法1. 基于特征的位姿估计2. 基于模型的位姿估计 二、深度学习位姿估计方法 总结 前言 本文接着分享空间目标位姿跟踪和滤波算法中用到的一些常用内容,希望为后来者减少一些基础性内容的工作时间。以往分享总结见文章&a…

【C语言】整,浮点型数据存储,大小端。细节拉满!!

目录 一. 整型 1. C语言内置整型家族 类型的意义: 2.整型在内存如何存储的呢? 3. 原码,反码, 补码 原码 反码 补码 4. 当 整型遇上unsigned 会发生什么呢? 1. unsigned 与 signed 解析 2. printf 输出 有无…

【新版】系统架构设计师 - 信息安全技术基础知识

个人总结,仅供参考,欢迎加好友一起讨论 文章目录 架构 - 信息安全技术基础知识考点摘要信息安全基础知识信息安全系统的组成框架信息加密技术对称加密(共享密钥)非对称加密(公开密钥)信息摘要数字签名数字信…

IDEA安装教程2023

在本文中,我们将提供关于如何安装 IntelliJ IDEA 的详细步骤。如果您是初学者或只是想尝试一下 IDEA,我们建议您下载 Community 版。如果您需要更多高级功能,可以选择 Ultimate 版。 步骤一:下载 IntelliJ IDEA 首先,…

路漫漫其修远兮

其实不仅是专业,AI冲击波才刚刚开启,包括博客、自媒体作用也在大幅度下降呢。 很多人看过如下这幅图: 提示工程师确实是在当前大型语言模型不够完善的情况下,通过微调输入的方式来提高模型的性能。随着模型的迭代,这些…

功能测试如何转型自动化测试

在互联网行业,我们是那些被遗忘的技术人。 很多人都觉得,传统开发、运维才是技术含量的一个工作。 但是测试的入门门槛比较低,所做的事情相对有限, 这是我之前跟一些大型互联网软件测试负责人大牛们聊天的时候发现,…

lora,固定模特+固定衣服,怎么实现?

在电商行业,经常会有一个需求,就是把固定的衣服让模型穿上,然后拍很多的图片,放在商品主图、详情页、买家秀...... 人工智能发展到现在,最近aigc也挺热门的,有没有办法用“人工智能”算法就实现这个功能&a…

从1万到1亿需要多少个涨停板?(python)

如果本金只有1万元,需要多少个涨停板才可以到达一亿元呢? 亦或者,如果有一亿元本金,需要多少个跌停板才可以到达一万元。 注:涨停板(10%),跌停板(-10%) 用到的…

在VSCode下利用PlateFormIO开发Arduino的MicroROS遇到的一些问题

文章目录 简介1.在第四节编译工程中,教程使用的vscode是有编译、上传的按钮的。但是我的没有。2.在【6.串口通信-接收实验】中,没有串行监视器(Serial Monitor)。3.关于trajectory_msgs/msg/joint_trajectory.hpp的相关问题4.关于…

PMP项目管理证书是什么?有什么用?

什么是PMP证书? PMP全称是Project Management Professional,中文全称叫项目管理专业人士资格认证,是由美国项目管理协会(PMI)发起,严格评估项目管理人员知识技能是否具有高品质的资格认证考试,目的是为了给项目管理人…

代码随想录|day13| 栈与队列part03 ● 239. 滑动窗口最大值● 347.前 K 个高频元素● 总结

239. 滑动窗口最大值--------知识点:单调队列 链接:代码随想录 自己写的,报错: class DandiaoQueue{//一个栈或者队列,基本要有进栈出栈两种操作,这里再加上pop出最大值一种操作//底层是deque public:deque…

机器学习笔记 - 多实例学习(MIL)弱监督学习

一、多实例学习概述 多实例学习(MIL)是一种弱监督学习形式,其中训练实例被排列在称为袋的集合中,并为整个袋提供标签。这种方式越来越受到人们的关注,因为它自然适合各种问题,并允许利用弱标记数据。因此,它被应用于计算机视觉和文档分类等不同的应用领域。 多实例学习(…

AntDB 企业增强特性介绍——同步异步自适应流复制

AntDB 提供了 hot-standby 的能力,功能与 Oracle 11g 的active standby 类似。并且通过流复制的方式,大大地缩短了备份库与主库的事务间隔。 传统流复制分为同步和异步两种模式。同步复制,即主机的事务要等到备机提交成功后才会提交并结束事…

使用Red Hat Insights注册RedHat系统

文章目录 前因Step 1: 确认所选择的系统Step 2: 将系统注册到Red Hat InsightsStep 3:具体操作演示 前因 使用SSH命令远程连接红帽系统,提示需要使用下面提示的命令进行系统注册订阅。 C:\Users\xyb>ssh -i xybdiy-aws-key.pem ec2-user18.179.118.78 The authen…

Mysql升级8.0后日期类型兼容性问题

背景 最近对原有项目数据库进行升级,从MySQL 5.7 升级到8.0,因此项目种的驱动程序也要做相应升级。 问题 一、 升级后报:java.time.LocalDateTime cannot be cast to java.util.Date 该问题是因为代码中使用Map类型获取查询返回值&#xf…

劝学:Android 14 Framework 引入了哪些“新”技术栈

作者:Mr_万能胶 2023 年 Google I/O 已于 2023 年 5 月 10 日 拉开帷幕,Android 14 Beta 版本近期也已经 释放到 Google partners,本文主要分析 Google 在 Android 14 框架代码中引入了哪些新的技术栈,而对于新功能和 API Change&…

Netty中ServerBootstrap类介绍

一、Netty基本介绍 Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。Netty 在保证易于开发的同时还保证了其应用的性能,稳定性和伸缩性。 Netty 是一…