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

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

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

相关文章

在 VSCode 中使用 PlantUML

最近,因为工作需要绘制一些逻辑图,我自己现在使用的是 PlantUML 或者 mermaid,相比之下前者更加强大。不过它的环境也麻烦一些,mermaid 在一些软件上已经内置了。但是 PlantUML 一般需要自己本地安装或者使用远程服务器&#xff0…

Unity中Shader不同灯光类型的支持与区分

文章目录 前言一、在开始之前做一些准备1、在上一篇文章的场景基础上,增加一个Unity默认的球体作为对照组2、创建一个点光源,用来看点光源的影响 对 Unity默认的Shader效果 和 我们实现的Shader效果 之间的不同 二、点光源的适配把上一篇文章中 ForwardB…

R语言的计量经济学实践技术应用

计量经济学通常使用较小样本,但这种区别日渐模糊,机器学习在经济学领域、特别是经济学与其它学科的交叉领域表现日益突出,R语言是用于统计建模的主流计算机语言,在本次培训中,我们将从实际应用出发,重点从数…

【arm实验2】按键中断事件控制实验

设置按键中断,按键1按下,LED亮,再次按下,灭 按键2按下,蜂鸣器叫,再次按下,停 按键3按下,风扇转,再次按下,停 主函数: linuxlinux:~/study/08-c$…

【基础篇】四、本地部署Flink

文章目录 1、本地独立部署会话模式的Flink2、本地独立部署会话模式的Flink集群3、向Flink集群提交作业4、Standalone方式部署单作业模式5、Standalone方式部署应用模式的Flink Flink的常见三种部署方式: 独立部署(Standalone部署)基于K8S部署…

使用Tortoisegit界面拉起master主分支以副分支以及命令行操作

文章目录 1、Gui操作界面2、命令行操作3、合并分支到master分支上面 1、Gui操作界面 "小乌龟"通常指的是Git的图形用户界面(GUI)工具,其中比较常见的是TortoiseGit。下面是使用TortoiseGit来拉取(checkout)一…

数据结构(一)—— 数据结构简介

文章目录 一、基本概念和术语?1.1、数据1.2、数据元素1.3、数据项(属性、字段)1.4、数据对象1.5、数据结构 二、逻辑结构和物理结构(存储结构)2.1、逻辑结构1、定义2、分类(线性结构和非线性结构&#xff0…

Netty 入门 — 亘古不变的Hello World

这篇文章我们正式开始学习 Netty,在入门之前我们还是需要了解什么是 Netty。 什么是 Netty 为什么很多人都推崇 Java boy 去研究 Netty?Netty 这么高大上,它到底是何方神圣? 用官方的话说:Netty 是一款异步的、基于事…

vue绑定style和class 对象写法

适用于:要绑定多个样式,个数确定,名字也确定,但不确定用不用。 绑定 class 样式【对象写法】: .box{width: 100px;height: 100px; } .aqua{background-color: aqua; } .border{border: 20px solid red; } .radius{bor…

【动态库】Ubuntu 添加动态库的搜索路径

在运行程序时,经常遇到下面这种动态库加载失败的情况,这时往往是系统在动态库的搜索路径下没有找到对应的库文件导致的。 目录 一、使用 LD_LIBRARY_PATH 二、修改 /etc/ld.so.conf 一、使用 LD_LIBRARY_PATH 环境变量 LD_LIBRARY_PATH是动态库的搜索…

Jenkins集成newman

一、Docker环境准备 二、Jenkins环境准备 三、登录Jenkins 安装NodeJs插件 四、Jenkins全局工具配置Nodejs 五、创建Jenkins自由风格项目 构建步骤1:选择Execute NodeJS script构建步骤2:选择执行shell脚本 六、将postman相关的脚本、环境变量数据、全局…

Java反射调用jar包

反射作为托管语言的特性,很多框架都依赖反射来实现容器和面向接口编程,对架构程序很重要,首先试验Java的反射部分。 首先创建一个ZLZJar的工程,让他打包成jar包,代码如下 public class Test {//加两个整数public int…

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

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

[0xGameCTF 2023] web题解

文章目录 [Week 1]signinbaby_phphello_httprepo_leakping [Week 2]ez_sqli方法一&#xff08;十六进制绕过&#xff09;方法二&#xff08;字符串拼接&#xff09; ez_upload [Week 1] signin 打开题目&#xff0c;查看下js代码 在main.js里找到flag baby_php <?php /…

云安全——云计算基础

0x00 前言 学习云安全&#xff0c;那么必然要对云计算相关的内容进行学习和了解&#xff0c;所以云安全会分为两个部分来进行&#xff0c;首先是云计算先关的内容。 0x01 云计算 广泛传播 云计算最早大范围传播是2006年&#xff0c;8月&#xff0c;在圣何塞【1】举办的SES&a…

【Vue面试题二十八】、vue要做权限管理该怎么做?如果控制到按钮级别的权限怎么做?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;vue要做权限管理该怎么做…

【Java 进阶篇】JavaScript电灯开关案例:从原理到实现

JavaScript是一门强大的编程语言&#xff0c;它可以用来创建各种交互式网页应用。在这篇博客中&#xff0c;我们将通过一个简单的电灯开关案例来深入了解JavaScript的基础概念&#xff0c;包括HTML、CSS和JavaScript的结合使用。我们将从头开始构建这个案例&#xff0c;逐步引入…

PYTHON进阶-面向对象编程

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…

windows计划任务的配置文件

界面操作 创建计划 依次设置 命令行操作 SCHTASKS 命令简介 SCHTASKS 命令是由微软公司开发并内置于 Windows 系统中的一个命令行工具。该命令可用于设置、修改、查询和删除计划任务&#xff0c;或启动计划任务中所定义的程序或脚本。 SCHTASKS 命令的基本语法 SCHTASKS 命…

多输入多输出 | MATLAB实现CNN-BiLSTM-Attention卷积神经网络-双向长短期记忆网络结合SE注意力机制的多输入多输出预测

MATLAB实现CNN-BiLSTM-Attention卷积神经网络-双向长短期记忆网络结合SE注意力机制的多输入多输出预测 目录 MATLAB实现CNN-BiLSTM-Attention卷积神经网络-双向长短期记忆网络结合SE注意力机制的多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 C…