论文阅读:DynamicDet: A Unified Dynamic Architecture for Object Detection

论文地址:[2304.05552] DynamicDet: A Unified Dynamic Architecture for Object Detection

代码地址:GitHub - VDIGPKU/DynamicDet: [CVPR 2023] DynamicDet: A Unified Dynamic Architecture for Object Detection


概要

本文提出了一种名为 DynamicDet 的统一动态架构,用于物体检测任务。DynamicDet 通过自适应推理、动态推理策略和变速推理策略来优化物体检测器,旨在实现精度与速度的最佳平衡。通过设计一个动态的检测器架构和自适应路由器,DynamicDet 可在单一检测器中实现精度与速度的广泛权衡,提升了推理速度和准确度。大量的实验结果表明,DynamicDet 在 COCO 数据集上取得了新的精度与速度平衡,相比于 YOLOv7 系列模型,推理速度显著提高。

创新点

  • 目标检测器动态推理架构:

    • 本文的核心创新之一是提出了自适应路由器(Adaptive Router),该路由器可以根据待检测图像的复杂度,自动选择最适合的早退(early exiting)策略。简单的图像可以通过快速路径进行推理,而复杂的图像则通过更深的网络路径进行处理,从而减少不必要的计算,提高推理效率。
  • 无超参数训练策略:

    • 文章提出的动态架构没有依赖传统的超参数调整。这意味着架构可以通过自动化策略优化,不需要手动调整训练过程中的多个超参数。这一点使得训练过程更加简化,同时也能提高模型在不同任务上的适应性和通用性。
  • 可变时延推理策略:

    • 动态目标检测器不仅在推理过程中能够根据图像复杂度自适应调整计算路径,还采用了可变时延推理策略(Variable-speed Inference Strategy)。这一策略允许推理的速度根据不同情况灵活调整,从而在速度和精度之间实现更好的权衡。

Motivation

目标检测是计算机视觉中的核心任务,但现有的检测方法需要在精度和速度之间做出妥协。现有方法往往需要设计多个模型来适应不同的任务需求,导致训练资源的浪费和推理效率的低下。为了解决这一问题,本文提出了一种动态推理框架,DynamicDet,可以通过一个动态检测器在不同任务间灵活调节,从而实现精度和速度的最佳平衡。

人类可以快速识别出左侧“简单”图像上的所有目标,但需要更多的时间识别出右侧“困难”图像上的目标。人类的大脑在处理不同图像时,识别速度会因图像的复杂程度而有所不同。对于简单的图像,我们可以很快地识别出其中的所有目标,而对于复杂的图像,识别目标的过程则需要更多的时间。这种差异通常与图像的“难易程度”相关,例如图像中的细节、物体数量、背景复杂性等因素。

背后的原理:

  • 视觉处理的复杂性:人类视觉系统会根据图像的复杂性来调整处理方式。简单的图像(例如单一物体、清晰的边界等)通常容易被大脑快速识别,而复杂的图像(例如物体重叠、模糊或具有较高噪声的图像)则需要更多的时间和处理步骤。
  • 分辨率与细节:复杂图像中的细节更多,可能需要分多个阶段来处理,如先识别大致结构,再逐步细化目标位置和边界。
  • 认知负担:当图像复杂时,大脑需要在更多的视觉信息中提取重要的特征,增加了认知负担,进而导致处理速度变慢。

系统框架

DynamicDet 由三个主要组件组成:

  1. 两个级联的检测器:分别处理简单和困难的图像。每个检测器根据图像的难度执行不同的推理任务。
  2. 自适应路由器:通过分析多尺度特征,评估图像的难度分数,并决定使用哪个检测器。路由器根据图像的复杂度,自动选择适当的检测器进行推理。
  3. 变速推理策略:动态调整推理过程的速度,通过设置阈值决定是否使用高效的检测器或更精确但计算量大的检测器。

DynamicDet 的架构示意图如上:首先,第一个主干网络(backbone)从输入图像中提取多尺度特征。然后,这些多尺度特征将输入到路由器(router)中,路由器的作用是预测图像的难度并决定推理路径。值得注意的是,“简单” 图像将仅由一个主干网络处理,而 “困难” 图像则将由两个主干网络处理。

理解:

  1. 多尺度特征提取:首先,图像通过一个主干网络提取多个尺度(不同分辨率或细节层次)的特征。这有助于捕捉图像中不同大小的物体和细节信息。

  2. 路由器的作用:提取出的多尺度特征被传递到一个路由器(router)。路由器的任务是评估当前图像的“难度”,并根据该评估来决定接下来的推理路径:

    • 简单图像:如果图像被认为是简单的,路由器决定只使用一个主干网络来处理图像。这意味着,计算量较小,处理速度较快。
    • 困难图像:如果图像被认为是困难的,路由器会将图像的处理分配给两个主干网络。这意味着,计算量增大,推理过程变得更加精细,以确保更高的准确性。
  • 动态推理路径选择:该架构通过判断图像的难度,智能地选择不同的计算路径,从而在保证精度的同时提高计算效率。
  • 灵活的推理策略:对于简单图像,使用较少的计算资源,而对于复杂图像,使用更多的计算资源进行更精细的处理。这种策略能够有效减少不必要的计算开销,并加速推理过程。

技术细节

  • 多尺度特征:DynamicDet 在推理过程中利用图像的多尺度特征,浅层特征适合检测小物体,深层特征适合检测大物体。通过这些信息,自适应路由器能够更准确地评估图像的复杂性。
  • 自适应路由器:路由器首先对多尺度特征进行池化,将其压缩为一个维度较小的向量,经过两层全连接层,生成一个难度分数。该分数用于指导路由器决定图像的处理策略。
  • 优化策略:为了有效训练动态架构,DynamicDet 引入了一种无超参数优化策略,避免了手动调整参数的繁琐。通过优化检测器之间的损失差异,确保“简单”图像通过快速检测器,“困难”图像通过精确检测器处理。

  • 变速推理:通过设置阈值,路由器能够根据难度分数调整推理速度,以优化检测器的精度和速度之间的权衡。

小结

DynamicDet通过提出一个通用的动态架构,并结合自适应路由器、基于损失的优化策略以及变速推理策略,成功地解决了目标检测任务中精度与速度之间的矛盾。实验结果证明了该方法在多个基准数据集上的优越性能,特别是在推理速度和精度的平衡上达到了新的最先进水平。

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

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

相关文章

Flutter 正在切换成 Monorepo 和支持 workspaces

其实关于 Monorepo 和 workspaces 相关内容在之前《Dart 3.5 发布,全新 Dart Roadmap Update》 和 《Flutter 之 ftcon24usa 大会,创始人分享 Flutter 十年发展史》 就有简单提到过,而目前来说刚好看到 flaux 这个新进展,所以就再…

expand,None索引,permute【pytorch】

torch.expand 输入必须是一个向量或等价形式,扩展的最后一个维度与输入大小一致 当输入形状为(1,1,1,1,1,……,3)_4时。 expand的最后一位输入向量的元素个数(长度)(3&…

GEE | 对Landsat 8 影像进行缨帽变换

基于Landsat 8 影像的缨帽变换 var roi ee.FeatureCollection(users/yongweicao11/Dongguan2022); // Landsat 8 的缨帽变换系数矩阵var Landsat8TC ee.Array([[0.3029, 0.2786 , 0.4733, 0.5599, 0.5082, 0.1872],[-0.2941, -0.2435, -0.5424, 0.7276, 0.0713, -0.1608],[0.…

Obsidian的Vim插件设置配置全流程 -- 脱离鼠标拥抱Vim神教

Obsidian的Vim插件设置配置全流程 -- 脱离鼠标拥抱Vim神教 参考文章引言1. vim 及 vimrc 介绍2. 开启 Obsidian 内置的 Vim3. vimrc 插件的获取和安装4. vimrc 插件的设置5. vimrc 配置文件的设置附件 参考文章 vim 常见操作 Obsidian插件安装教程 引言 vim 很好用&#xff…

6.《双指针篇》---⑥和为S的两个数字(中等但简单)(牛客)

题目传送门 方法一:暴力解法。双循环 方法二:双指针(推荐) 1.定义一个顺序表,定义左右双指针 2.while循环。判断array[left] array[right] 的值。 3.若等于则将这两个值加入数组。并break 4.若大于则right-- 5.若小于…

LeetCode994. 腐烂的橘子(2024秋季每日一题 54)

在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。 每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返回 直到单元格中没有…

【51蛋骗鸡一个独立按键控制流水灯开关】2022-1-18

缘由一个独立按键控制流水灯开关-编程语言-CSDN问答 #include<reg52.h>//头文件 sbit k1P3^7;// void main() //主函数 {unsigned char sj0, ls0;unsigned int ys0;P00;/*P0255;*/while(1){if(!k1&&!sj){if(!ls){ls1;/*P00;*/}else ls0;while(!k1);}if(…

shodan(五)连接Mongodb数据库Jenkinsorg、net、查看waf命令

声明&#xff1a;学习素材来自b站up【泷羽Sec】&#xff0c;侵删&#xff0c;若阅读过程中有相关方面的不足&#xff0c;还请指正&#xff0c;本文只做相关技术分享,切莫从事违法等相关行为&#xff0c;本人一律不承担一切后果 引言&#xff1a; 1.Shodan 是一个专门用于搜索连…

lvgl白屏问题(LCD长时间白屏)和优化lvgl

开机白屏时间过长 -- 这里我们不考虑是lvgl占的内存太大的问题&#xff0c;这里考虑的是为什么lcd屏幕启动后会有长时间的白屏。 首先我们要了解lvgl的相关操作&#xff0c;主要集中在一个函数中。只有程序执行到了这个函数&#xff0c;lvgl的屏幕才会显现出来 总结来说就是l…

公网ip和弹性公网ip有什么区别?哪个更好

公网ip和弹性公网ip有什么区别&#xff1f;公网IP和弹性公网IP都是用于互联网通信的IP地址&#xff0c;但它们在灵活性、成本和管理方式上有所不同。公网IP是直接分配给设备的静态IP地址&#xff0c;适用于需要固定外部访问的场景&#xff0c;但可能面临安全风险和设置复杂性。…

DevOps-课堂笔记

各种 aaS 类比于计算机网络的 OSI 参考模型&#xff0c;一个软件应用项目需要不同的支撑层&#xff0c;例如从下至上大概需要&#xff1a; 硬件层面的服务器针对硬件做弹性分配的虚拟化机制&#xff0c;例如虚拟机在虚拟化环境内运行的 OS支撑软件应用的中间件&#xff0c;例…

游戏想实习但定位不清的问题

国内的游戏大厂包括腾讯、网易、盛趣游戏、西山居、米哈游、莉莉丝、完美世界、游族、心动、叠纸、三七、TapTap、Tap4fun、字节跳动、哔哩哔哩、funplus、巨人、IGG、沐瞳等。而国外的游戏大厂则有育碧、EA、拳头、supercell、暴雪、R星、卡普空、任天堂、波兰蠢驴等。 一般来…

Dubbo使用Nacos作为注册中心

使用 Nacos 作为注册中心实现自动服务发现 本示例演示 Nacos 作为注册中心实现自动服务发现&#xff0c;示例基于 Spring Boot 应用展开&#xff0c;可在此查看 完整示例代码 1 基本配置 1.1 增加依赖 增加 dubbo、nacos-client 依赖&#xff1a; <dependencies><…

css基础

文章目录 基础 基础 配置网页的cion图标 在网站根目录下放置 favicon.ico 文件&#xff0c;浏览器在加载网页的时候会自动加载的。这个图片只能是 ico 格式&#xff0c;并且只能叫这个名字 如: css项目的根目录下 刷新网站没有生效&#xff0c;需要强制刷新&#xff0c;shif…

Lucene的Directory的详细使用与性能测试(6)

文章目录 第6章 Directory6.1 Directory介绍6.1.1 FSDirectory1&#xff09;SimpleFSDirectory&#xff1a;2&#xff09;NIOFSDirectory&#xff1a;3&#xff09;MMapDirectory&#xff1a;4&#xff09;FSDirectory子类对比 6.2.2 RAMDirectory 6.2 Directory性能测试环境搭…

HTML+javaScript+CSS

文章目录 HTMLjavaScriptCSS属性区块表单层叠样式表选择器常用属性盒子模型相关属性浮动float定位&#xff08;position&#xff09; JS操作节点事件点击事件onclick()聚焦事件、失焦事件鼠标移入移出事件 定时任务延迟定时任务重复定时任务 判断哪个单选框被选中设置按钮失效冒…

Linux系统每日定时备份mysql数据

一、创建存储脚本的文件夹 创建文件夹&#xff0c;我的脚本放在/root/dbback/mysql mkdir ... cd /root/dbback/mysql 二、编写脚本 vi backup_mysql.sh 复制脚本内容 DB_USER"填写用户名" DB_PASSWORD"填写密码" DB_NAME"数据库名称" # …

【计算机网络】零碎知识点(易忘 / 易错)总结回顾

一、计算机网络的发展背景 1、网络的定义 网络是指将多个计算机或设备通过通信线路、传输协议和网络设备连接起来&#xff0c;形成一个相互通信和共享资源的系统。 2、局域网 LAN 相对于广域网 WAN 而言&#xff0c;局域网 LAN 主要是指在相对较小的范围内的计算机互联网络 …

数据同步的技术支持有哪些?

数据同步是指将不同系统、设备或应用程序中的数据进行实时或定期的更新、复制和传输的过程。通过数据同步&#xff0c;可以确保数据的一致性和可用性&#xff0c;避免数据的丢失或错误。常见的数据同步技术包括推式同步、拉式同步、ETL工具同步等。 一、推式数据同步 定义&…

Kaggle入门指南(Kaggle竞赛)

https://www.kaggle.com/ 文章目录 Kaggle 入门指南1. Kaggle 的功能概述1.1 竞赛1.2 数据集1.3 学习与教程1.4 社区 2. 注册与设置2.1 创建账户2.2 完善个人资料 3. 探索数据集3.1 查找数据集3.2 下载数据集示例代码&#xff1a;加载数据集 3.3 数据预处理示例代码&#xff1a…