YOLOV7详细解读

网络架构解读

  • YOLOV7详细解读
  • 前言
  • 一、YOLOV7是什么?
  • 二、网络架构
    • 1、架构图总览
    • 2、CBS模块解读
    • 3、CBW模块解读
    • 4、REP模块解读
    • 5、MP模块解读
    • 6、ELAN模块解读
    • 7、ELAN-W模块解读
    • 8、UPSample模块解读
    • 9、SPPCSPC模块解读

前言

继美团发布YOLOV6之后,YOLO系列原作者也发布了YOLOV7。
YOLOV7主要的贡献在于:

1.模型重参数化
YOLOV7将模型重参数化引入到网络架构中,重参数化这一思想最早出现于REPVGG中。
2.标签分配策略
YOLOV7的标签分配策略采用的是YOLOV5的跨网格搜索,以及YOLOX的匹配策略。
3.ELAN高效网络架构
YOLOV7中提出的一个新的网络架构,以高效为主。
4.带辅助头的训练
YOLOV7提出了辅助头的一个训练方法,主要目的是通过增加训练成本,提升精度,同时不影响推理的时间,因为辅助头只会出现在训练过程中。


一、YOLOV7是什么?

YOLO算法作为one-stage目标检测算法最典型的代表,其基于深度神经网络进行对象的识别和定位,运行速度很快,可以用于实时系统。
YOLOV7是目前YOLO系列最先进的算法,在准确率和速度上超越了以往的YOLO系列。
了解YOLO是对目标检测算法研究的一个必须步骤。

二、网络架构

1、架构图总览

2、CBS模块解读

  • 对于CBS模块,我们可以看从图中可以看出它是由一个Conv层,也就是卷积层,一个BN层,也就是Batch normalization层,还有一个Silu层,这是一个激活函数。
  • silu激活函数是swish激活函数的变体,两者的公式如下所示
silu(x)=x⋅sigmoid(x)
swish(x)=x⋅sigmoid(βx)

  • 从架构图中我们可以看出,CBS模块这里有三种颜色,三种颜色代表它们的卷积核(k)和步长(s)不同。
    首先最浅的颜色,也就是第一个CBS模块的颜色,它是一个1x1的卷积,stride(步长为1)。
    其次稍浅的颜色,也就是第二个CBS模块的颜色,它是一个3x3的卷积,stride(步长为1)。
    最后最深的颜色,也就是第三个CBS模块的颜色,它是一个3x3的卷积,stride(步长为2)。
  • 1x1的卷积主要用来改变通道数。
  • 3x3的卷积,步长为1,主要用来特征提取。
  • 3x3的卷积,步长为2,主要用来下采样。

3、CBW模块解读

  • CBW模块和CBS模块,我们可以看出来是基本一致的。
  • 由一个Conv层,也就是卷积层,一个BN层,也就是Batch normalization层,还有一个sigmoid层,这是一个激活函数。
  • 卷积核为1x1,stride(步长为1)

4、REP模块解读

  • REP模块分为两个,一个是train,也就是训练,一个deploy,也就是推理。
  • 训练模块,它有三个分支。
    最上面的分支是3x3的卷积,用于特征提取。
    中间的分支是1x1的卷积,用于平滑特征。
    最后分支是一个Identity,不做卷积操作,直接移过来。

    最后把它们相加在一起。
  • 推理模块,包含一个3x3的卷积,stride(步长为1)。是由训练模块重参数化转换而来。
    在训练模块中,因为第一层是一个3x3的卷积,第二层是一个1x1的卷积,最后层是一个Identity。
    在模型从参数化的时候,需要把1x1的卷积啊,转换成3x3的卷积,把Identity也转换成3x3的卷积,然后进行一个矩阵的一个加法,也就是一个矩阵融合过程。
    然后最后将它的权重进行相加,就得到了一个3x3的卷积,也就是说,这三个分支就融合成了一条线,里面只有一个3x3的卷积。
    它们的权重是三个分支的叠加结果,矩阵,也是三个分支的叠加结果。

5、MP模块解读

  • MP模块有两个分支,作用是进行下采样
  • 第一条分支先经过一个maxpool,也就是最大池化。最大值化的作用就是下采样,然后再经过一个1x1的卷积进行通道数的改变。
  • 第二条分支先经过一个1x1的卷积,做通道数的变化,然后再经过一个3x3卷积核、步长为2的卷积块,这个卷积块也是用来下采样的。
  • 最后把第一个分支和第二分支的结果加在一起,得到了超级下采样的结果。

6、ELAN模块解读

  • ELAN模块是一个高效的网络结构,它通过控制最短和最长的梯度路径,使网络能够学习到更多的特征,并且具有更强的鲁棒性。
  • ELAN有两条分支。
  • 第一条分支是经过一个1x1的卷积做通道数的变化。
  • 第二条分支就比较复杂了。它先首先经过一个1x1的卷积模块,做通道数的变化。然后再经过四个3x3的卷积模块,做特征提取。
  • 如图所示,最后把四个特征叠加在一起得到最后的特征提取结果。

7、ELAN-W模块解读

  • 对于ELAN-W模块,我们也看到它跟ELAN模块是非常的相似,所略有不同的就是它在第二条分支的时候选取的输出数量不同。
  • ELAN模块选取了三个输出进行最后的相加。
  • ELAN-W模块选取了五个进行相加。

8、UPSample模块解读

UPSample模块是一个上采样的模块,它使用的上采样方式是最近邻插值

9、SPPCSPC模块解读

SPP的作用是能够增大感受野,使得算法适应不同的分辨率图像,它是通过最大池化来获得不同感受野

  • 我们可以看到在第一条分支中,经理了maxpool的有四条分支。分别是5,9,13,1,这四个不同的maxpool就代表着他能够处理不同的对象。
  • 也就是说,它这四个不同尺度的最大池化有四种感受野,用来区别于大目标和小目标。
    比如一张照片中的狗和行人以及车,他们的尺度是不一样的,通过不同的maxpool,这样子就能够更好的区别小目标和大目标。

CSP模块,首先将特征分为两部分,其中的一个部分进行常规的处理,另外一个部分进行SPP结构的处理,最后把这两个部分合并在一起,这样子就能够减少一半的计算量,使得速度变得快,精度反而会提升。

YOLOV7详细解读(一)网络架构解读相关推荐

  1. 【论文解读】深度学习网络架构新视角:通过相关图表达理解神经网络(何恺明团队新作)...

    文章来源于极市平台,作者Happy 标题&作者团队 导语:恺明大神出品,必属精品.Facebook的研究员从一个新奇的角度对神经网络的表示与设计进行探索,提出了一种新颖的相关图表示方式.它有助 ...

  2. yolov7 网络架构深度解析

    在美团yolov6刚出来不到一个月,yolov4的官方人马yolov7带着论文和代码高调现身,迅速霸屏,膜拜下速度和精度: 四个字"多快好省",yolov7依旧基于anchor b ...

  3. ARM Cortex-A77架构解读

    Cortex-A76是2018年的亮点产品,无论是高通还是华为,都利用这个先进的架构设计出了极为出色的产品,使得移动计算设备的性能又大大向前推进了一步,并且依旧保持了极高的能耗比.在2019年,ARM ...

  4. StyleGAN 架构解读(重读StyleGAN)精【1】

    StyleGAN 架构解读(重读StyleGAN)精[1]_马鹏森的博客-CSDN博客_stylegan网络结构 StyleGAN 架构解读(重读StyleGAN)精[2]_马鹏森的博客-CSDN博客 ...

  5. 从产品设计角度,解读物联网四层架构

    本文以物联网四层架构为基础,从物联网产品设计的角度来解读每层架构的功能以及主要内容,旨在为物联网产品设计以及实现思路感兴趣的物联网产品或研发人员有些帮助. 通过互联网,人和人之间可以传递和交流信息.物 ...

  6. 14. 深度解读ARM新架构:大核进取、小核摆烂?

    众所周知,对于如今的绝大多数的智能手机.平板电脑,以及部分笔记本电脑产品来说,ARM可以说是"一切的源头".高通与三星的SoC近年来一直使用着ARM公版的CPU设计,而被公认&qu ...

  7. 时间敏感型网络协议解读

      0 引言 随着信息技术(informationtechnology,IT)与运营技术(operation technology,OT)的不断融合,对于统一网络架构的需求变得迫切.智能制造.工业物联 ...

  8. IoT -- 解读物联网四层架构

    本文以物联网四层架构为基础,从物联网产品设计的角度来解读每层架构的功能以及主要内容,旨在为物联网产品设计以及实现思路感兴趣的物联网产品或研发人员有些帮助. 通过互联网,人和人之间可以传递和交流信息.物 ...

  9. 微软安全运营架构解读

    微软安全安全架构解读-安全运营篇 微软在其网络安全架构中对安全运营部分基于自身实践提出了安全运营架构,微软认为安全运营的主要挑战是安全运营工具的竖井,需要通过工具和数据进行集成,并提出了微软的安全运营 ...

最新文章

  1. 关于AXI DMA CYCLIC 调试过程中的问题
  2. ARabevaluator 颜色渐变控制类
  3. [vue] SPA首屏加载速度慢的怎么解决?
  4. pb预览状态下的pagecount_QuickLook高效文件预览神器,方便到令你意想不到
  5. MYSQL——数据修改
  6. springboot自动装配原理(通俗易懂)
  7. 研磨设计模式-设计模式的基础-设计模式有什么
  8. sublime text3 最新注册码
  9. 批处理html转excel,批量Excel转TXT工具(Batch Excel to Text Converter)v2020.12.1118官方免费版...
  10. 关于给电鼓音源增加鼓盘或者DIY鼓盘(DIY镲片)的方法
  11. 中文自然语言处理入门实战
  12. matlab相关性分析
  13. 本地机房连接阿里云专有网络VPC构建混合云解决方案
  14. 常用的dede标签小总结
  15. 数据仓库 OLAP
  16. 金融风控中英文术语手册(银行_消费金融信贷业务)_version5
  17. python保存requests请求的文件的实战代码
  18. 我在武汉新东方上过的8个老师
  19. 滑环电刷作用及工作原理相关介绍
  20. 叶问2:宗师传奇[Ip Man 2]

热门文章

  1. vue iframe 宽高自适应
  2. 乔布斯和盖茨的历史性对话(转录)
  3. PyTorch 入门:训练一个深度神经网络(DNN)
  4. 掌握这六步,搭建完美的机器学习项目
  5. Packet Tracer 5.0建构CCNA实验攻略(12)——PPP
  6. 什么是你的核心竞争力之一?
  7. Intellij集成Vue开发环境
  8. 数仓 Zabbix 集成 Grafana
  9. Java 操作数据库插入失败原因
  10. EPICS记录参考--计算输出记录(calcout)