论文阅读笔记(四)——ESPNetV2::A Light-weight Power Efficient and General Purpose Convolutional Neural Network

前言

这几天要改论文,大修…。改完还要写论文…u1s1,我觉得改论文比写论文难多了,毕竟一个只负责瞎吹比,另外一个解决审稿意见,太难了

1 论文简介

1.1 关于文章

论文名称:ESPNetv2–A Light-weight, Power Efficient, and General Purpose Convolutional Neural Network

链接:原文链接
百度网盘:原文链接
提取码:sgip

1.2 关于模型

为了计算更加高效:

  • 将原来ESPNet的point-wise conv逐点卷积 替换为group point-wise conv组逐点卷积;
  • 将原来ESPNet的dilated convolutions 空洞卷积替换为depth-wise dilated convolution深度空洞卷积;
  • HFF加在depth-wise dilated separable conv深度空洞卷积 和 point-wise (or 1 × 1) 逐点卷积之间,去除Gridding Artifacts ;
  • 使用中一个 group point-wise conv组逐点卷积 替换K 个point-wise conv逐点卷积 ;
  • 将depth-wise dilated conv 深度空洞卷积加入下采样操作;
  • 加入平均池化(average pooling ),将输入图片信息加入EESP中;
  • 使用级联(concatenation) 取代对应元素加法操作(element-wise addition operation );

2 文章正文

2.1 摘要

我们引入了一种轻量级,高效,通用的卷积神经网络ESPNetv2,用于对可视数据和顺序数据进行建模。 我们的网络使用成组的点方向和深度方向的可扩展卷积来学习具有较大FLOP和参数的大型有效接收场的表示形式。 我们在四个不同的任务上评估了我们网络的性能:
(1)分类(2)语义分割(3)目标检测(4)语言模型
通过对这些任务的实验,包括ImageNet上的图像分类和PenTree库数据集上的语言建模,证明了我们的方法优于最新方法的性能。 我们的网络性能比ESPNet高出4-5%,并且在PASCAL VOC和Cityscapes数据集上的FLOP减少了2-4倍。 与MS-COCO对象检测上的YOLOv2相比,ESPNetv2的精度提高了4.4%,而FLOP却减少了6倍。 我们的实验表明,ESPNetv2的电源效率比现有的最新高效方法(包括ShuffleNets和MobileNets)高得多。 我们的代码是开源的,可从https://github.com/sacmehta/ ESPNetv2获得。

2.2 Motivation&Contributions

PS: 这一段主要是方便我们以后写Introduction与Related Work

2.2.1 Motivation

GPU的日益增长的可编程性和计算能力加速了用于建模视觉数据的深度卷积神经网络(CNN)的发展。 CNN正在现实世界中的视觉识别应用中使用,例如视觉场景理解和生物医学图像分析。 这些现实世界中的许多应用程序(例如自动驾驶汽车和机器人)都在资源受限的边缘设备上运行,并要求以低延迟对数据进行在线处理。现有的基于CNN的视觉识别系统需要大量的计算资源,包括内存和功能。 尽管它们在基于高端GPU的机器上(例如NVIDIA TitanX)实现了高性能,但对于资源受限的边缘设备(例如手机和嵌入式计算平台)而言,它们通常过于昂贵。 例如,ResNet-50是最著名的用于图像分类的CNN架构之一,具有2556万个参数(98 MB内存),并执行28亿次高精度操作以对图像进行分类。 对于更深的CNN,例如,这些数字甚至更高。 ResNet101。 这些模型很快使边缘设备上可用的有限资源(包括计算能力,内存和电池)负担过重。 因此,在边缘设备上运行的实际应用中的CNN应该轻巧高效,同时提供高精度。
建立轻量级网络的最新努力可大致分为:

  • 基于网络压缩的方法可以消除预训练模型中的冗余,从而提高效率。 这些模型通常通过不同的参数修剪技术来实现。
  • 基于低位表示的方法使用少量位而不是高精度浮点表示学习的权重。 这些模型通常不会改变网络的结构,并且可以使用逻辑门来实现卷积运算,以实现对CPU的快速处理。
  • 轻量级的CNN通过考虑计算上昂贵的卷积运算来提高网络效率。 这些模型通过其设计在计算上是高效的,即基础模型结构学习的参数较少,浮点运算(FLOP)较少。

2.2.2 Contributions

本文的主要贡献是:

  • 一种通用架构,可有效地对可视数据和顺序数据进行建模。 我们演示了网络在不同任务上的性能,从对象分类到语言建模。
  • 我们提出的架构ESPNetv2扩展了ESPNet ,这是一种基于深度卷积的分段网络,具有深度可分离的卷积,一种有效的卷积形式,用于最先进的高效网络中,包括MobileNets和ShuffleNets。 与深度可分离卷积相比, Depth-wise dilated separable conv深度空洞可分离卷积将ESPNetv2的精度提高了1.4%。我们注意到,与ESPNet 中的 dilated conv空洞卷积(具有426个MFLOP的69.2)相比,ESPNetv2的FLOP更少,可以实现更高的精度(72.1,具有284个MFLOP)
  • 我们的经验结果表明,ESPNetv2在图像分类任务上以更少的FLOPS提供了相似或更好的性能。 在ImageNet分类任务上,在效率和准确性方面,我们的模型优于所有以前的有效模型设计,尤其是在较小的计算预算下。 例如,在28个MFLOP的计算预算下,我们的模型比MobileNetv2胜2%。 对于在PASCAL VOC和Cityscapes数据集上的语义分割,ESPNetv2的性能比ESPNet]高4-5%,并且FLOP少2-4倍。对于目标检测,ESPNetv2优于YOLOv2 4.4%,FLOP减少6倍。 我们还研究了带有热重启的循环学习速率调度程序。 我们的结果表明,该计划程序比标准的固定学习率计划程序更有效。

Depth-wise dilated separable conv深度空洞可分离卷积

在MobileNet中引入了深度可分离卷积,它可以有效降低计算量,这里在深度可分离卷积的基础上在卷积上添加空洞系数,从而增大卷积的感受野,因而将原有n×nn\times nn×n的感受野变为(n−1)⋅r+1( n − 1 ) ⋅ r + 1(n−1)⋅r+1(这里nnn, rrr分别是卷积核的大小与膨胀系数)。不同卷积类型之间的计算量与感受野大小对比如表1所示:

EESPunit EESP单元

利用深度扩展可分卷积和群点卷积的优点,文章提出了一种新的单元EESP,即深度扩展可分卷积的高效空间金字塔(Extremely Efficient Spatial Pyramid),它是专门为边缘器件设计的。我们的网络设计是基于ESPNet架构,一种最先进的高效分割网络。ESPNet架构的基本构建块是ESP模块,如图1a所示。它基于reduce-split-transform-merge策略。ESP单元首先利用逐点卷积将高维输入特征映射映射到低维空间,然后利用不同扩张率的扩张卷积并行学习表示。这个单元是源自于v1版本中的ESP模块,回顾v1版本中的ESP模块,其是在输入特征上使用深度可分离卷积减少维度,之后对这些特征分组,在不同分组的特征上使用不同参数的膨胀卷积,之后使用HFF模块将这些特征融合起来(消除方格效应)。

在这篇文章中主要针对v1中的ESP模块进行改进,引入分组卷积从而衍生除了两个版本的EESP单元。
1)EESP-A,该模块为了使ESP模块的计算效率更高,我们首先用分组逐点卷积代替逐点卷积。然后,我们用高效的深度空洞可分离卷积代替3×3空洞卷积代替计算上昂贵的3×3空洞卷积
为了消除由扩展卷积引起的网格伪影,我们使用计算效率高的层次特征融合(HFF)方法对特征图进行融合其结构见下图所示:

2)EESP,该模块在EESP-A的基础上将深度可分离空洞卷积替换为了组卷积,从而达到进一步减少参数与计算量的目的,其结构见下图所示:

带有stride的EESP模块

为了在多个尺度上有效地学习表示,我们对图1c中的EESP块进行了以下更改:
1)用带有stride对应的空洞卷积替换深度空洞卷积
2)添加平均池化操作而不是identity connection,实现维度匹配
3)将相加的特征融合方式替换为concat形式,增加特征的维度。
4)融合原始输入图像的下采样信息,使得特征信息更加丰富。在下采样和卷积(滤波)操作期间,空间信息丢失。为了更好地编码空间关系并有效地学习表示,我们添加了输入图像和当前下采样单元之间的有效long−rangeshortcutlong-range shortcutlong−rangeshortcut连接。这种连接首先对图像进行下采样,使其与特征图的大小相同,然后使用两个卷积的堆栈学习表示。第一个卷积是学习空间表示的标准3×3卷积,而第二个卷积是学习输入之间的线性组合并将其投影到高维空间的逐点卷积。如图2

网络结构

ESPNetv2网络是使用EESP单元构建的。在每一个空间层次上,ESPNetv2都会多次重复EESP单元,以增加网络的深度。在EESP单元中,我们在每个卷积层之后使用batchnormalizationbatch normalizationbatchnormalization和PReLUPReLUPReLU,但最后一个分组卷积层除外,其中PReLU在元素求和之后应用。为了在每个空间层次上保持相同的计算复杂度,在每次下采样操作之后,feature maps 都会加倍
在我们的实验中,我们设定空洞率rrr与EESP单位(K)中的分支数成比例。
EESP单位的有效感受野随K值的增加而增大,有些核,特别是在7×7等低空间水平上,其有效感受野可能大于feature maps 的大小。因此,这样的核可能对学习没有帮助。为了得到有意义的核,我们用空间维度Wl×HlW^{l}×H^lWl×Hl限制每个空间水平l的有效感受野为:
ndl(Zl)=5+zl/7,Zl∈Wl,Hln^l_d(Z^l)=5+{z^l}/{7},Z^l∈{W^l,H^l}ndl​(Zl)=5+zl/7,Zl∈Wl,Hl,与最低空间水平(即7×7)对应的有效感受野(nd×ndn_d×n_dnd​×nd​)为5×5。在之后,我们在实验中设置了K=4。此外,为了具有齐次结构,我们将群点卷积中的组数设置为平行分支数(g=K)。
不同计算复杂度下的整体ESPNetv2架构如下图所示。

实验 Experiments

图像分类

数据集::mageNet-1000分类数据集,包含128万张用于训练的图像和50万张用于验证的图像。我们使用单个裁剪top-1分类精度来评估我们的网络的性能,即我们在尺寸为224×224的中心裁剪视图上计算精度
训练:

pytoch
CUDA 9.0
cuDNN
SGD
学习率:
T=5是周期,max=0.5,min=0.1为范围
batch size 512
300 epoch
在以下时间间隔将学习率衰减2倍:{50、100、130、160、190、220、250、280}。我们使用标准的数据增强策略。

结果


多标签分类

为了评估迁移学习的可推广性,文章还在MSCOCO多目标分类任务中评估了我们的模型。该数据集由82783个图像组成,这些图像分为80个类,每个图像有2.9个对象标签。在之后,我们在验证集(40504个图像)上使用类和总体F1分数评估了我们的方法。我们使用与ImageNet数据集相同的数据增强和训练设置,对100个时期的ESPNetv2(2.84亿次FLOPs)和Shufflenetv2[29](2.99亿次FLOPs)进行微调,除了ηmax=0.005,ηmin=0.001,学习率在第50和80个时期衰减2。我们使用二元交叉熵损失进行优化**。结果如图所示。ESPNetv2比ShuffleNetv2有很大的优势,尤其是在896×896的图像分辨率下进行测试时,表明EESP单位的大有效感受野有助于ESPNetv2学习更好的表征**。

性能分析

边缘设备具有有限的计算资源和有限的能量开销。一个用于此类设备的高效网络应该消耗更少的功率,并且具有低延迟和高精度。文章在两个不同的设备上测量了我们的网络ESPNetv2以及其他最先进的网络(MobileNets和ShuffeNets)的效率:1)高端图形卡(NVIDIA GTX 1080 Ti)和2)嵌入式设备(NVIDIA Jetson TX2)。为了公平比较,文章使用PyTorch作为一个深度学习框架。

语义分割

数据集:

  • Cityscapes

    • 由5000个精细注释的图像组成(训练/验证/测试:2975/500/1525)
  • VOC2012
    • 具有1.4K训练、1.4K验证和1.4K测试图像
      训练

第一阶段:
256x256 VOC2012
512x256 Cityscapes
100epoch
SGD
初始学习率 0.007
第二阶段
384x384 VOC2012
1024x512 Cityscapes
100epoch
SGD
初始学习率 0.003
以上两个阶段前50epochT=5,后50个阶段采用衰减学习率

结果

ESPNetv2提供了一个有竞争力的性能,而现有的方法是非常有效的。在相似的计算约束条件下,ESPNetv2算法大大优于现有的ENet和ESPNet算法。
值得注意的是,ESPNetv2的准确率比其他高效网络(如ICNet、ERFNet和ContextNet)低2-3%,但少9-12倍FLOPS。

目标检测

数据集:

  • MS-COCO
  • VOC2007
  • VOC2012
    训练

评估标准:MAP

结果

语言模型

数据集:

  • PTB
    训练

基础LSTM
dropout 0.5

结果

总结

文章介绍了一种重量轻、功耗低的网络ESPNetv2,它通过从一个大的有效感受野中学习表征来更好地编码图像中的空间信息。我们的网络是一个通用的网络,具有良好的泛化能力,可用于广泛的任务,包括序列建模。我们的网络在不同的任务(如对象分类、检测、分割和语言建模)中提供了最先进的性能,同时提高了能效。

收获

  • 不同卷积比较
  • 层次特征融合HFF
    • HFF将分类性能提高了约1.5%,同时对网络的复杂性没有影响。
    • 消除了由扩张卷积引起的网格伪影
    • 能够在EESP单元的不同分支之间共享信息,这使得它能够学习丰富和强大的表示
  • long-range shortcut 连接对输入的影响
    • 这些连接是有效和高效的,性能提高了约1%,对网络的复杂性影响很小
  • Fixed vs cyclic学习周期

论文阅读笔记(四)——ESPNetV2:A Light-weight Power Efficient and General Purpose Convolutional Neural Network相关推荐

  1. 论文阅读笔记:Retinal vessel segmentation of color fundus images using multiscale convolutional neural.....

    Retinal vessel segmentation of color fundus images using multiscale convolutional neural network wit ...

  2. 论文阅读笔记(四)——实例分割与掩模R-CNN应用于多摄像机设置中松散的奶牛

    Instance Segmentation with Mask R-CNN Applied to Loose-Housed Dairy Cows in a Multi-Camera Setting 简 ...

  3. 论文阅读003:《Learning local feature descriptors with triplets and shallow convolutional neural networks》

    论文链接:http://www.bmva.org/bmvc/2016/papers/paper119/paper119.pdf github链接:https://github.com/vbalnt/t ...

  4. 论文阅读笔记四十:Deformable ConvNets v2: More Deformable, Better Results(CVPR2018)

    论文源址:https://arxiv.org/abs/1811.11168 摘要 可变形卷积的一个亮点是对于不同几何变化的物体具有适应性.但也存在一些问题,虽然相比传统的卷积网络,其神经网络的空间形状 ...

  5. 论文阅读笔记《Quickly Inserting Pegs into Uncertain Holes using Multi-view Images and Deep Network Trained》

    核心思想   该文提出一种使用基于学习的视觉伺服方法实现插轴入孔(Peg-in-hole)操作的方法, 整个操作可以分成三个阶段:第一阶段通过视觉伺服方法引导机械手靠近洞口,第二阶段通过螺旋搜索的方法 ...

  6. 论文阅读:《Bag of Tricks for Long-Tailed Visual Recognition with Deep Convolutional Neural Networks》

    基于深度卷积神经网络的长尾视觉识别技巧包 摘要 近年来,挑战性长尾分布上的视觉识别技术取得了很大的进展,主要基于各种复杂的范式(如元学习).除了这些复杂的方法外,对训练程序的简单改进也有一定的贡献. ...

  7. 《Mask TextSpotter v3: Segmentation Proposal Network for Robust Scene Text Spotting》论文阅读笔记

    论文阅读笔记 去年在ECCV上发表的<Mask TextSpotter v3: Segmentation Proposal Network for Robust Scene Text Spott ...

  8. HLA-Face: Joint High-Low Adaptation for Low Light Face Detection论文阅读笔记

    HLA-Face: Joint High-Low Adaptation for Low Light Face Detection 论文阅读笔记 这是去年7月读这篇文章的笔记了,今年由于忘记了,又有需要 ...

  9. 论文阅读笔记:MGAT: Multi-view Graph Attention Networks

    论文阅读笔记:MGAT: Multi-view Graph Attention Networks 文章目录 论文阅读笔记:MGAT: Multi-view Graph Attention Networ ...

  10. DnCNN论文阅读笔记【MATLAB】

    DnCNN论文阅读笔记 论文信息: 论文代码:https://github.com/cszn/DnCNN Abstract 提出网络:DnCNNs 关键技术: Residual learning an ...

最新文章

  1. Ext fucionchart插件
  2. gslang——原生golang/RPC描述语言简介
  3. CCNA--增强型内部网关路由选择协议(EIGRP)
  4. 6.824 Raft lesson4 2020(一)
  5. 真实不装| 阿里巴巴新人上路指北
  6. python中的参数_python中参数解析
  7. POJ 1830.开关问题(高斯消元)
  8. Kotlin入门(3)基本变量类型的用法
  9. 我心目中的支付宝架构
  10. 如何删除后缀.Tater勒索病毒并解密.tater勒索病毒加密的病毒文件
  11. svn删除文件和解决冲突
  12. Java常用类--java.lang.StringBuilder
  13. Aspose.Words利用Word模板导出Word文档
  14. 正则 显示0-100的数字(可以是小数也可以是整数,不能是01,02可以是0.1)
  15. 斑马射频打印机同时操作打印、写入EPC、读TID
  16. 脱壳2 (15PB pack)
  17. python 使用plt画图,去除图片四周的白边
  18. 技术手册:深入浅析云存储部署三步走
  19. groovy解析HTML 隐藏层,Groovy解析生成标记语言XML HTML
  20. android treble 三星,三星S8/Note8升Android 8.0后 确认不支持Project Treble特性

热门文章

  1. Python程序打包exe文件(pyinstaller)
  2. phpexcel读取输出操作
  3. Web开发技术——JQuery8(添加元素和删除元素)
  4. 【原创】软件测试基础流程
  5. 认识XinYiCMS从这里开始!
  6. oracle 简单job
  7. 白话数字签名(1)——基本原理
  8. (转)ASP.NET程序中常用代码汇总
  9. Java神鬼莫测之Mybatis--增删改查CRUD以及批量操作(二)
  10. java在线聊天系统_Java-在线聊天系统-非线程