Press "Enter" to skip to content

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

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

 

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

 

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

论文地址:https://arxiv.org/abs/1804.06882

 

论文代码:https://github.com/Robert-JunWang/Pelee

 

Introduction

 

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

 

PeleeNet

 

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

 

Two-Way Dense Layer

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

 

Stem Block

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

 

Dynamic Number of Channels in Bottleneck Layer

在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添加了卷积,用以获得更强的特征表达能力。

 

Architecture

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

 

Pelee

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

 

Feature Map Selection,使用5个尺寸的特征图(19×19, 10×10, 5×5, 3×3, 1×1),为了减少计算消耗,没有使用38×38的特征图。

 

Residual Prediction Block,在进行预测之前,使用图4的ResBlock进行特征提取,保证特征表达能力。

 

Small Convolutional Kernel for Prediction,由于使用了ResBlock进行了特征的进一步提取,在预测部分可以使用卷积核加速,准确率与卷积差不多。

 

Experiment

 

PeleeNet

对PeleeNet的key feature进行验证。

与其它轻量级网络对比。

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

 

Pelee

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

各改进措施的性能对比。

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

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

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

 

CONCLUSION

 

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

 

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注