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

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.rhkb.cn/news/222423.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于ssm房屋租赁平台的设计与开发论文

摘 要 目前对于在外的人员来说租赁房屋是最基本的问题。对于房屋的租赁可以选择直接找房东、找专业的房屋租赁公司和自己在网上找房屋。自己找房东的问题在于需要时间,而且对于需要提前租赁房屋的需要多次跑到小区,找中介租赁房屋的问题在于费用问题&am…

FA2016ASA (MHz范围晶体单元,内置热敏电阻) 汽车

FA2016ASA是爱普生推出的一款内置热敏电阻、频率范围为38.4MHz的晶振,确保数据的准确传输,同时有效避免频谱干扰的出现。可以在-40C to 125C 的温度内稳定工作。在汽车内部空间有限的情况下,FA2016ASA以其小型超薄的外形尺寸2.0 1.6 0.68mm…

为什么GRU和LSTM能够缓解梯度消失或梯度爆炸问题?

1、什么是梯度消失(gradient vanishing)? 参数更新过小,在每次更新时几乎不会移动,导致模型无法学习。 2、什么是梯度爆炸(gradient exploding)? 参数更新过大,破坏了模…

PIC单片机项目(7)——基于PIC16F877A的智能灯光设计

1.功能设计 使用PIC16F877A单片机,检测环境关照,当光照比阈值低的时候,开灯。光照阈值可以通过按键进行设置,同时阈值可以保存在EEPROM中,断电不丢失。使用LCD1602进行显示,第一行显示测到的实时光照强度&a…

flink watermark 实例分析

WATERMARK 定义了表的事件时间属性,其形式为: WATERMARK FOR rowtime_column_name AS watermark_strategy_expression rowtime_column_name 把一个现有的列定义为一个为表标记事件时间的属性。该列的类型必须为 TIMESTAMP(3)/TIMESTAMP_LTZ(3),且是 sche…

指标体系构建-01-什么是数据指标

参考 四千字全面解析数据产品经理必知概念:标签、维度、指标 什么是数据指标 指标是指于其中打算达到的指数,规格,标准等,是用数据对事物进行描述的工具。通常指标对应是否有价值取决于这个指标的实际意义。同时关注指标对应的数值&#x…

养老院自助饮水机(字符设备驱动)

目录 1、项目背景 2、驱动程序 2.1 三层架构 2.2 驱动三要素 2.3 字符设备驱动 2.3.1 驱动模块 2.3.2 应用层 3、设计实现 3.1 项目设计 3.2 项目实现 3.2.1 驱动模块代码 3.2.2 用户层代码 4、功能特性 5、技术分析 6. 总结与未来展望 1、项目背景 养老院的老人…

网络基础【网线的制作、OSI七层模型、集线器、交换机介绍、路由器的配置】

目录 一.网线的制作 1.1.网线的标准 1.2.水晶头的做法 二.OSI七层模型、集线器、交换机介绍 集线器(Hub): 交换机(Switch): 三.路由器的配置 3.1.使用 3.2.常用的功能介绍 1、如何管理路由器 2、家…

Linux线程

文章目录 线程线程原理页表线程VS进程线程相关函数pthread_create函数pthread_selfpthread_exitpthread_cancelpthread_joinpthread_detach 线程ID 线程 什么是线程?为什么要有线程? 线程本质上就是轻量化的进程,一个进程就是一个执行流&…

信息论安全与概率论

目录 一. Markov不等式 二. 选择引理 三. Chebyshev不等式 四. Chernov上限 4.1 变量大于 4.2 变量小于 信息论安全中会用到很多概率论相关的上界,本文章将梳理几个论文中常用的定理,重点关注如何理解这些定理以及怎么用。 一. Markov不等式 假定…

Protobuf 编码规则及c++使用详解

Protobuf 编码规则及c使用详解 Protobuf 介绍 Protocol Buffers (a.k.a., protobuf) are Google’s language-neutral, platform-neutral, extensible mechanism for serializing structured data Protocol Buffers(简称为protobuf)是谷歌的语言无关、…

多层负载均衡实现

1、单节点负载均衡 1)站点层与浏览器层之间加入了一个反向代理层,利用高性能的nginx来做反向代理 2)nginx将http请求分发给后端多个web-server 优点: 1)DNS-server不需要动 2)负载均衡:通过ngi…

Python深度学习028:神经网络模型太多,傻傻分不清?

文章目录 深度学习网络模型常见CNN网络深度学习网络模型 在深度学习领域,有许多常见的网络模型,每种模型都有其特定的应用和优势。以下是一些广泛使用的深度学习模型: 卷积神经网络(CNN): 应用:主要用于图像处理,如图像分类、物体检测。 特点:利用卷积层来提取图像特…

《数据分析-JiMuReport》积木报表详细入门教程

积木报表详细入门教程 一、JimuReport部署入门介绍 积木报表可以通过源码部署、SpringBoot集成、Docker部署以及各种成熟框架部署,具体可查看积木官方文档 当前采用源码部署,首先下载Jimureport-example-1.5.6 1 jimureport-example目录查看 使用ID…

喜报|迪捷软件“ModelCoder 建模及形式化验证代码生成软件”荣登浙江省首版次产品目录

近日,浙江省经济和信息化厅公布《2023年浙江省首版次软件产品应用推广指导目录》,浙江迪捷软件科技有限公司的“ModelCoder 建模及形式化验证代码生成软件”经过多轮审核及专家评定被纳入目录,这是迪捷软件自主研发的产品继“天目全数字实时仿…

【前缀和】【单调栈】LeetCode2281:巫师的总力量和

作者推荐 map|动态规划|单调栈|LeetCode975:奇偶跳 涉及知识点 单调栈 C算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 题目 作为国王的统治者,你有一支巫师军队听你指挥。 给你一个下标从 0 开始的整数数组 strength &…

【Matlab in VSCode】在VSCode中编辑MATLAB文件

【Matlab in VSCode】在VSCode中编辑MATLAB文件 1.安装插件 插件:在vscode拓展商店下载 MATLABMatlab in VSCode 其他:Windows环境MATLAB2019bpython3.7.9 2.插件配置 MATLAB插件下载后不用配置。 Matlab in VSCode需要进行相应的配置。 Windows…

【C语言】自定义类型:结构体深入解析(二)结构体内存对齐宏offsetof计算偏移量结构体传参

文章目录 📝前言🌠 结构体内存对齐🌉内存对齐包含结构体的计算🌠宏offsetof计算偏移量🌉为什么存在内存对⻬?🌠 结构体传参🚩总结 📝前言 本小节,我们学习结构的内存对…

C++面向对象(OOP)编程-STL详解(vector)

本文主要介绍STL六大组件,并主要介绍一些容器的使用。 目录 1 泛型编程 2 CSTL 3 STL 六大组件 4 容器 4.1 顺序性容器 4.1.1 顺序性容器的使用场景 4.2 关联式容器 4.2.1 关联式容器的使用场景 4.3 容器适配器 4.3.1 容器适配器的使用场景 5 具体容器的…

大模型ChatGLM下载、安装与使用

在人工智能领域,清华技术成果转化的公司智谱AI启动了支持中英双语的对话机器人ChatGLM内测。ChatGLM是一个初具问答和对话功能的千亿中英语言模型, 并针对中文进行了优化,现已开启邀请制内测,后续还会逐步扩大内测范围。 ChatGLM…