目标检测论文阅读:EfficientDet算法笔记

标题:EfficientDet: Scalable and Efficient Object Detection
会议:CVPR2020
论文地址:https://ieeexplore.ieee.org/document/9156454/
这篇文章读起来还是比较顺的,每个改进点理解起来都不难,可以说是simple but work,特别是提出了可以适用于不同资源限制情景下的一系列检测器。其中对模型进行缩放的方法也极大地影响了后来的单阶段模型,比如YOLOX。

文章目录

  • 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
    • 5.1 EfficientDet for Object Detection
    • 5.2 EfficientDet for Semantic Segmentation
  • 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);其次,我们提出了一种复合缩放方法,可以对所有的主干网络、特征网络和边界框/类别预测网络同时进行分辨率、深度和宽度的统一缩放。基于上述优化和EfficientNet系列的backbone,我们提出了一个新的目标检测器系列,命名为EfficientDet。在不同的资源约束下,它的效率始终比现有的技术更好。尤其是EfficientDet-D7网络,在比此前检测器低几倍的参数量和FLOPs的情况下,取得了极好的mAP精度。

1. Introduction

目标检测在取得巨大进展的同时,SOTA模型的开销也变得越来越大。比如,最新的几个模型为了取得SOTA的精度需要很大的参数量和FLOPs。巨大的模型大小和计算量使得他们很难部署到实际应用当中,比如模型大小和延迟受到高度限制的机器人和自动驾驶。在这些现实世界的资源约束下,模型效率对目标检测变得越来越重要了。
在此之前已经有了很多旨在提升效率的检测器,比如单阶段和anchor-free的模型,或者压缩现有的模型。但是他们往往是以牺牲精度为代价来提高效率。此外,以往的工作大多只关注特定的或者小范围的资源限制。然而,现实世界的各种应用,从移动设备到数据中心,往往有着不同的资源限制。
一个自然而然的问题是:是否有可能在不同的资源限制范围(比如FLOPs从3B到300B)内构建一个具有更高精度和效率的可扩展的检测结构?本文旨在通过系统地研究检测器结构的各种设计选择来解决这一问题。基于单阶段检测器范式,我们考虑了backbone、feature fusion和class/box network,并确定了两个主要的挑战:
挑战1:高效的多尺度特征融合。自从FPN广泛用于多尺度特征融合,近年来,许多研究都提出了跨尺度的特征融合方法。在融合不同的输入特征时,以往的工作大多都是不加区分的对它们直接加和;然而,由于这些不同的输入特征具有不同的分辨率,我们发现它们通常对融合后的输出特征起到不同程度的贡献。针对这一问题,本文提出了一种简单高效的加权双向特征金字塔网络(BiFPN),它引入了可学习的权重来学习不同输入特征的重要性,并且反复应用自顶向下和自底向上的多尺度特征融合。
挑战2:模型缩放。之前的工作主要依靠更大的主干网络或者更大的输入图像尺寸来取得更高精度,我们发现,在提高精度和效率的时候,扩大特征网络和预测网络的尺寸也很重要。受最近工作的启发,我们提出了一种用于检测器的复合缩放方法,该方法可以对所有的主干网络、特征网络和边界框/类别预测网络同时进行分辨率、深度和宽度的统一缩放。
最后,我们也发现最近的EfficientNet要比之前常用的主干网络效率更高。结合EfficientNet、BiFPN和复合缩放,我们提出了一个新的目标检测方法族,命名为EfficientDet,与以前的检测器相比,它以更少的参数量和FLOPs实现了更高的精度。(最后对实验结果进行了概括阐述)。
目标检测论文阅读:EfficientDet算法笔记_第1张图片

2. Related Work

首先介绍了单阶段目标检测方法,并说明本文是基于单阶段范式设计的。然后介绍了多尺度特征融合表示。最后介绍了模型缩放,不同于增大主干网络和输入图像尺寸,最近的工作发现增加通道数目联合和重复特征网络也可以取得更高的精度,本文的复合缩放方法正是受启发于图像分类上的一个工作,该工作同时缩放网络的宽度、深度和分辨率。

3. BiFPN

目标检测论文阅读:EfficientDet算法笔记_第2张图片

3.1 Problem Formulation

介绍了一下多尺度特征融合,以2a中的FPN为例对问题进行了阐述。
目标检测论文阅读:EfficientDet算法笔记_第3张图片
值得注意的是,这里第i层特征图的分辨率是原始输入图像分辨率的1/2^i。

3.2 Cross-Scale Connections

传统的自顶向下的FPN受到单向信息流的内在限制。为了解决这个问题,PANet增加了一个额外的自底向上的路径聚合网络,如图2b所示。许多文献进一步研究了跨尺度连接。最近,NAS-FPN使用神经结构搜索来寻找更好的跨尺度特征网络拓扑结构,但是搜索过程需要数以千计的GPU hours,并且搜索到的网络结构是不规则的,难以解释和修改,如图2c所示。
通过研究表5里的三种网络的性能和效率,我们发现PANet的精度高于FPN和NAS-FPN,但是需要更大的参数量和计算量。为了提高模型效率,本文针对跨尺度连接提出了一些优化:第一,我们删除那些只有一条输入边的结点。我们的动机很简单:如果一个结点只有一条输入边,没有特征融合,那么它对于旨在融合不同特征的特征网络来说贡献就会更小。这就可以形成一个简化的双向网络。第二,我们把位于同一层的原始输入结点和和输出结点添加了一条额外的边,这是为了在不增加太多成本的情况下融合更多特征。第三,不同于PANet仅仅只有一个自顶向下和自底向上的路径,我们把每条双向(自顶向下和自底向上)路径都当做一个特征网络层,并且把同一层重复多遍来实现更高层次的特征融合。4.2节将会讨论如何运用复合缩放方法来确定不同资源限制下的层数。通过这些优化,我们将新的特征网络命名为双向特征金字塔网络(BiFPN),如图2和3所示。

3.3 Weighted Feature Fusion

在对不同分辨率的特征图进行融合时,通常首先把它们resize到同一分辨率,然后再sum起来。此前的所有工作都把所有的输入特征不加区分地平等对待。然后,我们发现由于不同的输入特征具有不同的分辨率,因此他们往往对输出特征产生不同的贡献。为了解决这个问题,我们提出为每个输入增加一个额外的权重,让网络学习每个输入特征的重要性。基于这个思路,我们考虑了三种加权融合方式:
Unbounded fusion:
在这里插入图片描述
其中,wi是一个可学习的权重,可以是标量(每个特征)、向量(每个通道)或者多维张量(每个像素)。我们发现标量可以以最小的计算成本达到与其他方法相当的精度。然而,由于标量权重是无界的,这可能会导致训练不稳定。因此,我们采用权重归一化来约束每个权重的取值范围。
Softmax-based fusion:
在这里插入图片描述
一个直观的想法是对每个权重都应用softmax,使所有权重归一化到一个取值范围为0到1的概率,表示每个输入的重要性。然而,6.3节的消融实验表明,额外的softmax会导致GPU硬件明显减速。为了最小化额外的延迟消耗,我们进一步提出了一种快速融合方法。
Fast normalized fusion:
在这里插入图片描述
其中,每个wi会通过ReLU函数来保证值大于等于0,ε = 0.0001是一个很小的值,以避免数值不稳定(分母为0)。同样,每个归一化后的权重值也落在0到1之间,但由于这里没有softmax操作,因此效率更高。我们的消融实验表明,这种快速融合方法与基于softmax的融合方法具有相似的表现效果,但在GPU上的运行速度快了30%。
最终的BiFPN结合了双向跨尺度连接和快速归一化融合。下面是图2d中第6层BiFPN的两个特征融合:
目标检测论文阅读:EfficientDet算法笔记_第4张图片其他的特征也都以类似的方式构建。得注意的是,为了进一步提高效率,我们使用深度可分离卷积进行特征融合,并在每次卷积后加入批归一化和激活函数。

4. EfficientDet

4.1 EfficientDet Architecture

图3是EfficientDet的整体结构,它基本遵循了单阶段检测器范式。我们使用在ImageNet预训练过的EficientNets作为backbone。BiFPN是特征网络,它使用来自backbone的第3-7层特征来反复进行自顶向下和自底向上的双向特征融合。这些融合后的特征将会分别送入分类和定位网络来产生类别和边界框预测结果。分类和定位网络的权重在所有层的特征之间都是共享的。
目标检测论文阅读:EfficientDet算法笔记_第5张图片

4.2 Compound Scaling

为了同时优化精度和效率,我们希望提出一系列能够满足不同资源约束的模型。这里的一个关键挑战是如何把baseline版的EfficientDet进行尺度放大。
之前的工作往往使用更复杂的backbone、增大输入图像尺寸或者堆叠更多的FPN层。这些方法通常效率比较低,因为它们仅关注单个或有限的缩放维度。最近的工作同时缩放网络的宽度、深度和分辨率,在图像分类上取得了显著的效果。受这些工作启发,我们提出了一种新的用于目标检测的复合缩放方法,该方法使用一个简单的复合系数φ来同时缩放主干网络、BiFPN网络、class/box网络和分辨率的所有维度。目标检测模型比图像分类模型有更多的缩放维度,因此对所有维度进行网格搜索是开销巨大的。因此,我们使用基于启发式的缩放方法,但仍然遵循同时缩放所有维度的核心思想。
Backbone network:我们沿用EfficientNet-B0到B6相同的宽度/深度缩放系数,这样可以复用它们的ImageNet预训练的权重。
BiFPN network:BiFPN的深度呈线性增加,宽度呈指数增加,底数1.35是通过网格搜索得到的最佳值。BiFPN的宽度和深度通过以下公式进行缩放:
目标检测论文阅读:EfficientDet算法笔记_第6张图片
Box/class prediction network:它们的宽度始终和BiFPN固定在相同大小,深度则采用下面的式子线性增长:
在这里插入图片描述
Input image resolution:由于BiFPN使用第3-7层特征,输入分辨率会被缩小2^7 = 128倍,因此我们使用下列公式线性增加输入图像的分辨率:
在这里插入图片描述
表1即通过上述方法得到的EfficientDet-D0到D7,D7和D6只有分辨率不同。值得注意的是,我们的缩放是基于启发式的,虽然可能不是最优的,但我们将在图6中展示,这种简单的缩放方法相对于其他单一维度的缩放方法能显著提高效率。
目标检测论文阅读:EfficientDet算法笔记_第7张图片

5. Experiments

5.1 EfficientDet for Object Detection

目标检测论文阅读:EfficientDet算法笔记_第8张图片
目标检测论文阅读:EfficientDet算法笔记_第9张图片
和SOTA对比,具体的实验结论可以参照原文。

5.2 EfficientDet for Semantic Segmentation

目标检测论文阅读:EfficientDet算法笔记_第10张图片
在语义分割任务上也有很好的效果,具体的实验结论可以参照原文。

6. Ablation Study

6.1 Disentangling Backbone and BiFPN

目标检测论文阅读:EfficientDet算法笔记_第11张图片
EfficientNet backbones和BiFPN对最终的模型都很重要,具体的实验结论可以参照原文。

6.2 BiFPN Cross-Scale Connections

目标检测论文阅读:EfficientDet算法笔记_第12张图片
BiFPN的优越性,具体的实验结论可以参照原文。

6.3 Softmax vs Fast Normalized Fusion

目标检测论文阅读:EfficientDet算法笔记_第13张图片
目标检测论文阅读:EfficientDet算法笔记_第14张图片
Fast Normalized Fusion的优越性,并且说明了不同特征对于特征融合的贡献是不一样的,具体的实验结论可以参照原文。

6.4 Compound Scaling

目标检测论文阅读:EfficientDet算法笔记_第15张图片
Compound Scaling的优越性,具体的实验结论可以参照原文。

7. Conclusion

本文系统地研究了面向高效目标检测的网络架构设计选择,提出了加权双向特征网络和定制化复合缩放方法,以提高检测精度和效率。基于这些优化,我们开发了一个新的检测器家族,命名为EfficientDet,它在不同的资源限制下始终实现比现有技术更好的精度和效率。特别地,与之前的目标检测和语义分割模型相比,我们的Scaled EfficientDet以更少的参数和FLOPs达到了最先进的精度。

你可能感兴趣的:(目标检测,目标检测,论文阅读,深度学习,计算机视觉,神经网络)