EfficientDet: Scalable and Efficient Object Detection

参考文献:https://arxiv.org/pdf/1911.09070.pdf
代码实现:
原论文提供https://github.com/google/automl/tree/master/efficientdet
pytorch提供https://github.com/zylo117/Yet-Another-EfficientDet-Pytorch

EfficientDet: Scalable and Efficient Object Detection

摘要

在计算机视觉中,模型效率变得越来越重要。在本文中,我们系统地研究了用于目标检测的神经网络体系结构设计选择,并提出了一些关键的优化方法来提高效率。首先,我们提出了一种加权双向特征金字塔网络(BiFPN),该网络可以方便快速地融合多尺度特征。其次,我们提出了一种复合缩放方法,该方法同时对所有主干网络,特征网络和box/class预测网络的分辨率、深度和宽度进行统一缩放。基于这些优化和EfficientNet主干网络,我们开发了一种称为EfficientDet的新目标检测器系列,在资源限制条件下,该检测器始终比现有技术具有更高的效率。特别是对于单一模型和单一比例,我们的EfficientDet-D7在COCO数据集上达到了最新的52.2 AP,具有52M参数和325B FLOP,与以前的检测器相比,规模缩小了4到9倍,使用的FLOP减少了13到42倍。

1 引言

近年来,提高目标检测精度方面的研究取得了巨大进展,但是最先进的目标检测器也变得越来越昂贵。例如,最新的基于NASFPN的AmoebaNet检测器[42]需要167M的参数和3045B的FLOPS(比RetinaNet[21]多30倍),才能达到最先进的精度。模型规模大和昂贵的计算成本阻碍了它们在许多实际应用中的部署,例如机器人和自动驾驶汽车,模型规模和时间延迟高度限制了算法应用。考虑到这些现实世界的资源约束,模型效率对于目标检测变得越来越重要。

许多先前的工作旨在开发更高效的检测器架构,例如one stage[24、30、31、21]和anchor free[18、41、37],或者压缩现有模型[25、26]。虽然这些方法获得了更好的效率,但通常会损失精度。此外,以往的研究大多只关注特定或小范围的资源需求,但从移动设备到数据中心的各种实际应用,往往需要不同的资源约束。

一个自然的问题是:是否有可能在广泛的资源限制(例如从3B到300B的FLOPs)中构建一个既具有更高精度又具有更好效率的可扩展检测体系结构?本文旨在通过系统地研究探测器结构的各种设计选择来解决这一问题。基于one stage检测器范式,我们研究了主干网络、特征融合和class/box网络的设计选择,并确定了两个主要挑战:

挑战1:高效的多尺度特征融合。自文献[20]提出以来,FPN被广泛应用于多尺度特征融合。最近,PANet[23]、NAS-FPN[8]和其他研究[17、15、39]开发了更多的用于跨尺度特征融合的网络结构。在融合不同的输入特征时,以往的研究大多只是简单的将它们相加,没有区别;然而,由于这些不同的输入特征具有不同的分辨率,我们观察到它们对融合输出特征的贡献往往是不一样的。为了解决这一问题,我们提出了一种简单而高效的加权双向特征金字塔网络(BiFPN),它引入可学习的权值来学习不同输入特征的重要性,同时反复应用自顶向下和自下而上的多尺度特征融合。

挑战2:模型缩放。虽然以前的工作主要依赖于更大的主干网络[21、32、31、8]或更大的输入图像尺寸[11、42]以获得更高的精度,但我们观察到,在兼顾精度和效率的情况下,放大特征网络和class/box预测网络也是至关重要的。在文献[36]的启发下,我们提出了一种目标检测器的复合缩放方法,该方法联合扩大了所有主干网络、特征网络、class/box预测网络的分辨率/深度/宽度

最后,我们还观察到,最近引入的EfficientNets[36]比以前常用的主干网络实现了更好的效率。将EfficientNet主干网络与我们提出的BiFPN和复合缩放方法相结合,我们开发了一个新的目标检测器家族EfficientDet,与以前的目标检测器相比,它可以在更少的参数和FLOPS情况下获得更好的精度。图1和图4显示了在COCO数据集上的性能比较[22]。在类似的精度下,我们的EfficientDet使用的FLOPS比YOLOv3少28倍[31],比RetinaNet少30倍[21],比最近ResNet+NAS-FPN少19倍[8]。特别是,在single-model和single test-time scale下,我们的EfficientDet-D7以52M参数和325B FLOPS实现了最新的52.2AP,比最佳检测器[42]的性能好1.5AP,同时小4倍,使用的FLOPS少13倍。我们的EfficientDet在GPU/CPU上比以前的检测器快3到8倍。
在这里插入图片描述
通过简单的修改,我们还证明了我们的single-model single-scale EfficientDet在Pascal VOC 2012语义分割上使用18B浮点运算时达到81.74%的mIOU精度,比DeepLabV3+[4]的精度高1.7%,浮点运算减少9.8倍。

主要贡献:
提出了BiFPN,一个简单快速的用于多尺度特征融合的、带有权重的双向特征网络;
提出了一种新的复合缩放方法,该方法联合扩大了所有主干网络、特征网络、class/box预测网络的分辨率/深度/宽度;
基于BiFPN和复合缩放的方法,提出了EfficientDet,这是一组新的检测器,在资源约束的条件下具有更高的准确性和更好的效率

2 相关工作

单阶段目标检测器:现有的目标检测器主要根据它们是否具有感兴趣区域建议步骤进行分类,分为两阶段[9、32、3、11]和单阶段[33、24、30、21]。虽然两阶段检测器往往更灵活更精确,但通常认为单阶段检测器通过利用预定义的anchor更简单、更高效[14]。近年来,单阶段检测器因其效率高、简单等优点引起了人们的广泛关注[18,39,41]。在本文中,我们主要遵循单阶段检测器的设计,并且我们证明了通过优化网络结构可以达到更好的效率和更高的精度。

多尺度特征表示:多尺度特征的有效表示和处理是目标检测的主要难点之一。早期的检测器通常直接根据从骨干网络中提取的金字塔特征层次进行预测[2,24,33]。特征金字塔网络(FPN)[20]作为一项开创性的工作,提出了一种自顶向下的方法来组合多尺度特征。遵循这一思想,PANet[23]在FPN的基础上增加了一个额外的自底向上的路径聚合网络;STDL[40]提出了一个scale-transfer模块来开发cross-scale特征;M2det[39]提出了一个U形模块来融合multi-scale特征,G-FRNet[1]引入了控制跨特征信息流的门单元。最近,NAS-FPN[8]利用神经架构搜索自动设计特征网络。尽管NAS-FPN能获得更好的性能,但它在搜索过程中需要数千个GPU小时,并且生成的特征网络是不规则的,因此很难解释。本文旨在以更直观、更具原则性的方法对多尺度特征融合进行优化。

模型缩放:为了获得更好的精度,通常的做法是增大骨干网络(例如,mobile-size models[35,13]和ResNet[12]到ResNeXt[38]和AmoebaNet[29])或增加输入图像尺寸(例如,从512x512[21]到1536x1536[42])来放大baseline检测器。最近的一些工作[8,42]表明,增加通道大小和重复特征网络也可以提高精度,这些缩放方法主要集中在单个或有限的缩放维度上。最近,文献[36]通过联合扩大网络宽度、深度和分辨率,有效提高了图像分类模型的效率。我们提出的用于目标检测的复合缩放方法主要受到了[36]的启发。

3 BiFPN

在这一部分中,我们首先阐述了多尺度特征融合问题,然后介绍了我们提出的BiFPN的主要思想:有效的双向跨尺度连接和加权特征融合

3.1 问题描述

多尺度特征融合的目的是对不同分辨率的特征进行融合。形式上,给出了一个多尺度特征 P ∗ i n = ( P l 1 i n , P l 2 i n , … ) P^{*in}=(P^{in}_{l1},P^{in}_{l2},…) Pin=(Pl1in,Pl2in,)的列表,其中 P l i i n P^{in}_{li} Pliin表示 l i li li级的特征,我们的目标是找到一个能够有效地聚合不同特征并输出一个新特征列表的转换 P ∗ o u t = f ( P ∗ i n ) P^{*out}=f(P^{*in}) Pout=f(Pin)。作为一个具体的例子,图2(a)显示了传统的自上而下的FPN[20]。它采用3-7层输入特征 P ∗ i n = ( P 3 i n , … , P 7 i n ) P^{*in}=(P^{in}_{3},…,P^{in}_{7}) P

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值