修改YOLOv5的模型结构

news2024/12/30 3:39:56

YOLOv5 模型结构

YOLOv5模型结构图

C3模块结构图

C3模块结构图

修改目标

修改目标是移除C3模块concat后的卷积操作
目标修改
YOLOv5的模型存储在项目目录下的models目录中。

  • 一些以yaml为后缀的文件保存了一些模型的超参数,通过不同的参数,形成了yolov5s,yolov5n,yolov5l等不同参数等级,不同性能的网络模型。
  • segment文件夹保存的是用于分割的配置
  • experimental.py 文件中保存了一些实验性质的模块
  • tf.py是tensorflow版本的YOLOv5
  • yolo.py 是pytorch版本的YOLOv5,这个文件中主要存放了yolo专用的模型
  • common.py 是pytorch版本的,YOLO用到的一些基本模块,例如上图中的C3模块、Conv卷积块、Bottleneck瓶颈块等。

要想实现修改C3模块,就要从common.py入手。

common.py的简单介绍

common.py中实现了yolov5所用到的一些模块

  • 将卷积、归一化、和激活函数合并成一个Conv模块
  • 将通道数先缩小后放大的Bottleneck模块
  • 结合跳跃连接、Conv、Bottleneck模块的C3模块
  • 为了下采样、降低计算量用的Focus模块
  • 融合多尺度特征的SPP(Sptaial Pyramid Pooling,空间金字塔)模块

然后在上层又创建了AutoShape进行非模型本身的预处理、后处理过程;创建了Detections用于控制检测的过程,记录状态等;创建了Classify用于二级分类。

修改代码

修改前代码

通过阅读源代码可知,想要删除上图中,concat后面的Conv模块,就要让concat的结果能够满足代码中原本cv3的输出格式。可以发现默认的伸缩因子就是0.5,会把cv1和cv2的输出变成c2的一半。这样concat后刚好就是c2,可以直接移除cv3层。但是有可能会出现c3是奇数的情况,这种时候我将通道大的部分分给了bottleneck模块。
修改后的代码如下:

修改后代码
训练修改后的模型,得到的准确率如下:
修改后结果
对比修改前的模型运行准确率:
修改前的模型运行准确率
对比修改前后的准确率,可以发现这层卷积的影响还是很大的,总体的准确率下降了5%。猜测是连接后的特征图直接进行接下来的处理,不能使C3模块两条向前传播的线路捕捉的特征很好的融合到一起,从而影响模型的准确率。

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

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

相关文章

【java零基础入门到就业】第四天:Notepad++软件的下载和安装

文章目录 Notepad软件简介下载安装 Notepad软件 简介 Notepad(又称Notepad Plus Plus)是一款免费的文本编辑器,是Windows操作系统下非常受欢迎的开源软件。它提供了许多强大的功能,适合用于编写各种编程语言的源代码、编辑文本文…

【vscode】Window11环境下vscode使用Fira Code字体【教程】

【vscode】Window11环境下vscode使用Fira Code字体【教程】 文章目录 【vscode】Window11环境下vscode使用Fira Code字体【教程】1. 下载Fira Code字体2. 安装Fira Code字体3. 配置vscode4. 效果如下Reference 如果想要在Ubuntu环境下使用Fira Code字体,可以参考我的…

IP路由配置

一、路由协议分类 路由协议是路由器之间维护路由表的规则,用于发现路由并生成路由表以指导报文转发。可分为: 通过链路层协议发现的直连路由通过网络管理员手动配置的静态路由通过动态路由协议发现的动态路由其中,动态路由根据作用范围分为: 内部网关协议(IGP):包括rip…

linux系统SQL server数据库定时收缩

问题现象 出现下图问题,导致连接该数据库的程序不能正常启动 解决办法 定时收缩数据库 数据库定时收缩脚本 需要三个脚本文件 linux_sqlcmd_timing_task_shrink.sh:主脚本文件 # 设置数据库名称、用户名、密码等信息 # db_name"volador"…

OpenHarmony 入门——搭建OpenHarmony本地应用开发环境

文章大纲 引言一、应用开发工具下载SDK替换1、本地SDK目录查找2、OpenHarmony SDK编译3、SDK替换4、sdk node_modules依赖包下载5、验证 三、镜像烧写工具及指南1、下载烧录工具2、安装usb驱动3、rk3568镜像编译5、 镜像配置&烧录 引言 OpenHarmony是由开放原子开源基金会…

Unity中Shader的烘培分支的判断

文章目录 前言一、上一篇文章中所需要的 lightmapUV 只有在烘焙时才会使用1、查看帮助文档后,Unity中判断烘培是否开启,使用的是LIGHTMAP_ON2、我们在 appdata 和 v2f 中,定义第二套UV 前言 Unity中Shader的烘培分支的判断,基于上…

AITO问界崛起的“临门一脚”,落在了赛力斯汽车的智慧工厂里

文 | 智能相对论 作者 | 沈浪 AITO问界新M7的销量爆了,口碑也紧接着“爆”了。 AITO问界新M7系列上市以来50天,累计大定突破8万辆。AITO问界M9预计今年12月上市,预订超过了1.5万辆。根据最新公布的产销数据,在过去的10月份&…

Contec SolarView Compact < 6.00 远程命令执行漏洞 (CVE-2023-23333)

Contec SolarView Compact < 6.00 远程命令执行漏洞 &#xff08;CVE-2023-23333&#xff09; 免责声明漏洞描述漏洞影响漏洞危害网络测绘Fofa: body"SolarView Compact" 漏洞复现1. 构造poc2. 执行命令id命令pwd命令 免责声明 仅用于技术交流,目的是向相关安全人…

c++qt学习对象树

1.当创建的对象在堆区时候&#xff0c;如果指定的父亲是QObject派生下来的类或者QObject子类派生下来的类&#xff0c;可以不用管理释放的操作&#xff0c;将对象会放在对象树中。 2.一定程度上简化了内存回收机制 构造顺序与析构顺序相反

Java实现驼峰命名的字符串转化

目录 一、场景描述 二、代码示例 1、下划线大写方式命名的字符串转换为驼峰式 2、驼峰式命名的字符串转换为下划线大写的方式 3、完整代码 一、场景描述 在开发场景中&#xff0c;我们会遇到一些涉及字符串的转化。例如&#xff1a;数据库字段的名称叫TYPE_NAME&#xff0c…

Verilog刷题[hdlbits] :Module addsub

题目&#xff1a;Module addsub An adder-subtractor can be built from an adder by optionally negating one of the inputs, which is equivalent to inverting the input then adding 1. The net result is a circuit that can do two operations: (a b 0) and (a ~b …

2023/11/3 JAVA学习

默认执行toString方法 在类中重写toString方法,会自动写 默认比较的是对象的地址 equals主要也是为了重写 克隆必须要Cloneable标记接口,虚拟机才会允许克隆 调用对象中的克隆方法时会报错(异常),按住ctrl 回车扔掉异常 如果用对象自己的equals方法,如果本身是null会报错 效率…

内审数字化:防范化解企业风险的灵丹妙药

某家制造业公司的审计部负责人王经理&#xff0c;最近对公司的各种风险感到焦虑。供应商管理、招标采购、市场竞争激烈、法规变化等因素都可能对他的公司构成威胁。如何防范化解这些风险&#xff0c;成为王经理的首要任务。 正当王经理一筹莫展时&#xff0c;一次偶然的机会&a…

【软著写作】软著写作过程记录

文章目录 整体流程图&#xff1a;写在前面&#xff1a;一、准备材料1 准备材料2 申请盖章 二、软件登记1 注册账号2 填报软著 整体流程图&#xff1a; 写在前面&#xff1a; 这两天填报了一篇软著&#xff0c;正好将以前第一次填报时&#xff0c;踩的一些坑和过程记录了一下&am…

ngxin 正向代理配置 访问互联网

如果本地无法访问互联网&#xff0c;则通过nginx的正向代理&#xff0c;可以将本地的所有流量进行代理&#xff0c;从而达到访问互联网的目的&#xff0c;话不多说&#xff0c;上代码&#xff1a; 1、下载nginx并安装相关依赖 yum -y install gcc yum install -y gcc-c yum …

Nacos报错Connection refused (Connection refused)(最后原因醉了,非常醉)

目录 一、问题产生二、排查思路1.nacos拒绝连接&#xff0c;排查思路&#xff1a;2.Nacos启动成功但是拒绝连接的几种原因&#xff1a; 三、实操过程&#xff08;着急解决问题直接看这个&#xff09;1.启动Nacos2.查看Nacos启动日志3.根据日志处理问题4.修改Nacos5.重启Nacos 一…

安全防御——一、防火墙的基本概念

安全防御 一、了解防火墙1、防火墙的区域及发展史2、下一代防火墙 二、win10添加环回网卡ENSP连接真机1、导入设备包并登录2、创建环回网卡并配置IP地址3、解决云未显示环回网卡的问题4、绑定网卡并登录Web界面 一、了解防火墙 路由交换终归结底是连通性设备 五元组&#xff0…

会声会影2024出来了吗?会声会影2024这款视频剪辑软件怎么样?

众所周知&#xff0c;每每有新兴行业逐渐崛起壮大的时候&#xff0c;随机而来的就是这个行业创造出的衍生行业&#xff0c;比如说现在的短视频平台或者是视频剪辑行业&#xff0c;都是很明显例子&#xff0c;今天我们就针对剪辑软件来和大家聊一聊&#xff0c;会声会影2024这款…

低代码开发,一场深度的IT效率革命

目录 一、前言 二、低代码迅速流行的理由 三、稳定性和生产率的最佳实践 四、程序员用低代码开发应用有哪些益处&#xff1f; 1、提升开发价值 2、利于团队升级 五、总结 一、前言 尽管IT技术支撑了全球的信息化浪潮&#xff0c;然而困扰行业已久的软件开发效率并未像摩尔定律那…

双生幻想礼包码,双生幻想兑换码在哪里输入?

兑换码是玩家享受珍贵福利和钻石资源的捷径&#xff0c;即刻获得&#xff01;如果你尚未了解&#xff0c;千万不要错过我们的最新兑换码&#xff01;不容错过的真实有效双生幻想礼包兑换码大全&#xff0c;小编已亲测&#xff0c;真实可行。双生幻想是一款风靡的二次元角色战斗…