Single-shot目标检测新模型,使用multi-level特征。
作者机构:Qijie Zhao等,北京大学&阿里达摩院
文章标题:《M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid》
原文链接:https://arxiv.org/abs/1811.04533
相关repo:https://github.com/qijiezhao/M2Det
https://github.com/tadax/m2det
目录
摘要
介绍
所提方法
MLFPN详解
网络配置
实验部分
摘要
介绍
为了解决目标实例的尺度变化问题,主流做法有两种:
如下图所示,文中列举了四种风格的特征金字塔:SSD型、FPN型、STDN型,以及本文所提出的 MLFPN型。并总结了前三种特征金字塔的缺点,主要有两点:一是均基于分类网络作为主干提取,对目标检测任务而言特征表示可能不够;二是每个feature map仅由主干网络的single level给出,不够全面(一般来说,高层特征利于进行分类,低层特征利于回归目标位置)。
SSD型:使用了主干网络的最后两层,再加上4个使用stride=2卷积的下采样层构成;
FPN型:也称为U型网络,经过上采样操作,然后对应融合相同的scale;
STDN型:基于DenseNet的最后一个dense block,通过池化和scale-transfer操作来构建;
MLFPN型:本文新提出,整体思想是Multi-level&Multi-scale,下文详述。
为了更好地解决目标检测中尺度变化带来的问题,本文提出一种更有效的特征金字塔结构MLFPN, 其大致流程如下图所示:首先,对主干网络提取到的特征进行融合;然后通过TUM和FFM提取更有代表性的Multi-level&Mutli-scale特征;最后通过SFAM融合多级特征,得到多级特征金字塔用于最终阶段的预测。
所提方法
M2Det使用主干网络+MLFPN来提取图像特征,然后采用类似SSD的方式预测密集的包围框和类别得分,通过NMS得到最后的检测结果。
MLFPN详解
如上图所示,MLFPN主要有3个模块组成:
1)特征融合模块FFM;
2)细化U型模块TUM;
3)尺度特征聚合模块SFAM.
首先, FFMv1对主干网络提取到的浅层和深层特征进行融合,得到base feature;
其次,堆叠多个TUM和FFMv2,每个TUM可以产生多个不同scale的feature map,每个FFMv2融合base feature和上一个TUM的输出,并给到下一个TUM作为输入(更高level)。每个level的输出如下公式所述;
最后,SFAM通过scale-wise拼接和channel-wise attention来聚合multi-level&multi-scale的特征。
特征融合模块FFM
FFM用于融合M2Det中不同级别的特征,先通过1x1卷积压缩通道数,再进行拼接。具体而言:
FFMv1使用两种不同scale的feature map作为输入,所以在拼接操作之前加入了上采样操作来调整大小;
FFMv2的两个输入的scale相同,所以比较简单。两种FFM的细节如下图所示。
细化U型模块TUM
TUM使用了比FPN和RetinaNet更薄的U型网络。在上采样和元素相加操作之后加上1x1卷积来加强学习能力和保持特征平滑度。TUM中每个解码器的输出共同构成了该TUM的multi-scale输出。每个TUM的输出共同构成了multi-level&multi-scale特征,前面的TUM提供low level feature,后面的TUM提供high level feature.TUM的细节如下图所示:
尺度特征聚合模块SFAM
SFAM旨在聚合TUMs产生的多级多尺度特征,以构造一个多级特征金字塔。在first stage,SFAM沿着channel维度将拥有相同scale的feature map进行拼接,这样得到的每个scale的特征都包含了多个level的信息。然后在second stage,借鉴SENet的思想,加入channel-wise attention,以更好地捕捉有用的特征。SFAM的细节如下图所示:
网络配置
M2Det的主干网络采用VGG-16和ResNet-101
MLFPN的默认配置包含有8个TUM,每个TUM包含5个跨步卷积核5个上采样操作,所以每个TUM的输出包含了6个不同scale的特征。
在检测阶段,为6组金字塔特征每组后面添加两个卷积层,以分别实现位置回归和分类。
后处理阶段,使用soft-NMS来过滤无用的包围框。
实验部分
贴一张效率VS精度的对比图。