大数跨境
0
0

Backbone篇|YOLOv1-v7全系列大解析

Backbone篇|YOLOv1-v7全系列大解析 极市平台
2022-10-17
1
↑ 点击蓝字 关注极市平台
作者丨Rocky Ding
来源丨WeThinkIn
编辑丨极市平台

极市导读

 

YOLO系列解析的第三篇出炉,本篇将聚焦于YOLO系列Backbone的分享。 >>加入极市CV技术交流群,走在计算机视觉的最前沿

干货篇

----【目录先行】----

  1. YOLO系列中Backbone结构的特点
  2. YOLOv1 Backbone解析
  3. YOLOv2 Backbone解析
  4. YOLOv3 Backbone解析
  5. YOLOv4 Backbone解析
  6. YOLOv5 Backbone解析
  7. YOLOx Backbone解析
  8. YOLOv6 Backbone解析
  9. YOLOv7 Backbone解析

【一】YOLO系列中Backbone结构的特点

YOLO系列中的Backbone结构主要作为网络的一个核心特征提取器,随着时代的变迁不断发展。某种程度上,YOLO系列的各个Backbone代表着当时的高价值模型与AI行业的发展记忆,计算机视觉江湖上,曾出现的那些“算法兵器”,它们确实来过。Backbone与输入侧一样,是通用性非常强的一个部分,具备很强的向目标检测其他模型,图像分类,图像分割,目标跟踪等方向迁移应用的价值。从业务向,竞赛向,研究向等角度观察,Backbone结构也能在这些方面比较好的融入,从容。

【二】YOLOv1 Backbone解析

YOLOv1的Backbone有着朴素的逻辑,主要受启发于GoogLeNet的结构。

YOLOv1整体结构

YOLOv1的backbone结构中使用了Leaky ReLu激活函数,但并没有引入BN层。【Rocky的延伸思考】

  1. YOLOv1 Backbone逻辑在整个YOLO系列中已不具备竞争力,但是可以作为业务向,竞赛向的入场Baseline,快速搭建,快速试错。

【三】YOLOv2 Backbone解析

YOLOv2的Backbone在YOLOv1的基础上设计了Darknet-19网络,并引入了BN层优化模型整体性能

Darknet-19网络结构

Darknet-19网络包含19个卷积层和5个max pooling层,整体计算量比YOLOv1中采用的GooleNet更少,最后用average pooling层代替全连接层进行Inference。在YOLOv2的Backbone中加入BN层之后,使得mAP提升了2%,而BN层也成为了YOLO后续系列的标配。【Rocky的延伸思考】

  1. 业务向:YOLOv2 Backbone结构完全可以应用于业务baseline模型。

【四】YOLOv3 Backbone解析

YOLOv3的Backbone在YOLOv2的基础上设计了Darknet-53结构

YOLOv3将YOLOv2的Darknet-19加深了网络层数,并引入了ResNet的残差思想,也正是残差思想让YOLOv3将Backbone深度大幅扩展至Darknet-53。YOLOv3优化了下采样方式(无池化层结构),采用卷积层来实现,而YOLOv2中采用池化层实现。【Rocky的延伸思考】

  1. YOLOv3的Backbone无论是在业务向,竞赛向还是研究向,都可以作为入场Baseline。

【五】YOLOv4 Backbone解析

YOLOv4的Backbone在YOLOv3的基础上,受CSPNet网络结构启发,将多个CSP子模块进行组合设计成为CSPDarknet53,并且使用了Mish激活函数

CSPDarknet53总共有72层卷积层,遵循YOLO系列一贯的风格,这些卷积层都是大小,步长为2的设置,能起到特征提取与逐步下采样的作用。CSP子模块主要解决了由于梯度信息重复导致的计算量庞大的问题。CSP模块不仅仅是一个子结构,更是一个处理思想,可以和ResNet、ResNext、DenseNet、EfficientNet等网络结合使用。

DenseNet结构与CSP模块结构

上图左侧是DenseNet的结构,它进行反向传播时会有大量的重复计算,而右侧的图是CSP模块结构,它将基础层的特征图分成两部分,一部分直接与该阶段的末尾concat相连,另一部分经过局部Dense模块,从而既能保留Dense模块的特征复用,又能截断梯度流,避免大量的重复计算,同时可以保证准确率。总的来说,CSP模块解决了三个方面的问题:

  1. 提升模型的学习能力,同时使模型轻量化。
  2. 降低计算瓶颈,提高硬件利用率。
  3. 降低模型的内存占用。

CSP模块逻辑也可以迁移到其他Backbone网络,例如优化ResNet以提升性能:

ResNet的CSP化

CSPNet论文地址:CSPNet[1]YOLOv4论文中通过消融实验发现使用Mish激活函数会提升性能,于是在Backbone中将其使用。(注:除Backbone以外的网络结构依旧使用LeakyReLU激活函数)

Mish激活函数消融实验

Mish激活函数的示意图如下,其有三个主要特征:

  1. 无上界有下界。Mish向上无边界避免了由于封顶而导致的梯度饱和,加快训练过程。向下有边界有助于实现强正则化效果。
  2. 非单调函数。允许其在负半轴有稳定的微小负值,从而使梯度流更稳定。与ReLU负半轴的硬零边界相比,其梯度更平滑。
  3. 无穷连续性与光滑性。具有较好的泛化能力,提高训练结果的质量。
Mish激活函数

Mish激活函数的表达式:

Mish激活函数论文地址:Mish激活函数[2]

【Rocky的延伸思考】

  1. 业务向:YOLOv4 Backbone中使用的CSP思想可以方便地与业务场景相结合。
  2. 竞赛向:YOLOv4 Backbone中提到的CSP结构和Mish激活函数在竞赛中是比较有效的Tricks。
  3. 研究向:YOLOv4 Backbone具备作为研究Baseline的价值。

【六】YOLOv5 Backbone解析

YOLOv5的Backbone同样使用了YOLOv4中使用的CSP思想

值得一提的是,YOLOv5最初版本中会存在Focus结构,在YOLOv5第六版开始后,就舍弃了这个结构改用 的常规卷积,其产生的参数更少,效果更好。

Focus结构

【Rocky的延伸思考】

  1. YOLOv5 Backbone的易用性使得其不管在业务向,竞赛向还是研究向都非常友好。

【七】YOLOx Backbone解析

YOLOx的Backbone沿用了YOLOv3的Backbone结构,故在此不在展开介绍。

【八】YOLOv6 Backbone解析

YOLOv6的Backbone侧在YOLOv5的基础上,设计了EfficientRep Backbone结构

和YOLOv5的Backbone相比,YOLOv6的Backbone不但能够高效利用硬件算力,而且还具有较强的表征能力。YOLOv6的Backbone中将普通卷积都替换成了RepConv结构。同时,在RepConv基础上设计了RepBlock结构,其中RepBlock中的第一个RepConv会做channel维度的变换和对齐。另外,YOLOv6将SPPF优化设计为更加高效的SimSPPF,增加特征重用的效率。

SimSPPF结构

【Rocky的延伸思考】

  1. 业务向:YOLOv6 Backbone可以高效用于业务向的部署端。
  2. 竞赛向:YOLOv6 Backbone可以用于竞赛向的Baseline尝试。
  3. 研究向:YOLOv6 Backbone可以用于研究向的消融实验。

【九】YOLOv7 Backbone解析

YOLOv7的Backbone侧在YOLOv5的基础上,设计了E-ELAN和MPConv结构

E-ELAN结构已经在本系列的Neck篇中详细介绍,本文就不再展开。MPConv结构由常规卷积与maxpool双路径组成,增加模型对特征的提取融合能力。不管是E-ELAN还是MPConv结构,都将特征重用逻辑演绎到了比较高的水准,让人眼前一亮。

【Rocky的延伸思考】

  1. 业务向:YOLOv7 Backbone可以作为业务向的Baseline使用。
  2. 竞赛向:YOLOv7 Backbone可以用于竞赛向的入场Baseline。
  3. 研究向:YOLOv7 Backbone可以用于研究向的入场研究Baseline。

参考资料

[1]

CSPNetA New Backbone that can Enhance Learning Capability of CNN: : https://arxiv.org/abs/1911.11929

[2]

MishA Self Regularized Non-Monotonic Activation Function: : https://arxiv.org/abs/1908.08681


极市干货
算法竞赛:往届获奖方案总结以及经验详解|ACCV2022国际细粒度图像分析挑战赛
技术综述BEV 学术界和工业界方案、优化方法与tricks综述PyTorch下的可视化工具(网络结构/训练过程可视化)
极视角动态:极视角与华为联合发布基于昇腾AI的「AICE赋能行业解决方案」算法误报怎么办?自训练工具使得算法迭代效率提升50%!

CV技术社群邀请函 #




△长按添加极市小助手
添加极市小助手微信(ID : cvmart2)

备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳)


即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群


极市&深大CV技术交流群已创建,欢迎深大校友加入,在群内自由交流学术心得,分享学术讯息,共建良好的技术交流氛围。


点击阅读原文进入CV社区

收获更多技术干货

【声明】内容源于网络
0
0
极市平台
为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
内容 8155
粉丝 0
极市平台 为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
总阅读197
粉丝0
内容8.2k