算法来源
-
Single-shot目标检测新模型,使用multi-level特征。
-
作者机构:Qijie Zhao等,北京大学&阿里达摩院
-
文章标题:《M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid》
-
paper地址:https://arxiv.org/abs/1811.04533
-
GitHub地址:https://github.com/qijiezhao/M2Det
算法简要介绍
- 提出多级特征金字塔网络MLFPN
- 基于提出的MLFPN,结合SSD,提出一种新的Single-shot目标检测模型M2Det
- 在MS-COCO benchmark上,M2Det的单尺度版本和多尺度版本AP分别达到41.0和44.2
- 这篇文章提出了一个MLFPN结构,并把这个网络嵌套到SSD中,实验结果非常好。和yolov3在coco数据集上达到相同精度,开销是其60%;和yolov3开销相同时,map可以比yolov3高4个点,是one-stage 检测器的state-of-art。(这篇文章来源于AAAI2019)
网络结构
M2Det主要是在SSD的基础上集成了MLFPN结构。
MLFPN(Multi-Level Feature Pyramid Network)主要有三分部分组成:1.FFM(Feature Fusion Module);2.TUM(Thinned U-shape Module);3.SFAM(Scale-wise Feature Aggregation Module).除去MFLFPN的M2Det就是简化的SSD。
FFM
FFM有2种,分别是FFM1如图(a),FFM2如图(b),其作用主要是将多个特征输入转换成相同的尺寸后进行特征融合。
FFM1是将backbone里面特征图大小为2020和4040的进行concat:对于大小为2020的特征图,首先利用了11卷积进行通道降维,然后通过upsample变为40*40。
(a)
FFM2是将上一个TUM结构中输出最大分辨率的Feature map(4040)和base feature进行concat:对于通道数是768的base feature首先通过11卷积进行了降维为128。
(b)
TUM
TUM结构的主要作用是实现特征的深度提取,其基本结构如下图所示:
MLFPN里面有2个超参,level和scale:level是指MLFPN中TUM的数量,scale是每个TUM里面U型结构右半部分的数量,实际论文这2个超参的配置为:level=8,scale=6。TUM结构中共用到5个blinear upsamle + ele-wise sum这样的结构,因此有6个scale。将多个TUM结构级联起来,其提取特征的能力逐渐加强,其特征的深度也由shallow->medium->deep。
SFAM
SFAM的主要作用是将不同level的特征按照相同scale进行concat,level越大其提取的特征越深,如下图所示,concat之后还有个SE Block操作。SE block主要有3个操作实现:
(1)Squeeze,这里用的是global average pooling,将输入的每个二维的特征pooling成一个实数,这个实数具有全局的感受野,并且squeeze后输出的维度和输入的特征通道数相同;
(2)Excitation,这个操作类似循环神经网络中门操作,通过2个全连接层Fc1和Fc2实现,最终生成的参数w为每个通道设置对应的权重;
(3)Reweighting,将Excitation学到的权重加权到concat后的特征通道上,实现对原特征通道重要性的修正。