Google最新的目标检测方法,目前应该是最快最好的深度学习目标检测器,优于YOLOv3、Mask R-cnn,能实现高帧率,低FLOPS运算。本文对该论文整体进行大致的整理。

  • Abstract
    • BiFPN
      • EfficientDet
        • 实验结果
          • 对比实验 Ablation Study
            • 总结

论文链接:arXiv:1911.09070v4
官方源代码地址:https://github.com/google/automl/tree/master/efficientdet.
非官方pytoch版本(运行速度更快):https://github.com/zylo117/Yet-Another-EfficientDet-Pytorch

Abstract

模型效率在计算机视觉中的地位越来越重要。本文系统地研究了目标检测的神经网络体系结构设计选择,并提出了几种提高效率的关键优化方法。首先,我们提出了一种 加权双向特征金字塔网络(BiFPN) ,该网络允许简单快速的多尺度特征融合;其次,我们提出了一种复合尺度方法,该方法可以同时均匀地对所有骨干网、特征网络和box/类预测网络的分辨率、深度和宽度进行缩放。基于这些优化和EfficientNet主干网,我们开发了一个新的对象检测器家族EfficientDet,它在广泛的资源限制范围内始终比现有技术获得更好的效率。特别是,在单模型和单尺度的情况下,我们的EfficientDet7在COCO测试设备上实现了最先进的52.2 AP,具有52M参数和325B触发器1,比以前的检测器小4-9倍,使用的触发器比以前的检测器少13-42倍。

BiFPN

在这一部分中,我们首先阐述了多尺度特征融合问题,然后介绍了我们提出的BiFPN的主要思想: 有效的双向交叉尺度连接和加权特征融合。
1. 问题描述
图2(a)显示了传统的自上而下FPN[20]。它采用3-7级输入特征~P in=(Pin 3;::P in 7),其中Pin i表示分辨率为1=2i的输入图像的特征级别。例如,如果输入分辨率为640x640,则管脚3表示分辨率80x80的功能级别3(640=23=80),而管脚7表示分辨率为5x5的功能级别7。传统的FPN以自顶向下的方式聚合多尺度特征:

其中Resize通常是用于分辨率匹配的上采样或下采样操作,Conv通常是用于特征处理的卷积操作。
2. 交叉尺度连接 Cross-Scale Connections
传统的自顶向下FPN固有地受到单向信息流的限制。为了解决这个问题,PANet[23]添加了一个额外的自底向上的路径聚合网络,如图2(b)所示。交叉尺度连接在[17,15,39]中有进一步的研究。最近,NAS-FPN[8]采用神经架构搜索来搜索更好的跨尺度特征网络拓扑结构,但在搜索过程中需要数千GPU小时,发现的网络是不规则的,很难解释或修改,如图2(c)所示。
通过研究这三种网络的性能和效率(表5),我们发现PANet比FPN和NAS-FPN具有更好的精度,但需要花费更多的参数和计算。为了提高模型的效率,本文提出了几种跨尺度连接的优化方法:首先,我们移除那些只有一个输入边的节点。我们的直觉很简单:如果一个节点只有一个输入边而没有特征融合,那么它对以融合不同特征为目的的特征网络的贡献就较小。这导致了一个简化的双向网络;第二,如果原始输入节点与输出节点处于同一级别,我们会在它们之间添加额外的边,以便在不增加太多成本的情况下融合更多功能;第三,与PANet[23]不同,PANet[23]只有一个自顶向下和一个自下而上的路径,我们将每个双向(自上而下和自下而上)路径视为一个特征网络层,并多次重复同一层,以实现更高层次的特征融合。第4.2节将讨论如何使用复合缩放方法确定不同资源约束的层数。通过这些优化,我们将新的特征网络命名为双向特征金字塔网络(biffn),如图2和3所示。

3. 加权特征融合 Weighted Feature Fusion
当融合具有不同分辨率的特征时,一种常见的方法是首先将它们调整为相同的分辨率,然后对它们进行汇总。金字塔注意网络[19]引入了全局自注意上采样来恢复像素定位,这在[8]中有进一步的研究。 所有以前的方法都平等地对待所有输入特征,没有区别。
然而,我们观察到,由于不同的输入特征在不同的分辨率下,它们通常对输出特征的贡献是不平等的。为了解决这个问题, 我们建议为每个输入增加一个额外的权重,并让网络了解每个输入特征的重要性。基于此,我们考虑三种加权融合方法:

  • 无限融合Unbounded fusion:

    其中wi是可学习的权重,可以是标量(每个特征)、向量(每个通道)或多维张量(每个像素)。
    我们发现一个比例尺可以在最小的计算成本下达到与其他方法相当的精度。然而,由于标量权重是无限的,它可能会导致训练的不稳定性。因此,我们使用 权重规范化来限定每个权重的值范围。
  • 基于Softmax的融合Softmax-based fusion:

    一个直观的想法是对每个权重应用softmax,这样所有的权重都被规范化为一个概率值范围从0到1,表示每个输入的重要性。然而,如我们在第6.3节中的消融研究所示, 额外的softmax导致GPU硬件显著减速。为了最小化额外的延迟成本,我们进一步提出了一种快速融合方法。
  • 快速标准化融合Fast normalized fusion:

    其中wi= 0通过在每个wi后应用Relu来确保,并且=0:0001是一个小值,以避免数值不稳定。类似地,每个规格化权重的值也在0到1之间,但是由于这里没有softmax操作,因此效率更高。我们的消融研究表明,这种快速融合方法与基于softmax的融合具有非常相似的学习行为和准确性,但在gpu上运行速度高达30%(表6)。
    我们的最终BiFPN集成了双向交叉尺度连接和快速规范化融合。作为一个具体的例子,这里我们描述了图2(d)中所示的BiFPN的两个6级融合特征:

    其中,Ptd 6是自上而下路径6级的中间特征,pout6是自下而上路径6级的输出特征。所有其他功能都以类似的方式构建。值得注意的是,为了进一步提高效率,我们使用了 深度可分离卷积[5,34]进行特征融合,并在每次卷积后添加了批量规范化和激活。

EfficientDet

基于我们的BiFPN,我们开发了一个新的检测模型家族EfficientDet。在本节中,我们将讨论网络结构和一种新的用于EfficientDet的复合缩放方法。

  • 网络结构 EfficientDet Architecture
    图3显示了EfficientDet的总体架构,它大体上遵循了单级检测器范式[24、30、20、21]。我们采用ImageNet预训练有效网络作为骨干网络。我们提出的BiFPN作为特征网络,它从骨干网中提取3-7级特征fP3;P4;P5;P6;P7g,并反复应用自顶向下和自下而上的双向特征融合。这些融合后的特征分别反馈到类和盒网络中,产生对象类和边界盒预测。与[21]类似,类和框网络权重在所有级别的特征中共享。
    个人理解,整体网络结构还是主流的encoder-decoder结构,在encoder的3-7层使用上节提到的BiFPN,也就是图3中的中间部分,通过不断循环迭代中间部分,并输出到Box predition net中。
  • 复合缩放Compound Scaling
    为了优化精度和效率,我们希望开发出一系列能够满足各种资源约束的模型。这里的一个关键挑战是如何扩大基线效率的et模型。
    以前的工作主要是通过使用更大的骨干网络(例如ResNeXt[38]或AmoebaNet[29])、使用更大的输入图像或堆叠更多的FPN层来放大基线检测器[8]。这些方法通常是无效的,因为它们只关注单个或有限的缩放维度。
    最近的工作[36]通过联合放大网络宽度、深度和输入分辨率的所有维度,在图像分类方面显示出显著的性能。受这些工作的启发[8,36],我们提出了一种新的目标检测的复合尺度方法,该方法使用简单的复合系数来联合放大骨干网络、BiFPN网络、类/盒网络和分辨率的所有维度。
    与[36]不同的是,目标检测器比图像分类模型具有更多的尺度维数,因此对所有维度的网格搜索代价高昂。因此,我们使用基于启发式的缩放方法,但仍然遵循联合缩放所有维度的主要思想。
  • 骨干网络 Backbone network ——我们重用EfficientNet-B0到B6的相同宽度/深度比例系数[36],这样我们就可以轻松地重用他们的ImageNet预训练检查点。
  • BiFPN网络 —— 我们线性增加BiFPN深度Dbifpn(#层),因为深度需要舍入到小整数。对于BiFPN宽度Wbifpn(#信道),指数增长BiFPN宽度Wbifpn(#信道),类似于[36]。具体来说,我们对值f1.2、1.25、1.3、1.35、1.4、1.45g的列表执行网格搜索,并选择最佳值1.35作为BiFPN宽度比例因子。形式上,BiFPN宽度和深度按以下公式缩放:

    3.盒类预测网络Box/class prediction network —— 我们将其宽度固定为始终与BiFPN相同(即Wpred=Wbifpn),但lin-提前使用公式增加深度(#层):

    4.输入图像分辨率Input image resolution —— 由于特征级别3-7用于BiFPN,因此输入分辨率必须可除以27=128,因此我们使用公式线性增加分辨率
    根据方程式1、2、3和不同的分辨率,我们开发了效率dET-D0(–0)到D7(–7),如表1所示,其中D7与D6相同,但分辨率较高。
    值得注意的是,我们的缩放是基于启发式的,可能不是最优的,但是我们将展示这种简单的缩放方法可以显著地提高效率,而不是图6中的其他一维缩放方法。

实验结果

  • 目标检测EfficientDet for Object Detection

我们使用118K张训练图像评估COCO 2017检测数据集[22]的效率。利用动量为0.9、权值衰减为4e-5的SGD优化器对每个模型进行训练。在第一个训练阶段,学习率从0线性增加到0.16,然后利用余弦衰减规律进行退火。在每次卷积后加入同步批归一化,批范数衰减为0.99,epsilon 1e-3。与[36]一样,我们使用swish激活[28,6]和衰减为0.9998的指数移动平均。
我们还采用了常用的焦距损失[21],=0:25和=1:5,长宽比f1/2,1,2g。每个模型在32 TPUv3核上训练了300个阶段,批次总尺寸为128。我们使用RetinaNet[21]预处理和训练时间多分辨率裁剪/缩放和翻转增强。值得注意的是,我们的任何车型都没有使用自动增强功能[42]。
表2比较了在不增加测试时间的情况下,在单模型单尺度设置下,EfficientSet与其他目标检测器的性能。我们报告了测试dev(20K个没有公共地面真实的测试图像)和val(5K个有地面真实的验证图像)的准确性。我们的EfficientDet比以前的探测器实现了更好的效率,它比以前的探测器小4到9倍,在各种精度或资源限制下使用的触发器也少13到42倍。
在相对较低的精度范围内,我们的效率TDET-D0在减少28倍的触发器的情况下达到了与YOLOv3相似的精度。与RetinaNet[21]和Mask RCNN[11]相比,我们的EfficientDet-D1的参数减少了8倍,触发器减少了21倍,达到了类似的精度。在高精度领域,我们的效率网也持续地以更少的参数和触发器输出最新的NAS-FPN[8]及其增强版本[42]。特别是,我们的EfficientDet-D7在测试开发上实现了最新的52.2 AP,在单模型单标度上实现了51.8 AP。
值得注意的是,与需要特殊设置的大型变形虫+NAS-FPN+自动增强模型[42]不同(例如,将锚从3x3更改为9x9,使用模型并行进行训练,并依赖昂贵的自动增强),所有高效的TDET模型都使用相同的3x3锚,并且在没有模型并行或自动增强的情况下进行训练。
除了参数大小和触发器之外,我们还比较了Titan-V GPU和单线程Xeon CPU上的实际延迟。我们用批量1运行每个模型10次,并报告平均值和标准偏差。
图4说明了模型大小、GPU延迟和单线程CPU延迟的比较。为了公平比较,这些数字只包括在具有相同设置的同一台机器上测量的结果。与以前的探测器相比,EfficientDet型号在GPU上的速度高达4.1倍,在CPU上的速度高达10.8倍,这表明它们在现实世界的硬件上也很有效。

  • 语义分割EfficientDet for Semantic Segmentation
    虽然我们的有效集模型主要是为目标检测而设计的,但我们也对它们在语义分割等其他任务上的性能感兴趣。在[16]之后,我们修改了EfficientDet模型,以保持BiFPN中的特征级别fP2;P3;::;P7g,但仅使用P2进行最终的每像素分类。为了简单起见,这里我们只评估基于EfficientDet-D4的模型,该模型使用ImageNet pretrained EfficientNet-B4主干网(大小与ResNet-50相似)。我们将BiFPN的信道大小设置为128,将分类头的信道大小设置为256。BiFPN和分类头重复3次。表3显示了我们的模型与Pascal VOC 2012[7]上的DeepLabV3+[4]之间的比较。
    值得注意的是,我们排除了集成、测试时间增加或COCO预训练的结果。在相同的单型号单刻度设置下,我们的模型比现有技术DeepLabV3+[4]的触发器少9.8倍,精度提高了1.7%。这些结果表明,EfficientDet在语义分割方面也有很好的应用前景。
对比实验 Ablation Study

在这一节中,我们为我们所建议的效率网进行了各种设计选择。为了简单起见,这里的所有精度结果都是针对COCO验证集的。
这里就不展开,主要是进行一些对比实验,针对作者所设计的新的网络结构,双向交叉尺度连接、激活函数的对比。直接上图。

  • 表4:分离骨干网和BiFPN——从标准视网膜网(ResNet50+FPN)开始,我们首先用EfficientNet-B3替换骨干网,然后用我们提议的BiFPN替换基线FPN。
  • 表5:不同特征网络的比较-我们的加权BiFPN在较少参数和触发器的情况下达到最佳精度。
  • 图5:Softmax与快速规范化特征融合——(a)-(c)显示了三个代表性节点训练期间的规范化权重(即重要性);每个节点有两个输入(input1和input2),其规范化权重总和始终为1。
  • 表6:不同特征融合的比较——我们的快速融合与基于softmax的融合达到了相似的精度,但速度快了28%-31%。
  • 图6:不同标度方法的比较-复合标度获得更好的精度和效率。
总结

本文系统地研究了有效目标检测的网络结构设计选择,提出了一种加权双向特征网络和一种定制的复合缩放方法,以提高检测的准确性和效率。基于这些优化,我们开发了一个新的检测器族EfficientDet,它在广泛的资源限制范围内始终比现有技术获得更好的精度和效率。特别是,我们的scaled EfficientDet比以前的目标检测和语义分割模型具有更少的参数和触发器,达到了最新的精度。

EfficientDet: Scalable and Efficient Object Detection---论文阅读(1)相关推荐

  1. EfficientDet: Scalable and Efficient Object Detection 论文学习

    Abstract 模型效率在计算机视觉领域愈发重要.本文中,作者系统地研究了神经网络结构设计,提出了多项关键优化以提升模型效率.首先,作者提出了一个加权的双向特征金字塔网络(BiFPN),使得多尺度特 ...

  2. EfficientDet:Scalable and Efficient Object Detection

    快速论文解读|CVPR2020|EfficientDet:Scalable and Efficient Object Detection) 1.背景描述   在目标检测中,为了增强网络的特征表达能力, ...

  3. 论文阅读:EfficientDet: Scalable and Efficient Object Detection

    文章目录 1.论文总述 2.各式各样的FPN及其效果 3.BiFPN设计的心路历程 4.Weighted Feature Fusion 4.EfficientDets家族的网络结构图 5.Compou ...

  4. Paper之EfficientDet: 《Scalable and Efficient Object Detection—可扩展和高效的目标检测》的翻译及其解读—续篇

    Paper之EfficientDet: <Scalable and Efficient Object Detection-可扩展和高效的目标检测>的翻译及其解读 导读:2019年11月21 ...

  5. Paper之EfficientDet: 《Scalable and Efficient Object Detection—可扩展和高效的目标检测》的翻译及其解读

    Paper之EfficientDet: <Scalable and Efficient Object Detection-可扩展和高效的目标检测>的翻译及其解读 导读:2019年11月21 ...

  6. Feature Selective Anchor-Free Module for Single-Shot Object Detection论文阅读翻译 - 2019CVPR

    Feature Selective Anchor-Free Module for Single-Shot Object Detection论文阅读翻译 文章目录 Feature Selective A ...

  7. CenterNet: Keypoint Triplts for Object Detection 论文阅读笔记

    论文名称:CenterNet: Keypoint Triplts for Object Detection 作者:Kaiwen Duan & Song Bai等 论文链接:https://ar ...

  8. Class-Aware Robust Adversarial Training for Object Detection论文阅读笔记

    针对目标检测的类感知对抗训练 2021年的CVPR,哥伦比亚大学和中心研究院合作的工作. 摘要:    目的通过对抗训练增强目标检测的鲁棒性,对于一张给定的图像,本文提出的方法产生一个通用的对抗性攻击 ...

  9. Scale-Equalizing Pyramid Convolution for Object Detection论文阅读

    摘要 特征金字塔是一种提取不同尺度特征的有效放法.该方法的发展主要集中在不同层次的上下文融合,而很少涉及特征金字塔的层间相关性. 早期的计算机视觉方法通过定位空间与尺度维度上的特征极值来提取尺度不变特 ...

最新文章

  1. RT-thread内核之进程间通信
  2. Java教程之JDBC中的常用接口和类
  3. 手把手教你用nodejs+SQL Server2012做增删改查
  4. python读取多个文件夹_如何从python中的文件夹中读取多个NetCDF文件
  5. SaltStack实战之远程执行-Modules
  6. [UVALive 3661] Animal Run
  7. 解决忽略vscode中pylint报错的问题
  8. 倒计时 1 天 | 年前不学习,年后无加薪!区块链开发者们不要纠结了!(内含赠票福利)...
  9. HDU1233 还是畅通工程【Kruskal算法+并查集】
  10. 作业车间调度问题特征与调度效率相关性的研究Correlation of job-shop scheduling problem features with scheduling efficiency
  11. Java并发编程:Lock(上)
  12. EndNote X7如何在论文中嵌入中文定格式要求的参考文献
  13. 高淇java300适合_高淇java300集JAVA面向对象的进阶作业
  14. 树莓派安装HackRF、LimeSDR、GNU Radio、Gqrx
  15. 内核编译(支持查看cpu温度)
  16. shel脚本基础系列(一)变量
  17. ArcMap通过空间连接和数据汇总实现批量统计
  18. file_operations结构体介绍
  19. 【unity】FPS快速实现全息瞄准镜
  20. 共享系统APP开发:带你体验真实的共享生活

热门文章

  1. Stram流 常用方法
  2. centos下一键安装lamp环境,快捷,方便
  3. 苏格拉底经典名言语录(92条)
  4. 第二章 理解Reactive微服务和Vert.x
  5. easyexcel的基本使用
  6. Android StatusBar相关设置
  7. 全面升级2022版Zoomla逐浪CMS官网全新上线激情内测体验进行中
  8. 华为机试—操作系统任务调度
  9. win10user文件夹迁移_win10系统个人文件夹怎么修改位置?
  10. php 获取 客户端mac,如何在PHP中获取连接客户端的MAC和IP地址?