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.mzph.cn/news/238396.shtml

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

相关文章

Leetcode—剑指Offer LCR 025.两数相加II【中等】

2023每日刷题(六十七) Leetcode—LCR 025.两数相加II 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode…

QT 5.14.2 Android环境搭建问题解决

遇到了不少坑,留帖记录。 1.SDK问题 建议下载SDK-manager工具,从里面选择进行安装。 【原创】基于Qt5.14的一站式安卓开发环境搭建 2.SDK包报错 选择旧版本JDK,竟然和JDK有关,一般还真找不到这个错误。 Qt for Android “Pl…

State of PostgreSQL 2023 报告解读

基于 PostgreSQL 内核的时序数据库厂商 Timescale 发布了一年一度的 State of Postgres 2023 报告。 Timescale 介绍 简单先介绍一下 Timescale 这家公司的历史。它最早是提供了一个 PG 的插件,引入了 Hypertable 这个概念,来高效地处理时序数据&…

【Python百宝箱】数据科学的黄金三角:数据挖掘和聚类

数据之舞:Python数据科学库横扫全场 前言 在当今数据驱动的时代,Python成为数据科学家和分析师的首选工具之一。本文将介绍一系列强大的Python库,涵盖了数据处理、可视化、机器学习和自然语言处理等领域。无论你是初学者还是经验丰富的数据…

飞天使-k8s知识点5-kubernetes基础名词扫盲

文章目录 deploymentspodNodeserviceskubectl 实现应用伸缩kubectl 实现滚动更新kubernetes架构 deployments 中文文档 http://docs.kubernetes.org.cn/251.htmldeployment是用来创建和更新应用的,master 会负责将创建好的应用实例调度到集群中的各个节点 应用实例…

YOLOv8算法改进【NO.96】针对小目标检测有效果的ASF-YOLO

前 言 YOLO算法改进系列出到这,很多朋友问改进如何选择是最佳的,下面我就根据个人多年的写作发文章以及指导发文章的经验来看,按照优先顺序进行排序讲解YOLO算法改进方法的顺序选择。具体有需求的同学可以私信我沟通: 第一…

7-12 学生选课信息管理

作者 秦晓薇 单位 赤峰学院 设计一个学生选课信息管理系统,从屏幕读入学生、课程信息,执行学生选课操作,并显示选课结果。要求如下: (1)设计一个学生类Student,包括&am…

qt连接hiki相机进行拍照保存

.pro QT工程pro文件模板变量(TEMPLATE)模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择: app - 建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。 lib - …

直接将第三方数据插入到 Redis 中

Redis 是一个内存数据库,可以用于缓存和持久化数据。虽然常见的使用场景是将数据从关系型数据库(如MySQL)同步到 Redis 中进行缓存,但也可以直接将第三方数据插入到 Redis 中。 你可以通过编程语言的 Redis 客户端库(…

计算机体系结构实验——Branch-Target Buffers

实验五 Branch-Target Buffers 本次实验的主要目的是加深对Branch-Target Buffers的理解。掌握使用Branch-Target Buffers减少或增加分支带来的延迟的情况。 实验内容: 将以下程序段修改为可利用WinMIPS64模拟器运行的程序。假设R3的初始值为R240 在使用forward…

业务逻辑漏洞有哪些?漏洞攻击防御及代码示例

文章目录 简介危害成因攻击防御代码示例1. 未经验证的重要操作2. 认证绕过3. 逻辑时间窗口漏洞4. 负载测试漏洞 修复 业务逻辑漏洞是指软件或系统的逻辑设计上的缺陷,这些缺陷可能被攻击者利用,从而导致意料之外的行为。下面是对业务逻辑漏洞的简介、危害…

基于 FFmpeg 的跨平台视频播放器简明教程(十二):Android SurfaceView 显示图片和播放视频

系列文章目录 基于 FFmpeg 的跨平台视频播放器简明教程(一):FFMPEG Conan 环境集成基于 FFmpeg 的跨平台视频播放器简明教程(二):基础知识和解封装(demux)基于 FFmpeg 的跨平台视频…

【LeetCode:2866. 美丽塔 II | 单调栈 + 前后缀数组】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

flink watermark 实例分析

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

2023年12月GESP认证图形化编程四级真题试卷

2023年12月GESP认证Scratch图形化等级考试(四级)真题试卷 题目总数:27 总分数:100 选择题 第 1 题 单选题 现代计算机是指电子计算机,它所基于的是( )体系结构 A. 艾伦图灵 B. …

Valentina Studio Pro for Mac:高效数据库管理工具

作为一款强大而高效的数据库管理工具,Valentina Studio Pro for Mac在Mac平台上的表现无疑是令人印象深刻的。无论您是初学者还是专业数据库管理员,Valentina Studio Pro都能够满足您的需要,并提供一流的工具和功能来简化数据库管理的过程。 …

KBU808-ASEMI适配高端电源KBU808

编辑:ll KBU808-ASEMI适配高端电源KBU808 型号:KBU808 品牌:ASEMI 封装:KBU-4 最大平均正向电流:8A 最大重复峰值反向电压:800V 产品引线数量:4 产品内部芯片个数:4 产品内…

白酒企业巧用全返消费实现绝地翻盘,最后创收八亿营业额

凿壁偷光暗暗升级不如巧遇大师寻找直线道路。 每天五分钟解析一个商业模式,大家好我是商业模式开发啊浩。 凿壁偷光暗暗升级不如巧遇大师寻找直线道路,很多时候埋头苦干不一定能成功,做生意不得不说有时候就是投机取巧遇上高人指点打破现状寻…

Docker 编译OpenHarmony 4.0 release

一、背景介绍 1.1、环境配置 编译环境:Ubuntu 20.04OpenHarmony版本:4.0 release平台设备:RK3568 OpenHarmony 3.2更新至OpenHarmony 4.0后,公司服务器无法编译通过,总是在最后几十个文件时报错,错误码4000&#xf…

C#电源串口调试

目的 记录串口调试的遇到的一些问题以及相应的解决方法 1.串口定义:串口是计算机与其他硬件传输数据的通道,在计算机与外设通信时起到重要作用 2.串口通信的基础知识 C#中的串口通信类 C#使用串口通信类是SerialPort(),该类使用方法是 new 一个 SerialPort对象 为S…