YOLOv5网络结构图

网络结构图(简易版和详细版)

网络框架介绍

前言:

YOLOv5是一种基于轻量级卷积神经网络(CNN)的目标检测算法,整体可以分为三个部分,

backbone,neck,head。

如上图所示,我们需要先理解三个模块:Conv,C3,SPPF,以便理解网络结构图。

关于这三个模块的解释放在文章末尾。

其他我觉得有用的前置知识也会放在文章末尾。

1.backbone

作用:提取特征

backbone(主干网络)通过一系列的卷积层和池化层对输入图像进行处理,逐渐降低特征图的尺寸同时增加通道数。这样做的目的是保留和提取图像中重要的特征。

经过backbone提取的特征图会传递给后续的特征金字塔网络(neck)和检测头(detection head)进行处理。

2.neck

neck(颈部)是backbone(主干网络)和detect(检测头)之间的网络模块。

作用:

在主干网络提取的特征基础上,进一步进行特征融合上采样操作(Upsample),以提供更高级的语义信息适应不同尺度图片的能力

更进一步讲,

在卷积神经网络中,先从浅层提取到图形特征,它们是简单的图形,语义性不够强;

再从深层提取到语义特征,语义性很强了,但却没了简单的图形。

而通过neck部分,就能实现浅层图形特征和深层语义特征的融合,(Concat就是在做这件事情)

归根到底还是为了目标检测能够更精细、准确!

以上这段话借用自记录yolov5目标检测算法学习(模型的框架学习)23/10/10_晴友读钟的博客-CSDN博客

3.head

作用:

对提取到的特征进行进一步处理,并生成最终的输出结果。

细讲一下head中作用的其中一个方面,

特征融合与转换:head可以将不同尺度的特征进行融合和转换,这有助于捕捉更高层的语义信息上下文关系。

我们结合网络结构图,可以看到,head接收了来自深度为第17,20,23层的特征图,

特征图分辨率越来越低,感受野越来越大,虽然可以学习到更高级的语义信息,但也会丢失细节

为了能检测到不同大小的物体(大物体在大尺度的特征图上进行检测,小物体在小尺度的特征图上进行检测),于是设计了detect模块来实现。

知识点补充

1.什么是CNN?

CNN通过模拟人类视觉系统的工作原理,通过层层堆叠的卷积层、池化层和全连接层等组件来进行图像数据的特征提取和分类。

2.什么是Conv?

Conv(卷积层)通常是由卷积(Convolution)、批标准化(Batch Normalization)和激活函数(Activation)这三个模块组成的

特点:

每经过一个Conv,原特征图大小减一半。

作用:

特征提取和特征融合

Conv(卷积)层的通道有什么用?

增加卷积层的通道数可以提高网络的表达能力,使其更好地适应复杂的任务。

例如:在图像分类过程中,最初的卷积层可以捕捉到低级特征,如边缘和颜色,

然而随着网络模型的深度加深,输出特征图中的模式和结构也越来越复杂。

如果网络太浅或通道数不够,则可能无法捕捉到复杂的特征,从而影响分类性能

总结:增加通道数可以使网络更加灵活和强大

3.什么是C3?

C3模块图如上。C3之所以叫C3,是因为在这个模块中有三个卷积层(Conv)

解释:

可以看到左侧卷积提取了一半的feature(特征),什么也不干,

右侧卷积也提取了一半的feature,使其经过BottleNeck(有两种)处理后,

两个部分进行Concat(拼接),然后再经过一次卷积层

作用:

从不同维度去提取特征并融合

4.什么是SPPF?

了解SPPF前,我们先要知道SPP(Spatial Pyramid Pooling),中文为空间金字塔池化

而SPPF(Spatial Pyramid Pooling Fusion)则是SPP的改进版。

什么是SPP?

在传统的CNN网络中,全连接层要求输入的特征图大小必须固定,但是图像中的物体大小和数量却是不确定的。因此,在使用全连接层之前,需要将所有的特征图resize到一个固定大小,这就会丢失掉部分信息(缺点)。

而SPP层可以通过金字塔池化的方式,在不同的尺度下进行池化操作,并将各个尺度的池化结果进行concat(拼接)作为输出,这样就可以在不改变特征图大小的情况下,得到一个固定长度的向量表示,从而解决了输入大小的问题。

作用:

特征提取和特征融合

优点:

SPP可以处理任意大小的输入特征图,因此可以避免特征图大小变化对模型的影响。

SPP是如何运作的?

1.输入图像:SPP层可以接受任意大小的输入图像。

2.特征提取网络:通常使用预训练好的卷积神经网络(CNN)来提取图像特征。

3.SPP:对于不同大小的输入图像,SPP层会自动根据其大小分别生成多个不同尺度的池化区域,在这里是13*13,9*9,5*5。然后在每个池化区域内执行最大池化操作,得到固定大小的特征向量。

4.Concat:将多个尺度的特征向量(即上一步的池化结果)进行拼接

SPPF在SPP上有何改进?

与SPP相比,SPPF的池化操作由并联变为串联,且池化区域大小不变。后面两次池化是在上一次的基础上进行的。提高了效率,原理此处不展开讲。

5.什么是语义信息?

通俗地讲,语义信息是指数据中所隐含的意义和信息。

在人类语言中,一句话由多个字词组成,每一个字词都有语义信息,我们通过分析每一个词的语义信息,就能推导出整句话的含义。

类似的,在计算机视觉中,一张图片由若干个像素组成,每一个像素都有其自身的颜色和位置信息,通过分析每一个像素的颜色和位置信息,就能推导出整张图片的含义

6.什么是图形特征?

关于这个概念,简单理解即可。

图形特征,就是一张图像所含有的特征

例如:形状,纹理,颜色,边缘等,这些都是图像的特征,统称图形特征

7.什么是上采样操作?

结构图中的Upsample就是常见的上采样操作。

作用:

上采样操作会将较低分辨率的特征图进行上采样,以恢复到与较高分辨率特征图相同的尺寸

说人话就是,把较小的输入图像恢复出较大的图像。

yolov5中的Upsample操作是为了让不同尺寸的图像拼接,特征融合

8.特征图尺度,细节信息,语义信息之间有什么联系?

较浅的特征图(即较大尺度,分辨率较高的特征图)可以捕捉到更多的细节信息,例如物体的纹理等。

较深的特征图(即较小尺度,分辨率较低的特征图)则具有更高级的语义信息,例如物体的类别,姿态等。

因此,需要利用不同尺度的特征图,以保留丰富的语义信息和细节信息。

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

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

相关文章

C++——多态

多态是有继承关系的类对象调用相同的函数,会有不同的结果。例如,普通人买高铁票不打折,学生打75折,儿童免费,这种情况就适合使用多态 虚函数 被virtual修饰的类成员函数 class A{ public:virtual void fun() {} }; …

【深度学习】深度学习实验四——循环神经网络(RNN)、dataloader、长短期记忆网络(LSTM)、门控循环单元(GRU)、超参数对比

一、实验内容 实验内容包含要进行什么实验,实验的目的是什么,实验用到的算法及其原理的简单介绍。 1.1 循环神经网络 (1)理解序列数据处理方法,补全面向对象编程中的缺失代码,并使用torch自带数据工具将数据封装为dataloader。 (2)分别采用手动方式以及调用接口方式…

Redis--List、Set、Zset、Hash、Bitmaps、HyperLogLog、Geospatial

List LPUSH key value1 [value2] 将一个或多个值插入到列表头部 127.0.0.1:6379> LPUSH myls1 1 (integer) 1 127.0.0.1:6379> LPUSH myls1 2 (integer) 2 127.0.0.1:6379> LRANGE myls1 0 -1 1) "2" 2) "1" LPOP key 移出并获取列表的第一个元素…

【排序算法】详解直接插入排序和希尔排序原理及其性能分析

文章目录 插入排序算法原理细节分析代码实现复杂度分析:稳定性分析:与冒泡排序的对比 希尔排序算法原理细节分析代码实现复杂度分析稳定性分析 总结对比 插入排序 算法原理 插入排序又或者说直接插入排序,是一种和冒泡排序类似的并且比较简单的排序方法, 基本思想…

3、Linux下安装

以下操作仅限于rh系列:支持rpm/yum安装方式,不支持deb/apt安装方式。 以下操作仅限于rh系列:支持rpm/yum安装方式,不支持 deb/apt安装方式。 1、在线下载安装包: wget https://downloads.mysql.com/archives/get/p/23/file/ m…

打造个人专属形象!工业级人物写真生成工具FaceChain开源

简介 FaceChain 是一个可以用来打造个人数字形象的深度学习模型工具。用户仅需要提供最低一张照片即可获得独属于自己的个人形象数字替身。FaceChain 支持在 gradio 的界面中使用模型训练和推理能力,也支持资深开发者使用 python 脚本进行训练推理。 Github链接&…

长短期记忆网络(LSTM)

一. 什么是LSTM Long Short Term Memory(LSTM,长短期记忆)是一种特殊的递归神经网络。这种网络与一般的前馈神经网络不同,LSTM可以利用时间序列对输入进行分析。 简而言之,当使用前馈神经网络时,神经网络会…

Linux 中如何安全地抹去磁盘数据?

哈喽大家好,我是咸鱼 离过职的小伙伴都知道,离职的时候需要上交公司电脑,但是电脑里面有许多我们的个人信息(聊天记录、浏览记录等等) 所以我们就需要先把这些信息都删除,确保无法恢复之后才上交 即有些…

MongoDB 索引和常用命令

一、基本常用命令 1.1 案例需求 存放文章评论的数据存放到 MongoDB 中,数据结构参考如下,其中数据库为 articledb, 专栏文章评论 comment 字段名称 字段含义 字段类型 备注 _id ID ObjectId或String Mongo的主键的字段 articlei…

海量数据插入的各种方案试验

海量数据插入的各种方案试验,大家来分析下 前提 源表:一千万条以上记录,54个字段.exp导出文件2.8G以上。 目的表:无索引,空表 试验:A.本地插入。B.跨库插入 初始化 SQL> select count…

怎么团队合作,协作开发

一、代码托管平台 我是在大一下的一个竞赛中接触到的代码托管平台 那个时候我也算是什么都不会的,不过不得不说这个确实比较重要,对我造成了一些冲击 在我看来,代码托管平台的作用就是在一个中转站(仓库)上存储我们写…

自己在家给电脑重装系统Win10教程

自己在家怎么给电脑重装系统Win10?Win10电脑系统如果操作时间特别长了,就可能出现卡顿、蓝屏等系统问题,这时候用户就想给电脑重装系统,却不知道重装具体的操作步骤,下面小编给大家详细介绍自己在家给电脑重装Win10系统…

IRC/ML:金融智能风控—信贷风控场景简介、两大场景(贷款场景+信用卡场景)、信用卡评分模型设计、反欺诈检测技术的简介、案例应用之详细攻略

IRC/ML:金融智能风控—信贷风控场景简介、两大场景(贷款场景+信用卡场景)、信用卡评分模型设计、反欺诈检测技术的简介、案例应用之详细攻略 目录 信贷风控简介 信贷风控两大场景

Java程序中调用Python脚本(兼容Windows与Linux)

一,说明 想实现如下功能,项目后端架构是Spring Boot,某个功能需要调用Python脚本来实现,调用Python脚本的功能要兼容Windows和Linux,即可以运行在Windows和Linux两种平台上。 二,Java代码 // 定义一个线…

k8s-13 存储之secret

Secret 对象类型用来保存敏感信息,例如密码、OAuth 令牌和 ssh key。 敏感信息放在 secret 中比放在 Pod 的定义或者容器镜像中来说更加安全和灵活 。 Pod 可以用两种方式使用 secret:作为 volume 中的文件被挂载到 pod 中的一个或者多个容器里 当 kubelet 为 pod 拉…

奖学金答辩注意事项

奖学金答辩注意事项 1.PPT制作 注意字数不要太多,一页PPT里面不要堆满了文字。 评审老师主要是来听你演讲和答辩的,而不是来看你的文字叙述的。就算文字有些多,也要尽量以表格的形式呈现,不然看上去就会非常乱。多用图和表&…

github 中关于Pyqt 的module view 操作练习

代码摘自,Pyside6 中的示例代码部分 # -*- coding: utf-8 -*- import sys from PySide6.QtWidgets import * from PySide6.QtGui import * from PySide6.QtCore import * from PySide6.QtSql import QSqlDatabase, QSqlQueryModel, QSqlQuery import os os.chdir(os…

专业144,总分440+,上岸西北工业大学827西工大信号与系统考研经验分享

我的初试备考从4月末,持续到初试前,这中间没有中断。 总的时间分配上,是数学>专业课>英语>政治,虽然大家可支配时间和基础千差万别,但是这么分配是没错的。 数学 时间安排:3月-7月:…

人声分离软件:iZotope RX 10 (WinMac) 中文汉化版

iZotope RX 10是一款在音频修复和增强领域中非常出色的软件。它提供了一套全面的音频问题解决方案,为后期制作专业人员、音频工程师和视频编辑者解决各种棘手问题。 iZotope RX 10的主要特点包括: 声音修复功能:可以去除不良噪音、杂音、吱吱…

使用Python,Xpath获取所有的漫画章节路径,并下载漫画图片生成单个/多个pdf,并进行pdf合并

使用Python,Xpath获取所有的漫画章节路径,并下载漫画图片生成单个/多个pdf,并进行pdf合并 1 效果图2 原理2.1 pa_mh.py获取喜欢的漫画及所有章节2.2 pyImg2pdf.py根据图片生成单个/多个pdf并增加章节提示 3 源码3.1 pa_mh.py获取喜欢的漫画及…