大家好,我是甜筒小哥,第一次在知乎写文章,文笔羞涩,还请大家多多包涵!
原文链接:https://arxiv.org/abs/1811.04533
一、概述
M2Det是由19年北京大学提出的一种单阶段目标检测方法。它解决了什么问题呢?目标检测算法都使用特征金字塔来缓解目标尺度变化带来的问题。但这就带来了一些问题,根据骨干网络固有的多尺度金字塔结构构建特征金字塔,而骨干网络本来是被设计用来分类的。所以原文就提出了MLFPN来构建对于目标检测更加有效的特征金字塔。并且为了评估MLFPN的效果,设计了一个新的目标检测器M2Det,在MS-COCO上,单尺度版本和多尺度版本AP分别达到41.0和44.2 ,11.8FPS,成为了新的SOTA。
二、介绍
Scale variation across object instances is one of the major challenges for the object detection task,and usually there are two strategies to solve the problem arising from this challenge.
通常有两种方法来缓解目标尺度变换的问题,第一种是图金字塔( image pyramid),第二种是特征金字塔( feature pyramid)。第二种方法比第一种方法的效果要好,但任然有很多局限性,看图,SSD是使用VGG最后两层以及额外的四层构建特征金字塔,STDN仅使用Densenet最后一个Dense block再通过池化和尺度变化获得特征金字塔,FPN也称为U型网络,经过上采样操作,然后对应融合相同的scale得到特征金字塔。
为了更好地解决目标检测中尺度变化带来的问题,本文提出一种更有效的特征金字塔结构MLFPN, 其大致流程如下图所示:首先,对主干网络提取到的特征通过FFMv1处理,得到Base feature;然后通过TUM和FFMv2的交替堆叠,提取更有代表性的Multi-level&Mutli-scale特征;最后通过SFAM,引入通道注意力机制,得到多级特征金字塔用于最终阶段的预测。
三、所提方法
如上图所示,MLFPN主要有3个模块组成:
1)FFM(Feature Fusion Module)特征融合模块
2)TUM( Thinned U-shape Module)细化U型模块
3)SFAM(Scale-wise Feature Aggregation Module)尺度特征聚合模块
FFM用于融合M2Det中不同级别的特征,先通过1x1卷积压缩通道数,再进行拼接。具体而言:
(a)为FFMv1,使用两种不同scale的feature map作为输入,所以在拼接操作之前加入了上采样操作来调整大小。
(b)为FFMv2,FFMv2的两个输入的scale相同,所以比较简单。
TUM使用了比FPN和RetinaNet更薄的U型网络。在上采样和元素相加操作之后加上1x1卷积来加强学习能力和保持特征平滑度。TUM中每个解码器的输出共同构成了该TUM的multi-scale输出。每个TUM的输出共同构成了multi-level&multi-scale特征,前面的TUM提供low level feature,后面的TUM提供high level feature.如下图所示。
SFAM旨在聚合TUMs产生的多级多尺度特征,以构造一个多级特征金字塔。在first stage,SFAM沿着channel维度将拥有相同scale的feature map进行拼接,这样得到的每个scale的特征都包含了多个level的信息。然后在second stage,借鉴SENet的思想,加入channel-wise attention,以更好地捕捉有用的特征。
四、网络配置
backbone采用两种,VGG和Resnet,设置不同的特征金字塔通道数和TUM的数量,检测部分与SSD基本一致。
五、实验
在MS-COCO数据集上,与SOTA相比,精度最优。还做了一个Ablation study,效果如图所示。
最后,再贴一张精度和时间的对比图。
本文暂时没有评论,来添加一个吧(●'◡'●)