M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid Network

M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid Network

阅读笔记

文章摘要

  • 特征金字塔是经典的单阶段(one-stage)与多阶段(multi-stage)目标检测算法使用的一种策略,单阶段如: DSSD, RetinaNet, RefineDet; 多阶段如: MaskRCNN, DetNet)。该策略在一定程度上可以降低目标实例的尺度变换所带来的检测问题。虽然这些基于特征金字塔的目标检测算法取得了不错的效果,但它们依然存在着一些局限之处。因为这些算法基于的特征金字塔,仅仅只是根据目标分类主网络固有的多尺度,金字塔式的结构构建的。在本文的工作中,为了更好的克服不同尺度下的目标检测问题,本文提出了多等级的特征金字塔来构建更加有效的特征金字塔。首先从主网络中提取处多等级的特征作为基础特征,将前面得到的基础特征送入交替连接的细化U型模块(TUM)与特征融合模块(FFM)之中,并且使用每个U型模块的解码层作为作为目标检测使用。最后,本文算法将解码层与其相应的尺度(尺寸)组合迟来构建一个特征金字塔,这样每一个特征图都包含着多等级的特征。为了评价本文所提出的多等级特征金字塔网络的有效性,将其嵌入到SSD算法的框架中,并设计与训练了一个端到端的检测网络。
  • multi-stage[1]: 最早期的检测算法 (主要为R-CNN、SPPNet) 都属于multi-stage系。这个时候的Selective Serach、Feature extraction、location regressor、cls SVM是分成多个stage来各自单独train的。故谓之曰“multi-stage”;
  • two-stage[1]: 到了Fast R-CNN的时候,Feature extraction、location regressor、cls SVM都被整合到了一个network里面,可以实现这三个task一起train了。由于生成RP的task还需要另外train,故谓之曰“two-stage”;
  • one-stage[1]: 在YOLOv1中,“生成RP”这一任务被直接丢弃了。因此,整个算法只剩下了一个stage,故谓之曰“one-stage”;

作者提出本篇文章的动机

  • 目标检测实例中的尺度变换时目标检测任务中的主要挑战。面对该问题通常有两种策略,一是图像金字塔,即通过对输入图像进行不同程度的缩放;另一种是特征金字塔,即提取输入图像特征的不同等级。
  • 图像金字塔仅在测试阶段使用,并且该方法会增加内存的消耗以及计算的复杂度,因此其检测效率会大大的降低。
  • 特征金字塔可以在训练与测试阶段使用,与图像金字塔相比,它占用更小的内存以及有着较小的计算消耗。并且,特征金字塔可以很容易的嵌入到经典的的深度神经网络中。
  • 图1(a)所示 SSD 形式的特征金字塔仅使用主网络(i.e VGG)的两层网络和4个通过步长为2的卷积生成的四个额外的卷积层。
  • 图1(c)所示STDN形式的特征金字塔使用的是DenseNet的最后一个dense模块通过池化与尺度转化来构建不同等级的特征。
  • 图1(b)中FPN形式的特征金字塔是通过从上而下的深层与浅层网络融合得到的。
  • 作者认为上述的特征金字塔存在两个局限之处:
    1). 上述的特征金字塔的表征对目标检测任务是不充分的,因为主网络的设计是为目标分类任务设计的;
    2). 金字塔的每一个特征图大多或者甚至是由主网络的单个网络层构建的,主要包含或者仅仅包含单等级的信息。
  • 一般来说,深层网络的高等级特征对分类子任务的识别能力较强,层次较浅网络的低级特征对目标位置回归子任务的识别能力较强。而且,浅层的特征多适用于纹理单一的目标,而深层特征多适用于纹理复杂的目标。
    基于上述描述,作者提出了MLFPN来克服现有基于目标检测算法的两个局限之处。

Proposed MLFPN

  • M2Det的总体框架如上图所示: 首先使用主网络与多等级的特征金字塔网络(MLFPN)从输入图像中提取特征,然后基于学习的特征来生成密集边界框和类别分数,最后经过非极大值抑制(NMS)得到最终的结果。
  • MLFPN由三个模块组成: 特征融合模块(FFM)、细化U型模块(TUM)、尺度特征聚合模块(SFAM)。
  • MLFPN (Multi-level Feature Pyramid NetWork) : 首先,FFMv1融合浅层与深层的特征, 如VGG的 conv4_3, conv5_3, 融合人后的特征为MLFPN提供多等级的语义信息。第二,TUMs 和 FFMv2交替堆叠。每一个 TUM 生成不同尺度的特征图。FFMv2用来融合基础特征与前一个TUM的最大输出特征图。第三,SFAM将多等级多尺度的特征通过尺度上的特征连接与通道上的Attention机制(关于Attention 机制,可参考2)进行聚合。注意的是第一个TUM没有任何先验知识,仅仅从基础特征中进行学习。每个TUM所输出的多等级多尺度的特征计算公式(1)如下:
  • 式中 X_base 是 base feature. x_i_l 表示第 l 个TUM的第i个尺度的特征。T_l表示第l个TUM的处理,F 表示 FFMv2的处理。下 图(a)是 FFM1 的网络结构, 可以看到作者是将backbone的其中两层通过上采样后进行了特征融合。图b是FFMv2网络,其把FFM1传入的特征通过一个卷积核生成128维度的特征与上一个TUM 出来的最大输出进行融合得到(256, 40, 40)的特征。

未完待续。。。。。。

参考资料

[1] :https://blog.csdn.net/JNingWei/article/details/80039079
[2]:深度学习中Attention Mechanism详细介绍:原理、分类及应用 : https://blog.csdn.net/u010417185/article/details/83090766

发布了38 篇原创文章 · 获赞 29 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/ruotianxia/article/details/89607655