EfficientDet: Scalable and Efficient Object Detection

2023-10-16 03:12

本文主要是介绍EfficientDet: Scalable and Efficient Object Detection,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CVPR2020     V7  Mon, 27 Jul 2020          引用量:243        机构:Google


贡献:1>提出了多尺度融合网络BiFPN     2>对backbone、feature network、box/class prediction network and resolution进行复合放缩,有着不同的性能表现,以适应不同资源和应用。

views:1> 首先讨论BiFPN,作者只描写了直觉上这样子,整体的结构就是在PANet上进行了修改,或者说图2的c、d其实可以看作是图2(b)的模型剪枝。此外,图2(d)又加入了快捷连接(感觉可类似ResNet),采用了Attention对每个级别的feature map进行加权融合。(这个好像没那么亮眼)   2> 对backbone、feature network、box/class prediction network and resolution进行复合放缩,在介绍这里时,作者反复引用了[39],通过启发式算法(这个没介绍)将复合放缩融合到一起,提出了一系列模型,在2020初,霸榜各大榜单。

Ideas:能否借鉴多尺度融合方式进行模态数据的融合。

摘要:
      研究了用于目标检测的神经网络体系结构设计选择,首先,提出了一种加权双向特征金字塔网络(bi-directional feature pyramid network)(BiFPN),该网络可快速进行多尺度特征融合,其次,提出了
一种复合缩放方法(compound scaling method),可同时对all backbone、feature network and box/class prediction均匀地缩放分辨率、深度、宽度。基于此和更好的backbone,我们提出了efficientdet。EfficientDet-D7在coco上实现55.1AP,77M,410B FLOPs,尺寸缩小了4-9倍,FLOPs减少了13-42倍。

1.Introduction
      模型效率对于目标检测越来越重要,很多工作通过采用one-stage、anchor-free、compress model来实现,但会牺牲准确性。
     提出问题(问题导向型文章):是否有可能在广泛的资源约束中构建更高准确性和更高效率的可扩展检测体系结构?   基于一阶段检测器,检测backbone,feature fusion,class/box network,提出两点挑战:
     挑战1:有效的多尺度特征融合---FPN被广泛用于multi-scale feature fusion(neck部分),PANet和NAS-FPN为cross-scale feature fusion开发了更多的网络结构。不同的输入特征具有不同的分辨率,观测到它们通常不均等影响融合输出特征,故提出了BiFPN。BiFPN引入了可学习权重了解不同输入特征的重要性(起到了一种Attention机制作用),同时反复应用自上而下和自下而上的多尺度融合(作为一个基本层,反复应用,更好的融合多尺度)。
     挑战2:模型缩放---先前的工作主要依赖于较大的backbone或较大的input image size,以实现更高的准确性。我们观察到按比例缩放feature network和box/class prediction netwrok对于同时考虑精度和效率至关重要。
EfficientNet+BiFPN+compound scaling = EfficientDet。在COCO和VOC上达到SOTA性能。
 

2.Related Work
     One-Stage Detector: 根据它们是否具有interest proposal step
    l Multi-Scale Feature Representations: 目标检测的主要困难是有效地表现和处理多尺度特征。FPN提出一种自上而下的途径来组合多尺度特征。PANet提出一种额外的自下而上的路径聚合网络,STDL提出一个尺度转换模块来利用跨尺度特征。M2det提出了一个U形模块来融合多尺度特征,G-FRNet提出用于跨特征控制信息流门单元。尽管NAS-FPN有很好的性能,但耗费大量时间,生成的要素网络是不规则的,难以解释。本文旨在更直观,更原则的方式优化多尺度特征融合。
 Model Scaling:更大的backbone,或增加输入图像尺寸,最近,[39]通过共同扩大网络的宽度,深度和分辨率,证明了图像分类的卓越模型效率。

     其中,resize通常表示upsampling or downsampling用于分辨率匹配,Conv表示卷积操作。
3.2 Cross-Scale Connections
     自上而下的FPN受到单向信息流的限制。PANet添加了一个额外的自下而上的路径聚合网络,NAS-FPN使用neural architecture search搜索特定的网络拓扑结构,网络不规则,难以解释或修改(NAS感觉有点像大network进行神经元pruning ,没了解过)。
     提出BiFPN,根据直觉:1>如果一个节点只有一个输入边且没有特征融合,那么它对融合不同特征的网络有很少的贡献,简化双向网络(这感觉有点牵强) 2>原始输入和输出节点处于同一级别,添加一条额外的边(类shortcut)   3>将每个双向路径视为一个feature network layer,重复多次以获得high-level feature fusion。
3.3 Weighted Feature Fusion
     常见融合方法:调整为相同的分辨率,对其求和。
     提出添加额外的权重对于每个输入,考虑三种加权融合方法:

这篇关于EfficientDet: Scalable and Efficient Object Detection的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Java中Object类的常用方法小结

《Java中Object类的常用方法小结》JavaObject类是所有类的父类,位于java.lang包中,本文为大家整理了一些Object类的常用方法,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. public boolean equals(Object obj)2. public int ha

深入探讨Java 中的 Object 类详解(一切类的根基)

《深入探讨Java中的Object类详解(一切类的根基)》本文详细介绍了Java中的Object类,作为所有类的根类,其重要性不言而喻,文章涵盖了Object类的主要方法,如toString()... 目录1. Object 类的基本概念1.1 Object 类的定义2. Object 类的主要方法3. O

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At

时间序列|change point detection

change point detection 被称为变点检测,其基本定义是在一个序列或过程中,当某个统计特性(分布类型、分布参数)在某时间点受系统性因素而非偶然因素影响发生变化,我们就称该时间点为变点。变点识别即利用统计量或统计方法或机器学习方法将该变点位置估计出来。 Change Point Detection的类型 online 指连续观察某一随机过程,监测到变点时停止检验,不运用到

[论文笔记]QLoRA: Efficient Finetuning of Quantized LLMs

引言 今天带来LoRA的量化版论文笔记——QLoRA: Efficient Finetuning of Quantized LLMs 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 我们提出了QLoRA,一种高效的微调方法,它在减少内存使用的同时,能够在单个48GB GPU上对65B参数的模型进行微调,同时保持16位微调任务的完整性能。QLoRA通过一个冻结的4位量化预

error while loading shared libraries: libnuma.so.1: cannot open shared object file:

腾讯云CentOS,安装Mysql时: 1.yum remove libnuma.so.1 2.yum install numactl.x86_64

java基础总结12-面向对象8(Object类)

1 Object类介绍 Object类在JAVA里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父类又是从另外一个父类继承过来,那他也只能有一个父类,父类再有父类,那也只能有一个,JAVA为了组织这个类组织得比较方便,它提供了一个最根上的类,相当于所有的类都是从这个类继承,这个类就叫Object。所以Object类是所有JAVA类的根基类,是所有JAVA类的老祖宗

MACS bdgdiff: Differential peak detection based on paired four bedGraph files.

参考原文地址:[http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html](http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html) 文章目录 一、MACS bdgdiff 简介DESCRIPTION 二、用法

王立平--Object-c

object-c通常写作objective-c或者obj-c,是根据C语言所衍生出来的语言,继承了C语言的特性,是扩充C的面向对象编程语言。它主要使用于MacOSX和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。Objective-C可以在gcc运作的系统写和编译,因为gcc含Objective-C的编译器。在MA

Learning Memory-guided Normality for Anomaly Detection——学习记忆引导的常态异常检测

又是一篇在自编码器框架中研究使用记忆模块的论文,可以看做19年的iccv的论文的衍生,在我的博客中对19年iccv这篇论文也做了简单介绍。韩国人写的,应该是吧,这名字听起来就像。 摘要abstract 我们解决异常检测的问题,即检测视频序列中的异常事件。基于卷积神经网络的异常检测方法通常利用代理任务(如重建输入视频帧)来学习描述正常情况的模型,而在训练时看不到异常样本,并在测试时使用重建误