EfficientDet

论文:EfficientDet: Scalable and Efficient Object Detection
来源:2019

1. 贡献

  • 提出了简单且高效的多尺度特征融合方法:双向特征金字塔网络(bi-directional feature pyramid network,BiFPN)。BiFPN通过引入可学习的权重来衡量不同输入特征的重要程度,并重复使用top-down和bottom-up方式来融合多尺度特征。
  • 对目标检测器的各个部分(如backbone, feature network, box/class prediction network)的分辨率、深度、宽度进行了统一缩放,得到多个具有不同准确度和速度的目标检测器EfficientDet-D0~D7。

2. Motivation

现有的多尺度特征融合方法主要有以下几种:

  • (a) FPN introduces a top-down pathway to fuse multi-scale features from level 3 to 7 (P3 - P7);
  • (b) PANet adds an additional bottom-up pathway on top of FPN;
  • ( c c c) NAS-FPN uses neural architecture search to find an irregular feature network topology and then repeatedly apply the same block;
    在这里插入图片描述

这些方法在进行多尺度特征融合时,对不同输入特征采用直接相加的操作,并未考虑不同输入特征对输出的重要程度(直接相加可认为重要程度相等)。

  • 假设不同尺度的输入特征为 P ⃗ i n = ( P l 1 i n , P l 2 i n , . . . ) \vec P^{in}=(P_{l_1}^{in},P_{l_2}^{in},...) P in=(Pl1in,Pl2in,...),其中 P l i i n P_{l_i}^{in} Pliin表示第 l i l_i li层的特征,多尺度特征融合要寻找合适的函数 f ( ) f() f(),使得 P ⃗ o u t = f ( P ⃗ i n ) \vec P^{out}=f(\vec P^{in}) P out=f(P in)
  • 以FPN为例,其输入特征为 P ⃗ i n = ( P 3 i n , . . . , P 7 i n ) \vec P^{in}=(P_3^{in},...,P_7^{in}) P in=(P3in,...,P7in),则输出特征为
    在这里插入图片描述

但是从分辨率或者不同层级的反向传播路径可以看出,不同层级的特征对输出的重要程度应该是不同的,所以BiFPN为不同输入特征设置了可学习的权重。

3. EfficientDet

3.1 overview

  • 以EfficientNet为backbone network,以由多个BiFPN layer重复连接而成的BiFPN为feature network,以不同层级共享参数的class/box prediction net为detection head。
    在这里插入图片描述

  • 不同检测器的配置如下表所示:
    在这里插入图片描述

3.2 Cross-Scale Connections

  • PANet在FPN的基础上再添加bottom-up pathway,取得比FPN更好的效果;虽然NAS-FPN使用网络结构搜索的方式得到比PANet更好的效果,但其搜索出的拓扑结构缺乏解释性,所以本文选择PANet为基础模块,并加以修改。
  1. 移除所有单输入特征的结点,原因是:与多输入特征相比,单输入特征对多尺度特征融合的贡献较小,移除所有单输入特征的结点可以简化网络结构。
  2. 在同级特征中添加一条输入输出直接通道。
  3. 以上述2步得到的结构为BiPFN layer,并重复使用该结构。
  • BiPFN的3处网络结构修改应该是以NAS-FPN为先验的。

3.3 Weighted Feature Fusion

3种特征加权融合方法:Unbounded fusion,Softmax-based fusion,Fast normalized fusion

  • Unbounded fusion
    O = ∑ i w i I i O=\sum_iw_iI_i O=iwiIi其中, w i w_i wi表示第 i i i个输入特征 I i I_i Ii所对应的可学习权重, w i w_i wi可以是标量(per-feature)、向量(per-channel)、矩阵(per-pixel)。作者发现这3个类型的 w i w_i wi的效果很接近,但是标量型 w i w_i wi的计算量较小,所以将 w i w_i wi确定为标量。但由于标量是无界的,为使模型比较稳定,应该对 w i w_i wi进行归一化。

  • Softmax-based fusion
    在这里插入图片描述采用softmax归一化至[0,1],但是softmax在GPU中的计算速度比较慢,所以提出第3种方法:快速归一化。

  • Fast normalized fusion
    在这里插入图片描述
    实验发现,Fast normalized fusion与Softmax-based fusion具有相近的准确度,但Fast normalized fusion比Softmax-based fusion快30%。

  • P 6 P_6 P6为例,采用Fast normalized fusion进行多尺度特征融合的公式为:
    在这里插入图片描述

3.4 Compound Scaling

  • 在目标检测器中,使用更深的backbone(VGG → \to ResNet → \to ResNeXt)或提高输入图像的分辨率( 512 × 512 → 1536 × 1536 512\times512\to1536\times1536 512×5121536×1536)均可显著提高目标检测性能,但目前很多研究只是单独增大某一方面。
  • 目标检测框架包括backbone, feature network, box/class prediction network,这些子网络又可以在分辨率、深度、宽度进行缩放,所以本文研究了统一对各个方面进行缩放的效果。
  1. Backbone network:直接选取EfficientNet-B0~B6,EfficientNet的各个版本具有不同的网络深度和网络宽度
  2. BiFPN network:BiFPN的深度指BiFPN layer的个数,记为 D b i   f p n D_{bi\ fpn} Dbi fpn,而BiFPN的宽度指BiFPN layer中特征的通道数,记为 W b i   f p n W_{bi\ fpn} Wbi fpn
    在这里插入图片描述
  3. Box/class prediction network:令 W p r e d = W b i   f p n W_{pred}=W_{bi\ fpn} Wpred=Wbi fpn,且在这里插入图片描述
  4. Input image resolution :最大下采样率为128,所以输入图像分辨率应该是128的倍数 在这里插入图片描述

在这里插入图片描述

4. 实验

  • 将RetinaNet的ResNet-50换成EfficientNet-B3, A P AP AP提高 3.3 % 3.3\% 3.3%,表明EfficientNet-B3效果更好;

  • 将EfficientNet-B3+FPN的FPN换成BiFPN, A P AP AP再次提高 4.1 % 4.1\% 4.1%,表明BiFPN效果更好。
    在这里插入图片描述

  • 相比于Softmax Fusion,Fast Fusion的 A P AP AP稍低,但速度更快
    在这里插入图片描述
    在这里插入图片描述

  • 最终性能
    在这里插入图片描述

在这里插入图片描述