轻量化网络:PeleeNet及其Pelee-SSD解析

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

论文链接https://arxiv.org/abs/1804.06882

开源链接https://github.com/Robert-JunWang/Pelee

                  https://github.com/nnUyi/PeleeNet

参考链接: https://blog.csdn.net/nature553863/article/details/85321210

                 https://blog.csdn.net/qq_14845119/article/details/83015645

          PeleeNet (ICLR2018论文)遵循 DenseNet 的创新连接模式和一些关键设计原则,是一种基于Densenet的轻量化网络变体(variant),主要面向移动端部署。它也被设计来满足严格的内存和计算预算。在 Stanford Dogs (Khosla et al. (2011)) 数据集上的实验结果表明:PeleeNet 的准确率要比 DenseNet 的原始结构高 5.05%,比 MobileNet (Howard et al. (2017)) 高 6.53%。PeleeNet 在 ImageNet ILSVRC 2012 (Deng et al. (2009)) 上也有极具竞争力的结果。PeleeNet 的 top-1 准确率要比 MobileNet 高 0.6%。需要指出的是,PeleeNet 的模型大小是 MobileNet 的 66%。

PeleeNet 的一些关键特点如下:

1、两路稠密层(Two-Way Dense Layer)

        受 GoogLeNet (Szegedy et al. (2015)) 的两路稠密层的激发,研究者使用了一个两路密集层来得到不同尺度的感受野。其中一路使用一个 3×3 的较小卷积核,它能够较好地捕捉小尺度的目标。另一路使用两个 3×3 的卷积核来学习大尺度目标的视觉特征。该结构如下图 所示:

2、Stem Block:实现输入图像空间维度的第一次降采样(stride=2)和通道数的增加,并且在不增加较多计算量的前提下,该模块能够确保较强的特征表达能力。PeleeNet的网络基础模块为如下图所示的Stem Block。

原文解释:This block is placed before the first dense layer for the sake of cost efficiency. This stem block can effectively improve the feature expression ability without adding computational cost too much. The structure is shown as follows.
 

3、瓶颈层通道的动态数量(Dynamic Number of Channels in Bottleneck Layer)

        瓶颈层通道数目会随着输入维度的变化而变化,以保证输出通道的数目不会超过输出通道。与原始的 DenseNet 结构相比,实验表明这种方法在节省 28.5% 的计算资源的同时仅仅会对准确率有很小的影响。

4、没有压缩的转换层(Transition Layer without Compression)

      过渡层(transition layer)的输入输出通道数保持一致,即为dense group中最后一个dense block的输出通道数(in_ch+n*growth_rate)。实验表明,DenseNet 提出的压缩因子会损坏特征表达,PeleeNet 在转换层中也维持了与输入通道相同的输出通道数目。

5、复合函数(Composite Function)

      为了提升实际的速度,采用后激活的传统智慧(Convolution - Batch Normalization (Ioffe & Szegedy (2015)) - Relu))作为我们的复合函数,而不是 DenseNet 中所用的预激活。对于后激活而言,所有的批正则化层可以在推理阶段与卷积层相结合,这可以很好地加快速度。为了补偿这种变化给准确率带来的不良影响,研究者使用一个浅层的、较宽的网络结构。在最后一个密集块之后还增加了一个 1×1 的卷积层,以得到更强的表征能力。

基于上述改进,Pelee分类网络的总体结构如下:

Pelee-SSD目标检测网络

以PeleeNet为主干(backbone)的SSD目标检测网络,具备轻量化的特点,非常适合移动端的部署。具体结构改进包括以下三点:

1)Feature Map Selection:为了节省计算量,只将5个尺度的Feature Map连接至检测分支,即 (19 x 19, 10 x 10, 5 x 5, 3
x 3, and 1 x 1),没有使用38 x 38的feature map,且anchor的尺寸设计如下:

2)Residual Prediction Block:在每个检测分支的检测层之前,加入轻量化的残差块,以确保特征表达能力:

3)Small Convolutional Kernel for Prediction:检测层(ResBlock模块中)替换为1x1卷积,相比3*3卷积,可以减少21.5%的计算量。

实验结果如上表,在ImageNet上取得了比MobileNet-v1更好的精度;并在VOC与COCO数据集上,取得了比SSD-Mobilenet更好的mAP;而相比于基于MobileNet的实现结构,基于PeleeNet的实现结构具有更少的参数量与计算量。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页