[论文阅读]EfficientDet——可扩展且高效的目标检测

论文提出EfficientDet,一种高效目标检测模型,通过BiFPN融合多尺度特征并采用复合缩放策略优化网络结构。相比传统模型,EfficientDet在保持高精度的同时,大大减少了参数和计算需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EfficientDet

Scalable and Efficient Object Detection
可扩展且高效的目标检测
论文网址:EfficientDet
代码:EfficientDet

简读论文

这篇论文提出了一个高效的目标检测模型EfficientDet。主要贡献有:

  1. 提出了BiFPN(双向特征金字塔网络),用于多尺度特征的有效融合。BiFPN通过顶向下和底向上的方式重复进行特征融合,并使用可学习的权重表示不同特征的重要性。

  2. 提出了复合缩放方法,可以同时对backbone网络、BiFPN、预测网络的分辨率、深度和宽度进行缩放,以获得更好的性能。

  3. 基于EfficientNet作为 backbone 和 BiFPN,开发了一系列 EfficientDet 模型。实验结果显示,在类似的精度下,EfficientDet 使用的参数量和计算量远少于之前的检测器,实现了更好的性能与效率的均衡。

  4. 在 Pascal VOC 语义分割任务上,也验证了 EfficientDet 的有效性。使用简单的修改,EfficientDet 实现了优于 DeepLabV3+ 的分割精度,但计算量仅为其十分之一。

  5. 进行了大量的 ablation 实验分析不同组件的贡献,包括 backbone 网络、BiFPN结构、特征融合方式、复合缩放等。

整体而言,该论文系统地研究了目标检测模型的网络结构设计,提出了 BiFPN 和复合缩放等方法来提升模型的效率,得到了state-of-the-art的性能。这些想法对后续的目标检测和其他视觉任务都具有很好的参考价值。

网络架构

EfficientDet
这里主要讲解BiFPN是如何工作的。
BiFPN (Bidirectional Feature Pyramid Network) 是 EfficientDet 中用于多尺度特征融合的模块。它的工作流程可以总结如下:

  1. 输入: BiFPN 接受 backbone 网络输出的不同尺度特征图,例如 P3 - P7。这些特征图的分辨率按2的幂依次减小。
  2. 顶向下路径: 从高分辨率的特征图(例如P7)向低分辨率特征图(例如P3)方向连接,并逐级降采样高分辨率特征图以匹配低分辨率特征图的尺度。
  3. 底向上路径: 从低分辨率特征图向高分辨率特征图方向连接,并逐级上采样低分辨率特征图以匹配高分辨率特征图的尺度。
  4. 加权特征融合: 在顶向下和底向上路径的每一级,使用可学习的权重将两个路径上的特征图以及来自 backbone 的特征图进行加权融合。
    先在特征图相加之前,先分别对每个特征图进行一个深度可分离卷积,再将卷积结果相加。
  5. 重复: 重复顶向下和底向上路径多次,进行多轮的特征融合。
  6. 输出: 每一级的最终输出特征图同时包含了来自上下级特征图以及原始 backbone 特征图的语义信息。

这样通过多轮的顶向下和底向上融合,BiFPN可以有效集成不同尺度级别的语义信息,同时通过可学习权重避免简单加总带来的精度损失。这种双向特征金字塔结构比单向的FPN更加高效和准确。

摘要

模型效率在计算机视觉中变得越来越重要。本文系统地研究了用于目标检测的神经网络架构设计选择,并提出了几个提高效率的关键优化。首先,提出了一种加权双向特征金字塔网络(BiFPN),它可以轻松快速地进行多尺度特征融合;其次,提出了一种复合缩放方法,可以同时统一缩放所有主干网络、特征网络和框/类预测网络的分辨率、深度和宽度。基于这些优化和更好的主干,开发了一个新的目标检测器系列,称为 EfficientDet,它在各种资源限制下实现始终比现有技术更高的效率。特别是,通过单模型和单尺度,EfficientDet-D7 在 COCO 测试开发上实现了最先进的 55.1 AP,具有 77M 参数和 410B FLOPs,比以前的检测器小 4 至 9 倍,使用的 FLOP 数减少 13 至 42 倍。

引言

近年来,目标检测方面取得了巨大进展。与此同时,最先进的目标检测器也变得越来越昂贵。例如,最新的基于 AmoebaNet 的 NASFPN 检测器需要 167M 个参数和 3045B FLOP(比 RetinaNet多 30 倍)才能实现最先进的精度。庞大的模型尺寸和昂贵的计算成本阻碍了它们在许多现实应用中的部署,例如机器人和自动驾驶汽车,其中模型尺寸和延迟受到高度限制。考虑到这些现实世界的资源限制,模型效率对于目标检测变得越来越重要。
之前有许多工作旨在开发更高效的检测器架构,例如一级和无锚检测器,或压缩现有模型。尽管这些方法往往会获得更高的效率,但它们通常会牺牲准确性。此外,大多数先前的工作仅关注特定或小范围的资源需求,但从移动设备到数据中心的各种实际应用程序通常需要不同的资源约束。
一个自然的问题是:是否有可能构建一个可扩展的检测架构,在广泛的资源限制(例如,从 3B 到 300B FLOPs)下具有更高的准确性和更高的效率?本文旨在通过系统地研究检测器架构的各种设计选择来解决这个问题。基于单级检测器范例,检查了主干网络、特征融合和类/框网络的设计选择,并确定了两个主要挑战:
挑战1:高效的多尺度特征融合——自从[Feature pyramid networks for object detection]中引入以来,FPN已被广泛用于多尺度特征融合。最近,PANet 、NAS-FPN 和其他研究开发了更多用于跨尺度特征融合的网络结构。在融合不同的输入特征时,之前的大多数工作只是简单地总结它们,没有区分;然而,由于这些不同的输入特征具有不同的分辨率,观察到它们通常对融合输出特征的贡献不均匀。为了解决这个问题,提出了一种简单而高效的加权双向特征金字塔网络(BiFPN),它引入可学习的权重来学习不同输入特征的重要性,同时重复应用自上而下和自下而上的多尺度特征融合。
挑战 2:模型缩放——虽然以前的工作主要依赖于更大的主干网络或更大的输入图像尺寸来获得更高的精度,但本文观察到扩大特征网络和框/类预测网络在考虑准确性和效率时也至关重要。受最近工作[Efficientnet]的启发,提出了一种用于目标检测器的复合缩放方法,该方法联合缩放所有主干网络、特征网络、框/类预测网络的分辨率/深度/宽度。
最后,还观察到最近引入的 EfficientNets 比以前常用的主干网实现了更好的效率。将 EfficientNet 主干网与本文提出的 BiFPN 和复合缩放相结合,开发了一个新的目标检测器系列,名为 EfficientDet,与以前的目标检测器相比,它始终以更少的参数和 FLOP 实现更好的精度。

相关工作

One-Stage Detectors: 现有的对象检测器主要根据是否具有感兴趣区域提议步骤(两阶段)或不具有(单阶段)进行分类。虽然两级检测器往往更灵活、更准确,但通过利用预定义的锚点,一级检测器通常被认为更简单、更高效。最近,一级探测器由于其效率和简单性而引起了广泛关注。在本文中,主要遵循单级检测器设计,并且证明通过优化的网络架构可以实现更好的效率和更高的精度。
Multi-Scale Feature Representations: 目标检测的主要困难之一是有效表示和处理多尺度特征。早期的检测器通常直接基于从骨干网络提取的金字塔特征层次结构进行预测。作为开创性工作之一,特征金字塔网络(FPN)提出了一种自上而下的路径来组合多尺度特征。遵循这个想法,PANet 在 FPN 之上添加了一个额外的自下而上的路径聚合网络; STDL 提出了一个尺度转移模块来利用跨尺度特征; M2det 提出了一个 U 形模块来融合多尺度特征,G-FRNet 引入了门单元来控制跨特征的信息流。最近,NAS-FPN 利用神经架构搜索来自动设计特征网络拓扑。虽然它取得了更好的性能,但 NAS-FPN 在搜索过程中需要昂贵的算例,并且生成的特征网络不规则,因此难以解释。在本文中,旨在以更直观和原则性的方式优化多尺度特征融合。
Model Scaling: 为了获得更好的精度,通常通过采用更大的骨干网络来扩展基线检测器(例如,从移动尺寸模型 和 ResNet ,到 ResNeXt 和 AmoebaNet ),或增加输入图像大小(例如,从 512x512 到 1536x1536 )。最近的一些工作表明,增加通道大小和重复特征网络也可以带来更高的准确性。这些缩放方法大多集中于单一或有限的缩放维度。最近,[Efficientnet]通过联合扩大网络宽度、深度和分辨率,展示了图像分类的显着模型效率。提出的用于目标检测的复合缩放方法主要受到[Efficientnet]的启发。

BiFPN

BiFPN 的主要思想:高效的双向跨尺度连接和加权特征融合。

多尺度特征融合问题表述

FPN
多尺度特征融合旨在聚合不同分辨率下的特征。形式上,给定一个多尺度特征列表 Pin = (P1 , P2 , …),其中 Pi 表示第 i 层的特征,目标是找到一个可以有效聚合不同特征的变换 f ,并且输出新特征列表:Pout = f(Pin)。作为一个具体的例子,图 2(a) 显示了传统的自上而下的 FPN。它采用 3-7 级输入特征 Pin = (P3 , …P7 ),其中 Pi 表示分辨率为输入图像 1/2的i次方 的特征级别。例如,如果输入分辨率为 640x640,则 3 代表特征级别 3 (640/23 = 80),分辨率为 80x80,而引脚 7 代表特征级别 7,分辨率为 5x5。传统的FPN以自上而下的方式聚合多尺度特征:
在这里插入图片描述
其中Resize通常是用于分辨率匹配的上采样或下采样操作,Conv通常是用于特征处理的卷积操作。

Cross-Scale Connections

传统的自上而下的 FPN 本质上受到单向信息流的限制。为了解决这个问题,PANet 添加了一个额外的自下而上的路径聚合网络,如图2(b)所示。跨尺度连接在中得到了进一步研究。最近,NAS-FPN采用神经架构搜索来搜索更好的跨尺度特征网络拓扑,但在搜索过程中需要昂贵的算例,并且发现的网络不规则并且难以解释或修改,如图2(c)所示。
通过研究这三个网络的性能和效率,观察到 PANet 比 FPN 和 NAS-FPN 实现了更好的精度,但代价是更多的参数和计算量。为了提高模型效率,本文提出了几种跨尺度连接的优化:首先,删除那些只有一个输入边的节点。直觉很简单:如果一个节点只有一个输入边,没有特征融合,那么它对旨在融合不同特征的特征网络的贡献就会较小。这导致双向网络的简化;其次,如果原始输入到输出节点处于同一级别,会添加一条额外的边,以便在不增加太多成本的情况下融合更多特征;第三,与 PANet 只有一个自上而下和一个自下而上的路径不同,本文将每个双向(自上而下和自下而上)路径视为一个特征网络层,并多次重复同一层以启用更高级的特征融合。本文将新的特征网络命名为双向特征金字塔网络(BiFPN)。

加权特征融合

融合不同分辨率的特征时,常见的做法是先将它们调整到相同的分辨率,然后再求和。金字塔注意力网络引入全局自注意力上采样来恢复像素定位,这在[Nas-fpn]中得到了进一步研究。以前的所有方法都平等地对待所有输入特征,没有区别。然而,本文观察到,由于不同的输入特征具有不同的分辨率,因此它们通常对输出特征的贡献不相等。为了解决这个问题,建议为每个输入添加一个额外的权重,让网络学习每个输入特征的重要性。基于这个想法,考虑三种加权融合方法:
Unbounded fusion: 在这里插入图片描述
其中 wi 是可学习的权重,可以是标量(每个特征)、向量(每个通道)或多维张量(每个像素)。发现一个量表可以以最小的计算成本达到与其他方法相当的准确性。然而,由于标量权重是无界的,因此可能会导致训练不稳定。因此,采用权重标准化来限制每个权重的取值范围。
Softmax-based fusion: 在这里插入图片描述
一个直观的想法是对每个权重应用softmax,这样所有的权重都被归一化为一个值范围从0到1的概率,代表每个输入的重要性。然而,消融研究所示,额外的 softmax 会导致 GPU 硬件显着变慢。为了最小化额外的延迟成本,进一步提出了一种快速融合方法。
Fast normalized fusion: 在这里插入图片描述
其中 wi ≥ 0 通过在每个 wi 之后应用 Relu 来确保,并且 在这里插入图片描述 = 0.0001 是一个小值,以避免数值不稳定。同样,每个归一化权重的值也落在0和1之间,但由于这里没有softmax操作,所以效率要高得多。消融研究表明,这种快速融合方法与基于 softmax 的融合具有非常相似的学习行为和准确性,但在 GPU 上的运行速度提高了 30%。
最终的 BiFPN 集成了双向跨尺度连接和快速归一化融合。作为一个具体的例子,在这里描述了 BiFPN 在第 6 层的两个融合特征,如图 2(d) 所示:
在这里插入图片描述
Ptd6是自上而下路径上第 6 层的中间特征,Pout 6 是自下而上路径上第 6 层的输出特征。所有其他功能都以类似的方式构建。值得注意的是,为了进一步提高效率,使用深度可分离卷积进行特征融合,并在每个卷积后添加批量归一化和激活。

EfficientDet

基于 BiFPN,开发了一系列新的检测模型,名为 EfficientDet。
EfficientDet

EfficientDet Architecture

图 3 显示了 EfficientDet 的整体架构,它很大程度上遵循单级检测器范例。采用 ImageNet 预训练的 EfficientNets 作为骨干网络。提出的 BiFPN 作为特征网络,它从主干网络获取 3-7 级特征 {P3,P4,P5,P6,P7},并重复应用自上而下和自下而上的双向特征融合。这些融合的特征被馈送到类和框网络以分别产生对象类和边界框预测。与[Focal loss for dense object detection]类似,类和框网络权重在所有级别的特征之间共享。

Compound Scaling

为了优化准确性和效率,希望开发一系列可以满足广泛资源限制的模型。这里的一个关键挑战是如何扩展基线 EfficientDet 模型。
以前的工作主要通过采用更大的主干网络(例如,ResNeXt 或 AmoebaNet )、使用更大的输入图像或堆叠更多 FPN 层来扩展基线检测器。这些方法通常无效,因为它们只关注单个或有限的缩放维度。最近的工作[Efficientnet]通过联合扩展网络宽度、深度和输入分辨率的所有维度,展示了图像分类的卓越性能。受这些工作[Efficientnet]的启发,提出了一种用于目标检测的新复合缩放方法,该方法使用简单的复合系数 φ 来联合缩放主干网、BiFPN、类/盒网络和分辨率的所有维度。与[Efficientnet]不同,目标检测器比图像分类模型具有更多的缩放维度,因此所有维度的网格搜索成本高昂。因此,使用基于启发式的缩放方法,但仍然遵循联合缩放所有维度的主要思想。
Backbone network - 重复使用 EfficientNet-B0 到 B6 的相同宽度/深度缩放系数,这样就可以轻松地重复使用它们的 ImageNet 预训练权重。
BiFPN network - 线性增加 BiFPN 深度 Dbifpn (#layers),因为深度需要四舍五入为小整数。对于 BiFPN 宽度 Wbifpn (#channels),按指数方式增长 BiFPN 宽度 Wbifpn (#channels),与[Efficientnet]类似。具体来说,对值列表 {1.2, 1.25, 1.3, 1.35, 1.4, 1.45} 执行网格搜索,并选择最佳值 1.35 作为 BiFPN 宽度缩放因子。形式上,BiFPN 的宽度和深度按以下等式缩放:
在这里插入图片描述
Box/class prediction network - 将它们的宽度固定为始终与 BiFPN 相同(即 Wpred = Wbifpn),但使用等式增加深度(#layers):
在这里插入图片描述
Input image resolution - 由于 BiFPN 中使用了特征级别 3-7,因此输入分辨率必须可被 2的7次方 = 128 整除,因此使用等式线性增加分辨率:
在这里插入图片描述
值得注意的是,本文的复合缩放是基于启发式的,可能不是最优的,但其他单维缩放方法显著提高效率。

结论

在本文中,系统地研究了有效目标检测的网络架构设计选择,并提出了双向加权特征网络和定制复合缩放方法,以提高准确性和效率。基于这些优化,开发了一个名为 EfficientDet 的新检测器系列,它在各种资源限制下始终能比现有技术实现更好的精度和效率。特别是,扩展 EfficientDet 比以前的目标检测和语义分割模型以更少的参数和flops实现了最先进的精度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一朵小红花HH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值