• 【论文笔记】M2Det: A Single-Shot Object Detector Based on Multi-Level Feature Pyramid Network


    &论文概述

     

    获取地址:https://arxiv.org/abs/1811.04533

    代码地址:https://github.com/ qijiezhao/M2Det 

    &总结与个人观点

      本文提出Multi-Level Feature Pyramid Network来搭建高效检测不同尺度目标的特征金字塔。MLFPN由FFM、TUMs以及SFAM三部分组成。其中FFMv1(Feature Fusion Module)用于混合由backbone提取的多层级特征作为基础特征;TUMs(Thinned U-shape Modules)以及FFMv2s通过基础特征提取出多层级多尺度的特征;SFAM(Scale-wise Feature Aggregation Module)将这些多层级多尺度特征依据相同尺度进行整合得到最终的特征金字塔。基于MLFPN的M2Det是一个高效的end-to-end one-stage检测器,在MS COCO数据集达到了one-stage最优的性能。

      在本论文中,最有创新的地方在于使用了SFAM,将从不同的TUM输出的特征金字塔整合成为最终的金字塔结果,使得每一层融合了足够多的信息以检测当前尺度的目标。FFM并无出彩之处,整体的网络设计很精彩。

    &贡献

    1、  提出TUM模块,在FPN的基础上做了一些改进;

    2、  通过SFAM模块实现多层级多尺度的特征金字塔的搭建;

    3、  M2Det在MS COCO数据集中达到了one-stage方法中最优的性能,同时也超越了大多数two-stage方法。

    &拟解决的问题

    问题: 先前使用了FPN的网络虽然对结果有所提高,但是由于只是根据为目标分类任务设计的backbone的多尺度以及金字塔结构进行简单地搭建特征金字塔受限。

    分析:如下图所示,SSD直接使用backbone的2层以及4层通过stride=2的卷积得到的额外层获得特征金字塔;STDN仅使用DenseNet的最后的dense block通过池化或scale-transfer方法搭建特征金字塔;FPN通过top-down方法融合深层与浅层特征来搭建特征金字塔。而这些方法主要有2个限制:

    • 金字塔中的特征层在目标检测任务中不具有足够的表征力,因为这些方法仅是由为目标分类任务设计的backbone的特征层来搭建;
    • 金字塔中用于检测特定大小的目标的每个特征图主要或者仅是有backbonesingle-level层搭建,这也就意味着,每一层主要或仅包含了single-level的信息。而在实际中,相同大小的目标实例会有很大差异,如交通信号灯与远处的行人有着相似的大小,但是行人的出现更加复杂;因此,这就可能造成次优的结果。

    &框架及主要方法

    1、Main Structure

    2TUM(Thinned U-shape Module)

      TUM的整体结构如下图所示,采用FPN的模型,对上层特征图使用双线性插值上采样方法,然后使用element-wise相加操作得到最终输出特征图,这里取6层特征图。

           这里与FPN不同之处有

    •  编码器采用一系列3×3,stride=2的卷积层,解码器将这些层的输出作为其特征图的参考集合,而FPN选择ResNet backbone的每个阶段的最后一层输出;
    •  此外,在解码器分支的每次上采样以及点加操作后添加1×1卷积层以增强学习能力同时保持特征的平滑

      每个TUM解码器所有的输出形成了当前层级的多尺度特征,而堆叠的TUMs的输出形成了多层级多尺度的特征,同时前面、中间以及最后的TUM分别提供了了浅层、中层以及深层特征。

    3FFM(Feature Fusion Module)

    特征融合模块融合来自不同层级的特征,使用1×1卷积压缩通道,concat方法聚合特征图。FFMv1是将backbone的2个不同层的特征进行融合,需要将其归一到相同尺度,因此使用了上采样的操作,而FFMv2是将基础的特征与TUM最大的输出特征图融合。

     

    4SFAM(Scale-wise Feature Aggregation Module)

      SFAM的作用是聚合多层级多尺度的特征,如上图所示,SFAM的第一个阶段是将相同尺度的特征按通道维度进行拼接。然而简单地拼接不能自适应,因此在第二阶段引入通道注意力模块使得特征关注其最能受益的通道。使用全局平均池化来生成通道数据,同时为了完全捕捉通道间的依赖,通过2个全连接层学习注意力机制:

    其中表示ReLu函数,表示sigmoid函数。最终的输出通过使用激活方法s对输入X进行重新赋权:

      

    5Experiment

    1) 在MS COCO测试开发集中与其他one-stage、two-stage方法的对比,实验结果表明,M2Det获得one-stage方法中最优的性能,同时也超越了大多数two-stage方法。

    2) 消融实验:通过实验验证不同TUM的数量对性能的影响,以及使用Base Feature、SFAM与否对AP的影响,使用不同的backbone的影响。

     

    3) MLFPN的不同配置就TUM以及Channel而言对实验结果的影响,实验表明,取8个TUMs以及512个Channels效果最佳,但引入了更多的参数,综合考虑使用8个TUMs以及256Channels能够均衡效率以及精度。

    4) 在MS COOC test-dev数据集上的网络的速度对比,可见M2Det综合能力更强,在速度和精度上都达到了top水准。

    5) 可视化显示M2Det的检测结果,从中可以看出虽然交通信号灯以及远处的行人的大小差不多,但是检测响应的特征层级不同,行人有着更复杂的信息,因此在更深的层级中做出检测,对应的汽车也有相似的原因。

    &思考与启发

      在主流都在思考如何对FPN网络进行改进,使得其能够在特征融合方面表现地更好的同时,本文作者直接通过FPN搭建特征金字塔的方法上从根源找出不足之处以达到提高性能的目的;可以说本文作者对问题的理解程度很深,关注方法也一针见血。

  • 相关阅读:
    App集成支付宝
    关于Objective-c和Java下DES加密保持一致的方式
    Android开发规范
    android 屏幕适配问题
    Android AES加密算法及其实现
    linux文件系统调用(1)---mount
    Java(Android)解析KML文件
    【Akka】在并发程序中使用Future
    函数指针问题,求解答
    android旋转动画的两种实现方式
  • 原文地址:https://www.cnblogs.com/fanzhongjie/p/11872077.html
Copyright © 2020-2023  润新知