yolov6论文地址:https://arxiv.org/abs/2209.02976

先上一张yolov6的网络架构

图片来源于网络

BACKBONE

yolov6使用了repVGG作为backbone

如果不了解repVGG的可以看原文

论文地址https://arxiv.org/pdf/2101.03697.pdf

这里简单过一下,repVGG其核心思想是:通过结构重参数化思想,让训练网络的多路结构转换为推理网络的单路结构,结构中均为3x3的卷积核,同时,计算库(如CuDNN,Intel MKL)和硬件针对3x3卷积有深度的优化,最终可以使网络有着高效的推理速率。

其中

1、多路结构在模型训练时具有性能高的优势

2、推理时转化为单路结构具有速度快省内存的好处

由于多路结构在不同的分支应用不同大小的卷积核,能够获得不同的感受野,从而能够获得更高的性能,但是在计算过程中需要保存中间结果,显存占用量会增大,只有多路融合时,显存才会降低,显存占用增加推理速度就会受到一定的影响。为了提高网络的性能,产生了一些性能优异的网络组件,如深度可分离卷积,分组卷积等,对于可分离卷积,虽然能降低FLOPs,但是内存访问成本增大,这也导致推理速度变慢。

为了权衡性能和效率,repVGG使用重参数化思想,在训练时使用多分支结构提升网络性能,在推理时,将网络变为单路结构。

在论文中作者有给出3x3卷积和其他尺寸卷积的效率对比

3x3卷积的计算密度(理论运算量(Theoretical FLOPs ÷ Time usage)除以所用时间)可达1x1和5x5卷积的4倍;

另外​ VGG是一个直筒型单路结构,单路结构会占有更少的内存,因为不需要保存其中间结果,同时,单路架构非常快,因为并行度高;

最后多分支结构会引入网络结构的约束,比如Resnet的残差结构要求输入和卷积出来的张量维度要一致,这种约束导致网络不易延伸拓展,也一定程度限制了通道剪枝,同时仅有3x3的卷积方便加速芯片的设计从而提高效率。

repVGG的结构如下:

可以看出,在原始VGG基础上,引入残差分支和1x1卷积分支,为了后续重参数化成单路结构,这里调整了分支放置的位置,没有进行跨层连接,repVGG论文中的试验也证明了残差分支和conv_1x1均能对网络性能起到提升作用。

其中有两个比较重要的操作

1、卷积层和BN层的合并:

BN层的计算公式:

合并后:

2、卷积层的合并:

能看到这的相信对卷积这个概念比较熟了,repVGG中的3x3的卷积就不多说了,其中1x1的卷积可以类比于3x3的卷积,在卷积核周围使用全0进行padding,在对输入中的相应位置计算卷积结果。indentity可以看成是特殊的1x1卷积,相当于对应通道上的卷积核参数为1,其余卷积核的参数为0,再对其进行padding,得到3x3的卷积。

通过以上的合并,可以大大提升网络的推理速度

NECK

在 Neck 设计方面,为了让其在硬件上推理更加高效,以达到更好的精度与速度的平衡,美团提出了Rep-PAN ,Rep-PAN基于 PAN拓扑方式,用 RepBlock 替换了 YOLOv5 中使用的 CSP-Block,同时对整体 Neck 中的算子进行了调整,目的是在硬件上达到高效推理的同时,保持较好的多尺度特征融合能力

注意:这里的C5对应最顶端流程图SPPF

为了方便直接用了美团给的neck结构图,C5输出20*20*512大小的特征图,通过1*1卷积后变成20*20*128的大小,上采样成40*40*128后与C4 concat成40*40*384的大小,C4经过repblock和1*1卷积得到40*40*128的特征图,上采样后concat成80*80*192的特征图。最后经过右边的repblock和3*3卷积输出P3,P4,P5(大小分别为80*80*64,40*40*128,20*20*256)。

HEAD

head分别对应了p3,p4,p5三层输出进行预测 ,借鉴了YOLOX的解耦头设计,并进行了改进,每个分支上先对特征图进行卷积,做特征图的特征融合,之后分成两个分支,一个通过两个卷积完成分类任务,另一个卷积后再分成两个分支,一个卷积完成前背景的分类,另一个卷积完成边界框的回归,最后再通过concat在channel层上融合,输出预测结果,该结果需要进行后处理得到最终结果。

理解yolov6网络结构相关推荐

  1. YOLOV6网络结构

    1.整体结构 由上图所示,从整体上来看,YOLOV6的网络结构与YOLOV4.YOLOV5是很相似的,尤其是backbone和neck,但是其中的实现模块是有变化的:但最大的不同在于Head部分,采用 ...

  2. resnet50网络结构_学习笔记(一):分析resnet源码理解resnet网络结构

    最近在跑实验的过程中一直在使用resnet50和resnet34,为了弄清楚网络的结构和原理的实现,打开resnet的源码进行了学习. 残差网络学习的原理 针对神经网络过深而导致的学习准确率饱和甚至是 ...

  3. bottleneck resnet网络_关于ResNet网络的一点理解(网络结构、building block 及 “bottleneck” building block)...

    [时间]2018.10.05 [题目]关于ResNet网络的一点理解(网络结构.building block 及 "bottleneck" building block) 概述 本 ...

  4. 计算机网络这么多,开发怎么理解五层网络结构体系好?

    计算机网络分层结构体系有三种为大众所熟悉,分别为OSI的七层体系结构.TCP/IP的四层体系结构和五层协议的体系结构. 一般采用五层协议体系结构,这样既简洁又能将概述阐述清楚.这五层分别是 应用层 应 ...

  5. 从零深入理解Yolo系列理论v1-v8 + 目标检测面试提问

    目标检测-Yolo系列发展 先验框/锚框/候选框 Anchor机制 Anchors Base原理 Anchors Free原理 YOLO v1 Yolov1网络结构 Yolov1实现方法 Yolov1 ...

  6. 从短句到长文,计算机如何学习阅读理解

    (从左至右:崔磊.韦福如.周明.杨南) 在电影<她(HER)>中有这样一幕:主人公是一位信件撰写人,人工智能操作系统萨曼莎在得到他的允许后阅读他的邮件资料,总结出需要保留和删除的邮件,帮助 ...

  7. 机器阅读理解中文章和问题的深度学习表示方法

    /*版权声明:可以任意转载,转载时请标明文章原始出处和作者信息.*/ author: 张俊林 注:本文是<深度学习解决机器阅读理解任务的研究进展>节选,该文将于近期在"深度学习大 ...

  8. 深度学习技术在机器阅读理解应用的研究进展

    深度学习解决机器阅读理解任务的研究进展:https://blog.csdn.net/malefactor/article/details/52832134 深度学习技术在机器阅读理解应用的研究进展:h ...

  9. 深度学习解决机器阅读理解任务的研究进展

    /*版权声明:可以任意转载,转载时请标明文章原始出处和作者信息.*/ author: 张俊林 关于阅读理解,相信大家都不陌生,我们接受的传统语文教育中阅读理解是非常常规的考试内容,一般形式就是给你一篇 ...

最新文章

  1. 2015年11月 广州深圳 MVP 线下活动
  2. windows c语言目录操作函数,c语言目录操作在C/C++语言中如何进行目录操作,如得到目录内的 爱问知识人...
  3. 今天看到一经典的网络小说
  4. 从源码入手,一文带你读懂Spring AOP面向切面编程
  5. 新版《中国药典》提升中药标准
  6. AD画芯片的原理图和封装
  7. 语音直播开发平台打造新娱乐社交模式
  8. Markdown快捷键
  9. A股数据day级前复权数据下载与存储
  10. CUBA - 一个卓越的 Java 快速开发框架
  11. Windows 正版系统安装(重装) - Win10(微星主板 - MSI)
  12. php+转义反斜线,PHP 转义序列(反斜线)
  13. OpenMP Sections
  14. SD卡读卡程序 C语言 IO模拟,单片机SD卡读卡器仿真+源程序+电路原理图
  15. 数字图像处理(DIP)实验4 目标颜色识别
  16. java开发的颠覆者epub,创业颠覆者-陈景畑 翟顺[6寸pdf mobi epub kindle版].pdf
  17. Outlook邮箱如何在手机上登录
  18. HTML项目心得500字,心得体会作文500字(精选10篇)
  19. 直流供电电路中,关于电源并联二极管、电容作用的思考与总结
  20. 区块链基础理论模拟试卷五

热门文章

  1. 计算机硬盘正在工作时,让硬盘永远工作在最佳状态
  2. 还是有问题想请教一下大家
  3. RK3399Pro 入门教程(一)ubuntu18.04系统安装
  4. C++虚继承与虚函数
  5. ORM框架Peewee(四改)
  6. Intel cas 百度云 备份
  7. C语言必看面试题:for循环的使用
  8. JAVA计算机毕业设计图书馆借阅系统(附源码、数据库)
  9. 详解AUTOSAR:AUTOSRA软件架构(理论篇—2)
  10. 解决windows10和ubuntu双系统时间不对的问题