EfficientDet: Scalable and Efficient Object Detection
参考文献:https://arxiv.org/pdf/1911.09070.pdf
代码实现:
原论文提供 https://github.com/google/automl/tree/master/efficientdet;PyTorch提供 https://github.com/zylo117/Y et-Another-EfficientDet-Pytorch
EfficientDet: Scalable and Efficient Object Detection
摘要
在计算机视觉领域中,提高模型效率已成为不可忽视的趋势。本文深入探讨了用于目标检测任务的神经网络架构设计选择,并提出了一套关键优化方案以显著提升模型效能。首先,本研究 introduces a novel 加权双向特征金字塔网络(BiFPN),该网络能够高效整合多尺度特征并实现快速推理。其次,在主干网络、特征提取层及边界框/类别预测器之间实现了统一分辨率调整策略,并在此基础上构建了一个新型的目标检测框架系列——EfficientDet,在资源受限环境里展现出卓越性能表现:对于单个模型及其唯一比例配置,在COCO数据集上达到52.2平均精度(AP),参数规模仅为52M级别同时FLOP减少至325B数量级;相较于传统方法,在单模态+单一比例下参数规模缩减4-9倍的同时FLOP降低了13-42%
1 引言
近年来,在提高目标检测精度方面研究取得了显著进展。然而目前的最先进的目标检测器价格也越来越昂贵。例如,在采用神经架构搜索自适应网络架构[42]的情况下,最新的AmoebaNet架构采用了167百万参数配置,并消耗3045亿浮点运算能力(较之RetinaNet[21]高出约30倍)。较大的模型规模与高昂的计算成本限制了其在实际应用中的部署。鉴于当前实际应用场景中的硬件资源限制,在机器人与自动驾驶汽车等领域的应用中,模型规模与时间延迟等因素都对算法性能提出了更高要求。因此,在这种背景下考虑硬件资源限制因素后,在保证检测精度的前提下提升模型效率显得尤为重要。
先前的研究主要致力于构建更为高效的检测架构,并常以one-stage架构(引用编号)及anchor-free设计(引用编号)等方式展开;同时还有压缩现有模型的技术(引用编号)。尽管这些方法在提升效率方面取得了显著成效(引用编号),但常伴随着精度上的牺牲(引用编号)。然而过去的研究往往仅针对特定或有限的资源需求展开(引用编号),而实际上从移动设备到数据中心等多场景应用则对资源约束提出了多样化的需求。
这个问题就很有意思:是否可以在资源范围(比如从3B到300B的FLOPs)内设计出同时具备更高精度和更好效率的可扩展检测架构?本文的目标就是系统探讨探测器架构的各种设计选项以应对这一挑战。基于One-stage检测框架的方法论基础之上,我们深入分析了主干网络架构、特征融合策略以及分类与边界框生成模块的具体实现方案,并得出了两大核心难点。
挑战1:高效率的多尺度特征融合课题。自文献[20]提出后, FPN已广泛应用于多尺度特征融合中。近期研究如PANet[23]、NAS-FPN[8]以及相关工作[17、15、39]均致力于开发多种用于跨尺度特征融合的网络架构。在处理不同输入特征时,以往方法仅简单地将它们相加,未能区分各自的作用;然而,由于这些输入特性具有不同的分辨率,我们发现它们对最终融合输出贡献存在差异性。基于此观察,本研究提出了一种简单的 yet 高效的加权双向金字塔网络(BiFPN)。该方法通过引入可学习权重来区分不同输入特性的贡献,并通过反复实施自顶向下与自下而上的多尺度融合机制,有效提升了整体性能。
课题二:模型尺度调整。尽管先前的研究主要围绕着采用更大规模的主干架构[21, 32, 31, 8]以及更高分辨率的输入图像来进行高精度检测这一策略展开研究工作,但我们的研究表明,在性能与效率并重的前提下,提升特征提取与目标定位的效率同样重要。参考文献[36]的研究成果中,我们提出了一种结合多级尺度信息处理的目标检测框架,该方法通过整合优化各层次尺度下的特征表示能力,实现了从基础特征到高级抽象表示的有效过渡
此外,在深入研究后发现

通过简单的调整措施, 我们进一步验证了单模型单尺度EfficientDet方法在Pascal VOC 2012语义分割任务中使用18B浮点运算时获得的81.74% mIOU均值, 其精度较DeepLabV3+方法高出约1.7个百分点, 同时相比DeepLabV3+方法, 在浮点运算规模上减少了约9.8倍。
主要贡献:
开发了BiFPN这一高效的双向加权特征融合网络;
引入了一种创新性的综合放大策略,并将其应用于主干网络、特征提取网络以及分类与边界框预测网络中以提升它们的空间分辨率、深度和计算宽度;
在结合BiFPN与这种创新性放大策略的基础上,开发出了EfficientDet检测系统,在资源受限情况下能够实现更高精度的同时保持较高的效率。
2 相关工作
单阶段目标检测器:现有的目标检测器主要依据它们是否具有兴趣区域建议步骤进行分类划分[9, 32, 3, 11]为两类:两阶段架构[33, 24, 30, 21]与单阶段架构。尽管两阶段检测器通常具备更高的灵活性与准确性[14]但传统观点倾向于认为单阶段检测器凭借预先定义好的锚框更容易实现且计算效率更高[18, 39, 41]近年来因其实现简便及高效优势而受到广泛关注[18, 39, 41]在本文中我们主要采用了基于单阶段架构的设计框架并且证明了通过优化网络结构能够实现更好的效率与更高精度。
多尺度特征表示方面:多尺度特征的准确表达与处理构成了目标检测的关键挑战之一。传统的检测器通常直接依据从骨干网络中抽取的金字塔特征层次进行预测[2, 24, 33]。而特征金字塔网络(FPN)[20]则开创性地提出了一种自顶向下的方法来整合多尺度特征。基于这一思路,在FPN的基础上,PANet[23]增加了额外的自底向上的路径聚合网络;STDL[40]引入了scale-transfer模块以促进跨尺度特征开发;M2det[39]提出了U形模块以融合multi-scale特征;G-FRNet[1]则加入了控制跨特征信息流的门单元机制。近期的研究表明,NAS-FPN[8]通过神经架构搜索自动设计了特征网络结构。尽管该方法在性能上表现优异,但在搜索过程中却耗费数千个GPU小时,且生成的特征网络具有不规则性,使其难以解释。本文旨在提出一种更加直观且原则性强的方法以优化多尺度特征融合技术
模型缩放:为了以提升精度为目标,在实际应用中通常会采取扩大骨干网络(例如MobileNet系列[35,13]及ResNet[12])或提升输入图像尺寸(例如从512x512[21]扩展至1536x1536[42])等方式来增强基础检测器的效果。近期研究工作[8,42]表明,在于增加通道数量以及构建更深的特征提取网络也能进一步提高检测精度;这些缩放策略主要局限于单一维度的优化空间。最近文献[36]提出了一种综合扩展现有架构维度的方法——同时扩大宽度、深度和分辨率——从而实现了更高的分类效率。我们提出的目标检测专用复合缩放方法深受上述研究启发
3 BiFPN
在本节中, 首先详细论述了多尺度特征融合的问题, 然后介绍了我们提出的核心理念: 其核心在于实现有效的双向跨尺度信息传递机制以及加权特征融合技术.
3.1 问题描述
多尺度特征融合的主要目标是对不同分辨率的图像或信号的不同层次细节进行有效提取与整合。在多尺度特征融合中,在线性代数框架下形成了一个多尺度特征列表,在这一过程中每一级Li中的元素都代表对应分辨率级别的关键信息提取结果。其中每个Plin表示第li级的特定空间位置上的表征特性,并通过某种转换将其有效地聚合到输出层上以生成更高层次的空间细节信息。作为一个具体的实例,请参考图2(a),该图展示了传统的自上而下的FPN架构[20]。在这种架构中,默认输入的是一个包含多个分辨率层级的图像金字塔结构输入数据集Pi∈{3,4,…,7}P_i∈{3,4,…,7}。对于每一个输入层级i来说,在传统FPN中其对应的输出单元都是经过相应降采样处理后的二维空间区域Ω_i⊂R²Ω_i⊂R²上的低频表征特性矩阵;特别地,在这种情况下如果原始图像尺寸为640x640,则当i=3时对应的降采样单元Ω_3将是一个80x80的空间区域;当i=7时对应的降采样单元Ω_7则会缩减到5x5的空间区域尺寸上;传统FPN架构通过自顶向下的方式整合各层次空间细节信息:

其中Resize通常被用作分辨率匹配时的上采样或下采样操作,在特征处理中则常被用作卷积操作

3.2 跨尺度连接
传统的自顶向下FPN受单向信息流所限。为了解决这一问题,PANet[23]引入了额外的一个自底向上的路径聚合网络.跨尺度连接的相关研究可见于文献[17,15,39].最近,NAS-FPN[8]利用神经架构搜索优化跨尺度特征网络拓扑结构,在优化过程中,该方法耗时数千GPU小时得到的结果呈现不规则性且难以解析或调整.
基于表5中对这三种网络的性能与效率的研究发现可知, PANet较FPN与NAS-FPN展现出更高的精度参数,然而其参数量与计算开销相对较高.为此,本文提出了一种跨尺度连接优化方案:首先,建议移除仅连接一个输入边的节点.这种做法看似简单:因为单入端子节点无法实现多特征融合,因而其在网络整体功能中的作用较为有限,从而可以简化为一种双级双向网络结构,例如PANet;其次,若原始输入端子与输出端子位于同一层级,则建议在两者之间增加额外连接;最后,不同于PANet[23]仅采用单一自上而下及自下而上的路径组合方式,PANet[23]将每个自上而下与自下而上的连接线路视为一个独立特征网络层,并通过反复重复该结构来实现多层次特征融合.第4.2节将会介绍如何通过复合缩放方法确定不同资源限制下的最优层数设置.按照上述优化方案所得的新网络架构命名为双向特征金字塔网络(BiFPN),如图2所示展示了其基本原理图示
3.3 加权特征融合
在处理具有不同分辨率特征时,在图像处理任务中一种常见做法是首先将所有这些特征统一调整到同一分辨率层次上,并随后进行求和运算以生成最终结果。金字塔注意网络[19]则通过引入全局自注意力机制来实现对像素级别的精细定位目标;这种技术已在文献[8]中进行了深入探讨并获得了广泛认可。然而,在传统的特征融合方法中往往假设所有输入都是同等重要的,并未考虑其潜在的空间信息差异带来的影响;而我们发现这一假设并不成立:由于输入数据间可能存在显著的空间位置差异以及不同通道间的丰富度不均等特性,在实际应用中这些因素都会直接影响最终融合效果的表现形式以及模型性能的关键指标——为了应对这一挑战性问题,在本研究中我们提出了一种基于加权策略的新颖融合框架;该框架的核心思想在于为每个原始输入通道赋予一个可学习权重系数;通过这种设计不仅能够有效平衡各通道之间的空间信息分布差异性问题;还能使模型能够自动学习出各通道的重要程度权重值;基于此基础之上我们构建了三种不同的加权融合模块并将其整合到主网络架构之中;实验结果表明这种方法较传统方案在保持计算效率的同时显著提升了模型性能表现。
Unbounded fusion;O=∑iwi⋅Ii;其中wiw_i是可学习参数;既可以表示单个特征;也可以表示多个通道或像素的空间信息。经过实验分析发现;在计算资源有限的情况下;使用单一标量即可达到与现有方法相当的效果。然而在实际训练过程中发现这种无限扩展特性可能导致模型不稳定进而影响训练效果因此为了保证模型稳定性和训练可靠性我们采用权重归一化的方法来限制各个位置上的权重取值范围
基于软最大值融合的方法计算输出O=Σ(ewi/Σewj)·Ii
Efficient normalized fusion: The output O is defined as O = ∑_i (w_i / (ε + ∑_j w_j)) ⋅ I_i. After applying ReLU to each w_i, we ensure that the weights remain non-negative. Here, ε = 0.0001 is a small value added to prevent numerical instability. Similarly, the normalized weights are constrained between 0 and 1 without using the softmax operation, making the process more efficient. Our ablation studies demonstrate that this fast fusion approach achieves comparable performance to the softmax-based method while significantly improving computational speed by approximately 35% (see Table 6).
我们的最终BiFPN整合了双尺度信息传递机制以及高效的归一化过程。作为具体实例,在图2(d)的基础上展示了该BiFPN在第6级的两个融合特征:

其中P_6{td}是自上而下的第六级中间特征节点,P_6{out}是自下而上的第六级输出特征节点,其余相关功能均采用相同方式构建。值得注意的是,为了进一步提升融合效率,我们采用了深度可分离卷积[5,34]进行特征融合,并在每次卷积操作后依次加入批归一化层和激活函数。
4 EfficientDet
利用我们的BiFPN架构,在本节中我们将探讨该网络架构以及一种新型复合缩放策略用于实现EfficientDet family的一系列新型检测模型
4.1 EfficientDet网络结构
图3显示了EfficientDet的总体架构,它主要遵循了单阶段检测器范式[24、30、20、21]。我们使用预训练过的ImageNet作为EfficientDet的骨干网络。我们提出的BiFPN是一个特征网络,它从骨干网络中提取3-7级特征{P3,P4,P5,P6,P7P3,P4,P5,P6,P7},并反复应用自顶向下和自下而上的双向特征融合。这些融合后的特征分别输入到class/box网络中,预测对象类别和边界框。与[21]类似,class/box网络权重在所有级别的特征中共享。

4.2 复合缩放方法
研究团队致力于旨在提升性能与效率地构建一系列模型以适应不同计算资源的需求,在这一过程中我们遇到了一个主要难点即如何提高基准效率下的et架构性能
以前的研究主要依赖于采用更大规模的骨干网络(如ResNeXt[38]或AmoebaNet[29])、增大输入图像尺寸或是叠加更多的FPN层来提升baseline检测器[8]的表现。然而这些方案往往效率较低的原因在于它们仅关注单一缩放维度或有限个缩放维度。近期的研究工作[36]则通过综合放大网络宽度、深度和分辨率等多个维度,在图像分类任务中取得了显著的性能提升。受到上述研究工作的启发[8,36],我们提出了一种新的目标检测复合缩放方法。该方法采用了简单的复合缩放系数φφ来进行多维度特征的联合放大处理包括骨干网络BiFPN网络class/box网络以及分辨率等多个方面。与现有研究不同的是我们的目标检测系统相较于图像分类模型拥有更多的尺度维数因此在多维参数空间内的网格搜索计算成本会显著增加为此我们采用了基于启发式的缩放策略但仍然坚持在多维度空间内综合放大各个特征组件的主要思想。
backbone backbone architecture: We selectively reuse the EfficientNet-B0 through B6 models with matching width and depth coefficient ratios as detailed in reference [36]. This enables us to effortlessly leverage pre-trained models from the ImageNet dataset.
为了便于后续计算和实现的简化处理,在设置BiFPN网络结构时,默认按照逐步递增的方式安排其层数DbifpnD_{bifpn}(#layers)。这种设计方法能够有效减少复杂度;在确定网络参数的过程中,在设置权重通道数量WbifpnW_{bifpn}(#channels)时,默认采用指数级增长策略;具体来说,在给定的一系列候选参数中{...}, 我们进行了系统性的网格搜索实验并最终确定了最佳配置点;为了找到最优配置,在给定的一系列候选参数中{...}, 我们进行了系统性的网格搜索实验并最终确定了最佳配置点;形式上,BiFPN宽度和深度按以下公式缩放:

我们对Bounding box和classification网络的宽度进行设置,并将其设置为始终等于BiFPN网络的宽度(即W_{pred}=W_{bifpn})。通过以下数学公式按层次递增的方式增加其深度(#layers):

输入图像分辨率:基于该BiFPN架构采用了第3至第7级特征,并且为了满足其运算需求,输入分辨率需满足能被128 \times 2^7 = 128整除的要求。进而采用公式逐步提升其分辨率:

基于方程组1至3的基础上

5 实验
5.1 EfficientDet用于目标检测
我们采用了COCO 2017检测数据集[22]中的118,000张训练图像来评估EfficientDet模型的性能。通过配置动量为0.9且权值衰减为4×10^-5的SGD优化器对各模型进行了系统性训练。在第一个训练阶段中,学习率从零开始逐步增加至0.16,并随后按照余弦衰减曲线逐步降低学习率。在每执行一次卷积操作后插入批归一化层(Batch Normalization),其中该层的衰减因子设定为0.99且epsilon值维持在1×10^-3水平。与文献[36]中的方法一致,在激活函数选择上我们采用了带有参数α=0.25和γ=1.5的swish激活函数,并对其衰减因子设定为0.9998。为了提升模型性能,在训练过程中我们同时应用了常规的指数移动平均方法以及常用的目标损失函数focal loss[21](α=0.25, γ=1.5),并设置了固定的纵横比范围{1/2, 1, 2}作为约束条件。所有模型均在配备32个TPUv3加速器的计算环境中运行了300个epoch周期,并将批量处理大小设置为128。我们在预处理阶段采用了RetinaNet[21]的方法进行多分辨率剪切、缩放及翻转操作以增强数据增强效果。值得注意的是,在整个训练过程中我们的模型始终未启用自动增强功能[42]
表2展示了在不增加test-time的情况下,在单模型单尺度设置下(此处应为"single-scale"),EfficientDet与其他目标检测器进行了性能对比研究。我们展示了test-dev(包含20,000张无公共真实标签测试图像)以及val(包含5,000张带真实标签验证图像)上的准确率数据。与以往的方法相比,在效率上有所提升,并且其参数规模减少了4至9倍;相比于YOLOv3等方法,在计算开销上也相应地有所优化。值得注意的是,在较低精度范围内通过减少28倍计算量仍能维持与YOLOv3相当精度的表现;此外,在高精度范围内相对于最新的NAS-FPN增强版本依然具有优势;无论是在参数规模还是计算复杂度方面

除了参数规模及浮点运算量(FLOPs)之外,在 Titan-V GPU 和单线程 Xeon CPU 上的实际运行时间上也进行了对比分析。通过采用 batch size 1 的配置对每个模型运行 10 次,并记录平均表现指标及标准差的方式完成了数据采集工作。如图4所示,在模型规模、GPU运行时间与单线程CPU运行时间方面进行了详细对比分析。为了确保结果的一致性和可比性,在同一台机器上完成所有实验数据采集工作以避免环境干扰因素的影响。相较于现有检测方案,“EfficientDet”算法在GPU环境下实现了约4.1倍的速度提升,在单核Xeon CPU环境下则实现了约10.8倍的速度提升

5.2 EfficientDet用于语义分割
尽管我们的EfficientDet模型主要针对目标检测设计,但我们对其在语义分割等其他任务上的性能表现也十分关注。参考文献[16]中所述内容,在保持BiFPN架构中各层级特征{P2,P3,…,P7}不变的前提下(即仅保留P2层作为像素级分类的基础),我们对原有模型进行了优化设计。为了简化评估过程,在本研究中仅对比了基于EfficientDet-D4参数配置的模型性能。该配置采用ImageNet预训练的EfficientNet-B4主干网络(其规模与ResNet-50相当)作为基础模块,并将BiFPN架构中的通道数量设定为128个;同时将分类头模块的通道数量设定为256个。值得注意的是,在网络构建过程中,默认情况下该模块组合被重复构建三次以提升整体性能
表3对比分析了我们的模型与Pascal VOC 2012[7]上的DeepLabV3+[4]之间的性能表现,并未包含集成操作以及可能带来的测试时间提升或COCO预训练的影响。在同一基准条件下,在相同的单模型单尺度设置下,在保持相同计算资源的前提下(即FLOPs减少约9.8倍),实验结果表明我们的方法不仅降低了计算开销(减少了约9.8倍),还提升了图像分割的精度(较现有技术提升了1.7%)。这些发现进一步验证了EfficientDet在语义分割任务中的有效性。

6 消融研究
本研究在当前章节中专注于开发EfficientDet各个组件的设计基准测试。为了简洁起见,在这里所有精度结果均基于COCO验证集进行计算。
6.1 分离骨干和BiFPN网络
由于EfficientDet结合了强大的主干网络与创新性的BiFPN架构设计[...], 我们致力于量化它们分别对模型性能提升的关键作用, 如表4所示, 主要关注点集中在主干网络与BiFPN组件各自的表现特征上。基于基于ResNet-50[12]设计的基础架构框架, 我们首先采用EfficientNet-B3模块替代原有的主干网络, 在保持相近参数量与计算开销的前提下, 检测精度显著提升了约3个AP分数; 接着我们采用本研究提出改进型BiFPN架构替代传统的FPN组件, 这样不仅进一步降低了模型的整体参数规模, 而且还能实现相较于传统架构, 在参数量与FLOPs上更优的情况下实现了额外4个AP分数的提升效果; 综合来看, 本研究中所选择的有效主干组件以及创新性改进型BiFPN设计共同构成了最终模型体系的关键技术支撑点

6.2 BiFPN的跨尺度连接
表5总结了图2中所展示的不同跨尺度连接特征网络在准确性和模型复杂度方面的表现

6.3 Softmax vs Fast Normalized Fusion
参考第4章所述,在本章中我们提出了一种改进型快速标准化融合法(Fast Standardized Fusion Method),并继承并优化了标准化权重这一关键特性。表5详细比较了几种不同规模检测器在Softmax融合法与改进型快速标准化融合法下的性能表现。实验结果表明,在图像处理效率方面本方案较传统Softmax融合法提升了约25%至28%之间(具体数值见表格)。

为了深入了解基于Softmax的融合方法和快速归一化融合方法(fast normalized fusion),图5详细展示了EfficientDet-D3框架中从BiFPN层随机选取的三个特征融合节点的学习权重分布情况。值得注意的是,在这种情况下,在所有输入的归一化权重具体而言,在这种情况下\frac{e^{wi}}{\sum_je^{wj}}表示基于Softmax的方法(soft max-based fusion),而\frac{wi}{\epsilon+\sum_jwj}则代表快速归一化的方法(fast normalized fusion)。有趣的是,在训练过程中这些归一化的权重变化速度非常快,并且这一现象表明不同特征对特征融合的重要性存在显著差异尽管如此快速的变化并没有影响到我们的方法性能表现——无论是基于Softmax还是基于快速归一化的方案对于这三个节点的学习行为都非常相似

6.4 复合缩放
如前所述,在第4.2节中所述内容中

7 结论
本文深入探讨了目标检测领域中网络架构设计方案的选择问题,并在此基础上构建了一种新型的加权双向特征聚合网络及多尺度融合策略。通过上述优化方案的应用,在此基础上我们开发出了一个新的目标检测家族——EfficientDet系列。该系列模型在资源受限条件下表现优异,在精确度与计算量方面均有显著提升。特别值得一提的是,在这一过程中所构建的可扩展性更强的EfficientDet模型较以往的目标检测及语义分割模型均具备更低的参数规模与运算开销(FLOPs)指标,并最终实现了最前沿技术水平的发展
8 实现
pytorch实现见https://github.com/zylo117/Yet-Another-EfficientDet-Pytorch项目,目前最为接近于原始论文结果的系统
