CV 经典主干网络 (Backbone) 系列: CSPNet

CV 经典主干网络 (Backbone) 系列: CSPNet

作者:Chien-Yao Wang 等
发表时间:2019
Paper 原文: CSPNet: A New Backbone that can Enhance Learning Capability of CNN
开源代码:Cross Stage Partial Networks

该篇是 CV 经典主干网络 (Backbone) 系列 下的一篇文章。

作者认为目前的网络结构虽然效果好,但是都是建立在较大的计算量上的,这阻碍了算法应用 ,特别是在移动设备等算力受限的平台上,这个问题就显得尤为突出了。作者因此想提出一个计算量小效果还好的网络结构。具体来说作者希望:

  • 增强CNN的学习能力
  • 减少计算量
  • 降低内存占用

1. 网络结构

1.1 理论

作者通过分析发现,计算量大的一个原因是因为网络优化过程中的梯度信息重复造成的,为了解决这一问题,作者提出了 CSPNet(Cross Stage
Partial Network),它可以实现更加丰富的梯度组合,从而增强网络的学习能力,减小计算量。通过实验证明,CSPNet 计算量小(减小20%),但是精度上却也表现非常好,甚至超过当时的 SOTA 算法。

对于上面的提到的三点,我们来看看作者的解决办法。

1.1.1 增强CNN的学习能力

通常轻量化后的网络,效果会下降。如果轻量化的模型要有大模型效果,就必须要有更强的学习能力。CSPNet 通过将梯度的变化从头到尾地集成到特征图中,这样实现了更加丰富的梯度组合,从而增强了网络的学习能力。

1.1.2 减少计算量

去掉计算量较高的计算瓶颈结构。比如对于 DenseNet 来说,其计算量较高的显然是在 Dense Block 里面,CSPNet 通过 Partial Dense Block 的改进,仅仅一部分 feature map 进行计算,自然可以减少计算量。

1.1.3 降低内存占用

在 FPN 的时候采用 cross-channel pooling 压缩 feature map。Partial Dense Block 应该也有助于降低内存占用。

总的来说,CSPNet 是基于 DenseNet 的一种改进网络。CSPNet 保留了DenseNet特性重用特性的优点,但同时通过截断梯度流防止了过多的重复梯度信息。

1.2 网络结构

基于上面的理论分析,作者提出了 CSPNet,CSPNet 并不是完整的网络结构,而是一个模块,或者说是一种思想,它可以被很方便的应用于很多不同的网络结构中,比如 DenseNet, ResNet 等。其思想是把特征分为 Part 1,Part 2 两部分,Part 2 进行卷积操作等得到 C,然后把 Part 1 和 C 进行 concat。比如对于 DenseNet。注意下面 Dense Block 和 Partial Dense Block 中 Dense Layer 的区别(输入的feature map 是不同的,见 Figure 2)。

在这里插入图片描述

在这里插入图片描述

对于上面的 b CSPDenseNet,c CSP(fusion first)和 d CSP(fusion first)三种不同网络结构,作者将其运用到 PeleeNet 上,通过实验发现 CSPDenseNet 在计算量和 acc 上均要优于原本的 PeleeNet。

在这里插入图片描述

直接看网络结构可能更清晰,比如将 CSPNet 应用到 DarkNet53(CSPDarkNet-53)。下图中左边是 DarkNet53 原本的结构,右边是应用 CSPNet 后的结构。

在这里插入图片描述

作者在把 CSPNet 应用到目标检测任务的时候,还提出了一个 EFM 模块,用于取代 FPN 操作。

在这里插入图片描述

  • FPN,在 YOLOv3 中使用。(ps: YOLOv3 中的 FPN 跟原始 FPN 不同,其融合的方式是 concat,而原始的融合方式是相加)

  • GFM,是 ThunderNet 中提出的 GFM,直接将多个不同分辨率的特征进行融合,具体融合方式是相加。

  • EFM,作者提出的融合方式,每两层之间特征进行融合,并且在原有 FPN 基础上再进行一次 bottom-up 的融合方式。

2. 性能

作者把 CSPNet 应用到分类和检测任务中,发现性能都有所提升,特别是在检测任务中提升更为明显。这也是为什么后续的 YOLOv4 和 YOLOv5 的 backbone 都是基于 CSPNet 修改的。

  • 8
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: YOLOv5的主干网络(backbone)采用的是CSPNet(CSPDarknet53)结构,这是一种高效的卷积神经网络结构,可以有效地提取图像特征。它基于Darknet53,通过使用Cross Stage Partial(CSP)连接来减少参数数量和计算量,同时保持高精度的目标检测性能。CSPDarknet53在处理大型图像数据集时表现优异,因此在YOLOv5中被广泛采用。 ### 回答2: YOLOv5是一种基于深度学习的目标检测算法,它使用了不同的主干网络(backbone)来提取特征并进行目标检测。主干网络是目标检测算法中最重要的组件之一,它负责处理输入图像并输出特征图,提高了目标检测的准确率和速度。 YOLOv5采用了两种不同类型的主干网络,即CSPDarkNet和EfficientNet。CSPDarkNet主干网络是一种改进版本的Darknet,它引入了Cross Stage Partial Network(CSP)模块,将输入特征图分成两部分进行处理,一部分直接通过多个CSP模块处理,另一部分在多个Residual Block中进行处理。这种结构有效地降低了复杂度,并提升了算法的性能。 EfficientNet主干网络则是一种基于强化学习的网络结构搜索方法,其目的是在保证网络模型大小和计算量不增加的情况下,提高网络的准确率。EfficientNet使用了一系列不同的网络结构,在网络中添加了多个可调节的超参数,如深度、宽度和分辨率等来搜索最佳网络结构。 综合来说,YOLOv5的主干网络(backbone)采用了不同的架构和技术,使得算法性能更加出色。CSPDarkNet采用了近似全卷积的方式提取特征,减少了参数量和计算量,EfficientNet则是在逐渐增大的网络结构中搜索最佳的网络结构,提高了算法的准确性和速度。这些不同类型的主干网络结合在一起,构成了YOLOv5目标检测算法强大的功能组件。 ### 回答3: YOLOv5是一种用于目标检测的神经网络模型,其主干网络(backbone)是由CSPDarknet53网络改进而来的。CSPDarknet53是Darknet53的一个变种,通过引入一种称为“cross-stage partial network”的特殊结构,来使网络运行速度更快且精度更高。 CSPDarknet53网络通过将网络分成两部分来实现跨阶段部分连接。在网络的中心,有一个名为CSP(cross-stage partial)的模块,将两个子网之间的连接简化为交叉连接。这使得网络各个部分之间的信息共享更加高效,从而提高了网络的准确性和效率。 跨阶段部分连接结构的另一个优点是它能够通过降低计算复杂度来加速网络的训练和推断速度。通过在网络的中心引入CSP模块,可以将网络的计算量减少至原来的一半左右。 除了CSPDarknet53,YOLOv5的主干网络还包括一个SPP模块(spatial pyramid pooling)。SPP模块可在不引入卷积操作的情况下改变特征图的大小,从而提高网络的感受野。这对于目标检测任务尤为重要,因为它允许网络对目标的各种尺度和大小进行检测。 总之,YOLOv5的主干网络backbone是由CSPDarknet53和SPP模块组成的改进网络。CSPDarknet53通过引入跨阶段部分连接结构来提高网络的信息共享效率和计算速度;SPP模块通过自适应池化操作来扩大网络的感受野,提高目标检测的精度和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值