深入浅出 Yolo 系列之 Yolov7 基础网络结构详解

news/2024/11/17 1:42:15/

从 2015 年的 YOLOV1,2016 年 YOLOV22018 年的 YOLOV3,到 2020 年的 YOLOV4YOLOV5, 以及最近出现的 YOLOV76YOLOV7 可以说 YOLO 系列见证了深度学习时代目标检测的演化。对于 YOLO 的基础知识以及 YOLOV1 到 YOLOV5 可以去看大白的 YOLO 系列,本文主要对 YOLOV7 的网络结构进行一个梳理,便于大家直观的感受。

1. YOLOV7 整体结构

在这里插入图片描述

我们先整体来看下 YOLOV7,首先对输入的图片 resize 为 640x640 大小,输入到 backbone 网络中,然后经 head 层网络输出三层不同 size 大小的 feature map,经过 Rep 和 conv输出预测结果,这里以 coco 为例子,输出为 80 个类别,然后每个输出(x ,y, w, h, o) 即坐标位置和前后背景,3 是指的 anchor 数量,因此每一层的输出为 (80+5)x3 = 255再乘上 feature map 的大小就是最终的输出了。

2. backbone

YOLOV7 的 backbone 如下图所示
在这里插入图片描述

总共有 50 层, 我在上图用黑色数字把关键层数标示出来了。
首先是经过 4 层卷积层,如下图,CBS 主要是 Conv + BN + SiLU 构成,我在图中用不同的颜色表示不同的 size 和 stride, 如 (3, 2) 表示卷积核大小为 3 ,步长为 2。 在 config 中的配置如图。
在这里插入图片描述
在这里插入图片描述

经过 4个 CBS 后,特征图变为 160 * 160 * 128 大小。随后会经过论文中提出的 ELAN 模块,ELAN 由多个 CBS 构成,其输入输出特征大小保持不变,通道数在开始的两个 CBS 会有变化, 后面的几个输入通道都是和输出通道保持一致的,经过最后一个 CBS 输出为需要的通道。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
MP 层 主要是分为 Maxpool 和 CBS , 其中 MP1 和 MP2 主要是通道数的比变化。
在这里插入图片描述

backbone的基本组件就介绍完了,我们整体来看下 backbone,经过 4 个 CBS 后,接入例如一个 ELAN ,然后后面就是三个 MP + ELAN 的输出,对应的就是 C3/C4/C5 的输出,大小分别为 80 * 80 * 512 , 40 * 40 * 1024, 20 * 20 * 1024。 每一个 MP 由 5 层, ELAN 有 8 层, 所以整个 backbone 的层数为 4 + 8 + 13 * 3 = 51 层, 从 0 开始的话,最后一层就是第 50 层。

3. head

在这里插入图片描述

YOLOV7 head 其实就是一个 pafpn 的结构,和之前的YOLOV4,YOLOV5 一样。首先,对于 backbone 最后输出的 32 倍降采样特征图 C5,然后经过 SPPCSP,通道数从1024变为512。先按照 top down 和 C4、C3融合,得到 P3、P4 和 P5;再按 bottom-up 去和 P4、P5 做融合。
在这里插入图片描述
在这里插入图片描述
这里基本和 YOLOV5 是一样的,区别在于将 YOLOV5 中的 CSP 模块换成了 ELAN-H 模块, 同时下采样变为了 MP2 层。 ELAN-H 模块是我自己命名的,它和 backbone 中的 ELAN 稍微有点区别就是 cat 的数量不同。
在这里插入图片描述
至于 E-ELAN 论文中说到是在 YOLOV7-E6eE中用到, 但是我在看代码的时候,有点没太明白是怎么做 shuffle 的,这里等我弄明白了再补上来。
在这里插入图片描述

对于 pafpn 输出的 P3、P4 和 P5 , 经过 RepConv 调整通道数,最后使用 1x1 卷积去预测 objectness、class 和 bbox 三部分。
RepConv 在训练和推理是有一定的区别。训练时有三个分支的相加输出,部署时会将分支的参数重参数化到主分支上。
在这里插入图片描述

end

至此,我们将 YOLOV7 的基本结构介绍完了,至于 YOLOv7 的其他知识,如Aux Head 等以及 YOLOv7 的其他网络结构,我们后续再讲。 梳理可能有未理解正确的地方,欢迎交流。


http://www.ppmy.cn/news/328071.html

相关文章

YOLOV7详细解读(一)网络架构解读

YOLOV7详细解读 网络架构解读 YOLOV7详细解读前言一、YOLOV7是什么?二、网络架构1、架构图总览2、CBS模块解读3、CBM模块解读4、REP模块解读5、MP模块解读6、ELAN模块解读7、ELAN-W模块解读8、UPSample模块解读9、SPPCSPC模块解读 前言 继美团发布YOLOV6之后&#…

typora配置

图像 偏好设置 图床 picgosmms图床 YAML typora-copy-images-to: upload 在将文件复制到本地文件夹后,再上传

男人为什么总想搞自己的初恋-带走了我一整个青春的女孩

机器视觉海康Visionmaster-字符缺失缺陷检测 初恋,就是人生中爱情里面的第一个喜欢的人,那些曾经刻骨铭心地相爱、相知、难以忘怀地结束、回想起来还心存不甘的那段爱恋里的男女主角。 对于大多数男人来说,体会到初恋的滋润,初恋都是在比较年轻的年龄,愿意为一个女孩子做…

asus prime x299大师系列主板安装win10 蓝屏问题的解决方法

主板型号如上,安装win10,蓝屏,需要去主板bios禁用无线功能,安装好系统后再去开启即可。有其他问题,可以关注下方公众号

x299平台装linux系统的一些天坑

年前实验室为了配置大内存的服务器,受限于经费,我们只能使用比较便宜的游戏板,选择了微星的x299平台,买回来自带win10,回来的第一件事就是装linux,习惯上我会装centos,因为比较稳定,…

华硕X299 SAGE 报错检查DEBUG速查 Q-Code

偶尔华硕官网不通畅的时候,为了帮助朋友们速查Debug编码,转帖到CSDN上,

针对技嘉 X299X AORUS MASTER 主板介绍 (支持10900X/10920X/10940X/3070/3080/3090 (Intel X299/LGA 2066))

主板接口介绍: PCIE扩展槽介绍: M.2存储接口介绍:

支持1t内存的服务器主板,自古华擎出妖板,单系统1TB内存:华擎 X299 Taichi CLX 支持 1TB DDR4内存...

自古华擎出妖板,单系统1TB内存:华擎 X299 Taichi CLX 支持 1TB DDR4内存 2019-12-13 14:20:17 16点赞 31收藏 31评论 如今内存价格已相当亲民,不少玩家已将剩余的内存槽插满,不过容量也仅限于标定范围内,而需要大量“吃…