EfficientDet: Scalable and Efficient Object Detection

news2024/11/30 0:48:19

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
     常见融合方法:调整为相同的分辨率,对其求和。
     提出添加额外的权重对于每个输入,考虑三种加权融合方法:

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

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

相关文章

Linux第4章-目录结构

引子 在Linux中,一切皆文件!!! 在Linux中,一切皆文件!!! 在Linux中,一切皆文件!!! 基本介绍 1.Linux的文件系统,是采用…

LoRA 是如何工作的?

概述 纯笔记 LoRA的原理 LoRA其实是对稳定扩散模型最关键的部分进行了微小的改变。 这个关键的部分叫:cross-attention layers – 交叉注意力层。 研究人员发现,对这关键部分进行微调就足以实现良好的训练。 上面黄色部分,QKV 部分就是&a…

Python进阶之迭代器

文章目录 前言一、迭代器介绍及作用1.可迭代对象2. 迭代器 二、常用函数和迭代器1.常用函数2.迭代器 三、总结结束语 💂 个人主页:风间琉璃🤟 版权: 本文由【风间琉璃】原创、在CSDN首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注…

ELK 日志分析系统介绍与部署

目录 一、ELK 简介: 1.开源工具介绍: 2.其它组件: 2.1 Filebeat: 2.2 Fluentd: 2.3 缓存/消息队列(redis、kafka、RabbitMQ等): 3. filebeat 结合 logstash 带来好处: 二、为什么要…

zookeeper源码学习笔记(一)

一、缘起 1、CP还是AP 作为一个在大数据行业工作了7~8年的老兵,在被问到zookeeper和CAP时,竟然有些恍惚,AP还是CP? 看了一些博文,答案几乎都是CP? zookeeper的实现中,P是一定的&…

【C语言】.c源文件从编译到链接生成可执行程序的过程

本篇文章目录 1. 过程概览2. 编译与链接2.1 预编译/预处理2.2 编译2.3 汇编2.4 链接 3. 执行/运行环境 1. 过程概览 编译到链接是c语言的翻译环境,c语言还有执行环境。 组成一个程序的每个源文件通过编译过程分别转换成目标代码(object code)…

推荐《一拳超人》

《一拳超人》是ONE原作,村田雄介作画,连载于网络漫画杂志《邻座的Young jump》上的漫画。 [1] 原为ONE在个人网站上连载的练笔之作, [2] 后被喜爱该作的另一漫画家村田雄介在征得ONE同意后重新绘制而成。 简体中文电子版由哔哩哔哩漫画发布…

JavaSE学习值之--认识异常

💕"有效知识的前提是承认知识边界,承认我们对边界那边的一切无可奉告。"💕 作者:Mylvzi 文章主要内容:JavaSE学习值之--认识异常 一.什么是异常? 异常就是程序在运行的时候产生的不正常的行为 …

java_Stream API

文章目录 一、Stream API vs 集合二、Stream 使用的执行流程2.1、创建Stream2.1、中间操作2.1.1. filter2.1.2. limit2.1.3. skip2.1.4. distinct2.1.5. map2.1.6. sorted 一、Stream API vs 集合 Stream API 关注的是多个数据的计算(排序、查找、过滤、映射、遍历…

网络工程师知识点4

51、OSPF的LSA类型 52虚链路:作用 解决区域划分不合理的问题 通过建立虚拟链路来实现一般区域与骨干区域的理论化直连 54、NSSA区域的特点 1、可以学习本区域连接的外部路由 2、不学习其他区域转发进来的外部路由 3、与外部区域通信使用ABR自动产生的默认路…

python:爬取网络小说,看这一篇就够了

说明: 本教程仅供于学习研究使用,请勿用于其他用途。 软件安装: 官网下载visual studio Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器 (microsoft.com) 点进网页后下拉找到个人免费版本。点击下载即可。 1:找到…

第六章:TF-A学习

TF-A学习 TF-A初探如何获取系统源码移植过程中遇到的问题和解决方案编译报错:arm-none-linux-gnueabi-gcc: not foundTF-A 源码打补丁 遇到assume -R?[n] TF-A初探 为了保证安全 ARM 推出了 Arm Trusted Firmware 的可信固件,简称 TF-A。它…

windows环境cmake的nmake failed

windows环境cmake异常 问题如下: > cmake ..CMake Error at CMakeLists.txt:4 (PROJECT): Running nmake -?failed with:系统找不到指定的文件。CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage CMake Error: CMAKE_CXX_COMPILER not set, after…

中断机制-interrupt和isInterrupted源码分析、中断协商案例

当前线程的中断标识为true,是不是线程就立刻停止? 答案是不立刻停止,具体来说,当对一个线程,调用interrupt时: 如果线程处于正常活动状态,那么会将该线程的中断标志设置为true,仅此…

【C++】:关键字 命名空间 输入输出 缺省参数 函数重载 引用

【本节目标】 C关键字命名空间C输入&输出缺省参数函数重载引用 C是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等 熟悉C语言之后,对C学习有一定的帮助,本章节主要目标&#xff…

关于面试以及小白入职后的一些建议

面试的本质 面试的过程是一个互相选择的过程;面试官的诉求是,了解应聘者的个人基本信息、工作态度、专业能力及其他综合能力是否与公司招聘岗位匹配;面试者的诉求是,拿下招聘岗位offer,获得工作报酬; 面试…

【go学习笔记】Go errors 最佳实践

文章目录 一、Error Type1. Sentinel Error(预定义Error字符串错误值)1.1 缺点 2. Error types(错误类型)2.1 缺点 3. Opaque errors(不透明错误)3.1 Assert errors for behaviour, not type 二、Handling …

详解RocketMQ消息存储原理

本文基于RocketMQ 4.6.0进行源码分析 一. 存储概要设计 RocketMQ存储的文件主要包括CommitLog文件、ConsumeQueue文件、Index文件。RocketMQ将所有topic的消息存储在同一个文件中,确保消息发送时按顺序写文件,尽最大的能力确保消息发送的高性能与高吞吐…

SpringBoot实战(二十五)集成 Shiro

目录 一、Shiro 简介1.1 Shiro 定义1.2 Shiro 核心组件1.3 Shiro 认证过程 二、SpringBoot集成2.1 集成思路2.2 Maven依赖2.3 自定义 Realm2.4 Shiro 配置类2.5 静态资源映射2.6 AuthController2.7 User 实体2.8 用户接口类2.9 用户接口实现类2.10 OrderController(…

手把手教你使用Python从零开始搭建感知器

大家好,今天本文将展示如何从零开始实现神经网络的最基本要素(感知器),以及人工智能的基本模块背后的数学原理。 虽然人工智能和机器学习等术语已经成为流行词汇,每天都会听到或谈论这些概念,但它们背后的…