论文笔记之CSPNet

本文解决的是减少推理计算的问题。
本文收录于CVPR2019
论文地址:https://arxiv.org/pdf/1911.11929.pdf

1. 摘要

目前最先进的能够在计算机视觉任务上取得非常好的结果的方法往往很大程度上依赖于昂贵的计算资源。本文从网络体系结构的角度出发,提出了跨阶段局部网络(CSPNet)来解决以往工作中需要大量推理计算的问题。本文将问题归结为网络优化中的重复梯度信息。所提出的网络通过从网络阶段的开始和结束集成特征映射来注重梯度的可变性。CSPNet易于实现,并且足够通用,可以处理基于ResNet、ResNeXt和DenseNet的体系结构。

主要贡献:

  • 加强CNN的学习能力
  • 消除计算瓶颈
  • 降低内存成本

2. 相关工作

  • CNN结构设计
    在ResNeXt中证明了基数(cardinality,分支路径的数量)比宽度和深度的维度更有效(对于提升网络性能来说)。DenseNet由于采用了大量重用特征的策略,可以显著减少参数和计算量。它将前面所有层的输出特征连接起来作为下一个输入,这可以看作是最大化基数的方法。SparseNet将密集连接调整为指数间隔连接,可以有效地提高参数利用率,从而获得更好的结果。Wang等人进一步解释了为什么高基数和稀疏连接可以通过梯度组合的概念来提高网络的学习能力,并发展了部分ResNet(PRN)。为了提高CNN的推理速度,Ma等介绍需要遵循的四条准则,并设计ShuffleNet-v2。Chao等人提出了一种称为Harmonic DenseNet(HarDNet)的低存储流量CNN和一种与实际DRAM流量测量成比例的DRAM流量近似的度量卷积输入/输出(CIO)。

  • 实时目标检测器
    最著名的两个实时目标检测器是YOLOv3和SSD。基于SSD,LRF和RFBNet可以在GPU上实现最先进的实时目标检测性能。近年来,基于anchor-free 的目标检测系统已成为主流的目标检测系统。这种类型的两个目标检测器是CenterNet和CornerNet Lite,它们在效率和性能方面都表现得非常好。对于CPU或移动GPU上的实时目标检测,基于SSD的Pelee、基于YOLOv3的PRN和基于Light Head的RCNN的ThunderNet都在目标检测方面获得了优异的性能。

3. 本文方法

3.1 Cross Stage Partial Network

(1)DenseNet
在这里插入图片描述
DenseNet的每个阶段包含一个dense block和一个transition layers(放在两个Dense Block中间,是因为每个Dense Block结束后的输出channel个数很多,需要用11的卷积核来降维),每个dense block由k个dense layer组成。第i个dense block的输出经过transition layers降维后将成为第(i+1)个dense block的输入。
因此DenseNet的机制可以表示为:
在这里插入图片描述
其中
表示卷积算子,而[x0,x1,…]表示连接x0,x1,…,和Wi和Xi分别是第i个dense block的权重和输出。
如果使用反向传播算法更新权重,则权重更新方程可以写成:
在这里插入图片描述
其中f是权重更新的函数,gi表示传播到第i个dense block的梯度。我们可以发现大量的梯度信息被重复用来更新不同dense block的权重。这将导致不同dense block反复学习相同的梯度信息。

(2)CSP-DenseNet
在这里插入图片描述
CSP-DenseNet的一个阶段由部分dense block和部分过渡层组成。在部分dense block中,通过通道在这里插入图片描述,将一个阶段中基础层的特征图分成两部分。在在这里插入图片描述之间,前者直接连接到阶段的末尾,后者将通过dense block。

部分过渡层涉及的所有步骤如下:首先,dense layer 的输出在这里插入图片描述将经历过渡层。其次,这个转换层x_T的输出将与在这里插入图片描述连接,并经过另一个转换层,然后生成输出x_U。

CSP-DenseNet的前馈传递方程和权重更新方程分别如下图所示。
在这里插入图片描述
我们可以看到,来自dense layer的梯度是分开整合的。另一方面,未穿过dense layer的特征图在这里插入图片描述也单独集成。对于用于更新权重的梯度信息,两边不包含属于另一边的重复梯度信息。

总体而言,本文提出的CSP-DenseNet保留了DenseNet特征重复使用的优点,同时通过截断梯度流防止了过多的重复梯度信息。该思想通过设计层次化特征融合策略实现,并应用于部分过渡层。

(3)Partial Dense Block
设计Partial Dense Block的目的是:

  • 增加梯度路径:通过分裂合并策略,可以使梯度路径的数目翻倍。由于采用了跨阶段的策略,可以减轻使用显式特征映射复制进行连接的缺点;
  • 平衡各层的计算:通常情况下,DenseNet底层的信道数远远大于增长率。由于部分dense block中的dense layer操作所涉及的底层信道只占原始信道的一半,因此可以有效地解决近一半的计算瓶颈;
  • 减少内存流量:假设dense block在DenseNet中的基本特征映射大小为w × h × c,增长率为d,并且共m层。然后,该dense block的CIO为(c × m)+((m^2+m)× d)=2,部分dense block的CIO为((c × m)+(m^2+m)× d)=2。虽然m和d通常比c小得多,但部分dense block最多可以节省网络内存流量的一半。
    在这里插入图片描述

(4)Partial Transition Layer
设计局部过渡层的目的是使梯度组合的差异最大化。部分过渡层是一种层次化的特征融合机制,它采用截断梯度流的策略来防止不同层学习重复的梯度信息。

在这里,本文设计了两种CSP-DenseNet变体来说明这种梯度流截断是如何影响网络的学习能力的。
在这里插入图片描述上图显示了两种不同的融合策略。

  • CSP(fusion-first)是指将两部分生成的特征映射连接起来,然后进行转换操作。如果采用这种策略,将会重复使用大量的梯度信息。
  • 对于CSP(fusion last)策略,dense block的输出将经过转换层,然后与来自第1部分的特征映射进行连接。
  • 如果采用CSP(fusion last)策略,梯度信息将不会被重复使用,因为梯度流被截断。

如果使用(3)中所示的四种架构来执行图像分类,则相应的结果如图所示。
在这里插入图片描述
可以看出,如果采用CSP(fusion last)策略进行图像分类,计算量明显下降,但top-1精度仅下降0.1%。另一方面,CSP(fusion-first)策略确实有助于显著降低计算成本,但top-1精度显著下降1.5%。通过跨阶段使用拆分和合并策略,能够有效地减少信息集成过程中重复的可能性。从上图所示的结果可以看出,如果能有效地减少梯度信息的重复,网络的学习能力将大大提高。

(5)在其他网络应用CSP
在这里插入图片描述

3.2 Exact Fusion Model

在这里插入图片描述
a:特征金字塔网络(FPN):融合当前尺度和以前尺度的特征。
b:全全局融合模型(GFM):融合所有尺度的特征。
c:精确融合模型(EFM):融合anchor尺寸上的特征。

(1)Looking Exactly to predict perfectly
本文提出了一种EFM方法,它可以为每个anchor捕获一个合适的视场(Field of View),从而提高一阶段目标检测器的精度。对于分割任务,由于像素级标签通常不包含全局信息,因此通常更可取的做法是考虑较大的patches以获得更好的信息检索。然而,对于像图像分类和目标检测这样的任务,当从图像层和边界框层标签观察时,一些关键信息可能会变得模糊。Li等人发现CNN在学习图像级标签时经常会分心,这是两级目标检测器优于一级目标检测器的主要原因之一。

(2)Aggregate Feature Pyramid
提出的EFM能够更好地聚合初始特征金字塔。EFM基于YOLOv3,它在每个真实框之前恰好指定一个边界框。每个真实框对应一个超过阈值IoU的anchor box。如果anchor box的尺寸与网格单元的FoV相等,则对于该网格的在这里插入图片描述比尺度,相应的边界框将以在这里插入图片描述尺度下界,以在这里插入图片描述尺度上界。因此,EFM从三个尺度集合特征。

(3)Balance Computation
由于特征金字塔中连接的特征映射非常庞大,因此会带来大量的内存和计算开销。为了解决这一问题,本文采用Maxout技术(类似于droupout)对特征映射进行压缩。

4. 实验

4.1 消融实验

在这里插入图片描述
在这里插入图片描述
实验结果表明,所提出的EFM比GFM慢2fps,但AP和AP50分别显著提高了2.1%和2.4%。

虽然GIoU的引入可以使AP升级0.7%,但是AP50却显著降低了2.7%。然而,对于边缘计算来说,真正重要的是目标的数量和位置,而不是它们的坐标。因此,本文没有在后续的模型中使用GIoU训练。

与SPP增加FoV机制相比,SAM使用的注意机制可以获得更好的帧速率和AP,因此本文使用EFM(SAM)作为最终的架构。

另外,虽然带swish激活的csp-pelenet可以将AP提高1%,但其操作需要在硬件设计上有一个查找表来加速,因此最后本文也放弃了swish激活功能。

4.2 imagenet上

在这里插入图片描述

4.3 MS COCO上

在这里插入图片描述

4.4 推理速度

在这里插入图片描述

版权声明:本文为CSDN博主「To_1_oT」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/haha0825/article/details/106102762

To_1_oT

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐