EfficientDet:Scalable and Efficient Object Detection中文版 (BiFPN)

news2025/3/3 3:05:38

EfficientDet: Scalable and Efficient Object Detection

EfficientDet:可扩展和高效的目标检测

摘要

模型效率在计算机视觉中变得越来越重要。本文系统地研究了用于目标检测的神经网络架构设计选择,并提出了几个关键的优化方法来提高效率。首先,我们提出了**加权双向特征金字塔网络(BiFPN),可以轻松快速地进行多尺度特征融合;其次,我们提出了一种复合缩放方法,同时统一调整所有骨干网络、特征网络和框/类别预测网络的分辨率、深度和宽度。**基于这些优化和更好的骨干网络,我们开发了一系列名为 EfficientDet 的新型目标检测器,这些检测器在广泛的资源约束范围内始终比先前技术取得更好的效率。特别地,在单模型和单尺度的情况下,我们的 EfficientDet-D7 在 COCO test-dev 上实现了最先进的 55.1 AP,拥有 7700 万参数和 410 亿 FLOPs,比先前的检测器小 4 倍至 9 倍,并且使用的 FLOPs 减少了 13 倍至 42 倍。代码可在 https://github.com/google/automl/tree/master/efficientdet 获取。

介绍

近年来,在实现更准确的目标检测方面取得了巨大进步;与此同时,最先进的目标检测器也变得愈发昂贵。例如,最新基于AmoebaNet的NAS-FPN检测器[45]需要167M个参数和3045B的FLOPs(比RetinaNet[24]多30倍),才能实现最先进的准确性。庞大的模型尺寸和昂贵的计算成本阻碍了它们在许多实际应用中的部署,比如在机器人技术和自动驾驶汽车等领域,模型大小和延迟受到严格限制。考虑到这些现实世界的资源约束,模型的高效性变得愈发重要。

先前的研究致力于开发更高效的检测器架构,例如一阶段检测器[27, 33, 34, 24]和无锚点检测器[21, 44, 40],或者压缩现有模型[28, 29]。虽然这些方法往往能够取得更好的效率,但通常会牺牲准确性。此外,大多数先前的工作只关注特定或一小范围的资源需求,但从移动设备到数据中心等各种实际应用通常需要不同的资源约束。

一个自然的问题是:是否可能构建一个可扩展的检测架构,既具有更高的准确性,又能够在各种资源约束范围内实现更好的效率(例如,从3B到300B的FLOPs)?本文旨在通过系统地研究各种检测器架构的设计选择来解决这个问题。基于一阶段检测器范式,我们研究了骨干网、特征融合和类别/边界框网络的设计选择,并确定了两个主要挑战:
挑战1:高效的多尺度特征融合——自[23]提出以来,FPN已被广泛用于多尺度特征融合。最近,PANet[26]、NAS-FPN[10]和其他研究[20,18,42]开发了更多网络结构用于跨尺度特征融合。在融合不同输入特征时,大多数先前的研究简单地将它们求和而没有加以区分;然而,由于这些不同的输入特征处于不同的分辨率,我们观察到它们通常不均匀地对融合输出特征产生贡献。为解决这个问题,我们提出了一种简单但高效的加权双向特征金字塔网络(BiFPN),它引入了可学习的权重来学习不同输入特征的重要性,同时重复应用自顶向下和自底向上的多尺度特征融合。

挑战2:模型缩放——先前的研究主要依赖于更大的骨干网络[24,35,34,10]或更大的输入图像尺寸[13,45]来实现更高的准确性,但当考虑到准确性和效率时,我们观察到扩展特征网络和盒/类别预测网络也至关重要。受最近的研究[39]启发,我们为目标检测器提出了一种复合缩放方法,联合扩展了所有骨干网络、特征网络和盒/类别预测网络的分辨率/深度/宽度。最后,我们还观察到最近推出的EfficientNets[39]比以往常用的骨干网络效率更高。结合EfficientNet骨干网络与我们提出的BiFPN和复合缩放,我们开发了一种名为EfficientDet的新型目标检测器系列,其在参数和FLOP数远远少于以往的目标检测器的情况下,始终能够实现更好的准确性。图1和图4显示了在COCO数据集[25]上的性能比较。在类似准确性的约束下,我们的EfficientDet使用的FLOP数比YOLOv3[34]少28倍,比RetinaNet[24]少30倍,比最近基于ResNet的NAS-FPN[10]少19倍。特别是,在单模型和单测试时间尺度下,我们的EfficientDet-D7在具有77M参数和410B FLOP的情况下达到了55.1的AP,优于之前最佳检测器[45]4个AP,同时规模更小、FLOP数减少了2.7倍,FLOP数减少了7.4倍。我们的EfficientDet在GPU/CPU上也比以往的检测器快4到11倍。

通过简单的修改,我们还展示了我们的单模型单尺度EfficientDet在Pascal VOC 2012语义分割任务上以18B FLOPs实现了81.74%的mIOU准确率,与DeepLabV3+[6]相比,在9.8倍的FLOPs下,准确率提高了1.7%。

2.相关工作

单阶段检测器:现有的目标检测器主要根据是否具有感兴趣区域(proposal)步骤进行分类(两阶段[11,35,5,13])或者没有(单阶段[36,27,33,24])。虽然两阶段检测器往往更灵活、更准确,但单阶段检测器通常因利用预定义的锚点[17]而被认为更简单、更高效。最近,单阶段检测器由于其高效性和简单性引起了相当大的关注[21,42,44]。在本文中,我们主要遵循单阶段检测器的设计,并展示通过优化网络架构,可以实现更好的效率和更高的准确性。

多尺度特征表征:目标检测中的主要困难之一是有效地表征和处理多尺度特征。早期的检测器通常直接基于从骨干网络提取的金字塔式特征层次进行预测[4,27,36]。作为先驱工作之一,特征金字塔网络(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]的启发。

在这里插入图片描述

图2:特征网络设计——(a) FPN[23]引入了一个自3级到7级(P3-P7)的自顶向下路径,用于融合多尺度特征;(b) PANet[26]在FPN之上添加了一个额外的自底向上路径;© NAS-FPN[10]使用神经网络架构搜索来找到不规则的特征网络拓扑结构,然后重复应用相同的块;(d) 是我们的BiFPN,具有更好的准确性和效率的权衡。

3.BIFPN

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

3.1.Problem Formulation

多尺度特征融合旨在聚合不同分辨率的特征。形式上,给定多尺度特征列表 Pin = (Pinl1, Pinl2, …),其中 Pinlirepresent表示层级 li 的特征,我们的目标是找到一个转换函数 f,能够有效地聚合不同的特征,并输出一个新特征列表:Pout = f(Pin)。作为一个具体的例子,图2(a)展示了传统的自顶向下的特征金字塔网络(FPN)[23]。它接受来自级别3至7的输入特征 Pin=(Pin3,…Pin7),其中 Pinirepresent 表示分辨率为输入图像的1/2i的特征级别。例如,如果输入分辨率为640x640,则 Pin3表示特征级别3(640/23=80)的特征,分辨率为80x80,而 Pin7表示分辨率为5x5的特征级别7。传统的FPN以自顶向下的方式聚合多尺度特征:
在这里插入图片描述
其中,Resize通常是一个用于上采样或下采样以匹配分辨率的操作,而Conv通常是一个用于特征处理的卷积操作。

3.2. 跨尺度连接

传统的自顶向下FPN受单向信息流的固有限制。为了解决这个问题,PANet[26]在图2(b)中增加了额外的自底向上路径聚合网络。跨尺度连接在[20,18,42]中进一步研究。最近,NAS-FPN[10]利用神经架构搜索来搜索更好的跨尺度特征网络拓扑,但在搜索过程中需要数千个GPU小时,并且所找到的网络是不规则的,难以解释或修改,如图2©所示。通过研究这三个网络的性能和效率(见表5),我们观察到PANet在准确性上优于FPN和NAS-FPN,但代价是更多的参数和计算量。为了提高模型的效率,本文提出了几种跨尺度连接的优化方法:首先,我们删除那些只有一个输入边的节点。我们的直觉很简单:如果一个节点只有一个输入边,并且没有特征融合,则它对旨在融合不同特征的特征网络的贡献较小。这导致了一个简化的双向网络;其次,如果原始输入和输出节点位于同一级别,我们在它们之间添加额外的边,以便在不增加太多成本的情况下融合更多特征;第三,不同于只有一个自顶向下和一个自底向上路径的PANet[26],我们将每个双向(自顶向下和自底向上)路径视为一个特征网络层,并重复相同的层多次,以实现更多高级特征的融合。第4.2节将讨论如何使用复合缩放方法确定不同资源约束下的层数。通过这些优化,我们将新的特征网络命名为双向特征金字塔网络(BiFPN),如图2和图3所示。

3.3. 加权特征融合

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

在这里插入图片描述
在这里插入图片描述
无界融合:(O = \sum_{i} w_i \cdot I_i),其中(w_i)是可学习的权重,可以是标量(每个特征),向量(每个通道)或多维张量(每个像素)。我们发现标量权重可以在最小的计算成本下达到与其他方法相当的准确性。然而,由于标量权重是无界的,可能会导致训练不稳定。因此,我们采用权重归一化来限制每个权重的值范围。
在这里插入图片描述
**基于softmax的融合:**一个直观的想法是对每个权重应用 softmax 函数,使得所有权重归一化为概率,取值范围从 0 到 1,表示每个输入的重要性。然而,正如我们在第 6.3 节的割除研究中所示,额外的 softmax 导致 GPU 硬件显著减速。为了最小化额外的延迟成本,我们进一步提出了一种快速融合方法。

在这里插入图片描述
快速归一化融合 :wi ≥ 0是通过在每个wi后应用Relu来确保的,而=0.0001是一个小值,用于避免数值不稳定。类似地,每个归一化权重的值也介于0和1之间,但由于这里没有softmax操作,所以更为高效。我们的割除研究表明,这种快速融合方法具有与基于softmax的融合非常相似的学习行为和准确性,但在GPU上运行速度更快,最多可提高30%(见表6)。

我们最终的BiFPN结合了双向跨尺度连接和快速归一化融合。作为具体示例,我们描述了图2(d)中BiFPN在第6级处融合的两个特征:
在这里插入图片描述
其中,Ptd6表示自顶向下路径上第6级的中间特征,而Pout6表示自底向上路径上第6级的输出特征。所有其他特征的构建方式类似。值得注意的是,为了进一步提高效率,我们在特征融合中使用深度可分离卷积[7,37],并在每个卷积后添加批归一化和激活。

4.EfficientDet

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

4.1 EfficientDet 架构

在这里插入图片描述

3:EfficientDet 架构 - 它采用 EfficientNet[39] 作为主干网络,
BiFPN 作为特征网络,并使用共享的类别/框预测网络。根据不同的资源约束,BiFPN 层和类别/框网络层都会根据表 1 中所示进行多次重复。

图 3 显示了EfficientDet的总体架构,它主要遵循单阶段检测器范例[27,33,23,24]。我们采用在ImageNet上预训练过的 EfficientNet 作为主干网络。我们提出的 BiFPN 充当特征网络,它从主干网络中获取 3 到 7 级的特征 {P3, P4, P5, P6, P7},并反复应用自顶向下和自底向上的双向特征融合。这些融合后的特征输入到类别网络和框网络,分别产生目标类别和边界框的预测。与[24]类似,类别和框网络的权重在所有特征级别上是共享的。、

4.2 复合缩放

针对优化精度和效率,我们希望开发一系列模型,能够满足各种资源约束的需求。关键挑战是如何扩展基准 EfficientDet 模型。以往的研究主要通过使用更大的主干网络(如 ResNeXt[41] 或 AmoebaNet[32])、使用更大的输入图像或堆叠更多 FPN 层来扩展基准检测器。这些方法通常不够有效,因为它们只关注单个或有限的扩展维度。最近的研究[39]显示了通过共同扩展网络宽度、深度和输入分辨率的所有维度,在图像分类中取得了显著的性能。受到这些工作的启发,我们提出了一种新的对象检测的复合缩放方法,它使用一个简单的复合系数 φ,来共同扩展主干网络、BiFPN、类别/框网络和分辨率的所有维度。与[39]不同,对象检测器具有比图像分类模型更多的缩放维度,因此针对所有维度进行网格搜索成本过高。因此,我们采用一种基于启发式的缩放方法,但仍遵循共同扩展所有维度的主要思路。

总结:

1. BiFPN 的主要思想:

双向跨尺度连接 + 加权特征融合

2. 双向跨尺度连接

2.1 FPN(单向连接)

在这里插入图片描述

传统的自顶向下FPN受单向信息流的固有限制。

2.2 PANet(双向连接)

为了解决这个问题,PANet[26]在图2(b)中增加了额外的自底向上路径聚合网络。
在这里插入图片描述
PANet在准确性上优于FPN和NAS-FPN,但代价是更多的参数和计算量。作者为了提高模型的效率,提出了几种跨尺度连接的优化方法。

3.加权特征融合

所有先前的方法都同等对待所有输入特征,没有区别对待。然而,我们观察到,由于**不同的输入特征具有不同的分辨率,它们通常不会对输出特征产生相同的贡献。**为了解决这个问题,我们建议为每个输入添加额外的权重,并让网络学习每个输入特征的重要性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1329429.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

教你在Linux上安装Node并用Electron打包deb和rpm包

Windows下无法打linux版本的包,如果你要打linux系统的amd64架构需要找一台linux amd64的系统打包,也可以在amd64下打arm架构的包,但是不能运行,需要放到arm架构的系统里才能运行。 下载linux的node环境 Index of /nodejs-releas…

Leetcode 134 加油站

题意理解: 给定n个站点,两个数组gas表达每个站点可加的油量,cost表达到下一站点所需耗费的油量。 gas [1,2,3,4,5], cost [3,4,5,1,2] 要求从下表为i的站点开始,刚好能支撑汽车在每个站点转一圈后回到出发位置。 解题思路&#…

Deployment Controller详解(上)

上一篇在《Kubectl 部署无状态应用》中介绍了如何使用 Deployment 部署五个 hello world 实例时,我们并没有详细探讨 Deployment Controller 的各项功能。因此,本文将深入介绍 Deployment Controller 的作用以及它能够完成的任务。 本文来自官方文档梳理…

CAS机制

Java中提供了很多原子操作类来保证共享变量操作的原子性。这些原子操作的底层原理都是使用了CAS机制。在使用一门技术之前,了解这个技术的底层原理是非常重要的,所以本篇文章就先来讲讲什么是CAS机制,CAS机制存在的一些问题以及在Java中怎么使…

浅谈测试自动化selenium之POM模式

基于本人也是一个初学者,在运用POM模式的时候记录一下自己的学习笔记。 如果你是大神,那么可以略过,如果你是初学者,希望对你有帮助。 本文阐述了以下几个问题: 什么叫POM模式 为什么要用POM模式 POM模式的思想 POM模…

前端案例—antdDesign的Select多选框组件加上全选功能

前端案例—antdDesign的Select多选框组件加上全选功能。 实现效果如下: Select 组件里有这个属性,可以利用这个对下拉菜单进行自定义。 const handleChange (e, value) > {setSelectState(e.target.checked)let arr productOptions?productOption…

AI绘画中CLIP文本-图像预训练模型

介绍 OpenAI 在 2021 年提出了 CLIP(Contrastive Language–Image Pretraining)算法,这是一个先进的机器学习模型,旨在理解和解释图像和文本之间的关系。CLIP 的核心思想是通过大规模的图像和文本对进行训练,学习图像…

口碑好的国产主食冻干猫粮品牌有哪些?盘点十大放心猫粮国产名单

冻干猫粮可以帮助猫咪摄入更多的水分,因为冻干是高蛋白质的食物,当猫咪吃了冻干猫粮后,会感到口渴,从而更主动地去喝水。对于那些不喜欢喝水的猫咪,可以将冻干复水后再喂给它们,这样也可以增加猫咪的水分摄…

Keil5软件仿真 定时器互补通道 波形输出(Logic Analyzer)

步骤一:管脚配置确认。 ①配置定时器的管脚模式为复用推挽输出模式(GPIO_MODE_AF_PP)!!!,注意:复用开漏模式软件仿真时无波形。 步骤二:编译程序。 ①点击编译按钮。 …

【泛型中K T V E? Object等分别代表什么含 义】

✅ 泛型中K T V E? Object等分别代表什么含义 ✅ 典型解析✅代码示例 ✅ 典型解析 E - Element (在集合中使用,因为集合中存放的是元素) T-Type (Java 类) K- Key (键) V - Value (值) N - Number (数值类型) ? - 表示不确定的iava类型 (无限制通配符类型) …

机器学习:手撕 AlphaGo(一)

图 1-1: AphaGo 结构概览 1. 前言 AlphaGo 是一个非常经典的模型,不论从影响力还是模型设计上。它的技术迭代演进路径:AlphaGo,AlphaGoZero,AlphaZero,MuZero 更是十分精彩。相信有很多同学因为听了 AlphaGo 的故事对…

中国化妆品头部企业环亚集团携美肤宝、法兰琳卡、滋源、肌肤未来等“新朋友”加入实在智能数智生态圈

广州环亚化妆品科技股份有限公司(以下简称“环亚集团”)是一家综合性美容化妆品高新技术企业,旗下拥有美肤宝、法兰琳卡、滋源、肌肤未来等多个品牌,产品涵盖洁肤护肤、洗护发、身体护理、精油等多个领域。在中国、澳大利亚、美国…

upset 绘制

好久没有更新,今天来一个upset图的绘制 1.1 安装包 #绘制upset的包现在看来有三个 ## UpSet ### 最基本的upsetR包,使用方便,但是扩展不方便 devtools::install_github("hms-dbmi/UpSetR") ## complex-upset ### UpSet的升级款 支持ggplot2 devtools::install_git…

Multi-value PBS

参考文献: [CIM19] Carpov S, Izabachne M, Mollimard V. New techniques for multi-value input homomorphic evaluation and applications[C]//Topics in Cryptology–CT-RSA 2019: The Cryptographers’ Track at the RSA Conference 2019, San Francisco, CA, …

【C#】TimeSpan

文章目录 概述属性时间计算拓展来源 概述 TimeSpan结构:表示一个时间间隔。 它含有以下四个构造函数: TimeSpan(Int64)将 TimeSpan结构的新实例初始化为指定的刻度数。(DateTime.Tick:是计算机的一个计时周期,单位是一百纳秒&…

饥荒Mod 开发(十七):手动保存和加载,无限重生

饥荒Mod 开发(十六):五格装备栏 饥荒Mod 开发(十八):Mod 添加配置选项 饥荒游戏会自动保存,本来是一个好的机制,但是当角色死亡的时候存档会被删除,又要从头开始,有可能一不小心玩了很久的档就直接给整没了…

计算机网络——物理层概述(二)

前言: 前面已经对计算机网络的概述有了一个简单的认识与了解了,什么是计算机网络,为什么学习计算机网络,计算机网络的概念与体系结构我们已经有了一个初步的认识与了解,现在我们要对计算机网络中的物理层进行一个学习与…

基于YOLOv8深度学习的智能玉米害虫检测识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

C语言的scanf输入函数的介绍分享

各位少年: 我来分享一个输入函数,scanf函数 是输入的函数,scanf(“参数1”,参数2);好,我们接着看代码的例子 int main() { int score0; printf("请输入成绩:"); scanf("%d",&sco…

关于YOLOv5的训练,GPU单卡、多卡设置,加速训练

yolov5毫无疑问是目前目标检测框架中非常准确快速的检测框架之一,在工业界和学术界应用广泛,其优势不言而喻。 在模型训练或推理时,我们都想快速完成,特别是数据量很大的时候,效率就是非常迫切需要提升的。这里简单介…