首页 > 其他分享 >YOLOv5-小知识记录(三)

YOLOv5-小知识记录(三)

时间:2024-03-29 11:58:56浏览次数:18  
标签:10 YOLOv5 记录 特征 知识 feature 尺寸 模块 256

0. 写在前面

        本篇介绍SPP模块、FPN模块模块,主要也是对YOLOv5的内容的补充:

Yolo系列算法-理论部分-YOLOv4-CSDN博客

Yolo系列算法-理论部分-YOLOv5-CSDN博客

        上一篇:

        YOLOv5-小知识记录(二)-CSDN博客

1. SPP模块

        Spatial Pyramid Pooling,设计该模块的目的是,确保输入全连接层之间的特征向量feature vector是固定尺寸。feature vector 是feature maps的展开,常规的做法是对输入的数据进行剪裁和变形操作,这两种操作可能引发裁剪区域没包含物体的全部或者目标无用,是真严重等问题;而SPP则是将不同feature maps展开为固定尺寸的feature vector。

        工作原理:对每个特征图,使用三种不同尺寸的池化核进行最大池化,分别得到预设的特征尺寸,最后将所有特征图展开为特征向量并融合。

        以经过了5次卷积模块运算后的Tensor[1,256,10,10],运用SPP原理倒推最大池化层信息

        步骤:

  1.  明确全连接层的输入参数尺寸:107521 = 21*256 = 16*256+4*256+1*256;
  2.  明确三种池化后的特征图尺寸,4*4,2*2,1*1;
  3.  求出三种的kernel、stride和padding:
    1. 4*4对应的kernel = 10/4 = 3;stride = 10/3 = 3;padding = [(3*4-10+1)/2] = 1;
    2. 2*2对应的kernel = 10/2 = 5 ; stride =  10/2 = 5;padding = [(5*2 -10 +1)/2] = 0;
    3. 1*1对应的kernel = 10/1 = 10; stride = 10/1 = 10;padding = [(10*1 - 10 +1)/2] =0。

        优点:可以忽略输入尺寸并产生固定长度的输出;利用不同池化核尺寸提取特征的方式可以获得丰富的特征信息,有利于提高网络的识别精度。

2. FPN模块

        Feature pyramid network,在目标检测中加入特征金字塔,提高目标检测的准确率,尤其是在小物体的检测上。

        特征金字塔的高(深)层特征包含丰富的语义信息(利于分类),但分辨率低,很难准确地保存物体的位置信息;低(浅)层特征虽然语义信息较少,但分辨率高,包含准确地物体位置信息(有利于检测和分割)。

        FPN将低层特征和高层特征融合起来,得到一个识别和定位都准确地目标检测结构。

        主要包括:Bottom-up、Top-down和Lateral connection。

        (1)Bottom-up:就是将图片输入到backbone中提取特征的过程

        (2)Top-down:就是将高层得到的feature map进行上采样然后往下传递,将深层包含语义信息传到低层特征上,使低层特征也能包含丰富语义信息;

        (3)Lateral connection:是一个特征融合过程,P1是C1经过1*1卷积后的特征与P2上采样后的特征进行融合(add方式,直接相加,不增加维度)

 

标签:10,YOLOv5,记录,特征,知识,feature,尺寸,模块,256
From: https://blog.csdn.net/Skywalker_air/article/details/137133551

相关文章

  • Avalonia 运行在Ubuntu20.04上,记录发布到运行的过程,已解决默认字体问题
    目录1.安装.NET8.0环境2.发布Avalonia程序3.默认字体问题解决Demo程序下载(开箱即用):https://download.csdn.net/download/rotion135/890489371.安装.NET8.0环境下载微软dotnet安装脚本:sudowgethttps://dot.net/v1/dotnet-install.sh-Odotnet-install.sh运行......
  • CF1874F 做题记录
    link太绝了。首先容易想到要用容斥,具体的,我们钦定区间集合\(S=\{[l,r]|p_{l...r}\text{是}l...r\text{的排列}\}\),贡献为\((-1)^{|S|}\)乘上对应方案数。然后仔细观察,不难发现对于选出来的区间\([l_1,r_1],[l_2,r_2]\),若满足\(l_1<l_2<r_1<r_2\),则\([l_1,l_2-1],[l_2,r......
  • H5项目设置接口报错预警警报,需记录什么信息能有效排查报错问题
    在H5项目中,如果要有效地排查接口报错问题,记录以下信息可能会有所帮助:错误信息:记录报错信息的具体内容,包括错误代码、错误描述等。这将是你开始排查问题的关键信息。接口地址:记录发生错误的接口地址,包括请求的URL、接口路径等。这有助于定位问题所在的具体接口。请求......
  • 虚拟线程知识分享
    1相关概念-操作系统线程(operatingsystemthreads):即硬件设备配备的线程,一般和服务器硬件的核心数量,例如interCPU的大核拥有两个操作系统线程,小核拥有一个操作系统线程。云服务器的线程数一般和服务器配置上的核心数量相同。-平台线程(PaltformThread):java.lang.Th......
  • 网络工程师之路由交换组合配置知识点相关技术方法解析
    网络工程师之路由交换组合配置相关技术方法解析交换机部分配置参数vlanif的配置环回的配置vlanbatch配置允许通过trunk口ospf的配置disospfpeerbdisipconospf带宽:默认100bandwidth-reference10000{所有运行ospf的都改}100/10010000/100备份配置:创......
  • 跨时钟域学习记录(二)——XPM_CDC
      本文以Xilinx提供的xpm_cdc代码为例,整理处理跨时钟域数据传输的常见方法。宏定义  Xilinx定义了多个宏定义代替描述触发器行为的always块,列举如下宏名称含义XPM_XSRREG带同步复位/置位的同步寄存器XPM_XSRREGEN带同步复位/置位和使能的寄存器XPM_XARREG带异步复位/......
  • 面试题知识点笔记-MySQL开发
    目录可以使用MySQL直接存储文件(ppt,exel,图像等)吗?什么时候存,什么时候不存?Emoji乱码怎么办?存储的时候有遇到过什么问题吗?如何存储ip地址?长文本如何存储?大段文本如何设计表结构?大段文本查找时如何建立索引?有没有在开发中使用过TEXT,BLOB数据类型日期,时间如何存......
  • 面试题知识点笔记-MySQL日志
    目录MysqI会产生几种日志?binlog作用是什么?redolog作用是什么?undolog作用是什么?Mysql日志是否实时写入磁盘?binlog刷盘机制是如何实现的?redolog刷盘机制是如何实现的?undolog刷盘机制是如何实现的?MySQL的binlog有有几种录入格式?分别有什么区别?Mysq!集群同......
  • [SpringMVC]知识点
    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)https://www.cnblogs.com/cnb-yuchen/p/18032069出自【进步*于辰的博客】目录1、什么是SpringMVC?1.1概述1.2示例6、restful风格6.1概述6.2使用细节7、自定义异常处理器8、自定义类型转换器最后1、什么是Spring......
  • SQLAlchemy 基础知识 - autoflush 和 autocommit(转)
    原文:https://zhuanlan.zhihu.com/p/48994990作者:Cosven来源:知乎这篇文章致力于解决以下疑问(本文以MySQL为例):SQLAlchemy的session是指什么?session的autoflush参数是干什么的,我到底要不要开启它?session的autocommit参数又是什么,它和autoflush的区别是什么?SQLAl......