【论文阅读笔记】Pelee: A Real-Time Object Detection System on Mobile Devices


(这篇论文的做者的思路是真滴很清晰)

(一)论文地址:

https://arxiv.org/abs/1804.06882html

(二)核心思想:

做者在 2016 年提出了一个基于 DenseNet 的叫作 PeleeNet 的轻量级图像识别网络,实现了比 MobileNet 更高的准确率,并在此基础上提出了可使用 PeleeNet 做为目标检测网络(论文中基于 SSD)的 Backbone,来解决大量使用 DW Conv 形成的缺少特征有效利用的问题;web

(三)Two-Way Dense Layer:

在这里插入图片描述

受到 GoogleNet 网络的启发,做者提出了能够在原来 dense layer 的基础上增长一条通道;网络

其中增长的第二层通道使用了 2 层 3×3 卷积,所以比原来的结果具备更大的感觉野,从而用于较大目标的检测;app

(四)Stem Block:

在这里插入图片描述

受 InceptionV4 和 DSOD 网络结构的启发,做者在使用第一个 Dense Layer 前首先设计了一个高效的主干网络,在不显著增长网络计算复杂度的前提下,大大增长了网络的特征表现能力;svg

(五)Dynamic number of channels in bottleneck layer:

在这里插入图片描述
须要注意的另外一点就是,瓶颈层通道数目会随着输入维度的变化而变化,以保证输出通道的数目不会超过输出通道;函数

与原始的 DenseNet 结构相比,实验代表这种方法在节省 28.5% 的计算资源的同时仅仅会对准确率有很小的影响;spa

(六)Transition Layer without Compression:

做者在试验中发现,DenseNet 提出的在 Transition Layer 中压缩 channel 数的方法会下降特征的表达能力,所以提出在 Transition Layer 也要维持与输入通道相同的输出通道数目;设计

(七)Composite Function:

为了提升实际的运行速度,做者提出了采用以下的复合函数做为预激活层:3d

C o n v o l u t i o n B a t c h N o r m a l i z a t i o n R e l u Convolution - Batch Normalization - Relu orm

对于 DenseNet 的后置激活,全部的 Batch Normalization 能够在推理阶段(中间层)与卷积层相结合,从而大大提升了运行速度;

同时为了消除这种操做对准确率带来的影响,做者使用一个浅层的、较宽的网络结构,并在最后一个Dense Block 以后还增长了一个 1×1 的卷积层,以获得更强的特征表达能力;

(八)Feature Map Selection:

与 SSD 稍微不一样的是,做者提出了使用 19 x 19, 10 x 10, 5 x 5, 3 x 3, 1 x 1 大小的五个特征层,不使用 38×38 大小的特征层从而减少计算量;

(九)Residual Prediction Block:

在这里插入图片描述
做者在每一个特征层用于检测前,增长了一个 ResBlock 模块;

(十)Small Convolutional Kernel for Prediction:

不像其余网络使用 3×3 卷积生成检测结果,这里使用了 1×1 卷积,在保证准确率几乎不降低的状况下,计算消耗降低了 21.5%;

(十一)PeleeNet 的网络结构:

在这里插入图片描述

(十二)实验结果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述