PeleeNet:精修版DenseNet,速度猛增至240FPS | NeurIPS 2018

PeleeNet是DenseNet的一个变体,没有使用流行的深度可分离卷积,PeleeNet和Pelee仅通过结构上的优化取得了很不错的性能和速度,读完论文可以学到很多网络设计的小窍门。

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

论文: Pelee: A Real-Time Object Detection System on Mobile Devices

PeleeNet:精修版DenseNet,速度猛增至240FPS | NeurIPS 2018_第1张图片

Introduction


  基于DenseNet的稠密连接思想,论文通过一系列的结构优化,提出了用于移动设备上的网络结构PeleeNet,并且融合SSD提出目标检测网络Pelee。从实验来看,PeleeNet和Pelee在速度和精度上都是不错的选择。

PeleeNet


  PeleeNet基于DenseNet思想,加入了几个关键的改进。

Two-Way Dense Layer

PeleeNet:精修版DenseNet,速度猛增至240FPS | NeurIPS 2018_第2张图片

  受GoogLeNet的启发,论文将原来的dense layer改为2-way dense layer,如图1b所示,新的路径叠加两个$3\times 3$卷积来学习获取不同的感受域特征,特别是大物体特征。

Stem Block

PeleeNet:精修版DenseNet,速度猛增至240FPS | NeurIPS 2018_第3张图片

  DenseNet使用stride=2的$7\times 7$卷积对输入进行初步处理,受Inception-v4和DSOD启发,论文设计了一个高效的stem block,结构如图2所示,两条路径能提取不同的特征。这样可以在不带来过多计算耗时的前提下,提高网络的特征表达能力。

Dynamic Number of Channels in Bottleneck Layer

PeleeNet:精修版DenseNet,速度猛增至240FPS | NeurIPS 2018_第4张图片

  在DenseNet中,使用bottleneck layer进行输入特征的压缩,但是bottleneck layer的输出固定为dense layer输出的4倍。在网络的早些层中,会存在bottleneck layer的输出比输入更多的情况,导致效率下降。为此,论文将bottleneck layer的输出大小跟输入挂钩,保证不大于输入大小,从图4可以看出,修改后计算效率提升了一倍。

Transition Layer without Compression

  DenseNet在dense layer间使用transition layer进行特征维度压缩,压缩比为0.5。论文通过实验发现这个操作会减弱网络特征的表达能力,所以将transition layer的输出维度固定为输入的大小,不再压缩。

Composite Function

  DenseNet使用Conv-Relu-BN的预激活方式,论文将其修改为Conv-BN-Relu的后激活方式,这样卷积层和BN层在inference时能够进行合并运算,提高计算速度。另外,论文在最后的dense layer添加了$1\times 1$卷积,用以获得更强的特征表达能力。

Architecture

PeleeNet:精修版DenseNet,速度猛增至240FPS | NeurIPS 2018_第5张图片

  PeleeNet的结构如表1所示,包含一个stem block、4个特征提取阶段以及最后的stride为2的平均池化层。论文纠结使用3个特征提取阶段还是4个特征提取阶段,3个阶段需要stem block更多地缩减特征图大小,考虑到开头过快地减小特征图会大小会减弱网络的表达能力,最终仍采用4个阶段。

Pelee


PeleeNet:精修版DenseNet,速度猛增至240FPS | NeurIPS 2018_第6张图片

  基于SSD,将PeleeNet作为主干网络并做了几个优化,提出目标检测网络Pelee,主要的优化点如下:

  • Feature Map Selection,使用5个尺寸的特征图(19x19, 10x10, 5x5, 3x3, 1x1),为了减少计算消耗,没有使用38x38的特征图。
  • Residual Prediction Block,在进行预测之前,使用图4的ResBlock进行特征提取,保证特征表达能力。
  • Small Convolutional Kernel for Prediction,由于使用了ResBlock进行了特征的进一步提取,在预测部分可以使用$1\times 1$卷积核加速,准确率与$3\times 3$卷积差不多。

Experiment


PeleeNet

PeleeNet:精修版DenseNet,速度猛增至240FPS | NeurIPS 2018_第7张图片

  对PeleeNet的key feature进行验证。

PeleeNet:精修版DenseNet,速度猛增至240FPS | NeurIPS 2018_第8张图片

  与其它轻量级网络对比。

PeleeNet:精修版DenseNet,速度猛增至240FPS | NeurIPS 2018_第9张图片

PeleeNet:精修版DenseNet,速度猛增至240FPS | NeurIPS 2018_第10张图片

  PeleeNet在各种设备上的实际推理速度对比。

Pelee

PeleeNet:精修版DenseNet,速度猛增至240FPS | NeurIPS 2018_第11张图片

  Pelee与其它网络的设置对比。

PeleeNet:精修版DenseNet,速度猛增至240FPS | NeurIPS 2018_第12张图片

  各改进措施的性能对比。

PeleeNet:精修版DenseNet,速度猛增至240FPS | NeurIPS 2018_第13张图片

  与其它网络的在VOC上的性能对比。

PeleeNet:精修版DenseNet,速度猛增至240FPS | NeurIPS 2018_第14张图片

  各设备上的推理速度对比。

PeleeNet:精修版DenseNet,速度猛增至240FPS | NeurIPS 2018_第15张图片

  与其它网络的在COCO上的性能对比。

CONCLUSION


  PeleeNet是DenseNet的一个变体,没有使用流行的深度可分离卷积,PeleeNet和Pelee仅通过结构上的优化取得了很不错的性能和速度,读完论文可以学到很多网络设计的小窍门



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

work-life balance.

你可能感兴趣的:(PeleeNet:精修版DenseNet,速度猛增至240FPS | NeurIPS 2018)