CSPNET: A NEW BACKBONE THAT CAN ENHANCE LEARNING CAPABILITY OF CNN的一些理解

摘要

以往目标检测的backbone需要更多的计算资源,作者提出的跨阶段局部连接在不减少精度的前提下可以减少20%的计算量,CSPNet可以去取代以ResNet,ResNext和DenseNet为backbone的框架。

Introduction

神经网络之前认为越深越宽越好,但是这样会带来极大的计算量,这样在很多设备上都用不了。虽然有一些方法是用于mobile CPU例如mobilenet,shufflenet等,但其深度可分离卷积和工业集成电路(如用于边计算系统的专用集成电路(ASIC))不兼容,如下图为CSPNet和ResNet,Densenet的比较,结果表现CSPNet能较好的运用在CPU和便携GPU上。
CSPNET: A NEW BACKBONE THAT CAN ENHANCE LEARNING CAPABILITY OF CNN的一些理解_第1张图片
作者提出设计CSPNet的主要目的是使该体系结构实现更丰富的梯度组合,同时减少计算量,该方法通过将底层特征映射划分为两部分,然后通过提出的跨阶段层次结构将其合并来实现,主要概念是设计多个梯度分支流(个人感觉其实就是多个子网络各种连接),基于CSPNet的目标检测器有三个优势:
(1)更强大特征学习能力
(2)移除了计算瓶颈
(3)减少了存储开销
CSPNET: A NEW BACKBONE THAT CAN ENHANCE LEARNING CAPABILITY OF CNN的一些理解_第2张图片
个人理解:CSPNet将x0连接到了Transition layer。

Related work

介绍了一下现在CNN主流结构,目标检测。

Method

设计Partial Dense Block的三个目的:
(1)增加梯度路径:通过分块归并策略,可以使梯度路径的数量增加一倍。
(2)平衡CNN每一层的计算量, 由于参与dense block操作的基础层通道仅占原始数据的一半,可以有效解决进一半的计算瓶颈
(3)减少存储开销
CSPNET: A NEW BACKBONE THAT CAN ENHANCE LEARNING CAPABILITY OF CNN的一些理解_第3张图片
Partial Transilation Layer:设计部分过渡层的目的是使梯度组合的差异最大化,上图C中CSP (fusion first)是将两部分生成的特征映射连接起来,然后进行转换操作。如果采用这种策略,将会重用大量的梯度信息。对于上图d中CSP (fusion last)策略,稠密块的输出将经过过渡层,然后与第一部分的feature map进行拼接,由于梯度流被截断,梯度信息将不再被重用,采用不同策略的测试结果。
CSPNET: A NEW BACKBONE THAT CAN ENHANCE LEARNING CAPABILITY OF CNN的一些理解_第4张图片
下图为将ResNext改为CSPResNext的网络结构对比:
CSPNET: A NEW BACKBONE THAT CAN ENHANCE LEARNING CAPABILITY OF CNN的一些理解_第5张图片

Exact Fusion Model

CSPNET: A NEW BACKBONE THAT CAN ENHANCE LEARNING CAPABILITY OF CNN的一些理解_第6张图片

你可能感兴趣的:(深度学习,Python,神经网络,深度学习,人工智能)