【论文笔记】EfficientDet: Scalable and Efficient Object Detection

谷歌官方代码:https://github.com/google/automl/tree/master/efficientdet

文章目录

  • Abstract
  • 1. Introduction
  • 2. Related Work
  • 3. BiFPN
    • 3.1. Problem Formulation
    • 3.2. Cross-Scale Connections
    • 3.3. Weighted Feature Fusion
  • 4. EfficientDet
    • 4.1. EfficientDet Architecture
    • 4.2. Compound Scaling
  • 5. Experiments
  • 6. Ablation Study
    • 6.1. Disentangling Backbone and BiFPN
    • 6.2. BiFPN Cross-Scale Connections
    • 6.3. Softmax vs Fast Normalized Fusion
    • 6.4. Compound Scaling
  • 7. Conclusion

Abstract

这篇文章系统地研究了用于目标检测的各种神经网络体系结构的设计选择,并提出了提高效率的几个优化方案。首先,本文提出了一种加权双向特征金字塔网络(BiFPN),它可以方便、快速地融合多尺度特征;其次,本文提出了一种混合缩放方法,可以同时对所有主干网络、特征网络和box/class预测网络的分辨率、深度和宽度进行均匀缩放。基于这些优化,我们开发了一个新的对象检测器系列,称为EfficientDet,在资源限制条件下,其效率始终比现有技术高出一个量级。

1. Introduction

近年来,在提高目标检测精度方面的研究取得了巨大的进展;与此同时,物体检测器也变得越来越昂贵。例如,最新的基于NASFPN的AmoebaNet检测器需要1.67亿个参数和3045B FLOPS(比RetinaNet[17]多30倍)才能达到最高的精度。模型规模和昂贵的计算成本阻碍了它们在机器人和自动驾驶汽车等许多现实世界应用中的部署。
很多先前的工作都致力于找到更高效的检测器架构,例如onestage 和 anchor-free ,还有压缩现有的模型,虽然这些方法提高了效率,但是损失了精确度。此外,先前的大多数工作只关注特定的或小范围的资源需求,但是从移动设备到数据中心的各种实际应用程序通常需要不同的资源约束。
于是有这样一个问题:是否有可能在各种资源限制(例如从3B到300B FLOPS)的条件下构建具有更高准确性和更高效率的可扩展检测架构?本文旨在通过系统地研究探测器结构的各种设计选择来解决这一问题。基于onestage范例,我们检查了backbone、特征融合和class/box网络的设计选择,发现了面临的两个主要挑战:
Challenge 1:有效的多尺度特征融合——FPN已广泛用于多尺度特征融合。最近,PANet,NAS-FPN和其他研究已经开发出更多的用于跨尺度特征融合的网络结构。虽然融合了不同的输入特征,但以往的大多数工作只是简单地将它们相加,没有区别;然而,由于这些不同的输入特征具有不同的分辨率,我们观察到它们通常对融合的输出特征的贡献是不一样的。
Challenge 2:模型缩放——虽然以前的工作主要依赖于更大的backbone网络或更大的输入图像尺寸来获得更高的精度,但我们注意到,考虑到准确性和效率,放大特征网络和box/class预测网络也很关键。我们提出了一种用于对象检测器的复合缩放方法,该方法可联合缩放所有主干,特征网络,box/class预测网络的分辨率/深度/宽度。
最后,我们还发现,最近引入的EfficientNets [31]比以前的常用骨干网络(例如ResNets [9],ResNeXt [33]和AmoebaNet [24])具有更高的效率。通过将EfficientNet主干网与我们提出的BiFPN和复合缩放相结合,我们开发了一个名为EfficientDet的新对象检测器系列,与以前的对象检测器相比,它始终能够以较少的数量级参数和FLOPS获得更高的精度。图1和图4展示了在COCO数据集上的表现。在相同的精度下,我们的EfficientDet使用的FLOPS比YOLOv3少28倍,比RetinaNet少30倍,比最近的NASFPN少19倍。
【论文笔记】EfficientDet: Scalable and Efficient Object Detection_第1张图片
【论文笔记】EfficientDet: Scalable and Efficient Object Detection_第2张图片
本篇论文的贡献总结如下:

  • 提出了BiFPN,一个简单快速的用于多尺度特征融合的、带有权重的双向特征网络。
  • 提出了一种新的复合缩放方法,该方法联合放大了主干,特征网络,框/类网络和分辨率。
  • 基于BiFPN和复合缩放的方法,提出了EfficientDet,这是一组新的检测器,在资源约束的条件下具有更高的准确性和更好的效率。

2. Related Work

One-Stage Detectors:已有的目标检测器主要根据是否具有region-of-interest分为两类,分别是two-stage和one-stage,two-stage更加复杂也更加准确,one-stage更加简单和高效。这篇文章follow one-stage的工作,也证明高效和高的准确率是可以同时实现的。

Multi-Scale Feature Representations:目标检测的主要困难之一是有效地表示和处理多尺度特征。早期的检测器通常基于从骨干网络提取的金字塔特征层次直接执行预测。作为开拓性的作品之一,特征金字塔网络(FPN)提出了一种自上而下的途径来组合多尺度特征。在本文中,我们旨在以更直观,更原则的方式优化多尺度特征融合。

Model Scaling:为了获得更高的准确度,一般的做法是增大骨干网络的规模。一些近期的作品表示增加channel size和重复特征网络也可以提高精度。这些缩放方法主要集中在单个或有限的缩放维度上。最近,通过共同扩大网络的宽度,深度和分辨率,有效提高了图像分类的模型效率。我们提出的用于对象检测的复合缩放方法。

3. BiFPN

在本节中,我们首先提出多尺度特征融合问题,然后为提出的BiFPN引入两个主要思想:有效的双向跨尺度连接加权特征融合

3.1. Problem Formulation

【论文笔记】EfficientDet: Scalable and Efficient Object Detection_第3张图片
多尺度特征融合旨在组合不同分辨率的特征图。就是为一组特征图找到一个变换 f f f,完成从输入到输出的一个映射。图2(a)展示了传统的FPN的top-down的过程。输入的一组特征为在这里插入图片描述
P i i n P^{in}_i Piin表示分辨率为原始输入图片的 1 / 2 i 1/2^i 1/2i倍。常规FPN以自顶向下的方式聚合多尺度特征:
【论文笔记】EfficientDet: Scalable and Efficient Object Detection_第4张图片
Resize一般是上下采样操作,Conv一般是对特征的卷积操作。

3.2. Cross-Scale Connections

传统的自上而下的FPN固有地受到单向信息流的限制。为了解决这个问题,PANet 添加了一个额外的自下而上的路径聚合网络,如图2(b)所示。最近,NAS-FPN 使用神经体系结构搜索来搜索更好的跨尺度特征网络拓扑,但是在搜索过程中需要数千个GPU hours,并且发现的网络是不规则的,难以解释或修改,如图2(c)所示。

通过研究这三个网络的性能和效率(Table 4),我们观察到PANet的精度比FPN和NAS-FPN更好,但是需要更多的参数和计算。为了提高模型效率,本文针对跨尺度连接提出了几种优化方法:

  • 首先,删除那些只有一个输入边的节点。
    如果一个节点只有一个输入边则没有特征融合,那么它将对旨在融合不同特征的特征网络贡献较小。这就是一个简化的PANet,如图 2(e)显示。
  • 其次,如果原始输入与输出节点处于同一级别,则在原始输入和输出节点之间添加一条额外的边。
    以便在不增加成本的情况下融合更多功能,如图2(f)所示;
  • 第三,将每个双向(自上而下和自下而上)路径视为一个要素网络层,并重复相同的层多次以得到更高级的特征融合
    这与PANet 仅具有一个自上而下和一个自下而上的路径不同。第4.2节将讨论如何使用复合缩放方法来确定不同资源限制下的层数。

通过这些优化,我们将新特征网络命名为双向特征金字塔网络(BiFPN),如图2(f)和图3所示。
【论文笔记】EfficientDet: Scalable and Efficient Object Detection_第5张图片

3.3. Weighted Feature Fusion

当融合具有不同分辨率的多个输入特征时,一种常见的方法是先将它们调整为相同的分辨率,然后再进行sum。
先前的特征融合方法将所有输入特征均等地对待,没有区别。但是,我们发现,由于不同的输入特征的分辨率不同,因此它们通常对输出特征的贡献不均。为了解决这个问题,我们建议在特征融合过程中为每个输入增加额外的权重,并让网络学习每个输入特征的权重。基于这种思想,我们考虑了三种加权融合方法

Unbounded fusion
在这里插入图片描述
其中 w i w_i wi是可学习的权重,可以是标量(每个特征),矢量(每个通道)或多维张量(每个像素)。我们发现一个标量可以在最小的计算成本下实现相同的精度。但是,由于标量权重是无限的,因此可能会导致训练不稳定。因此,我们采用权重归一化来限制每个权重的值范围。

Softmax-based fusion
在这里插入图片描述
一个直观的想法是将softmax应用于每个权重,以便将所有权重归一化为值范围为0到1来表示每个输入的重要性。但是,如我们在第6.3节中的消融研究所示,额外的softmax会导致GPU硬件的速度显着下降。为了最小化时间成本,我们进一步提出了一种快速融合方法。

Fast normalized fusion
在这里插入图片描述
通过对每个 w i w_i wi进行一次Relu操作保证 w i w_i wi大于等于0. ϵ = 0.0001 \epsilon=0.0001 ϵ=0.0001保证分母不为0.同样,每个归一化权重的值也都介于0和1之间,但是由于此处没有softmax操作,因此效率更高。我们的消融研究表明,这种快速融合方法与基于softmax的融合方法具有相似的表现效果,但在GPU上的运行速度提高了30%(表5)。

我们最终的BiFPN集成了双向跨尺度连接和快速归一化融合。作为一个具体示例,在这里我们描述图2(f)所示的BiFPN在第6级的两个融合特征:
【论文笔记】EfficientDet: Scalable and Efficient Object Detection_第6张图片

4. EfficientDet

基于我们的BiFPN,我们开发了一个名为EfficientDet的新检测模型系列。 在本节中,我们将讨论网络架构和EfficientDet的新复合缩放方法。

4.1. EfficientDet Architecture

图3显示了EfficientDet的总体架构,它主要遵循one-stage检测器。我们使用预训练过的ImageNet作为EfficientDet的backbone。我们提出的BiFPN用作特征网络,它从骨干网络中获取3-7级 { P 3 , P 4 , P 5 , P 6 , P 7 } \{P3,P4,P5,P6,P7\} {P3P4P5P6P7}特征,并反复应用自上而下和自下而上的双向特征融合。这些融合特征被喂入class和box网络中产生对象类别和bounding box。

4.2. Compound Scaling

为了优化准确性和效率,我们希望开发一系列可以满足各种资源限制的模型。这里的关键挑战是如何扩展基准EfficientDet模型。

先前的工作大多通过采用更大的骨干网(例如ResNeXt 或AmoebaNet ),使用更大的输入图像或堆叠更多的FPN层来扩展基线检测器。这些方法通常效率比较低,因为它们仅关注单个或有限的缩放维度。最近的工作[31]通过扩大网络宽度深度输入分辨率,提高了在图像分类上的卓越性能。受这些工作的影响,我们提出了一种新的用于对象检测的复合缩放方法,该方法使用简单的复合系数 ϕ \phi ϕ来缩放backbone网络,BiFPN网络,class/box网络和分辨率。与文献[31]不同,对象检测器的缩放比例要比图像分类模型高得多,因此对所有尺寸进行网格搜索是昂贵的。因此,我们使用基于启发式的缩放方法,但仍遵循联合缩放所有维度的主要思想。

Backbone network。我们重用了EfficientNet-B0至B6 [31]相同的宽度/深度缩放系数,因此我们可以轻松地重用其ImageNet预训练的checkpoints。

BiFPN network。我们将BiFPN宽度 W b i f p n W_{bifpn} Wbifpn(#channels)与[31]相似地指数增长,但由于深度需要四舍五入为小整数,因此线性增加了深度 D b i f p n D_{bifpn} Dbifpn(#layers)。我们使用以下方程式:
在这里插入图片描述

Box/class prediction network 。我们将其宽度固定为始终与BiFPN相同(即 W p r e d = W b i f p n W_{pred} = W_{bifpn} Wpred=Wbifpn),但使用以下公式线性增加深度(#layers):
在这里插入图片描述

Input image resolution。由于在BiFPN中使用了3-7的特征层,因此输入分辨率必须可除以 2 7 2^7 27 = 128,因此我们使用以下公式线性提高分辨率:
在这里插入图片描述
根据具有不同φ的方程1,2,3,我们开发了EfficientDet-D0(φ= 0)至D6(φ= 6),如表1所示。
【论文笔记】EfficientDet: Scalable and Efficient Object Detection_第7张图片

值得注意的是,除非更改batch size大小或其他设置,否则将φ≥7放大的模型无法放入内存。 因此,我们仅需扩大输入尺寸,而将所有其他尺寸保持相同,即可简单地将D6扩展到D7,这样我们就可以对所有模型使用相同的训练设置。

5. Experiments

【论文笔记】EfficientDet: Scalable and Efficient Object Detection_第8张图片

【论文笔记】EfficientDet: Scalable and Efficient Object Detection_第9张图片

6. Ablation Study

6.1. Disentangling Backbone and BiFPN

【论文笔记】EfficientDet: Scalable and Efficient Object Detection_第10张图片

6.2. BiFPN Cross-Scale Connections

【论文笔记】EfficientDet: Scalable and Efficient Object Detection_第11张图片

6.3. Softmax vs Fast Normalized Fusion

【论文笔记】EfficientDet: Scalable and Efficient Object Detection_第12张图片
【论文笔记】EfficientDet: Scalable and Efficient Object Detection_第13张图片

6.4. Compound Scaling

【论文笔记】EfficientDet: Scalable and Efficient Object Detection_第14张图片

7. Conclusion

在本文中,我们系统地研究了用于有效对象检测的各种网络体系结构设计选择,并提出了加权双向特征网络和定制的复合缩放方法,以提高准确性和效率。基于这些优化,我们开发了一个名为EfficientDet的新检测器系列,该检测器在广泛的资源限制范围内始终比现有技术具有更高的准确性和效率。特别是,我们的EfficientDet-D7达到了最先进的精度,与现有最佳检测器相比,参数和FLOPS数量级减少了。 我们的EfficientDet在GPU上的速度也快了3.2倍,在CPU上的速度快了8.1倍。

你可能感兴趣的:(论文笔记)