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.加权特征融合

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[node]Node.js 中REPL简单介绍

[node]Node.js 中REPL简单介绍 什么是REPL为什么使用REPL如何使用REPL 命令REPL模式node的全局内容展示node全局所有模块查看全局模块具体内容其它命令 实践 什么是REPL Node.js REPL(Read Eval Print Loop:交互式解释器) 表示电脑的环境,类似 Windows 系统的终端或…

【大数据存储与处理】第一次作业

hbase 启动步骤 1、启动 hadoop,master 虚拟机,切换 root 用户,输入终端命令:start-all.sh 2、启动 zookeeper,分别在 master、slave1、slave2 虚拟机终端命令执行:zkServer.sh start 3、启动 hbase&#x…

ToB还是ToC?工业级与消费级AR眼镜都能干什么?

来源:虹科数字化与AR 虹科分享 | ToB还是ToC?工业级与消费级AR眼镜都能干什么? 原文链接:https://mp.weixin.qq.com/s/lyTASoKm29woIbfcKBtMvQ 欢迎关注虹科,为您提供最新资讯! 随着科技的飞速发展&#…

vue element plus 管理系统路由菜单简要设计(后端获取菜单)

1 需求 管理系统“菜单”由后端接口返回,前端需要根据后端返回的“菜单”数组,构造路由,渲染侧栏菜单有些菜单是子菜单,有对应的路由,但是不在侧栏显示(比如一些详情页面) 注:这里的…

HTML美化网页

使用CSS3美化的原因 用css美化页面文本,使页面漂亮、美观、吸引用户 可以更好的突出页面的主题内容,使用户第一眼可以看到页面主要内容 具有良好的用户体验 <span>标签 作用 能让某几个文字或者某个词语凸显出来 有效的传递页面信息用css美化页面文本&#xff0c;使页面漂…

四、Spring IoC实践和应用(基于注解方式管理 Bean)

本章概要 基于注解方式管理 Bean 实验一&#xff1a; Bean注解标记和扫描 (IoC)实验二&#xff1a; 组件&#xff08;Bean&#xff09;作用域和周期方法注解实验三&#xff1a; Bean属性赋值&#xff1a;引用类型自动装配 (DI)实验四&#xff1a; Bean属性赋值&#xff1a;基本…

如何用docke启动redis?(解决双击docker服务闪退问题)

要使用Docker启动Redis服务&#xff0c;您可以按照以下步骤进行操作&#xff1a; 安装Docker&#xff1a; 如果您还没有安装Docker&#xff0c;请先在您的系统上安装Docker。您可以从Docker官方网站获取安装说明。 https://www.docker.com/get-started/ 2.在Docker Hub上查找R…

论文中公式怎么降重 papergpt

大家好&#xff0c;今天来聊聊论文中公式怎么降重&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff0c;可以借助此类工具&#xff1a; 论文中公式怎么降重 一、引言 在论文撰写过程中&#xff0c;公式是表达学…

声音克隆:让你的声音变得无所不能

什么是声音克隆&#xff1f; 声音克隆是一种利用人工智能技术&#xff0c;根据一段声音样本&#xff0c;生成与之相似或完全相同的声音的过程。声音克隆可以用于多种场景。 声音克隆的原理是利用深度学习模型&#xff0c;从声音样本中提取声音特征&#xff0c;然后根据目标文…

华为OD机试 - 发广播 - 并查集(Java 2023 B卷 200分)

目录 专栏导读一、题目描述二、输入描述三、输出描述1、输入2、输出3、说明 四、并查集Java 实现并查集 五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&…

机器学习算法(12) — 集成技术(Boosting — Xgboost 分类)

一、说明 时间这是集成技术下的第 4 篇文章&#xff0c;如果您想了解有关集成技术的更多信息&#xff0c;您可以参考我的第 1 篇集成技术文章。 机器学习算法&#xff08;9&#xff09; - 集成技术&#xff08;装袋 - 随机森林分类器和...... 在这篇文章中&#xff0c;我将解释…

​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化

2022年亚马逊云科技re:Invent盛会于近日在拉斯维加斯成功召开&#xff0c;吸引了众多业界精英和创新者。亚马逊云科技边缘服务副总裁Jan Hofmeyr在演讲中分享了关于亚马逊云科技海外服务器边缘计算的最新发展和创新成果&#xff0c;引发与会者热烈关注。 re:Invent的核心主题是…

057:vue组件方法中加载匿名函数

第057个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

激光打标机:快速、精确、耐用的标记解决方案

随着科技的不断进步&#xff0c;激光打标机已经成为现代工业生产中不可或缺的一部分。作为一种高效、精确、耐用的标记解决方案&#xff0c;激光打标机在各个领域都发挥着重要的作用。 一、快速、精确的标记技术 激光打标机采用激光束作为标记工具&#xff0c;通过精确控制激光…

华为鸿蒙操作系统简介及系统架构分析(2)

接前一篇文章&#xff1a;华为鸿蒙操作系统简介及系统架构分析&#xff08;1&#xff09; 本文部分内容参考&#xff1a; 鸿蒙系统学习笔记(一) 鸿蒙系统介绍 特此致谢&#xff01; 上一回对于华为的鸿蒙操作系统&#xff08;HarmonyOS&#xff09;进行了介绍并说明了其层次化…

医保购药小程序:智能合约引领医疗数字革新

在医疗领域&#xff0c;医保购药小程序通过引入智能合约技术&#xff0c;为用户提供更为高效、安全的购药体验。本文将通过简单的智能合约代码示例&#xff0c;深入探讨医保购药小程序如何利用区块链技术中的智能合约&#xff0c;实现医保结算、购药监控等功能&#xff0c;为医…

Linux 宿主机搭建jenkins

目录 前言错误信息 前言 最近项目需要使用jenkins进行CICD&#xff0c;搭建后始终找不到git 错误信息 Source Code Management None出现这种情况主要是插件没有了&#xff0c;需要我们安装插件&#xff1a;

深入理解网络 I/O:mmap、sendfile、Direct I/O

&#x1f52d; 嗨&#xff0c;您好 &#x1f44b; 我是 vnjohn&#xff0c;在互联网企业担任 Java 开发&#xff0c;CSDN 优质创作者 &#x1f4d6; 推荐专栏&#xff1a;Spring、MySQL、Nacos、Java&#xff0c;后续其他专栏会持续优化更新迭代 &#x1f332;文章所在专栏&…

scrapy_redis概念作用和流程

scrapy_redis概念作用和流程 学习目标 了解 分布式的概念及特点了解 scarpy_redis的概念了解 scrapy_redis的作用了解 scrapy_redis的工作流程 在前面scrapy框架中我们已经能够使用框架实现爬虫爬取网站数据,如果当前网站的数据比较庞大, 我们就需要使用分布式来更快的爬取数…

PDF文件如何设置限制打印?

想要限制PDF文件的打印功能&#xff0c;想要限制PDF文件打印清晰度&#xff0c;都可以通过设置限制编辑来达到目的。 打开PDF编辑器&#xff0c;找到设置限制编辑的界面&#xff0c;切换到加密状态&#xff0c;然后我们就看到 有印刷许可。勾选【权限密码】输入一个PDF密码&am…