【CV】CSPNet:通过分层特征融合机制增强 CNN 学习能力的骨干网络
阅读原文时间:2023年08月19日阅读:1

论文名称:CSPNet: A New Backbone that can Enhance Learning Capability of CNN
论文下载:https://arxiv.org/abs/1911.11929
论文年份:2019
论文被引:882(2022/05/12)
论文代码:https://github.com/WongKinYiu/CrossStagePartialNetworks

论文总结

冗余梯度信息问题会导致低效优化和昂贵的推理计算。因此,提出利用跨阶段特征融合策略和截断梯度流来增强不同层内学习特征的可变性。此外,结合 Maxout 操作的 EFM 来压缩从特征金字塔生成的特征图,这大大减少了所需的内存带宽,因此推理效率足以与边缘计算设备兼容

本文基于DenseNet,引入了两个模块 Partial Dense Layer 和 Partial Transition Layer。

部分密集块的目的有三个:1)增加梯度路径:通过拆分和合并策略,可以使梯度路径的数量增加一倍。由于跨阶段策略,可以缓解使用显式特征图副本进行连接所带来的缺点;2)每一层的平衡计算:由于部分稠密块中稠密层操作所涉及的基层通道只占原始数量的一半,因此可以有效解决近一半的计算瓶颈;3)减少内存流量:部分密集块最多可以节省网络一半的内存流量。

部分过渡层的目的是为了最大化梯度组合的差异。部分过渡层是一种分层特征融合机制,它使用截断梯度流的策略来防止不同层学习重复的梯度信息

ABSTRACT

Neural networks have enabled state-of-the-art approaches to achieve incredible results on computer vision tasks such as object detection. However, such success greatly relies on costly computation resources, which hinders people with cheap devices from appreciating the advanced technology. In this paper, we propose Cross Stage Partial Network (CSPNet) to mitigate the problem that previous works require heavy inference computations from the network architecture perspective. We attribute the problem to the duplicate gradient information within network optimization. The proposed networks respect the variability of the gradients by integrating feature maps from the beginning and the end of a network stage, which, in our experiments, reduces computations by 20% with equivalent or even superior accuracy on the ImageNet dataset, and significantly outperforms state-of-the-art approaches in terms of AP50 on the MS COCO object detection dataset. The CSPNet is easy to implement and general enough to cope with architectures based on ResNet, ResNeXt, and DenseNet.

神经网络使最先进的方法能够在目标检测等计算机视觉任务上取得令人难以置信的结果。然而,这样的成功很大程度上依赖于昂贵的计算资源,这阻碍了拥有廉价设备的人们欣赏先进技术。在本文中,我们提出了跨阶段部分网络(Cross Stage Partial Network,CSPNet)来缓解以前的工作需要从网络架构角度进行大量推理计算的问题。我们将问题归因于网络优化中的重复梯度信息。所提出的网络通过整合网络阶段开始和结束的特征图来尊重梯度的可变性,在我们的实验中,这在 ImageNet 数据集上以同等甚至更高的精度减少了 20% 的计算量,并且显着优于状态就 MS COCO 目标检测数据集上的 AP50 而言,最先进的方法。 CSPNet 易于实现且通用性足以应对基于 ResNet、ResNeXt 和 DenseNet 的架构

1 Introduction

当神经网络变得更深 [7, 39, 11] 和更宽 [40] 时,神经网络已被证明特别强大。然而,扩展神经网络的架构通常会带来更多的计算量,这使得目标检测等计算量大的任务对大多数人来说是负担不起的。轻量级计算逐渐受到越来越多的关注,因为现实世界的应用程序通常需要在小型设备上进行较短的推理时间,这对计算机视觉算法提出了严峻的挑战。尽管一些方法是专门为移动 CPU [9, 31, 8, 33, 43, 24] 设计的,但它们采用的深度可分离卷积技术与工业 IC 设计不兼容,例如专用集成电路 (ASIC)边缘计算系统。在这项工作中,我们研究了 ResNet、ResNeXt 和 DenseNet 等最先进方法的计算负担。

我们进一步开发计算效率高的组件,使上述网络能够部署在 CPU 和移动 GPU 上,而不会牺牲性能。

在这项研究中,我们介绍了跨阶段部分网络(Cross Stage Partial Network,CSPNet)。设计 CSPNet 的主要目的是使该架构能够在减少计算量的同时实现更丰富的梯度组合。这个目标是通过将基础层的特征图划分为两部分,然后通过提出的跨阶段层次结构合并它们来实现的。我们的主要概念是通过拆分梯度流使梯度流通过不同的网络路径传播。我们已经证实,通过切换连接和转换(concatenation and transition)步骤,传播的梯度信息可以具有大的相关差。此外,CSPNet 可以大大减少计算量,提高推理速度和准确性,如图 1 所示。

所提出的基于 CSPNet 的目标检测器解决了以下三个问题:

1)增强CNN的学习能力——现有的CNN在轻量化后精度大大降低,所以我们希望增强CNN的学习能力,使其在轻量化的同时保持足够的精度。所提出的 CSPNet 可以很容易地应用于 ResNet、ResNeXt 和 DenseNet。在上述网络上应用 CSPNet 后,计算量可以从 10% 减少到 20%,但它的性能优于 ResNet [7]、ResNeXt [39]、DenseNet [11]、HarDNet [1]、Elastic [36]、和 Res2Net [5],在准确性方面,在 ImageNet [2] 上进行图像分类任务。

2)消除计算瓶颈——计算瓶颈太高会导致更多的周期来完成推理过程,或者一些算术单元经常空闲。因此,我们希望能够将 CNN 中每一层的计算量平均分配,从而有效提升各计算单元的利用率,从而减少不必要的能耗。值得注意的是,所提出的 CSPNet 使 PeleeNet [37] 的计算瓶颈减少了一半。此外,在 MS COCO [18] 基于数据集的目标检测实验中,我们提出的模型在基于 YOLOv3 的模型上进行测试时可以有效减少 80% 的计算瓶颈。

3)降低内存成本——动态随机存取存储器(DRAM)的晶圆制造成本非常昂贵,而且占用大量空间。如果能有效地降低内存成本,他/她将大大降低ASIC的成本。此外,小面积晶圆可用于各种边缘计算设备。在减少内存使用方面,我们在特征金字塔生成过程中采用跨通道池化[6]来压缩特征图。这样,在生成特征金字塔时,带有目标检测器的 CSPNet 可以在 PeleeNet 上减少 75% 的内存使用。

由于 CSPNet 能够提升 CNN 的学习能力,因此我们使用更小的模型来获得更好的准确性。我们提出的模型可以在 GTX 1080ti 上以 109 fps 的速度实现 50% COCO AP50。由于 CSPNet 可以有效减少大量内存流量,因此我们提出的方法可以在 Intel Core i9-9900K 上以 52 fps 的速度实现 40% COCO AP50。此外,由于 CSPNet 可以显着降低计算瓶颈,而精确融合模型 (EFM) 可以有效减少所需的内存带宽,我们提出的方法可以在 Nvidia Jetson TX2 上以 49 fps 的速度实现 42% COCO AP50。

2 Related work

CNN 架构设计

  • ResNeXt [39] 首先证明基数(cardinality)比宽度和深度的维度更有效
  • 由于采用大量重用特征的策略,DenseNet [11]可以显着减少参数和计算的数量。并且它将前面所有层的输出特征连接起来作为下一个输入,这可以被认为是最大化基数的方式
  • SparseNet [46] 将密集连接调整为指数间隔连接可以有效地提高参数利用率,从而产生更好的结果。
  • 部分ResNet(PRN)[35] 进一步解释了为什么高基数和稀疏连接可以通过梯度组合的概念提高网络的学习能力。
  • 为了提高 CNN 的推理速度,[24] 介绍了要遵循的四个准则并设计 ShuffleNet-v2。
  • [1] 提出了一种称为 Harmonic DenseNet (HarDNet) 的低内存流量 CNN 和一个度量卷积输入/输出 (CIO),它是与实际 DRAM 流量测量成比例的 DRAM 流量的近似值。

实时目标检测器。最著名的两个实时目标检测器是 YOLOv3 [29] 和 SSD [21]。

  • 基于 SSD,LRF [38] 和 RFBNet [19] 可以在 GPU 上实现最先进的实时目标检测性能。
  • 最近,基于无锚点的目标检测器 [3, 45, 13, 14, 42] 已成为主流目标检测系统。两种此类目标检测器是 CenterNet [45] 和 CornerNet-Lite [14],它们在效率和功效方面都表现得非常好。
  • 对于 CPU 或移动 GPU 上的实时目标检测,基于 SSD 的 Pelee [37]
  • 基于 YOLOv3 的 PRN [35] 和
  • 基于 Light-Head RCNN [17] 的 ThunderNet [25] 在目标检测方面都获得了出色的性能。

3 Method

3.1 Cross Stage Partial Network


DenseNet。图 2 (a) 显示了 DenseNet [11] 的一个阶段的详细结构。DenseNet 的每个阶段都包含一个密集块和一个过渡层,每个密集块由 k 个密集层组成。第 i 个密集层的输出将与第 i 个密集层的输入连接,连接后的结果将成为第 (i + 1) 个密集层的输入。显示上述机制的方程可以表示为:

其中 * 表示卷积算子,[x0, x1, …] 表示连接 x0, x1, …,wi 和 xi 分别是第 i 个密集层的权重和输出

如果使用反向传播算法来更新权重,则权重更新方程可以写为:

其中 f 是权重更新的函数,gi 表示传播到第 i 个密集层的梯度。我们可以发现,大量的梯度信息被重用于更新不同密集层的权重。这将导致不同的密集层重复学习复制的梯度信息

Cross Stage Partial DenseNet。所提出的 CSPDenseNet 的一级架构如图 2 (b) 所示。 CSPDenseNet 的一个阶段由部分密集块和部分过渡层组成。在部分密集块中,一个阶段中基础层的特征图通过通道 x 0 = [ x 0 ′ , x 0 ′ ′ ] x_0 = [x'_0, x''_0 ] x0​=[x0′​,x0′′​] 分为两部分。在 x 0 ′ x'_0 x0′​ 和 x 0 ′ ′ x''_0 x0′′​ 之间,前者直接链接到阶段的末尾,而后者会经过一个密集的块。部分过渡层涉及的所有步骤如下:首先,密集层的输出 [ x 0 ′ ′ , x 1 , . . . , x k ] [x''_0 , x_1, …, x_k] [x0′′​,x1​,…,xk​] 将经历过渡层。其次,该过渡层的输出 x T x_T xT​ 将与 x 0 ′ ′ x''_0 x0′′​ 连接并经过另一个过渡层,然后生成输出 x U x_U xU​。 CSPDenseNet 的前馈传递和权重更新方程分别如方程 3 和 4 所示。

我们可以看到来自密集层的梯度是单独集成的。另一方面,没有经过密集层的特征图 x 0 ′ x'_0 x0′​ 也被单独整合对于更新权重的梯度信息,双方不包含属于对方的重复梯度信息

总体而言,所提出的 CSPDenseNet 保留了 DenseNet 特征重用特性的优势,但同时通过截断梯度流来防止过多的重复梯度信息。这个想法是通过设计分层特征融合策略来实现的,并用于部分过渡层。

Partial Dense Block。设计部分密集块的目的是

  1. 增加梯度路径:通过拆分和合并策略,可以使梯度路径的数量增加一倍。由于跨阶段策略,可以缓解使用显式特征图副本进行连接所带来的缺点
  2. 每一层的平衡计算:通常,DenseNet 的基础层中的通道数远大于增长率。由于部分稠密块中稠密层操作所涉及的基层通道只占原始数量的一半,因此可以有效解决近一半的计算瓶颈;
  3. 减少内存流量:假设 DenseNet 中密集块的基本特征图大小为 w × h × c,增长率为 d,共有 m 个密集层。那么,该密集块的 CIO 为 (c × m) + ((m2 + m) × d)/2,部分密集块的 CIO 为 ((c × m) + (m2 + m) × d) /2。虽然 m 和 d 通常远小于 c,但部分密集块最多可以节省网络一半的内存流量

    Partial Transition Layer。设计部分过渡层的目的是为了最大化梯度组合的差异。部分过渡层是一种分层特征融合机制,它使用截断梯度流的策略来防止不同层学习重复的梯度信息。在这里,我们设计了 CSPDenseNet 的两种变体,以展示这种梯度流截断如何影响网络的学习能力。图 3 © 和 3 (d) 显示了两种不同的融合策略。 CSP(fusion first)就是把两部分生成的特征图拼接起来,然后做transition操作。如果采用这种策略,将会重用大量的梯度信息。对于 CSP(fusion last)策略,密集块的输出将通过过渡层,然后与来自第 1 部分的特征图进行连接。如果采用 CSP(fusion last)策略,则梯度信息由于梯度流被截断,因此不会被重用。如果我们使用图 3 所示的四种架构进行图像分类,对应的结果如图 4 所示。可以看出,如果采用CSP(fusion last)策略进行图像分类,计算成本显着下降,但 top-1 准确率仅下降 0.1%。另一方面,CSP(fusion first)策略确实有助于显着降低计算成本,但 top-1 准确率显着下降了 1.5%。通过使用跨阶段的拆分和合并策略,我们能够有效地减少信息集成过程中重复的可能性。从图 4 所示的结果可以看出,如果能够有效地减少重复梯度信息,网络的学习能力将会大大提高

    将 CSPNet 应用于其他架构。 CSPNet 也可以很容易地应用于 ResNet 和 ResNeXt,架构如图 5 所示。由于只有一半的特征通道通过 Res(X)Blocks,因此不再需要引入瓶颈层。这使得当浮点运算 (FLOP) 固定时内存访问成本 (MAC) 的理论下限。

3.2 Exact Fusion Model

Looking Exactly to predict perfectly。我们提出了 EFM,它为每个锚点捕获适当的视野 (FoV),从而提高了单阶段目标检测器的准确性。对于分割任务,由于像素级标签通常不包含全局信息,因此通常更可取的是考虑更大的补丁以获得更好的信息检索[22]。然而,对于图像分类和目标检测等任务,当从图像级和边界框级标签观察时,一些关键信息可能会变得模糊不清。[15] 发现 CNN 在从图像级标签中学习时经常会分心,并得出结论认为这是两阶段目标检测器优于单阶段目标检测器的主要原因之一。

Aggregate Feature Pyramid。所提出的 EFM 能够更好地聚合初始特征金字塔。 EFM 基于 YOLOv3 [29],它在每个地面实况对象之前准确分配一个边界框。每个ground truth bounding box对应一个超过阈值IoU的anchor box。如果anchor box的大小等于网格单元的FoV,那么对于第s尺度的网格单元,对应的bounding box的下界为第 (s-1) 个尺度,上界为( s + 1) 尺度。因此,EFM 组合了三个尺度的特征

Balance Computation。由于来自特征金字塔的级联特征图非常庞大,因此会引入大量的内存和计算成本。为了缓解这个问题,我们结合了 Maxout 技术来压缩特征图

4 Experiments

我们将使用 ILSVRC 2012 中使用的 ImageNet 图像分类数据集 [2] 来验证我们提出的 CSPNet。此外,我们还使用 MS COCO 目标检测数据集 [18] 来验证所提出的 EFM。拟议架构的详细信息将在附录中详细说明。

4.1 Implementation Details

ImageNet。在 ImageNet 图像分类实验中,所有超参数如训练步骤、学习率计划、优化器、数据增强等,我们都遵循 Redmon 等人定义的设置。 [29]。对于基于 ResNet 的模型和基于 ResNeXt 的模型,我们设置了 8000,000 个训练步骤。对于基于 DenseNet 的模型,我们设置了 1,600,000 个训练步骤。我们将初始学习率设置为 0.1,并采用多项式衰减学习率调度策略。动量和权重衰减分别设置为 0.9 和 0.005。所有架构都使用单个 GPU 以 128 的批量大小进行通用训练。最后,我们使用 ILSVRC 2012 的验证集来验证我们的方法。

MS COCO。在 MS COCO 目标检测实验中,所有超参数也遵循 [29] 定义的设置。总共进行了 500,000 个训练步骤。采用步进衰减学习率调度策略,分别在 400,000 步和 450,000 步处乘以因子 0.1。动量和权重衰减分别设置为 0.9 和 0.0005。所有架构都使用单个 GPU 执行批量大小为 64 的多尺度训练。最后,采用 COCO 测试开发集来验证我们的方法。

4.2 Ablation Experiments

ImageNet 上 CSPNet 的消融研究。在 CSPNet 上进行的消融实验中,我们采用 PeleeNet [37] 作为基线,并使用 ImageNet 来验证 CSPNet 的性能。我们使用不同的部分比率 γ 和不同的特征融合策略进行消融研究。表 1 显示了 CSPNet 上的消融研究结果。在表 1 中,SPeleeNet 和 PeleeNeXt 分别是向 PeleeNet 引入稀疏连接和组卷积的架构。至于 CSP(fusion first)和 CSP(fusion last),它们是为验证部分过渡的好处而提出的两种策略。

从实验结果来看,如果只在跨阶段部分密集块上使用CSP(fusion first)策略,性能可以略好于SPeleeNet和PeleeNeXt。但是,为减少冗余信息的学习而设计的部分过渡层可以实现非常好的性能。例如,当计算量减少 21% 时,准确率仅下降 0.1%。需要注意的一点是,当 γ = 0.25 时,计算量减少了 11%,但准确度提高了 0.1%。与基线 PeleeNet 相比,所提出的 CSPPeleeNet 实现了最佳性能,它可以减少 13% 的计算量,但同时将准确度提高 0.2%。如果我们将部分比率调整为 γ = 0.25,我们能够将准确率提升 0.8%,同时减少 3% 的计算量。

MS COCO 上 EFM 的消融研究。接下来,我们将基于 MS COCO 数据集进行 EFM 的消融研究。在这一系列实验中,我们比较了图 6 所示的三种不同的特征融合策略。我们选择了两个最先进的轻量级模型 PRN [35] 和 ThunderNet [25] 进行比较。PRN 是用于比较的特征金字塔架构,ThunderNet with Context Enhancement Module (CEM) 和 Spatial Attention Module (SAM) 是用于比较的全局融合架构。我们设计了一个**全局融合模型(GFM)**来与提议的 EFM 进行比较。此外,GIoU [30]、SPP 和 SAM 也应用于 EFM 进行消融研究。表 2 中列出的所有实验结果均采用 CSPPeleeNet 作为主干

正如实验结果所反映的,所提出的 EFM 比 GFM 慢 2 fps,但其 AP 和 AP50 分别显着提升了 2.1% 和 2.4%。虽然 GIoU 的引入可以将 AP 提升 0.7%,但是 AP50is 却大幅下降了 2.7%。然而,对于边缘计算,真正重要的是对象的数量和位置,而不是它们的坐标。因此,我们不会在后续模型中使用 GIoU 训练。 SAM使用的attention机制相比SPP增加FoV机制可以获得更好的帧率和AP,所以我们使用EFM(SAM)作为最终架构。此外,虽然带有 swish 激活的 CSPPeleeNet 可以提高 1% 的 AP,但它的运行需要在硬件设计上使用查找表来加速,我们最终也放弃了 swish 激活函数

4.3 ImageNet Image Classification

我们将提出的 CSPNet 应用于 ResNet-10 [7]、ResNeXt-50 [39]、PeleeNet [37] 和 DenseNet-201-Elastic [36],并与最先进的方法进行比较。实验结果如表 3 所示。

实验结果证实,无论是基于 ResNet 的模型、基于 ResNeXt 的模型,还是基于 DenseNet 的模型,当引入 CSPNet 的概念时,计算量至少减少了10%,精度要么保持不变,要么升级。引入 CSPNet 的概念对于改进轻量级模型特别有用。例如,与 ResNet-10 相比,CSPResNet-10 可以将准确率提高 1.8%。至于 PeleeNet 和 DenseNet-201-Elastic,CSPPeleeNet 和 CSPDenseNet-201-Elastic 分别可以减少 13% 和 19% 的计算量,或者稍微提升一点,或者保持精度。以 ResNeXt-50 为例,CSPResNeXt-50 可以减少 22% 的计算量,并将 top-1 准确率提升到 77.9%。

如果与state-of-the-art的轻量级模型——EfficientNet-B0相比,虽然在batch size为2048的情况下可以达到76.8%的准确率,但在实验环境与我们相同的情况下,即只使用了一个GPU , EfficientNetB0 只能达到 70.0% 的准确率。事实上,EfficientNet-B0 使用的 swish 激活函数和 SE 块在移动 GPU 上效率不高。在 EfficientNet-EdgeTPU 的开发过程中进行了类似的分析。

在这里,为了展示 CSPNet 的学习能力,我们将 swish 和 SE 引入到 CSPPeleeNet 中,然后与 EfficientNet-B0* 进行比较。在这个实验中,SECSPPeleeNet-swish 将计算量减少了 3%,并将 top-1 准确率提升了 1.1%。

将提出的 CSPResNeXt-50 与 ResNeXt-50 [39]、ResNet-152 [7]、DenseNet-264 [11] 和 HardDNet-138s [1] 进行比较,无论参数数量、计算量和 top-1 精度如何, CSPResNeXt-50 均达到最佳效果。至于 10-crop 测试,CSPResNeXt-50 也优于 Res2Net-50 [5] 和 Res2NeXt-50 [5]。

4.4 MS COCO Object Detection

在目标检测任务中,我们针对三个目标场景:(1)GPU 实时:我们采用带有 PANet(SPP)[20] 的 CSPResNeXt50; (2) 移动 GPU 上的实时性:我们采用 CSPPeleeNet、CSPPeleeNet Reference 和 CSPDenseNet Reference 以及提议的 EFM (SAM); (3) 在 CPU 上实时:我们采用带有 PRN [35] 的 CSPPeleeNet 参考和 CSPDenseNet 参考。上述模型与最先进方法的比较如表4所示。关于CPU和移动GPU的推理速度分析将在下一小节中详细介绍。

如果与以 30∼100 fps 运行的目标检测器相比,带有 PANet (SPP) 的 CSPResNeXt50 在 AP、AP50 和 AP75 中实现了最佳性能。他们分别获得 38.4%、60.6% 和 41.6% 的检出率。如果与输入图像尺寸 512×512 下的最新 LRF [38] 相比,带有 PANet (SPP) 的 CSPResNeXt50 比带有 LRF 的 ResNet101 高 0.7% AP、1.5% AP50 和 1.1% AP75。如果与以 100∼200 fps 运行的目标检测器相比,带有 EFM (SAM) 的 CSPPeleeNet 在与 Pelee [37] 相同的速度下提高了 12.1% AP50,在与 CenterNet [45] 相同的速度下提高了 4.1% [37]。

如果与 ThunderNet [25]、YOLOv3-tiny [29] 和 YOLOv3-tiny-PRN [35] 等非常快速的目标检测器相比,所提出的带有 PRN 的 CSPDenseNetb Reference 是最快的。它可以达到 400 fps 的帧速率,即比使用 SNet49 的 ThunderNet 快 133 fps。此外,它在 AP50 上提高了 0.5%。如果与 ThunderNet146 相比,带有 PRN (3l) 的 CSPPeleeNet Reference 将帧速率提高了 19 fps,同时保持了 AP50 的相同水平。

4.5 Analysis


Computational Bottleneck。图 7 显示了 PeleeNet-YOLO、PeleeNet-PRN 和提出的 CSPPeleeNet-EFM 每一层的 BLOPS。从图 7 可以明显看出,PeleeNet-YOLO 的计算瓶颈出现在头部整合特征金字塔时。 PeleeNet-PRN 的计算瓶颈发生在 PeleeNet 主干的过渡层上。对于提出的 CSPPeleeNet-EFM,它可以平衡整体计算瓶颈,减少 PeleeNet 主干 44% 的计算瓶颈,减少 PeleeNet-YOLO 80% 的计算瓶颈。因此,我们可以说所提出的 CSPNet 可以为硬件提供更高的利用率。

Memory Traffic。图 8 显示了 ResNeXt50 的每一层的大小和建议的 CSPResNeXt50。提议的 CSPResNeXt (32.6M) 的 CIO 低于原来的 ResNeXt50 (34.4M)。此外,我们的 CSPResNeXt50 去除了 ResXBlock 中的瓶颈层,并保持输入通道和输出通道的数量相同,如 [24] 所示,当 FLOP 固定时,这将具有最低的 MAC 和最有效的计算。较低的 CIO 和 FLOP 使我们的 CSPResNeXt50 在计算方面优于普通 ResNeXt50 22%。

Inference Rate。我们进一步评估所提出的方法是否能够部署在具有移动 GPU 或 CPU 的实时检测器上。我们的实验基于 NVIDIA Jetson TX2 和 Intel Core i9-9900K,并使用 OpenCV DNN 模块评估 CPU 上的推理率。我们不采用模型压缩或量化来进行公平比较。结果如表5所示。

如果我们比较在 CPU 上执行的推理速度,CSPDenseNetb Ref.-PRN 比 SNet49TunderNet、YOLOv3-tiny 和 YOLOv3-tiny-PRN 获得更高的 AP50,并且它也比上述三个模型高出 55 fps、48 fps 和 31 fps ,分别在帧速率方面。另一方面,CSPPeleeNet Ref.-PRN (3l) 达到了与 SNet146-ThunderNet 相同的准确度水平,但在 CPU 上将帧速率显着提升了 20 fps。

如果我们比较在移动 GPU 上执行的推理速度,我们提出的 EFM 将是一个很好的模型。由于我们提出的 EFM 可以大大降低生成特征金字塔时的内存需求,因此在内存带宽受限的移动环境下运行肯定是有益的。例如,CSPPeleeNet Ref.-EFM (SAM) 可以有比 YOLOv3-tiny 更高的帧率,其 AP50 比 YOLOv3-tiny 高 11.5%,这是显著提升。对于相同的 CSPPeleeNet 参考。虽然 EFM (SAM) 在 GTX 1080ti 上比 PRN (3l) 慢 62 fps,但在 Jetson TX2 上达到 41 fps,比 PRN (3l) 快 3 fps,在 AP50 上增长 4.6%。

5 Conclusion

我们提出了 CSPNet,它使 ResNet、ResNeXt 和 DenseNet 等最先进的方法能够轻量化用于移动 GPU 或 CPU。主要贡献之一是我们已经认识到冗余梯度信息问题会导致低效优化和昂贵的推理计算。我们提出利用跨阶段特征融合策略和截断梯度流来增强不同层内学习特征的可变性。此外,我们提出了结合 Maxout 操作的 EFM 来压缩从特征金字塔生成的特征图,这大大减少了所需的内存带宽,因此推理效率足以与边缘计算设备兼容。实验表明,所提出的具有 EFM 的 CSPNet 在用于实时目标检测任务的移动 GPU 和 CPU 上的准确性和推理率方面明显优于竞争对手。