龙空技术网

目标检测EfficientDet-Scalable and Efficient Object Detection

呵呵的时候 425

前言:

眼前兄弟们对“单标比较计算法”可能比较关心,同学们都想要了解一些“单标比较计算法”的相关资讯。那么小编在网摘上搜集了一些有关“单标比较计算法””的相关内容,希望看官们能喜欢,姐妹们一起来了解一下吧!

#423头条知识节# #科技青年# #人工智能#

最近Google Brain团队发布了论文 EfficientDet: Scalable and Efficient Object Detection,在COCO数据集上取得了stat-of-the-art的结果 :51.0 mAP!与之前的最好算法相比,它的参数量以及FLOPS都成倍的减少,但是检测的精度却更高(+ 0.3 % mAP)!

一、Introduction

近年来,在更精确的目标检测方面取得了巨大的进步。 同时,最新的目标检测所需的代价也变得愈加高昂。 例如,最新的基于AmoebaNet的NASFPN检测器需要167M参数和3045B FLOPs(比RetinaNet 多30倍)才能达到最新的精度。 巨大的模型尺寸和昂贵的计算成本阻碍了它们在许多实际应用中的部署,例如机器人技术和自动驾驶汽车等模型尺寸和延时都受到高度约束的场景。 考虑到这些实际资源的限制,模型效率对于目标检测变得越来越重要。

以前有许多旨在开发更有效的检测器的工作,例如one-stage和anchor-free的检测器,或压缩现有模型。 尽管这些方法往往会达到更高的效率,但它们通常会牺牲准确性。 此外,大多数先前的工作仅关注特定或一小部分资源需求,但是从移动设备到数据中心的各种实际应用常常需要不同的资源约束。

一个自然的问题是:是否有可能在广泛的资源约束(例如从3B到300B FLOPs)中构建具有更高准确性和更高效率的可扩展检测架构? 本文旨在通过系统地研究探测器架构的各种设计选择来解决这个问题。 基于one-stage检测器的示例,我们对backbone网络、特征融合和class/box网络的设计选择进行了实验,并确定了两个主要挑战:

挑战1:有效的多尺度特征融合–自FPN诞生以来,已广泛用于多尺度特征融合。 最近,PANet 、NAS-FPN 等。 在融合不同的输入特征时,大多数以前的工作只是对它们进行没有任何区别的简单加和。 但是,由于这些不同的输入特征的分辨率不同,因此我们观察到它们通常对融合输出特征的贡献并非完全等同。 为解决此问题,我们提出了一个简单而高效的加权双向特征金字塔网络(BiFPN),在反复应用自上而下和自下而上的多尺度特征融合的同时,引入了可学习的权重去学习不同输入特征的重要性。

挑战2:模型缩放-虽然先前的工作主要依赖于较大的主干网络或较大的输入图像大小来提高准确性,但我们观察到,在兼顾准确性和效率的同时,缩放特征网络和框/类预测网络也至关重要。 受EfficientNet的启发,我们提出了一种用于目标检测器的复合缩放方法,该方法可联合缩放所有backbone、特征网络,box/类预测网络的分辨率/深度/宽度。

最后,我们还观察到,最近引入的EfficientNets比以前的常用backbone网络具有更高的效率。 通过将EfficientNet backbone网络与BiFPN以及复合缩放相结合,开发了一个名为EfficientDet的新目标检测器族,与以前的对象检测器相比,它以更少的参数和FLOPs来实现更高的精度。 图1和图4显示了在COCO数据集的性能比较。 在类似的精度约束下,我们的EfficientDet使用的FLOPs比YOLOv3少28倍,比RetinaNet少30倍,而FLOPs比最近基于ResNet的NAS-FPN少19倍。 特别是,在单模型和单一测试时间尺度下,我们的EfficientDet-D7可实现最先进的52.2 AP,具有52M参数和325B FLOPs,以1.5 AP的性能超越了以前的最佳检测器,同时模型尺寸缩小了4倍,且FLOPs减少了13倍。 我们的EfficientDet在GPU / CPU上的速度也比以前的检测器快3到8倍。

二、Related Work

One-Stage Detectors: 现有的目标检测器主要根据它们是否具有ROI proposal这一步来分为one-stage和two-stage。尽管two-stage的检测趋向于更灵活,更准确,但是one-stage的检测,由于不需要预先定义的anchor,被认为更简单、高效。近来,one-stage检测器由于其简单、高效而引起了极大的关注。 在本文中,主要遵循one-stage检测器设计,并且我们展示了通过优化的网络架构可以同时实现更高的效率和更高的精度。

Multi-Scale Feature Representations: 目标检测的难点之一在于高效的表示和处理多尺度的特征。较早的检测器通常基于从backbone网络中提取的金字塔特征层次直接执行预测。 作为开拓性的作品之一,特征金字塔网络(FPN)提出了一种自上而下的途径来组合多尺度特征。 遵循这个想法,PANet 在FPN的基础上增加了一个额外的自下而上的路径聚合网络。 STDL 提出了一个尺度转移模块来利用跨尺度特征。 M2det 提出了一种U形模块来融合多尺度特征,而G-FRNet 提出了用于控制信息跨特征流动的门单元。 最近,NAS-FPN 利用神经体系结构搜索来自动设计特征网络拓扑。 尽管NAS-FPN具有更好的性能,但在搜索过程中需要数千小时的GPU时耗,并且由此产生的特征网络不规则,因此难以解释。 在本文中,我们旨在以更直观,更合理的方式优化多尺度特征融合。

Model Scaling: 为了获得更好的精度,通常通过采用更大的backbone网络或增加输入图像尺寸来放大基线检测器。 最近的一些工作表明,增加通道大小和重复特征网络也可以提高准确性。 这些缩放方法主要集中在单个或有限的缩放维度上。 最近,EfficientNet通过联合扩大网络的宽度,深度和分辨率,在图像分类任务上具有显着的模型效率提升。 我们提出的用于目标检测的复合缩放方法主要受EfficientNet启发。

三、BiFPN

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

3.1. Problem Formulation

多尺度特征融合旨在聚合不同分辨率的特征。对于给定的多尺度特征集合:

集合中元素的下标代表特征的层级。目标是找到一个转换函数f能高效的聚合不同的特征,并输出新的特征集合:

图2(a)所示FPN,将level3-7的特征作为输入,使用自顶向下的方式聚合特征。Resize通常是用于分辨率匹配的上采样或下采样操作,而Conv通常是用于特征处理的卷积操作。

3.2. Cross-Scale Connections

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

通过研究这三个网络的性能和效率(表5),我们观察到PANet的精度比FPN和NAS-FPN更好,但是需要更多的参数和计算。为了提高模型效率,本文针对跨尺度连接提出了几种优化方法:首先,我们删除那些只有一个输入边的节点。我们的直觉很简单:如果一个节点只有一个输入边且没有特征融合,那么它将对旨在融合不同特征的特征网络贡献较小。这诞生了简化的双向网络。 其次,如果原始输入与输出节点处于同一特征层级,则在原始输入和输出节点之间增加一条额外的边,以便在不增加成本的情况下融合更多功能。 第三,与PANet 仅具有一个自上而下和一个自下而上的路径不同,我们将每个双向(自上而下和自下而上)路径视为一个特征网络层,并重复相同的层多次以得到更多高级功能融合。 第4.2节将讨论如何使用复合缩放方法来确定不同资源约束情况下的层数。 通过这些优化,我们将新要素网络命名为双向要素金字塔网络(BiFPN),如图2和3所示。

3.3. Weighted Feature Fusion

当融合具有不同分辨率的特征时,一种常见的方法是先将它们的大小调整为相同的分辨率,然后对其进行聚合。 金字塔注意力网络引入了全局自注意力上采样以恢复像素定位。 所有先前的方法同等地对待所有输入特征,没有区别。 但是,我们观察到,由于不同的输入特征的分辨率不同,因此它们通常对输出特征的贡献并不均等。 为了解决这个问题,我们建议为每个输入增加一个额外的权重,并让网络学习每个输入特征的重要性。 基于此思想,我们考虑了三种加权融合方法:

Unbounded fusion:

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

Softmax-based fusion:

一个直观的想法是将softmax应用于每个权重,以便将所有权重标准化为一个概率范围,值的范围从0到1,代表每个输入的重要性。 但是,如我们在第6.3节中的消融研究所示,额外的softmax会导致GPU硬件的速度显着下降。 为了最小化额外的等待时间成本,我们进一步提出了一种快速融合方法。

Fast normalized fusion:

通过在每个wi之后应用Relu来确保wi≥0,并且epislon = 0.0001是一个小数值,以避免数值不稳定。 同样,每个归一化权重的值也都介于0和1之间,但是由于此处没有softmax操作,因此效率更高。 我们的消融研究表明,这种快速融合方法的学习行为和准确性与基于softmax的融合方法非常相似,但在GPU上的运行速度最高可提高30%(表6)。

我们最终的BiFPN集成了双向跨尺度连接和快速归一化融合。 作为一个具体示例,在这里我们描述了图2(d)所示的BiFPN在level-6的两个融合特征:

所有其他特征均以类似方式构造。 值得注意的是,为了进一步提高效率,我们使用深度可分离卷积进行特征融合,并在每次卷积后添加BN和激活函数。

四、EfficientDet

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

4.1. EfficientDet Architecture

图3显示了EfficientDet的总体架构,该架构很大程度上遵循了one-stage检测器范例。 我们采用ImageNet预训练的EfficientNets作为backbone网络。 我们提出的BiFPN用作特征网络,它从骨干网络中获取3-7级{P3,P4,P5,P6,P7}特征,并反复应用自上而下和自下而上的双向特征融合。 这些融合的特征被馈送到class/box网络,以分别生成对象类和bounding box预测。 类和框网络权重在所有层级的特征之间共享。

4.2. Compound Scaling

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

先前的工作大多通过采用更大的骨干网络,使用更大的输入图像或堆叠更多的FPN层来扩大基线检测器的规模。 这些方法通常无效,因为它们仅关注单个或有限的缩放维度。 最近的工作EfficientNet通过联合扩大网络宽度,深度和输入分辨率的所有维度,显示了在图像分类上的卓越性能。受这些工作的启发,我们提出了一种新的用于目标检测的复合缩放方法,该方法使用简单的复合系数φ来按比例放大骨干网,BiFPN网络,class/box网络的所有维度和输入的分辨率。 与EfficientNet不同的是,目标检测器具有比图像分类模型大得多的缩放比例尺,对所有尺寸进行网格搜索的成本过高。 因此,我们使用基于启发式的缩放方法,但仍遵循联合缩放所有维度的主要思想。

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

BiFPN network:我们将BiFPN深度Dbifpn(#layers)线性增加,因为深度需要四舍五入为小整数。 对于BiFPN宽度Wbifpn(#channels),与EfficientNet相似,指数增长BiFPN宽度Wbifpn(#channels)。 具体来说,我们在值列表{1.2、1.25、1.3、1.35、1.4、1.45}上执行网格搜索,并选择最佳值1.35作为BiFPN宽度缩放因子。 正式地,BiFPN的宽度和深度通过以下公式缩放:

Box/class prediction networ:我们将其宽度固定为始终与BiFPN相同(即Wpred = Wbifpn),但使用以下公式线性增加深度(#layers):

Input image resolution:由于在BiFPN中使用了功能级别3-7,因此输入分辨率必须可除以128,因此我们使用以下公式线性提高分辨率:

如表1所示,根据具有不同φ的方程1,2,3,我们开发了EfficientDet-D0(φ= 0)至D7(φ= 7),其中D7与D6相同,但分辨率更高。 值得注意的是,我们的缩放是基于启发式的,可能不是最佳的,但是我们将证明,这种简单的缩放方法比图6中的其他一维缩放方法可以显着提高效率。

五、Experiments

5.1. EfficientDet for Object Detection

表2将EfficientDet与其它对象检测器(在没有测试时间增加的单模型单标度设置下)进行了比较。我们报告了test-dev和val的准确性。我们的EfficientDet比以前的检测器具有更高的效率,并且在各种精度或资源限制下,模型的尺寸小4到9倍,使用的FLOP减少了13到42倍。在相对较低的精度条件下,我们的EfficientDet-D0可以达到与YOLOv3相似的精度,并且FLOP减少了28倍。 与RetinaNet 和Mask-RCNN 相比,我们的EfficientDet-D1达到了相似的精度,参数减少了8倍,FLOP减少了21倍。在高精度系统上,我们的EfficientDet还以更少的参数和FLOP持续优于最近的NAS-FPN [8]及其[42]中的增强版本。 特别是,我们的EfficientDet-D7在单模型单尺度设置下,在test-dev和val上实现了stat-of-the-art的 52.2 AP。

除了参数大小和FLOP,我们还在Titan-V GPU和单线程Xeon CPU上比较了实际延迟。 我们以batch大小1运行每个模型10次,并报告均值和标准差。 图4说明了模型大小,GPU延迟和单线程CPU延迟的比较。 为了公平比较,这些数字仅包括在同一台机器上以相同设置测量的结果。 与以前的检测器相比,EfficientDet模型在GPU上的速度提高了4.1倍,在CPU上的速度提高了10.8倍,这表明它们在现实世界的硬件上也很高效。

六、Ablation Study

6.1. Disentangling Backbone and BiFPN

由于EfficientDet同时使用了功能强大的骨干网络和新的BiFPN,因此我们想了解它们各自对准确性和效率提高的贡献。 表4比较了骨干网络和BiFPN的影响。 从使用ResNet-50 backbone和自上而下的FPN 的RetinaNet检测器开始,我们首先用EfficientNet-B3替换backbone,这可以提高3 AP精度,而参数和FLOP则要少一些。 通过用我们提议的BiFPN进一步替代FPN,我们可以用更少的参数和FLOP获得额外的4 AP增益。 这些结果表明,EfficientNet主干网和BiFPN对我们的最终模型都至关重要。

6.2. BiFPN Cross-Scale Connections

6.3. Softmax vs Fast Normalized Fusion

6.4. Compound Scaling

标签: #单标比较计算法