EifficientDet论文笔记

论文:EfficientDet: Scalable and Efficient Object Detection . Mingxing Tan Ruoming Pang Quoc V. Le

 

 

摘要

模型效率在计算机视觉中变得越来越重要。本文系统地研究了用于目标检测的神经网络体系结构的设计选择,并提出了提高效率的几个关键优化。首先,本文提出了一种加权双向特征金字塔网络(BiFPN),该网络能够实现简单、快速的多尺度特征融合;其次,本文提出了一种复合缩放方法,对所有骨干网络、特征网络和边界框/类别预测网络同时统一尺度分辨率、深度和宽度。基于这些优化和更好的骨干网络本文开发了一个新的目标检测器系列,称为EfficientDet,它在广泛的资源限制范围内始终实现比现有技术更好的效率。特别是,在单模型和单尺度下,本文EfficientDet-D7在COCO test-dev上实现了最先进的55.1 AP,而只需7700万个参数和410B FLOPs,比以前的探测器小4倍- 9倍,使用的FLOPs13倍- 42倍。代码开源:https://github.com/google/automl/tree/master/efficientdet.

 

引言

近年来,在更精确的目标检测方面取得了巨大的进展;同时,最先进的物体探测器也变得越来越昂贵。例如,最新的AmoebaNet-basedNAS-FPN检测器[45]需要1.67亿个参数和3045B次浮点数(比RetinaNet[24]多30倍)才能达到最先进的精度。庞大的模型尺寸和昂贵的计算成本阻碍了它们在许多现实世界应用程序中的部署,比如机器人和自动驾驶汽车,在这些应用程序中,模型尺寸和延迟受到了高度限制。考虑到这些现实世界的资源限制,模型效率对于目标检测变得越来越重要。之前已经有很多研究致力于开发更高效的探测器体系结构,如单阶段[27,33,34,24]和Anchor-free检测[21,44,40],或压缩现有模型[28,29]。虽然这些方法趋向于达到更好的效率,他们通常牺牲准确性。此外,以前的大多数工作只关注特定的或小范围的资源需求,但从移动设备到数据中心,各种现实世界的应用程序往往需要不同的资源约束。

一个自然的问题是:是否有可能在广泛的资源限制范围内(例如从3B到300B FLOPs)构建一个具有更高准确性和更高效率的可扩展检测架构?本文通过系统地研究各种探测器体系结构的设计选择来解决这一问题。基于one-stage检测器范式,本文研究了骨干网络、特征融合和类别/边界框网络的设计选择,并确定了两个主要挑战:

Challenge 1:高效的多尺度特征融合。自[23]问世以来,FPN被广泛应用于多尺度特征融合。近年来,PANet[26]、NAS-FPN[10]等研究[20,18,42]开发了更多用于跨尺度特征融合的网络结构。以往的工作在融合不同的输入特征时,大多只是简单的求和,没有进行区分;然而,由于这些不同的输入特征具有不同的分辨率,本文观察到它们对融合输出特征的贡献通常是不相等的。为了解决这一问题,这里提出了一种简单而高效的加权双向特征金字塔网络(BiFPN),该网络引入了可学习的权值来学习不同输入特征的重要性,同时重复应用topdown 和 bottom-up的多尺度特征融合。

Challenge 2:model scaling。虽然之前的研究主要依赖于更大的骨干网络[24,35,34,10]或更大的输入图像尺寸[13,45]来获得更高的精度,但这里观察到,在同时考虑精度和效率时,增加特征网络和边界框/类别预测网络的比例也是至关重要的。受近期工作[39]的启发,这里提出了一种针对目标检测器的复合缩放(compound scaling)方法,该方法对所有骨干网络、特征网络、边界框/类别预测网络的分辨率/深度/宽度进行了都联合按比例放大。

最后,还观察到,最近推出的EfficientNets[39]比以前常用的骨干实现了更好的效率。结合了提出的BiFPN和复合缩放,本文开发了一个新的目标探测器系列,命名为Effi- cientDet,它始终以比以前的目标探测器更少的参数和FLOPs来实现更好的精度。图1和图4显示了COCO数据集[25]的性能比较。

图片1.jpg 

在类似的精度下,本文EfficientDet比YOLOv3[34]少使用28倍的FLOPs,比RetinaNet[24]少30倍,比最近基于ResNet的NAS-FPN[10]少19倍。特别是,在单模型和单测试时间尺度下,本文EfficientDet-D7实现了最先进的55.1 AP,具有77M参数和410B FLOPs,比之前最好的检测器[45]多4个AP,同时体积更小2.7倍,使用的FLOPs更少7.4倍。EfficientDet在GPU/CPU上的速度也比之前的检测器快了4到11倍。

通过简单的修改,还证明了本文的单模型单尺度的EfficientDet在Pascal VOC 2012的语义分割中,以18B次的浮点数实现了81.74%的mIOU精度,比DeepLabV3+[6]的浮点数少9.8倍,精度提高了1.7%。

 

 

 

相关工作

多尺度特征表示

目标检测的主要难点之一是如何有效地表示和处理多尺度特征。早期的检测器通常直接根据骨干网提取的金字塔特征层次结构进行预测[4,27,36]。作为先行者之一的feature pyramid network (FPN)[23]提出了一种结合多尺度特征的自顶向下路径。按照这种思路,PANet[26]在FPN上增加了一个额外的自底向上的路径聚合网络;STDL[43]提出了一个利用跨尺度特性的尺度转换模块;M2det[42]提出了一个u形模块来融合多尺度特征,G-FRNet[2]引入了门单元来控制特征之间的信息流。最近,NAS-FPN[10]利用神经结构搜索来自动设计特征网络拓扑。虽然NAS-FPN的性能更好,但在搜索过程中需要数千个GPU小时,并且生成的特征网络是不规则的,难以解释。本文以一种更直观、更有原则的方法来优化多尺度特征融合。

模型缩放

为了获得更好的准确性,通常通过使用更大的骨干网络 (例如,从移动尺寸模型[38,16]和ResNet[14],到ResNeXt[41]和AmoebaNet[32])放大基线检测器,或增加输入图像大小(例如,从512x512[24]到1536x1536[45])。最近的一些研究[10,45]表明,增加通道大小和重复特征网络也可以获得更高的精度。这些尺度变换方法大多集中在单一尺度或有限尺度上。最近,[39]通过联合放大网络宽度、深度和分辨率,在图像分类中展示了显著的模型效率。本文提出的目标检测的复合缩放法主要是受[39]的启发

 

BiFPN

在本节中,首先阐述了多尺度特征融合问题,然后介绍了提出的BiFPN的主要思想:高效的双向跨尺度连接和加权特征融合。

问题形式

多尺度特征融合的目的是聚合不同分辨率下的特征。形式上,给定一组多尺度特征Pin=(Pinl1,Pinl2,...),其中Pinli表示层级(level,与layer区分)li的特征,本文的目标是找到一个能有效聚合不同特征并输出一系列新特征的变换f:Pin=f(Pout)。具体的例子如图2(a)所示为FPN。FPN采用Pin=(Pinl3,...,Pinl7)作为输入,其中Pinli所在的特征层级的分辨率是输入图片的1/2^i。比如当输入图片的分辨率为640x640时,则Pinl3表示特征层级3的分辨率为80x80,其中80=640/23。Pinl7的分辨率为5x5。传统的FPN自上而下聚集多尺度特征:

图片7.jpg 

其中Resize通常是分辨率匹配的上采样或下采样操作,Conv通常是特征处理的卷积操作。

 

跨尺度连接

传统的top-downFPN固有地受到单向信息流的限制。为了解决这个问题,PANet[26]添加了一个额外的bottom-up路径聚合网络,如图2(b)所示。跨尺度关联在[20,18,42]中得到了进一步的研究。近年来,NAS-FPN[10]采用神经结构搜索来寻找更好的跨尺度特征网络拓扑结构,但在搜索过程中需要数千个GPU小时,发现的网络不规则且难以解释或修改,如图2(c)所示。通过研究这三种网络的性能和效率(表5),发现PANet比FPN和NAS-FPN获得了更好的精度,但是花费了更多的参数和计算量。

 图片2.jpg

为了提高模型的效率,本文提出了几种跨尺度连接的优化方法:

首先,去除那些只有一条输入边的节点原因是如果一个节点只有一条未进行特征融合的输入边,那么它对旨在融合不同特征的特征网络的贡献就会更小。这就产生了一个简化的双向网络。

其次,如果原始输入节点与输出节点在同一层次上,增加一条额外的边,以融合更多的特征而不增加太多的成本。

三,不同于PANet[26]只有一个top-down和一个bottom-up的路径,将每个双向(top-downbottom-up)路径作为一个特征网络层,并多次重复同一层,以实现更高级的特征融合。第4.2节将讨论如何使用复合缩放方法来确定不同资源约束的层数。通过这些优化,将新的特征网络命名为双向特征金字塔网络(BiFPN),如图2和3所示。

图片3.jpg 

 

加权特征融合

当融合不同分辨率的特征时,一个常见的方法是先将它们调整到相同的分辨率,然后将它们相加。金字塔注意力网络[22]引入全局自注意力上采样来恢复像素定位,[10]中对此进行了进一步的研究。所有以前的方法都一视同仁地对待所有的输入特性,没有区别。然而,观察到,由于不同的输入特征在不同的分辨率下,它们通常对输出特征的贡献是不相等的。为了解决这个问题,本文提出为每个输入添加一个额外的权重,让网络了解每个输入特征的重要性。基于这一思想,考虑了三种加权融合方法:

无边界融合

图片8.png

其中wi是一个可学习的权重,可以是一个标量(对每个特征),向量(对每个通道),多维张量(对每个像素)。发现一个尺度可以达到与其他方法相当的精度与最小的计算成本。然而,由于标量权值是无界的,它可能会导致训练不稳定。因此,采用权值归一化来限定每个权值的取值范围。

基于Softmax融合

图片9.png

一个直观的想法是将softmax应用于每个权重,这样所有权重都归一化为一个值范围为0到1的概率,表示每个输入的重要性。然而,正如在6.3节的消融中所示,额外的softmax会导致GPU硬件的显著放缓。为了减少额外的延迟成本,进一步提出了一种快速融合的方法。

快速归一化融合

图片10.png

其中在wi后应用ReLU确保wi>=0,ε=0.001用于避免数值不稳定。同样,每个归一化权重的值也在0到1之间,但由于这里没有softmax操作,所以它更高效。消融研究表明,这种快速融合方法与基于softmax的融合方法具有非常相似的学习行为和准确性,但是达到在gpu上快30%(表6)。

最终的BiFPN集成了双向跨尺度连接和快速归一化融合。具体的例子在图2(d)中描述了BiFPN6层级融合两个特征

图片11.png 

其中Ptd6是在top-down路径中的层级6的中间特征,Ptd6Bottom-up路径中层级6的输出特征。所有其他特征图都以类似的方式构造。值得注意的是,为了进一步提高效率,使用了深度可分卷积[7,37]进行特征融合,并在每次卷积后加入BN和激活函数。

 

EifficientDet

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

EifficientDet的架构

图片4.jpg 

3显示了EfficientDet的总体架构,它在很大程度上遵循了one-stage检测器范例[27, 33, 23, 24]。采用imagenet预训练的EfficientNets作为骨干网络。提出的BiFPN作为特征网络,采用骨干网中的3-7级特征{P3, P4, P5, P6, P7},并分别采用自上而下和自下而上的双向特征融合。融合后的特征被输入到类别网络和边界框网络中,分别产生目标的类别和边界框的预测。与[24]类似,class和box网络权重在所有级别的特性中都是共享的。

Compound Scaling

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

以前的工作主要是通过使用更大的骨干网络(例如ResNeXt[41]或AmoebaNet[32])来扩大基线检测器,使用更大的输入图像,或堆叠更多的FPN层[10]。这些方法通常是无效的,因为它们只关注单个或有限的缩放维度。最近的研究[39]通过联合放大网络宽度、深度和输入分辨率的所有维度,在图像分类方面表现出了卓越的性能。受这些工作的启发[10,39],本文提出了一种新的目标检测复合缩放方法,该方法使用简单的复合系数φ来共同缩放骨干网络BiFPN、类别/网络和分辨率的所有维度。与[39]不同的是,物体检测器的缩放维度比图像分类模型要多,所以对所有维度进行网格搜索grid search是非常昂贵的。因此,这里使用一种基于启发式的缩放方法,但仍然遵循对所有维度进行联合缩放的主要思想。

骨干网络:这里在EifficientNet-B0到B6重用了相同的宽度/深度的缩放系数,由此可以重用预训练的模型。

BiFPN网络:这里线性增加BiFPN的深度Dbifpn(#layers),因为深度需要四舍五入到小的整数。对于BiFPN的宽度Wbifpn(#channels),与[39]一样是指数增长的。具体来说,这里在值{1.2,1.25,1.3,1.35,1.4,1.45}的列表上执行网格搜索,并选择最佳值1.35作为BiFPN的宽度缩放因子。在形式上,BiFPN的宽度和深度按以下公式缩放:

图片12.png 

类别/边框预测网络:将它们的宽度固定为与BiFPN相同(即Wpred = Wbifpn),但使用公式线性增加深度(#layers):

图片13.png 

输入图像分辨率:因为特征层级3-7被BiFPN使用,因此输入分辨率必须被2^7整除,故使用下式线性增加分辨率:

图片14.png 

上面三个公式的 φ是不同的,EfficientDet-D0(φ=0)到D7(φ=7)如下表:

图片5.jpg 

D7和D7x具有相同的BiFPN和head,但D7使用更高的分辨率,D7x使用更大的骨干网络和多一个特征级别(从P3到P8)。值得注意的是,本文的复合缩放是基于启发式的,可能不是最优的,但本文将在图6中展示这种简单的缩放方法比其他一维缩放方法可以显著提高效率。

图片6.png 

 

 

 

 

 


上一篇:
下一篇:

首页 所有文章 机器人 计算机视觉 自然语言处理 机器学习 编程随笔 关于