目标检测算法---M2Det学习

算法来源

  • 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学习_第1张图片

网络结构

M2Det主要是在SSD的基础上集成了MLFPN结构。
目标检测算法---M2Det学习_第2张图片
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。
目标检测算法---M2Det学习_第3张图片
(a)

FFM2是将上一个TUM结构中输出最大分辨率的Feature map(4040)和base feature进行concat:对于通道数是768的base feature首先通过11卷积进行了降维为128。
目标检测算法---M2Det学习_第4张图片
(b)

TUM

TUM结构的主要作用是实现特征的深度提取,其基本结构如下图所示:
目标检测算法---M2Det学习_第5张图片
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后的特征通道上,实现对原特征通道重要性的修正。
目标检测算法---M2Det学习_第6张图片

效果

目标检测算法---M2Det学习_第7张图片

你可能感兴趣的:(目标检测算法,深度学习)