论文笔记之CSPNet

2023-10-31

本文解决的是减少推理计算的问题。
本文收录于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 推理速度

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

论文笔记之CSPNet 的相关文章

随机推荐

  • 小程序 image标签 默认宽高问题,如何实现高度自适应

    微信小程序的图片image有默认的宽高 width 320px和height 240px 我遇到的业务场景是宽度100 高度自适应 所以 1 宽度设置成100 img width 100 2 设置mode属性 mode widthFix
  • 2019夏令营之行(下) 南大软件+北邮网研院

    夏令营 上 https blog csdn net Cc Sonia article details 95238001 正如上篇博客所说 北航计算机是我最满意的结果 所以剩下的这两个夏令营我就没认真参加2333 7 17 7 20 南大软件
  • 基于多进程并发-进程通讯之管道(pipe)

    一 管道 pipe 所谓的管道 就是内核 的 串缓存 Pipe 一个进程从管道的 端写 的数据 实际上是缓存在内核中的 另 端读取 也就是从内核中读取这段数据 特性 有两种类型的管道 匿名管道 有名管道 也叫命名管道 简单实现 有大小限制
  • 【PTA】【数据结构与算法题目集】7-29 修理牧场(25分)【霖行】

    PTA 数据结构与算法题目集 7 29 修理牧场 25分 霖行 题目 题目链接 7 29 修理牧场 25 分 农夫要修理牧场的一段栅栏 他测量了栅栏 发现需要N块木头 每块木头长度为整数L i个长度单位 于是他购买了一条很长的 能锯成N块的
  • win/linux集群源码,Linux win/linux集群源码 - 下载 - 搜珍网

    linux linux Bin linux Bin Control exe linux Bin Control zip linux Bin dat linux Bin dat WinDDOS dat linux Claer bat linu
  • [机缘参悟-76]:沟通技巧-职场中常见不合适语言的案例分析(尽量避免使用反问式语言)

    目录 第一部分 针对他人的用词 避免使用 怎么 这样的责难的词 避免使用 老实说 这样过虚假的词 避免说 xxx几点左右 这种的不确定性词 避免使用 是xxx人的错 这种强烈的否定性的词 避免使用 但是 这一种强烈的转折性的词 避免使用 务
  • 判断一个数是否偶数(深度思考)

    当看到这个题 很明显就能想到 if unm 2 0 return true else return false 那么如果继续优化 我们都知道 计算机都是2进制计算 那么我们可以从二进制入手 2 gt 0010 4 gt 0100 3 gt
  • 【SpringMVC】SpringMVC :@RequestMapping注解

    文章目录 1 美图 2 概述 3 使用 4 源码 4 0 RequestMapping 4 1 AbstractHandlerMethodMapping 1 美图 2 概述 如 果 Web 工程使用 了 Spring MVC 那么它在启动阶
  • Vue连接数据库实现登录注册

    在前端开发中 经常需要将用户的注册和登录信息存储到数据库中 然后再进行登录验证 本文将介绍如何使用Vue连接数据库实现登录注册功能 前提条件 在开始之前 需要安装并配置好以下环境 Vue js Node js MongoDB 安装依赖 安装
  • kl散度学习笔记python实现

    KL Divergence KL Kullback Leibler Divergence中文译作KL散度 从信息论角度来讲 这个指标就是信息增益 Information Gain 或相对熵 Relative Entropy 用于衡量一个分布
  • windows下如何恢复notepad未保存的文件

    notepad恢复未保存的文件 备份文件 C Users 你当前用户的用户名 AppData Roaming Notepad backup可以恢复 如果找不到此文件 因为文件被隐藏了 打开隐藏文件即可
  • tomcat 和 apache跟CGI都有什么关系呢?

    tomcat 和 apache跟CGI都有什么关系呢 IIS和古老的PWS都是win下运行的 web服务程序 对吧 这下边跑的是 asp对吧 这些不会跨平台对吧 web服务程序 是 apache还是tomcat 呢 jsp跟 asp是一种功
  • 简搭(jabdp)快速入门(一)

    一 文件夹说明 本应用包为绿色免安装版本 只需要将本jabdp文件夹复制至系统英文名称目录下即可 mysql目录为默认集成的数据库目录 webapps目录为应用程序所在目录 其中设计器包含ae与iDesigner工程 项目平台包含iPlat
  • JAVA 内部类 inner class

    内部类 在一个类的内部定义的类称为内部类 类的内部 第一 与属性或方法 同级 内部类 这个类与外部类的每个对象是一对一的关系 Person与Birthday 静态内部类 这个类与外部类是1对1的关系 每个对象共享这个内部类对象 Hero和C
  • 编程实用工具大全(二)(前后端皆可用,不来看看?)

    个人主页 个人主页 系列专栏 精品推荐 由于之前编程实用工具大全深受大家喜欢 所以出了第二期 对于没有看过第一期的小伙伴 可以点击这个链接 编程实用工具大全 一 目录 1 零代码工具箱 专为前端打造 1 SVG波浪背景生成器 2 在线生成
  • Activity启动流程概述

    总结 Activity的启动过程 我们可以从Context的startActivity说起 其实现是ContextImpl的startActivity 内部调用startActivityForResult 然后内部会通过Instrument
  • Mathpix公式识别OCR软件使用教程

    最近 发现一款公式识别OCR软件 配合Mathtype 公式编辑器 非常好用 省去很多时间 所以就写一篇文章介绍Mathpix的使用方法 1 打开Mathpix软件后 可以鼠标单击下图中小电脑图标进行截图 也可以使用快捷键Ctrl Alt
  • IntelliJ IDEA基于maven构建的web项目找不到jar包

    手把手教你搭建基于Maven的SSM框架 附源代码 SSM框架 详细整合教程 GitHub源码地址 SSM整合框架 基于maven构建的springMVC项目 下载好jar包import后 运行提示ClassNotFoundExceptio
  • 数仓/数据开发-零基础入坑(小白学习路径)

    这段时间各大公司的春招陆续开始了 但是也有很多同学还在因为刚刚入坑或者还在纠结 对学习路径比较迷茫 这也是去年的我 所以这边总结一下 一个面向面试的学习路径 后面也会补充上全面的学习路径 面向面试就是掌握到基本能应付暑期实习面试的基本技能和
  • 论文笔记之CSPNet

    本文解决的是减少推理计算的问题 本文收录于CVPR2019 论文地址 https arxiv org pdf 1911 11929 pdf 1 摘要 目前最先进的能够在计算机视觉任务上取得非常好的结果的方法往往很大程度上依赖于昂贵的计算资源