ESPNet/ESPNetV2:空洞卷积金字塔 | 轻量级网络

ESPNet系列的核心在于空洞卷积金字塔,每层具有不同的dilation rate,在参数量不增加的情况下,能够融合多尺度特征,相对于深度可分离卷积,深度可分离空洞卷积金字塔性价比更高。另外,HFF的多尺度特征融合方法也很值得借鉴

来源:晓飞的算法工程笔记 公众号

ESPNet


论文: ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation

ESPNet/ESPNetV2:空洞卷积金字塔 | 轻量级网络_第1张图片

  • 论文地址:http://arxiv.org/abs/1803.06815
  • 论文代码:http://github.com/sacmehta/ESPNet

Introduction

  ESPNet是用于语义分割的轻量级网络,核心在于ESP模块,该模块包含point-wise卷积和空洞卷积金字塔,分别用于降低计算复杂度以及重采样各有效感受域的特征。ESP模块比其它卷积分解方法(mobilenet/shufflenet)更高效,ESPNet能在GPU/笔记本/终端设备上达到112FPS/21FPS/9FPS。

ESP module

ESPNet/ESPNetV2:空洞卷积金字塔 | 轻量级网络_第2张图片

  ESP模块将标准卷积分解成point-wise卷积和空洞卷积金字塔(spatial pyramid of dilated convolutions),point-wise卷积将输入映射到低维特征空间,空洞卷积金字塔使用 K K K n × n n\times n n×n空洞卷积同时重采样低维特征,每个空洞卷积的dilation rate为 2 k − 1 2^{k-1} 2k1 k = { 1 , ⋯   , K } k=\{1, \cdots, K\} k={1,,K}。这种分解方法能够大量减少ESP模块的参数量和内存,并且保持较大的有效感受域。

  • Width divider K

  对于输入输出维度为 M M M N N N,卷积核大小为 n × n n\times n n×n的标准卷积,需要学习的参数量为 n 2 M N n^2MN n2MN,有效感受域为 n 2 n^2 n2。超参数 K K K用来调节ESP模块的计算复杂度,首先使用point-wise卷积将输入维度从 M M M降为 N K \frac{N}{K} KN(reduce),然后将低维特征分别使用上述的空洞卷积金字塔进行处理(split and transform),最后将K组空洞卷积的输出合并(merge)。ESP模块包含 M N K + ( n N ) 2 K \frac{MN}{K}+\frac{(nN)^2}{K} KMN+K(nN)2参数,有效感受域为 [ ( n − 1 ) 2 K − 1 + 1 ] 2 [(n-1)2^{K-1} + 1]^2 [(n1)2K1+1]2,在参数和感受域方面都有一定的提升。

  • Hierarchical feature fusion (HFF) for de-gridding

ESPNet/ESPNetV2:空洞卷积金字塔 | 轻量级网络_第3张图片

  论文发现,尽管空洞卷积金字塔带来更大的感受域,但直接concate输出却会带来奇怪网格纹路,如图2所示。为了解决这个问题,在concate之前先将输出进行层级相加,相对于添加额外的卷积来进行后处理,HFF能够有效地解决网格纹路而不带来过多的计算量。另外,为了保证网络的梯度传递,在ESP模块添加了一条从输入到输出的shortcut连接。

Relationship with other CNN modules

ESPNet/ESPNetV2:空洞卷积金字塔 | 轻量级网络_第4张图片

  论文列举了部分轻量级网络的核心模块进行了对比,可以看到ESP模块在参数量/内存/感受域方面都有很不错的数值。

ESPNet

ESPNet/ESPNetV2:空洞卷积金字塔 | 轻量级网络_第5张图片

  图4为ESPNet的演进过程, l l l为特征图大小,相同 l l l的模块具有相同大小的特征图,红色和绿色模块分别为下采样和上采样模块,一般无说明即 α 2 = 2 \alpha_2=2 α2=2 α 3 = 8 \alpha_3=8 α3=8

Experiments

  这里只列举了部分实验,具体的其它实验可以去看看论文。

ESPNet/ESPNetV2:空洞卷积金字塔 | 轻量级网络_第6张图片

  替换图4d中的ESP模块进行实验对比。

ESPNet/ESPNetV2:空洞卷积金字塔 | 轻量级网络_第7张图片

  与其它语义分割模型进行对比。

Conclusion

  ESPNet是语义分割的轻量级网络,在保证轻量化的同时,针对语义分割的场景进行了核心模块的设计,使用空洞卷积金字塔进行多感受域的特征提取以及参数量的减少,并且使用HFF来巧妙消除网格纹路,十分值得借鉴。

ESPNetV2


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

ESPNet/ESPNetV2:空洞卷积金字塔 | 轻量级网络_第8张图片

  • 论文地址:http://arxiv.org/abs/1811.11431
  • 论文代码:http://github.com/sacmehta/ESPNetv2

Introduction

  模型轻量化共包含3种方法,分别为模型压缩,模型量化以及轻量化设计。论文设计了轻量级网络ESPNetv2,主要贡献如下:

  • 通用的轻量化网络结构,能够支持视觉数据以及序列化数据,即能支持视觉任务和自然语言处理任务。
  • 在ESPNet基础上,加入深度可分离空洞卷积进行拓展,相对于ESPNet拥有更好的精度以及更少的参数。
  • 从实验来看,ESPNetv2在多个视觉任务上有较好的准确率和较低的参数量,任务包括图像分类、语义分割、目标检测。
  • 设计了cyclic learning rate scheduler,比一般的固定学习率的scheduler要好。

Depth-wise dilated separable convolution

ESPNet/ESPNetV2:空洞卷积金字塔 | 轻量级网络_第9张图片

  假设输入为 X ∈ R W × H × c X\in \mathbb{R}^{W\times H\times c} XRW×H×c,卷积核为 X ∈ K n × n × c × c ^ X\in \mathbb{K}^{n\times n\times c \times \hat{c}} XKn×n×c×c^,输出为 Y ∈ R W × H × c ^ Y\in \mathbb{R}^{W\times H\times \hat{c}} YRW×H×c^,标准卷积、分组卷积,深度分离卷积以及深度可分离空洞卷积的参数量和有效感受域如表1所示。

EESP unit

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TvXgik8U-1611808076593)(http://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c32eac204f7e49b3819616fc46bfaa25~tplv-k3u1fbpfcp-zoom-1.image)]

  论文基于深度可分离空洞卷积以及分组point-wise卷积改进ESP模块,提出了EESP(Extremely Efficient Spatial Pyramid)模块。原始的ESP模块结构如图1a所示,论文首先将point-wise卷积替换为分组point-wise卷积,然后将计算量较大的空洞卷积替换为深度可分离空洞卷积,最后依然使用HFF来消除网格纹路,结构如图1b所示,能够降低 M d + n 2 d 2 K M d g + ( n 2 + d ) d K \frac{Md+n^2d^2K}{\frac{Md}{g}+(n^2+d)dK} gMd+(n2+d)dKMd+n2d2K倍计算复杂度, K K K为空洞卷积金字塔层数。考虑到单独计算 K K K个point-wise卷积等同于单个分组数为 K K K的point-wise分组卷积,而分组卷积的在实现上更高效,于是改进为图1c的最终结构。

ESPNet/ESPNetV2:空洞卷积金字塔 | 轻量级网络_第10张图片

  为了更高效地学习多尺度特征,论文提出下采样版本的EESP模块(Strided EESP with shortcut connection to an input image),主要进行以下改进:

  • 修改深度可分离空洞卷积为stride=2的版本。
  • 为模块原本的shortcut添加平均池化操作。
  • 将element-wise相加操作替换为concate操作,这样能增加输出的特征维度。
  • 为防止随着下采样产生的信息丢失,添加一条连接输入图像的shortcut,该路径使用多个池化操作来使其空间大小与模块输出的特征图一致,然后使用两个卷积来提取特征并调整维度,最后进行element-wise相加。

Network architecture

ESPNet/ESPNetV2:空洞卷积金字塔 | 轻量级网络_第11张图片

  ESPNetv2的网络结构如表2所示,ESSP模块的每个卷积后面都接BN层以及PReLU,模块最后的分组卷积的PReLU在element-wise相加后进行, g = K = 4 g=K=4 g=K=4,其它与ESPNet类似。

Cyclic learning rate scheduler

  在图像分类的训练中,论文设计了循环学习率调度器,在每个周期 t t t,学习率的计算为:

η m a x \eta_{max} ηmax η m i n \eta_{min} ηmin分别为最大和最小学习率, T T T为循环周期。

ESPNet/ESPNetV2:空洞卷积金字塔 | 轻量级网络_第12张图片

  循环学习率调度器的可视化如图4所示。

Experiments

ESPNet/ESPNetV2:空洞卷积金字塔 | 轻量级网络_第13张图片

  图像分类性能对比。

ESPNet/ESPNetV2:空洞卷积金字塔 | 轻量级网络_第14张图片

  语义分割性能对比。

ESPNet/ESPNetV2:空洞卷积金字塔 | 轻量级网络_第15张图片

  目标检测性能对比。

ESPNet/ESPNetV2:空洞卷积金字塔 | 轻量级网络_第16张图片

  文本生成性能对比。

Conclusion

  ESPNetv2在ESPNet的基础上结合深度分离卷积的设计方法,进行了进一步的模型轻量化,结合了更丰富的特征融合,模型能够拓展到多种任务中,具有很不错的性能。

CONCLUSION


  ESPNet系列的核心在于空洞卷积金字塔,每层具有不同的dilation rate,在参数量不增加的情况下,能够融合多尺度特征,相对于深度可分离卷积,深度可分离空洞卷积金字塔性价比更高。另外,HFF的多尺度特征融合方法也很值得借鉴。



如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

ESPNet/ESPNetV2:空洞卷积金字塔 | 轻量级网络_第17张图片

你可能感兴趣的:(晓飞的算法工程笔记,卷积,算法,网络,计算机视觉,神经网络)