性能超FPN!北大、阿里等提多层特征金字塔网络

性能超FPN!北大、阿里等提多层特征金字塔网络_第1张图片

作者 | Qijie Zhao等

编译 | 李杰

出品 | AI科技大本营(ID:rgznai100)

特征金字塔网络具有处理不同物体尺度变化的能力,因此被广泛应用到one-stage目标检测网络(如DSSD,RetinaNet,RefineDet)和two-stage 目标检测器(如Mask R-CNN,DetNet)中并取得了很好的性能提升。

尽管这些嵌入了特征金字塔的目标检测网络取得了很好的效果,但它们有一些局限性,因为它们只是根据主干网固有的多尺度结构来构造特征金字塔,而主干网最初是为目标分类任务而设计的。

在目标分类和检测任务上是存在差别的。最明显的,分类任务要求平移不变性,即使目标位置发生移动,输出的类别依然不能变化;检测任务需要平移可变性,当目标位置发生变化时,输出的boundingbox位置也要相应发生变化。

北大、阿里等研究者提出了多层特征金字塔网络(Multi-Level FeaturePyramid Network MLFPN)旨在构造更有效的特征金字塔来检测不同尺度的目标。首先,将主干网络提取的多层特征进行融合,作为基础特征。其次,将基础特征输入到一个交替连接的u型模块和特征融合模块中,并利用每个U型模块的解码器层的输出作为目标检测的特征。最后,将具有相同尺度的解码器层集合起来,构造一个用于目标检测的特征金字塔,其中每个特征图由多个层次的特征组成。

在实验部分,作者将提出的MLFPN嵌入到SSD中,构建了一个新的端到端one-stage目标检测网络M2Det。在COCO数据集上,采用单尺度推理策略,以11.8FPS的速度实现了41.0的AP,多尺度推理策略的AP为44.2,这是one-stage探测器中最佳表现。

引言

不同目标之间的尺度变化是检测任务的一大挑战,通常有两种解决方案供选择:第一种是图像金字塔,为输入图像设置不同尺度的副本,共同输入训练,但是这种设计方式的缺点也显而易见,将会显著增加内存和算力消耗,因此效率不高。第二种是特征金字塔,旨在通过不同尺度的特征融合,得到分辨率和语义信息兼得的特征,与图像金字塔相比,对存储空间和算力的要求更低,而且更容易嵌入到主流的目标检测网络中去。但是特征金字塔网络仍然有自身的不足之处,特征金字塔的设计是根据主干网络结构中的多尺度结构,而这些主干网络实际上是用来进行分类任务的。

如下图所示,SSD直接利用主干网络的两层卷积以及四层经过步长为2的池化后的特征提取层构成,FPN利用由上到下的通路融合深层特征和浅层特征。总体来讲,以上的特征金字塔网络的构造方式存在两个不足。

性能超FPN!北大、阿里等提多层特征金字塔网络_第2张图片

首先,特征金字塔中的特征层对于目标检测任务来说不够有代表性,因为它们只是简单的根据主干网络的结构而构成,而这些主干网络本身是为目标识别设计的。其次,特征金字塔中的网络,大多数由主干网络中的单一某层提取得到,也就是说,该层特征仅仅包括单层的信息。目标检测包含识别和定位两个子任务,通常来说,深层特征感受野更大,语义信息更丰富,更有利于物体的分类,而浅层特征分辨率更高,更有助于边缘信息的获取,有利于物体的定位。

此外,底层特征更适合描述具有简单外观的物体,而深层特征更适合描述具有复杂外观的物体。在实际生活中,具有相似大小的目标实例的外观可能非常不同。例如,交通灯和远处的人可能有相似的大小,而人的外观要复杂得多。因此,如果金字塔中的每个特征图主要或仅由单层特征组成,将导致检测性能不佳。

本文的目标是构造一个更有效的特征金字塔来检测不同尺度的目标,同时避免现有方法的局限性。首先利用主干网络提取的特征进行融合作为基础特征,然后将其送入一个交替连接的u型模块(TUM)和融合模块(FFM)中提取更具代表性、多层次、多尺度的特征。需要注意的是,在每一个U形模块的解码器部分,特征的深度都是相同的。最后,将相同尺度的特征组合起来,得到最终用于目标检测的特征金字塔。

很显然,形成最终特征金字塔的解码器层比主干中的层要深得多,即更具有代表性。此外,最后的特征金字塔中的每个特征映射由多个层次的解码器层组成。因此,我们称之为多级特征金字塔网络(MLFPN)。

 

相关工作

为了提升不同尺度目标检测的正确率,有两大类方法。第一类是图像金字塔,即输入图像通过一系列调整大小产生多个副本,以产生语义上具有代表性的多尺度特征。来自不同尺度的输入图像的特征独立的进行预测,最后再进行预测结果的融合,得到最终的结果。尽管获得了性能的提升,但是这种方法是耗时且对存储,算力要求很高,无法做到实时检测。

第二类是从网络的固有层中提取特征构成金字塔来检测目标,此时的输入是一个单尺度的图像。与第一类方法相比,该方法需要的额外内存和计算成本要少得多,因此可以在实时网络的训练和测试阶段进行部署。

本文方法

为了验证本文提出的MLFPN的有效性,作者通过将MLFPN结构嵌入SSD中,设计了一个端到端的one-stage目标检测器M2Det,整体结构如下图所示。M2Det利用主干网络和MLFPN进行特征提取,然后与SSD类似,根据学到的特征,产生密集的bounding box和类别得分,再利用NMS产生最后的位置和类别预测结果。MLFPN包括三个模块:FFM(特征融合模块),TUM(瘦U型模块),SFAM(尺度特征聚合模块)。

总体流程为:FFMv1通过融合主干的特征图将语义信息扩充成基本特征。每一个TUM模块生成一组多尺度的特征,然后通过交替连接的多个TUM和FFMv2模块提取多层次多尺度特征。最后,SFAM模块通过一个尺度级联的特征操作和一个自适应的注意机制将特征聚集到多层次的特征金字塔中。

性能超FPN!北大、阿里等提多层特征金字塔网络_第3张图片

接下来看每一部分的详细解读:

MLFPN包含三部分,首先,FFMv1融合浅层特征和深层特征,构造出基础特征。其次,几个不同的TUM模块和FFMv2结构交替连接。每个TUM结构产生针对不同尺度的特征图,FFMv2模块将基础特征和上一个TUM输出的最大特征图融合,得到的新的特征作为输入送到下一个TUM模块中去。需要注意的是,由于第一个TUM模块没有先验知识,所以直接学习基础特征。最终输出的多层次多尺度特征通过下式计算得到:

其中Xbase表示基础特征,Xil表示第i个尺度下第l个TUM模块得到的特征,L表示TUM模块的数量,F表示FFM模块。最后,SFAM模块通过尺度级联操作和基于通道域的注意机制来聚合多级多尺度特征。

  • FFMs(Feature Fusion Module):

在M2Det中,FFM模块融合来自不同层的特征,使用1x1卷积层来压缩输入特征的通道,并使用维度相加操作来聚合这些特征。特别的,FFMv1将主干网络提取的两个不同尺度的特征作为输入,因此需要将深层次的特征先进行上采样,再进行维度的相加,同时,FFMv2模块接收基础特征和上一个TUM模块中的最大特征作为输入,这两个特征尺度是一致的,产生送入下一个TUM模块的融合特征。下图的(a)就是FFMv1操作,(b)是FFMv2操作。

性能超FPN!北大、阿里等提多层特征金字塔网络_第4张图片

  • TUMs(Thinned U-shape Module)

与FPN和RetinaNet不同,TUM是利用一个瘦长U型网络构建的,我们知道,U型网络分为编码器和解码器部分,在编码器部分,进行的是一系列步长为2的3x3卷积;解码器部分进行上采样和特征元素求和操作后,添加1x1卷积层,以增强学习能力,保持特征的平滑。每个TUM中解码器部分的输出构成了当前层的多尺度特征。从整体上看,堆叠TUM模块的输出形成了多层次、多尺度的特征,而前面的主要是浅层特征,中向的主要是中层特征,后向的主要是深层特征。

性能超FPN!北大、阿里等提多层特征金字塔网络_第5张图片

  • SFAM(Scale-wise Feature Aggregation Module)

SFAM模块的目标是将TUMs生成的多层次多尺度特征聚合成多层次的特征金字塔。第一个步骤就是将不同TUM产生的相同尺度的特征进行通道叠加,叠加后的通道可以表示为:

其中,X表示不同尺度下的特征图,具体表示为:

在这里,聚合特征金字塔的每一个尺度都包含来自不同层的相同尺度特征。

第二个步骤是引入了一个基于通道域的注意力机制来激励特征聚焦在对检测帮助最大的通道,这里引入了SENet的block,在挤压阶段,利用全局池化生成通道信息Z,为了完全捕获信道依赖,下面的激励步骤通过两个全连接层来学习注意力机制:

其中, σ 表示ReLU操作,δ表示Sigmoid。

最后,将得到的激励s与输入X中的通道相乘,得到最终的输出:

SFAM总体结构为下图:

性能超FPN!北大、阿里等提多层特征金字塔网络_第6张图片

  • M2Det配置

在训练M2Det网络前,主干网络需要经过ImageNet预训练。MLFPN的所有默认配置包含8个TUM模块,每个TUM有5个卷积块和5个上采样操作,所以它将输出6个尺度的特征。为了减少网络的参数,每个尺度的特征只用256维度,这样也有利于GPUs的训练。在检测阶段,对6个金字塔特征分别添加两个卷积层,分别实现位置回归和分类。在每个像素点设置三种比例,六个anchor,阈值设置为0.05来筛选bounding box。最后利用NMS最小值抑制,进一步筛选。

实验

  • 在MS COCO数据集上的实验

性能超FPN!北大、阿里等提多层特征金字塔网络_第7张图片

  • 消融实验

由于M2Det是由多个子组件组成的,设计消融实验验证每一个的有效性,以获得最终的性能。基线是一个基于原始SSD的简单检测器,输入尺寸为320×320,实验结果表明,TUM和SFAM均能获得性能提升。

性能超FPN!北大、阿里等提多层特征金字塔网络_第8张图片

结论

为了提升检测不同尺度的目标的正确率,本文提出了一种多级特征金字塔网络(MLFPN)来构造有效的特征金字塔。MLFPN由几个新的模块组成。首先,采用特征融合模块(FFMv1)作为基本特征,将主干网提取的多层次特征进行融合。然后将基本特征输入交替连接的瘦长u型模组(TUMs)和Fature融合模组(FFMv2s),提取多级多尺度特征。最后,将提取出的具有相同尺度的多层次多尺度特征进行聚合,构建一个特征金字塔,通过一个尺度级特征聚合模块(scale-wise feature Aggregation Module, SFAM)进行目标检测。

 

论文链接:

https://arxiv.org/abs/1811.04533

GitHub链接:

https://github.com/qijiezhao/M2Det

(*本文为AI科技大本营编译文章,转载请微信联系 1092722531)

精彩公开课

推荐阅读

  • 滴滴开源在2019:十大重点项目盘点,DoKit客户端研发助手首破1万Star

  • 你的 App 在 iOS 13 上被卡死了吗

  • Hinton、吴恩达们也“吹牛”炒作?媒体和研究人员共谋,AI圈误导信息泛滥

  • 通向人工智能产业落地化的道路在哪?

  • 为什么我们最终抛弃 Chromium 选择了 Firefox ?

  • 如何用Redis实现微博关注关系?

  • 扎心了!互联网公司福利缩水指南

  • “对不起,我们只招有出色背景的技术人员!

  • 不用失去控制权和所有权,也能在区块链中通过数据共享获得奖励?

  • 你点的每个“在看”,我都认真当成了AI

你可能感兴趣的:(性能超FPN!北大、阿里等提多层特征金字塔网络)