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

Single-shot目标检测新模型,使用multi-level特征,收录于AAAI2019.

这篇论文吸引我的地方,是对目标检测模型不同层次特征的适应性的描述。

code:https://github.com/qijiezhao/M2Det

paper:https://arxiv.org/abs/1811.04533

目录

摘要

相关工作

介绍

理论

实验

摘要

特征金字塔被最先进的一级one-stage检测子(如DSSD、Retinanet、Refinedt)和two-stage检测子(如Mask RCNN、Detnet)广泛利用,以缓解目标实例之间的尺度变化带来的问题。尽管这些具有特征金字塔的目标探测器取得了令人鼓舞的效果,由于它们只是简单地根据原始设计用于对象分类任务的骨架固有的多尺度金字塔结构构造特征金字塔,因而存在一定的局限性。在这项工作中,我们提出了多层次特征金字塔网络(MLFPN),以构造更有效的特征金字塔来检测不同尺度的物体。首先,我们将主干提取的多级特征(即多层)融合为基础特征。第二,将基本特征输入交替的关节细化U形模块和特征融合模块,利用每个USHAPE模块的译码器层作为目标检测的特征。最后,我们将具有等效尺度(大小)的译码器层集合起来,构造一个用于目标检测的特征金字塔,其中每个特征映射都由多个层次的层(特征)组成。为了评估所提出的MLFPN的有效性,我们设计并训练了一个功能强大的端到端one-stage检测子,我们称之为M2DET,将其集成到固态硬盘的架构中,并实现了比最先进的one-stage检测子更好的检测性能。具体来说,在MS-COCO基准测试中,M2DET采用单尺度推理策略,以11.8 fps的速度达到了41.0的AP,采用多尺度推理策略,达到了44.2的AP,这是one-stage检测子的最优成果。

介绍

对象实例之间的尺度变化是目标检测任务的主要挑战之一,通常有两种策略来解决这一挑战带来的问题。第一种方法是利用图像金字塔中检测目标,这一策略只能在测试时使用。显然,这种解决方案将大大增加内存和计算的复杂性,因此这种目标检测子的效率将大幅下降。第二种方法是从输入图像中提取特征金字塔,在训练和测试阶段使用。与第一种使用图像金字塔的解决方案相比,它的内存和计算成本更低。此外,特征金字塔模块可以很容易地集成到最先进的基于深度神经网络的检测子中,从而得到端到端的解决方案。

虽然带有特征金字塔的目标探测器取得了令人鼓舞的效果,但由于它们只是根据固有的多尺度金字塔结构来构造特征金字塔,而这种结构实际上是为分类任务而设计的。例如,如图1所示,SSD直接独立地使用两层主干(即vgg16)和通过步长2的卷积获得的四个额外层来构造特征金字塔;STDN仅使用densenet的最后一个dense块通过池和尺度变换来构造特征金字塔;FPN通过自上而下融合深层和浅层来构造特征金字塔。一般来说,上述方法有以下两个局限性。首先,金字塔中的特征图对于对象检测任务来说不够有代表性,因为它们只是由为对象分类任务设计的主干的层(特征)构建的。其次,金字塔中的每个特征图(用于检测特定范围内的对象)主要或甚至完全由主干的单层层构成,也就是说,它主要或仅包含单层信息。一般而言,较深层次的高层次特征对分类子任务的识别性更强,而较浅层次的低层次特征对目标定位回归子任务的识别性更强。此外,低层次特征更适合描述外观简单的物体,而高层次特征更适合描述外观复杂的物体(此处对于特征的把握值得注意)。在实践中,具有类似大小的对象实例的外观可能非常不同。例如,一个红绿灯和一个遥远的人可能有相当的大小,而且这个人的外表要复杂得多。因此,金字塔中的每个特征图(用于检测特定尺寸范围内的物体)主要或仅由单层特征组成,将导致检测性能不理想。

本文的目标是在避免现有方法的局限性的同时,构造一个更有效的特征金字塔来检测不同尺度的目标。如图2所示,为了实现这一目标,我们首先将主干提取的多级特征(即multiple layers)融合为基础特征,然后将其输入U形模块(TUM)和特征融合模块(FFM)中,提取出更具代表性的多级多层次特征。值得注意的是,每个U形模块中的解码器层具有相似的深度。最后,我们聚合了具有等效尺度的特征图,构建了目标检测的最终特征金字塔。显然,构成最终特征金字塔的解码器层要比主干中的层深得多,也就是说,它们更具代表性。此外,最终特征金字塔中的每个特征图都由来自多个级别的解码器层组成。因此,我们称特征金字塔块为多级特征金字塔网络(MLFPN)

为了评估所提出的MLFPN的有效性,我们设计并训练了一种功能强大的端到端单级目标探测器,我们称之为M2DET(根据它是建立在多级和多尺度特征之上的),将MLFPN集成到SSD的体系结构中。M2DET实现了最新的最先进的结果(即单尺度推理策略下的AP为41.0,速度为11.8 fps,多尺度推理策略下的AP为44.2),在MS-COCO上由于现有one-stage检测子。

相关工作

研究人员已经付出了大量的努力来提高不同尺度物体的探测精度——不管它是one-stage检测子还是two-stage探测子。据我们所知,主要有两种策略来解决这个尺度变化问题。

如图2所示,MLFPN包含三个部分。首先,FFMV1融合了浅层和深层特征,产生了基础特征,如VGG的conv4 3和conv5 3,为MLFPN提供了多级语义信息。第二,多个TUM和FFMV2交替堆叠。具体地说,每个TUM生成具有不同比例的几个特征图。FFMV2融合了上一个TUM的基本特性和最大输出特性图。融合后的特征图被送入下一个TUM。注意,第一个tum没有任何其他tum的先验知识,所以它只从学习。输出多级多尺度特征计算如下:

这儿表示基准特征,表示在第个TUM的第个尺度的特征,表示TUM的数量,表示第个TUM,表示FFMv1。第三SFAM采用concatenation操作和通道注意力机制聚合多级多尺度特征。

FFMs融合了M2DET中不同层次的特征,对构建最终的多层次特征金字塔至关重要。它们使用1X1卷积层压缩输入特性的通道,并使用串联操作聚合这些特性图。特别是,由于ffmv1在主干网中采用两个不同尺度的特征映射作为输入,因此在连接操作之前,它采用一个上采样操作将深度特征重新缩放到相同的尺度。同时,FFMV2将前一个TUM的基本特征和最大输出特征图(这两个特征具有相同的比例)作为输入,并为下一个TUM生成融合特征。FFMV1和FFMV2的结构细节分别如图4(a)和(b)所示。

TUMs:与fpn和retinanet不同,tum采用thinner的U形结构,如图4(c)所示。编码器是一系列3x3卷积层,步幅为2。解码器将这些层的输出作为其特征映射的参考集,而原FPN选择Resnet主干网中每个阶段最后一层的输出。此外,我们在解码器分支上加上1x1卷积层,再加上元素求和运算,以增强学习能力,保持特性的平滑。每个TUM解码器中的所有输出构成了当前级别的多尺度特征。总的来说,堆叠TUM的输出形成了多层次的多尺度特征,而前部TUM主要提供浅层次特征,中部TUM提供中层次特征,后部TUM提供深层次特征。

SFAM:如图3所示,SFAM目的是聚合TUMs产生的多级多尺度特征为多级特征。SFAM的第一个阶段是沿着通道维度将等效尺度的特征连接在一起。聚合特征金字塔可以表示为表示第i个尺度的特征。这里,聚合金字塔中的每个比例都包含来自多层次深度的特征。但是,简单的串联操作还不够适应。在第二阶段中,我们引入了一个通道注意力模块,以鼓励特性关注它们最受益的通道。根据SE模块,我们使用全局平均池在压缩步骤中生成信道统计。为了完全捕获通道依赖性,以下激发步骤通过两个完全连接的层学习注意力机制:

(事实上,使用的是两个全连接层,注意力常用的方法)

我们将M2DET组装成两种主干(Simonyan和Zisserman 2015;He等人2016年)。在培训整个网络之前,需要在Imagenet 2012数据集上对主干进行预培训(Russakovsky等人2015年)。MLFPN的所有默认配置都包含8个Tums,每个Tum有5个Strating Conv和5个upsample操作,因此它将输出6个尺度的特性。为了减少参数数量,我们只为每个级别的TUM功能分配256个信道,这样网络就可以很容易地在GPU上进行训练。至于输入尺寸,我们按照原来的SSD、refinedet和retinanet,即320、512和800。

在检测阶段,我们在6个金字塔特征中各增加两个卷积层,分别实现位置回归和分类。六个功能图的默认框的检测比例范围遵循原始SSD的设置。当输入尺寸为800×800时,除保持最大特征图的最小尺寸外,比例范围按比例增大。在金字塔特征的每个像素处,我们设置了六个锚定,三个比率完全相同。之后,我们使用0.05的概率分数作为阈值,过滤掉大多数得分低的锚。然后我们使用soft-NMS(Bodla等人2017年)采用线性内核进行后处理,留下更精确的盒子。将阈值降低到0.01可以产生更好的检测结果,但这会大大缩短推理时间,我们不认为这是为了追求更好的实用价值。

实验

评价:

本文在第一部分提出了很多关于特征适应性的见解。提出的理论也是非常有效的,但是遗憾的是这依然是一个拼机器的工作。

参考文献:Zhao Q, Sheng T, Wang Y, et al. M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid Network. 2018.

M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid Network AAAI2019相关推荐

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

    参考    M2Det: A Single-Shot Object Detector based on Multi-Level读) - 云+社区 - 腾讯云 目录 一.摘要 二.简介: 1.存在的问题 ...

  2. (CVPR 2020)3DSSD: Point-based 3D Single Stage Object Detector

    摘要 目前,基于体素的3D单级检测器已经有很多种,而基于点的单级检测器仍处于探索阶段.在本文中,我们首先提出了一种轻量级且有效的基于点的3D单级目标检测器,名为3DSSD,在精度和效率之间取得了很好的 ...

  3. CV+Deep Learning——网络架构Pytorch复现系列——Detection(一:SSD:Single Shot MultiBox Detector 4.推理Detect)

    上一话 CV+Deep Learning--网络架构Pytorch复现系列--Detection(一:SSD:Single Shot MultiBox Detector 3.loss)https:// ...

  4. SSD(Single shot multibox detector)目标检测模型架构和设计细节分析

    先给出论文链接:SSD: Single Shot MultiBox Detector 本文将对SSD中一些难以理解的细节做仔细分析,包括了default box和ground truth的结合,def ...

  5. SSD论文阅读(Wei Liu——【ECCV2016】SSD Single Shot MultiBox Detector)

    本文转载自: http://www.cnblogs.com/lillylin/p/6207292.html SSD论文阅读(Wei Liu--[ECCV2016]SSD Single Shot Mul ...

  6. Single shot object detection SSD using MobileNet and OpenCV

    微信公众号:小白图像与视觉 关于技术.关注yysilence00.有问题或建议,请公众号留言. 主题:Single shot object detection SSD using MobileNet ...

  7. SSD: Single Shot MultiBox Detector

    SSD: Single Shot MultiBox Detector 一.SSD主要思想   SSD是Single Shot MultiBox Detector的缩写,Single shot表明了SS ...

  8. 目标检测 SSD: Single Shot MultiBox Detector - SSD在MMDetection中的实现

    目标检测 SSD: Single Shot MultiBox Detector - SSD在MMDetection中的实现 flyfish 目标检测 SSD: Single Shot MultiBox ...

  9. 目标检测 - 基于 SSD: Single Shot MultiBox Detector 的人体上下半身检测

    基于 SSD 的人体上下半身检测 这里主要是通过将训练数据转换成 Pascal VOC 数据集格式来实现 SSD 检测人体上下半身. 由于没有对人体上下半身进行标注的数据集, 这里利用 MPII Hu ...

  10. 目标检测--SSD: Single Shot MultiBox Detector

    SSD: Single Shot MultiBox Detector ECCV2016 https://github.com/weiliu89/caffe/tree/ssd 针对目标检测问题,本文取消 ...

最新文章

  1. 一蹴而就的解释是什么_聪明的孩子喜欢问“为什么”,还是喜欢问“为什么”让孩子聪明?...
  2. 《ES6标准入门》49~68Page 数值的拓展 数组的拓展
  3. redis mysql主从延迟_MySQL主从延迟问题解决
  4. macos可以升级到指定版本吗_iOS13系统终结版本即将出现,iOS13.5还值得升级吗
  5. 阴差阳错2019-12-13
  6. GitHub 标星 8w!学完这份指南后,你就可以去 Google 面试了!
  7. SpringBoot项目属性配置
  8. 【ABAP系列】SAP ABAP中关于commit的一点解释
  9. 项目初期不同职位的人如何沟通?以及沟通的效率
  10. C# ILDASM 使用
  11. 捷宇高拍仪D系列 javaweb集成进项目
  12. STR鉴定原理、流程已经报告数据解读指南
  13. 激光认证,激光安全等级认证,激光安全认证,激光等级认证,激光FDA认证。
  14. Arcgis(二) 绘制区域划分示意图——以重庆五大功能区为例
  15. 对象的高级使用-插入图片对象(转)
  16. Person Re-identification by Local Maximal Occurrence Representation and Metric Learning(LOMO+XQDA)
  17. 大一寒假训练:集训内容考试(二)【未完待续】
  18. 从零开始搭建springboot框架
  19. 计算机英语期末考,《计算机英语》期末考试试卷.doc
  20. Acwing寒假每日一题(一)笨拙的手指

热门文章

  1. switchHost没有权限修改hosts文件
  2. SqlServer 数据库可疑修复
  3. kuangbin字典树
  4. 【ps小技巧】内容识别, 1分钟去掉图片上的文字
  5. 多个ai文件合并成pdf_AI打开多页PDF教程.pdf
  6. tomcat日志中文乱码问题
  7. MergeSort(合并排序)
  8. Aiml中文包含英文(字母,特殊符号)识别问题的解决
  9. labview 控件安装步骤
  10. 《人工智能:一种现代方法(AIMA)》绪论 智能Agent 思维导图