挑战杯 YOLOv7 目标检测网络解读

文章目录

  • 0 前言
  • 1 yolov7的整体结构
  • 2 关键点 - backbone
  • 关键点 - head
  • 3 训练
  • 4 使用效果
  • 5 最后

0 前言

世界变化太快,YOLOv6还没用熟YOLOv7就来了,如果有同学的毕设项目想用上最新的技术,不妨看看学长的这篇文章,学长带大家简单的解读yolov7,目的是对yolov7有个基础的理解。

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

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

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 层。

关键点 - 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 的数量不同。

在这里插入图片描述

3 训练

在这里插入图片描述

有一点比较坑,如果想使用较大的预训练模型,需要使用train_aux.py进行训练,否则效果很差

在这里插入图片描述

4 使用效果

丝滑!
在这里插入图片描述

在这里插入图片描述

5 最后

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

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

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

相关文章

程序员搞什么副业才有性价比?

干一行恨一行,三百六十行,行行干破防! 一份稳定的主业固然重要,但是有性价比的副业更令人心动。朝九晚五的工作日复一日,当然也可能是996的生活反复捶打。从整体来讲,程序员算是高收入群体,但往…

从六大晶圆厂财报看半导体行业2024年复苏

2023年,全球半导体行业经历了重大调整,在面临高通胀风险及库存水平调整的过程中,市场短期展望并不明朗。然而,根据TrendForce对全球六大顶尖半导体代工厂(TSMC、三星电子、英特尔、GlobalFoundries、UMC和SMIC&#xf…

函数、极限、连续——刷题(4

目录 1.题目:2.解题思路和步骤:3.总结:小结: 1.题目: 2.解题思路和步骤: 记住这个公式即可: 所以就很容易求解了: 3.总结: 记住这个公式即可: 小结&am…

mysql 执行update操作 记录未修改

问题 mysql 执行update操作 记录未修改 详细问题 笔者进行SpringBootMybatis项目开发,确认执行update操作 控制台内容如下 Creating a new SqlSession SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession3cbe9459] was not registered for sync…

算法——数论——同余

目录 同余 一、试题 算法训练 同余方程 同余 同余使人们能够用等式的形式简洁地描述整除关系同余:若 m(正整数),a 和 b 是整数,a%mb%m,或(a-b)%m0,记为 a b(mod m)求解一元线性同余方程等价于…

Halcon 相机标定

文章目录 算子单相机标定单相机标定畸变的矫正 算子 gen_caltab 生成标定文件 gen_caltab(::XNum,YNum,MarkDist,DiameterRatio,CalTabDescrFile,CalTabPSFile :) 算子来制作一个标定板XNum 每行黑色标志圆点的数量。YNum 每列黑色标志圆点的数…

2023年程序员观察报告

春节假期已过,2023年悄然过去,2024年已经到来,无论2023年是快乐的、成长的、积极的,亦或是痛苦的、寂寥的、迷茫的,都要恭喜在座的各位程序员又熬过了一年! ①加班篇 2023年,你完成了 132个需求…

【数据结构】17 二叉树的建立

二叉树的建立 由于树是非线性结构,创建一颗二叉树必须首先确定树中结点的输入顺序,常用方法是先序创建和层序创建。 层序创建所用的节点输入序列是按数的从上至下从左到右的顺序形成的各层的空结点输入数值0。在构造二叉树过程中需要一个队列暂时存储各…

Linux网络编程——守护进程

文章目录 1. 前台 & 后台进程2. Linux进程之间的关系3. 守护进程 本章Gitee仓库:守护进程 1. 前台 & 后台进程 在Linux系统登陆的时候,它会给我们形成一次会话,会话在系统里面会创建一个bash进程,这个bash就会给用户提供…

websocket数据帧格式

客户端、服务端数据的交换,离不开数据帧格式的定义。因此,在实际讲解数据交换之前,我们先来看下WebSocket的数据帧格式。 WebSocket客户端、服务端通信的最小单位是帧(frame),由1个或多个帧组成一条完整的消…

IP地址+子网掩码+CIDR学习笔记

目录 一、IP地址 1、表示方法: 2、特殊IP地址 二、子网掩码 1、判断网络位和主机位 2、子网划分 三、无分类编址CIDR 1、CIDR路由汇聚 汇聚规则: 汇聚ID: 2、最佳路由匹配原则 一、IP地址 1、表示方法: 机器中存放的…

SQL32 截取出年龄(substring_index函数的用法)

代码 select substring_index(substring_index(profile,,,3),,,-1) as age ,count(device_id) from user_submit group by age知识点 substring_index(FIELD, sep, n)可以将字段FIELD按照sep分隔: (1).当n大于0时取第n个分隔符(n从1开始)之前的全部内容&#xff1…