【目标检测】YOLOv5 网络结构,bottleneckCSP 与 C3 模块图解

news/2024/7/27 11:49:58/文章来源:https://blog.csdn.net/Jiangnan_Cai/article/details/137099734

文章目录

  • Focus 模块
  • Csp 模块
    • BottleneckCsp
    • C3
    • CSP1_X 与 CSP_2X
    • YOLOv4 的 CSP_X
  • SSP 与 SSPF

YOLOv5 作为 YOLO 家族的第五个版本,本身也演进了几个子版本,现在网上的资料都没有标注具体是哪个子版本的,导致不同文章之间各种混乱,像是盲人摸象。

其实官方的 release 里对各个版本的变动其实都讲得非常清楚了。

下面简单说一下各版本用到的模块:

V1.0版本

  • backbone主要模块:Focus、Conv、BottleneckCSP、SPP;
  • head主要模块:BottleneckCSP、Conv、nn.Upsample、Concat、nn.Conv2d。

V2.0版本在V1.0版本基础上删去nn.Conv2d,并且Detect指定为17, 20, 23层输出。
V4.0版本用C3代替了BottleneckCSP,而其他的结构不变。CBL 也换成了 CBS,使用 SiLU 作为激活函数
V6.0版本将第0层的Focus替换成Conv,将SPP替换成SPPF;

Focus 模块

Focus 模块其实和 YOLOv2 PassThrough 层是一样的,这个在最终版本的 YOLOV5 v6.x 版本中被抛弃了。

Csp 模块

看别的文章,大家一定都会看到过 CSP1_x, CSP2_x,bottleneckCSP,C3 这些模块,有时候也会疑惑 YOLOv5 究竟用了多少中 CSP 模块。

如同上面说的那样,YOLOv5 一共使用过两种 Csp 模块

  • v4.0 版本之前的 BottleneckCSP,用的 LeakyReLU 作为激活函数
  • v4.0 版本之后的 C3,用的 SiLU 作为激活函数

BottleneckCsp

这里我们两种结构都介绍一下,首先是已经不再用的 BottleneckCSP 模块:

在这里插入图片描述
其中的 CBL 模块就是 Conv2D + BN + LeakyReLU 的组合,这里的 bottleneck 可以根据传入的参数决定是否带有 shortcut。如果是带有 shortcut 的话,就是正统的 residual 模块了,如果没有 shortcut,就是单纯的 2 个 CBL 串联。

C3

在这里插入图片描述
C3 模块因为内部有 3 个卷积模块,所以被命名为 C3 模块,去掉了 BottleneckCSP 中一些繁杂的 Conv2d 操作,并且将激活函数从 LeakyReLU 换成了 SiLU。我们的 CBL 模块也因此变成了 CBS 模块。和 BottleneckCSP 一样,内部的 bottleneck 也分为带 shortcut 和不带 shortcut 两种。

CSP1_X 与 CSP_2X

其实 CSP1_X 是指带 shortcut 的 CSP 模块的统称,也就是内部 bottleneck 带 shortcut 的 BottleneckCSP 和 C3 都可以叫 CSP1_X。

而不带 shortcut 则归为 CSP2_X。

一般来说 CSP1_X 用在 backbone 部分,而 CSP2_X 则用在 neck 部分。

最后的 X 的含义是 bottleneck 的数量。

YOLOv4 的 CSP_X

因为是从 YOLOv4 才开始使用的 CSP 模块,所以在这里顺便放个 YOLOv4 的 CSP_X 模块:

在这里插入图片描述

SSP 与 SSPF

在这里插入图片描述
因为是再 v6.0 的版本才换的 SPPF,所以按照道理来说 v4.0 之前的版本中 SPP 的激活函数应该都是 LeakyReLU,但是这里为了方便,都用 SiLU 作为激活函数了。

参考文章:

  • yolov5从V1.0到V6.2网络变化梳理
  • YOLOv5中的CSP结构

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

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

相关文章

Java学习之类和对象、内存底层

目录 表格结构和类结构 表格的动作和类的方法 与面向过程的区别 具体实现 对象和类的详解 类的定义 属性(field 成员变量) 方法 示例--编写简单的学生类 简单内存分析(理解面向对象) 构造方法(构造器 constructor) 声明格式: 四…

前端缓存揭秘:5年前端技术的必备知识点

背景 本篇文章将详细讲述何为前端缓存,这也是前端工程师必备的知识点。 首先,我们不能少了干这事的目的,前端缓存有什么用? 缓存作用:加快资源获取速度,提高用户体验感,缓解服务端压力 我们带…

iOS移动应用实时查看运行日志的最佳实践

目录 一、设备连接 二、使用克魔助手查看日志 三、过滤我们自己App的日志 📝 摘要: 本文介绍了如何在iOS iPhone设备上实时查看输出在console控制台的日志。通过克魔助手工具,我们可以连接手机并方便地筛选我们自己App的日志。 &#x1f4…

pytorch yolov5+Deepsort实现目标检测和跟踪+单目测距

最近一直在整理单目测距的内容,想着检测单目测距都写完了,顺手也写个检测跟踪单目测距,算是总结下这部分内容吧,如果有错误,还请不吝赐教!! 参考文献: YOLOv5DeepSort实现目标跟踪 pytorch yolo…

微信过期图片恢复,这样做真的超简单(4个方法)

如今,微信已经成为我们日常生活中不可或缺的一部分。我们通过微信与朋友分享生活的点滴,其中不乏许多珍贵的图片。然而,随着时间的推移,一些图片可能会因为过期而被自动清理,这让我们感到遗憾和失落。幸运的是&#xf…

华为流量整形配置

组网需求 如图1所示,企业网内部LAN侧的语音、视频和数据业务通过Switch连接到RouterA的Eth2/0/0上,并通过RouterA的GE3/0/0连接到WAN侧网络。 不同业务的报文在LAN侧使用802.1p优先级进行标识,在RouterA上根据报文的802.1p优先级入队列&…

【软件安装】(十五)Ubuntu22.04+Anaconda安装labelimg

一个愿意伫立在巨人肩膀上的农民...... LabelImg是一款开源的图片标注工具,使用Python编写,基于PyQt5框架。它提供了一个直观的图形用户界面,方便用户对图片进行标注,并生成标注结果。LabelImg支持多种常见的标注格式,…

el-select的错误提示不生效、el-select验证失灵、el-select的blur规则失灵

发现问题 在使用el-select进行表单验证的时候&#xff0c;发现点击下拉列表没选的情况下&#xff0c;他不会提示没有选择选项的信息&#xff0c;我设置了rule如下 <!--el-select--><el-form-item label"等级" prop"level"><el-select v-m…

Elementor Pro最新学习版:强大的WordPress页面构建器插件

产品用途 Elementor Pro的核心功能包括拖放编辑器、前端编辑器、实时预览、允许导入和导出模板、支持35预建模板、多种营销工具和插件支持、多种排版选项、能够放置内联元素、Font Awesome图标支持、允许构建移动响应页面、登陆页面构建器、弹出窗口生成器、对评级系统的架构标…

LINUX笔记温习

目录 DAY1 DAY2 day3&#xff1a; day4 day5 day6 day7 day8 day9 day10 day11 day12 day13 day14 day15 20day DAY1 1、多层级文件夹创建要带-p&#xff1b; 2、创建多文件&#xff0c;要先到该目录下才能创建(第一个目录必须存在才能有效建立)&#xff1b; D…

建立统一的机台数据传输管控通道,发挥数据的价值

机台数据传输通常指的是在工业自动化和制造过程中&#xff0c;将机器设备&#xff08;机台&#xff09;产生的数据通过网络或其他通信手段传输到监控系统、数据库或远程控制中心的过程。这一过程对于实现智能制造、提高生产效率和质量控制至关重要。比如传统制造业&#xff0c;…

探讨在大数据体系中API的通信机制与工作原理

** 引言 关联阅读博客文章&#xff1a;深入解析大数据体系中的ETL工作原理及常见组件 关联阅读博客文章&#xff1a;深入理解HDFS工作原理&#xff1a;大数据存储和容错性机制解析 ** 在当今数字化时代&#xff0c;数据已经成为企业发展和决策的核心。随着数据规模的不断增长…

【4月2日更新】低至50元/年 京东云 阿里云 腾讯云服务器价格对比表 幻兽帕鲁 雾锁王国 我的世界 饥荒 通用

更新日期&#xff1a;4月2日 本文纯原创&#xff0c;侵权必究 【云服务器推荐】价格对比&#xff01;阿里云 京东云 腾讯云 选购指南视频截图 《最新对比表》已更新在文章头部—腾讯云文档&#xff0c;文章具有时效性&#xff0c;请以腾讯文档为准&#xff01; 【腾讯文档实…

谷粒商城——通过接口幂等性防止重复提交订单

如果用户向后端服务提交多次相同订单的提交服务&#xff0c;那么后端应该只生成一条订单记录。 有一些操作天然是幂等的&#xff0c;如查询操作和删除操作等。 幂等性实现 1.token机制&#xff08;仅这个方法适用于订单的重复提交&#xff09; 后端先生成1个令牌将其记录在R…

Docker Compose环境的安装通过docker compose完成python程序的运行

目录 Docker Compose环境的安装 通过docker compose完成python程序的运行 Docker Compose环境的安装 ##### 方法一&#xff1a;直接下载编译好的二进制文件 注意&#xff1a;只有linux平台上在安装docker时没有安装docker-compose&#xff0c;windows、macos安装docker时自…

Verilog语法之always语句学习

always语法是Verilog_HDL中最常用的一种语法。 always过程语句和语句块组成的&#xff0c;语法格式如下所示。 always(敏感信号1 or 敏感信号2.....) always实现组合逻辑和时序逻辑。用always实现组合逻辑要将所有的敏感信号加入敏感列表中&#xff1b;用always实现时序逻辑时…

Kafka入门到实战-第二弹

Kafka入门到实战 Kafka快速开始官网地址Kafka概述Kafka术语Kafka初体验更新计划 Kafka快速开始 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://kafka.apache.org/Kafka概述 Apache Kafka 是一个开源的分布式事件流…

香港服务器怎么看是CN2 GT线路还是CN2 GIA线路?

不知道有没有小伙伴们注意过&#xff0c;很多人在租用香港服务器的时候都习惯性选择 CN2 线路&#xff1f;仿佛香港服务器是否采用 CN2 线路成为个人企业选择香港服务器的一个标准。其实&#xff0c;香港服务器有CN2、优化直连(163)、BGP多线(包含了国际和国内线路)&#xff0c…

基于java的智能停车场管理系统

开发语言&#xff1a;Java 框架&#xff1a;ssm 技术&#xff1a;JSP JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclip…

电脑端手机配置信息检测的实用性与局限性分析

摘要 本文介绍了如何使用克魔助手工具在电脑上检测手机的配置信息。通过该工具&#xff0c;用户可以全面了解手机的硬件和操作系统信息&#xff0c;包括电池、CPU、内存、基带信息和销售信息等。 引言 在日常工作中&#xff0c;了解手机的配置信息对于开发和测试人员非常重要…