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

这篇具有很好参考价值的文章主要介绍了深入浅出 Yolo 系列之 Yolov7 基础网络结构详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

1. YOLOV7 整体结构

深入浅出 Yolo 系列之 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 如下图所示
深入浅出 Yolo 系列之 Yolov7 基础网络结构详解

总共有 50 层, 我在上图用黑色数字把关键层数标示出来了。
首先是经过 4 层卷积层,如下图,CBS 主要是 Conv + BN + SiLU 构成,我在图中用不同的颜色表示不同的 size 和 stride, 如 (3, 2) 表示卷积核大小为 3 ,步长为 2。 在 config 中的配置如图。
深入浅出 Yolo 系列之 Yolov7 基础网络结构详解
深入浅出 Yolo 系列之 Yolov7 基础网络结构详解

经过 4个 CBS 后,特征图变为 160 * 160 * 128 大小。随后会经过论文中提出的 ELAN 模块,ELAN 由多个 CBS 构成,其输入输出特征大小保持不变,通道数在开始的两个 CBS 会有变化, 后面的几个输入通道都是和输出通道保持一致的,经过最后一个 CBS 输出为需要的通道。
深入浅出 Yolo 系列之 Yolov7 基础网络结构详解
深入浅出 Yolo 系列之 Yolov7 基础网络结构详解
深入浅出 Yolo 系列之 Yolov7 基础网络结构详解
MP 层 主要是分为 Maxpool 和 CBS , 其中 MP1 和 MP2 主要是通道数的比变化。
深入浅出 Yolo 系列之 Yolov7 基础网络结构详解

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

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

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

对于 pafpn 输出的 P3、P4 和 P5 , 经过 RepConv 调整通道数,最后使用 1x1 卷积去预测 objectness、class 和 bbox 三部分。
RepConv 在训练和推理是有一定的区别。训练时有三个分支的相加输出,部署时会将分支的参数重参数化到主分支上。
深入浅出 Yolo 系列之 Yolov7 基础网络结构详解

end

至此,我们将 YOLOV7 的基本结构介绍完了,至于 YOLOv7 的其他知识,如Aux Head 等以及 YOLOv7 的其他网络结构,我们后续再讲。 梳理可能有未理解正确的地方,欢迎交流。文章来源地址https://www.toymoban.com/news/detail-440063.html

到了这里,关于深入浅出 Yolo 系列之 Yolov7 基础网络结构详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CSDN首发 | 《深入浅出OCR系列》目录

    👨‍💻 作者简介: CSDN、阿里云人工智能领域博客专家,新星计划计算机视觉导师,百度飞桨PPDE,专注大数据与AI知识分享。✨ 公众号:GoAI的学习小屋 ,免费分享书籍、简历、导图等,更有交流群分享宝藏资料,关注公众号回复“加群”或➡️ 点击链接 加群。 🎉 专栏推

    2023年04月08日
    浏览(36)
  • 【SpringBoot深入浅出系列】SpringBoot之集成Elasticsearch

    网上 SpringBoot 集成 Elasticsearch 的文章很多,但随着 SpringBoot 和 Elasticsearch 版本的不断升级,绝大多数文章使用的集成方式和调用的方法已经过时,几乎找不到能真正适用最新 SpringBoot 版本和最新 Elasticsearch 版本的文章。 本文正是基于最新 SpringBoot 版本和最新 Elasticsearch 版本实

    2024年02月06日
    浏览(26)
  • 深入浅出学Verilog--基础语法

            Verilog的语法和C语言非常类似,相对来说还是非常好学的。和C语言一样,Verilog语句也是由一连串的令牌(Token)组成。1个令牌必须由1个或1个以上的字符(character)组成,令牌可以是: 注释(Comment) 空白符(White space) 运算符(Operator) 数字(Number) 字符串(

    2024年02月09日
    浏览(24)
  • YOLO系列概述(yolov1至yolov7)

    参考: 睿智的目标检测53——Pytorch搭建YoloX目标检测平台 YoloV7 首先我们来看一下yolo系列的发展历史,yolo v1和yolox是anchor free的方法,yolov2,yolov3,一直到yolov7是anchor base的方法。首选我们来回顾下每个版本的yolo都做了些什么 yolo v1是将 416 ∗ 416 416*416 4 1 6 ∗ 4 1 6 的图片,分

    2024年02月05日
    浏览(28)
  • FPGA信号处理系列文章——深入浅出理解多相滤波器

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 多相滤波是,按照相位均匀划分把数字滤波器的系统函数H(z)分解成若干个具有不同相位的组,形成多个分支,在每个分支上实现滤波。 采用多相滤波结构,可利用多个阶数较低的滤波来实现原本阶数较

    2024年02月05日
    浏览(45)
  • YOLO系列 --- YOLOV7算法(一):使用自定义数据集跑通YOLOV7算法

    这不就尴尬了。。。刚理解完美团出的YOLO V6算法,V7就出来了。。。而且最关键的是V7还有V4作者的背书,不过好在其实V6和V7都是在YOLO V5的基础上修改的代码,所以代码读起来就比较顺畅。YOLOV7算法打算按照以下的结构进行讲解: YOLOV7算法(一):使用自定义数据集跑通YO

    2024年02月04日
    浏览(28)
  • 深入浅出——零基础一文读懂DeepSORT(原理篇)

    本文是笔者对DeepSORT算法学习的阶段性总结,基于笔者接触到的所有开源学习资料,辅以个人理解进行重新编排而成,力求清晰,使非专业的读者也能迅速对该算法原理有较为透彻的理解,便于后续代码学习。 笔者本人为非cs相关专业,论述不当之处欢迎指出。文中引用的博

    2023年04月09日
    浏览(32)
  • 【计算机视觉中的多视图几何系列】深入浅出理解针孔相机模型

    温故而知新,可以为师矣! 《计算机视觉中的多视图几何-第五章》-Richard Hartley, Andrew Zisserman. 1.1 投影中心/摄像机中心/光心 投影中心 称为 摄像机中心 ,也称为 光心 。投影中心位于一个欧式坐标系的原点。 1.2 图像平面/聚焦平面 平面 Z = f Z=f Z = f 被称为 图像平面 或 聚焦

    2024年02月03日
    浏览(40)
  • YOLO系列 --- YOLOV7算法(六):YOLO V7算法onnx模型部署

    有很多人来问我,基于YOLO v7算法训练出来一个权重文件,如何进行部署。所以特地写一篇部署的blog~ 一般,我们基于pytorch深度学习框架训练出来的权重文件是pt格式的,我们可以用python来直接调用这个文件。但是实际工业中,一般都是c++去调用权重文件的,所以我们需要将

    2024年02月07日
    浏览(33)
  • 【YOLO系列】YOLOv7论文超详细解读(翻译 +学习笔记)

    终于读到传说中的YOLOv7了~≖‿≖✧ 这篇是在美团的v6出来不到一个月就高调登场,作者还是我们熟悉的AB大神(对,就是v4那个),读起来又是“熟悉”的感觉(贯穿了我的整个五一假期(╯-_-)╯╧╧)。 其实关于YOLOv7的网络结构还有很多细节值得深入研究,以及代码

    2024年02月02日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包