Less is More: Focus Attention for Efficient DETR

news2024/11/17 13:28:20

在这里插入图片描述

摘要

类似detr的模型显著提高了探测器的性能,甚至优于经典的卷积模型。然而,在传统的编码器结构中,所有的标记都带来了冗余的计算负担。最近的稀疏化策略利用了信息标记的一个子集,通过稀疏编码器来降低注意力的复杂性,从而保持性能。但这些方法往往依赖于不可靠的模型统计数据。此外,简单地减少标记填充在很大程度上阻碍了检测性能,限制了这些稀疏模型的应用。我们提出了Focus-DETR,它将注意力集中在信息更丰富的标记上,以便更好地在计算效率和模型准确性之间进行权衡。具体地说,我们重构了具有双重注意的编码器,其中包括一个标记评分机制,该机制同时考虑了多尺度特征映射中对象的定位和类别语义信息。我们有效地放弃了背景查询,并基于分数增强了细粒度对象查询的语义交互。与在相同设置下最先进的稀疏detr类探测器相比,我们的Focus-DETR在COCO上实现50.4AP(+2.2)的同时,获得了相当的复杂性。

介绍

目标检测是计算机视觉中的一项基本任务,其目的是预测图像中目标的边界框和类别,如图1 (a)所示,在现实应用中具有重要意义。

在这里插入图片描述

Carion等人提出的DETR使用可学习查询从变压器编码器的输出中探测图像特征,二部图匹配来执行基于集的盒预测。类detr模型取得了显著的进展,并逐渐与基于卷积神经网络的检测器缩小了差距。DETR中的全局关注提高了检测性能,但由于没有明确识别所有标记的冗余计算,造成了计算负担和效率低下。为了解决这个问题,可变形的DETR 通过密钥稀疏化将二次复杂度降低为线性复杂度,由于利用多尺度特性的优势,它已经发展成为一个主流范式。在此,我们进一步分析了这些模型中组件的计算负担和延迟(图2)。如图2所示,我们观察到编码器的计算成本为可变形DETR中解码器的8.8×,在DINO 中为7.0×。此外,在可变形的DETR和DINO中,编码器的延迟约为解码器的4∼8倍,这强调了提高编码器模块的效率的必要性。与此同时,以往的工作已经普遍讨论了在变压器编码器中压缩令牌的可行性。例如,PnP-DETR 将整个特征抽象为精细的前景对象特征向量和少量粗糙的背景上下文特征向量。IMFA [34]基于解码器层的预测来搜索关键点,对多尺度特征进行采样,并以单尺度特征聚合采样特征。稀疏的DETR [26]提出通过查询稀疏性来保持令牌的二维空间结构,这使其适用于可变形的DETR [37],利用多尺度特征。通过利用解码器中的交叉注意映射作为令牌重要性得分,稀疏DETR仅使用编码器中30%的查询就实现了与可变形DETR相媲美的性能。

在这里插入图片描述

尽管取得了种种进展,但目前的模型仍然受到次最优标记选择策略的挑战。如图1 (b)所示,所选的标记包含大量的噪声,一些必要的对象标记明显被忽略了。特别是,稀疏DETR对前景预测器的监督很大程度上依赖于解码器的交叉注意图(DAM),它是基于解码器完全从编码器先验的查询计算出来的。初步实验表明,当稀疏DETR嵌入模型时,由于DAM和保留的前景令牌之间的弱相关性,严重的性能衰减。然而,最先进的DETR类模型,如DINO ,已经证明了所选的特征是初步的内容特征,没有进一步的细化,可能会对解码器产生模糊和误导。在这种情况下,DAM的监督效率低下。此外,在这个单调稀疏编码器中,保留的前景令牌的数量仍然众多,并且由于计算成本的限制,在没有更细粒度选择的情况下执行查询交互是不可行的。

为了解决这些问题,我们提出了Focus-DETR方法,通过叠加定位和类别语义信息,将注意力分配到信息更多的标记上。首先,我们设计了一个评分机制来确定标记的语义级别。前景令牌选择器(FTS)旨在放弃基于跨多尺度特征的自上而下的分数调制的背景令牌。我们根据地面真相从主干上分配{1,0}标签,并预测前景概率。来自多尺度特征图的高级标记的得分可以调节低层次标记的得分,以提高选择的有效性。为了将语义信息引入到标记选择过程中,我们设计了一个多类别得分预测器。前景和类别得分将共同决定具有较强类别语义的更细粒度的标记,如图1 (d).所示。基于不同语义层次的可靠分数和选择,我们将前景标记和更细粒度的对象标记提供给具有双重关注的编码器。因此,弥补了远距离信息混合中可变形注意的局限性,并通过细粒度的标记更新增强了前景查询的语义信息。综上所述,Focus-DETR基于获取更准确的前景信息,通过逐步引入语义信息,关注细粒度标记,双重重构了编码器的计算过程,并以最小的计算代价进一步增强细粒度标记。大量的实验验证了FocusDETR的性能。此外,Focus-DETR对于使用不同查询构造策略的类似detr的模型是通用的。例如,我们的方法在相同的设置下,与具有相似的计算成本相比,可以在COCO上实现50.4AP(+2.2)。

相关工作

Transformer-based detectors

Lightweight Vision Transformers

方法

我们首先描述了FocusDETR的总体架构。然后,我们详细阐述了我们的核心贡献: (a)构建了一个评分机制,它同时考虑了来自多尺度特征的本地化和类别语义信息。因此,我们获得了对前景和细粒度对象标记的两级显式识别;(b)基于评分机制,我们将不同语义级别的标记引入双重注意编码器,提高了查询的语义信息,平衡了模型性能和计算成本。并对其计算复杂度进行了详细的分析。

Model Architecture

在这里插入图片描述

如图3所示,Focus-DETR由主干、双注意编码器和解码器组成。骨干网可配备ResNet [10]或SwinTrans[20]。为了利用主干的多尺度特征 { f l } l = 1 L ( L = 4 ) \{f_l\}^L_{l=1}(L = 4) {fl}l=1LL=4,其中 f l ∈ R C × H l × W l f_l∈R^{C×H_l×W_l} flRC×Hl×Wl,我们从三个不同尺度(即1/8、1/16、16、1/16、32)和下样本 f 3 f_3 f3得到 f 4 f_4 f4(即1/64)。在输入双注意编码器之前,多尺度特征映射 { f l } l = 1 L \{f_l\}^L_{ l=1} {fl}l=1L首先通过前景令牌选择器(第3.2节),使用一系列自上向下分数调制来指示令牌是否属于前景。然后,每一层所选择的前景令牌将通过多类别得分预测器,利用前景和语义信息,选择目标得分较高的令牌(第3.2节)。这些对象令牌将进一步相互交互,并通过所提出的双重关注来补充前景查询的语义限制(第3.3节)。

Scoring mechanism

Foreground Token Selector

稀疏DETR[26]已经证明,只涉及编码器的标记子集才能实现类似的性能。然而,如图4所示,稀疏DETR [26]提供的令牌选择有很多缺点。特别是,许多保存下来的令牌与前景对象并不对齐。

在这里插入图片描述

我们认为稀疏DETR的挑战在于它对令牌选择的监督依赖于DAM。DAM和保留的前景令牌之间的相关性将由于可学习查询而减少,这在训练过程中带来错误。我们没有预测伪地面真实[26],而是利用地面真实框和标签来监督受[17]启发的前景选择。为了正确地为每个标记提供一个二进制标签,决定它是否出现在前景,我们设计了一个标签分配协议,以利用不同尺度的对象的多尺度特性。

特别地,我们首先为不同特征映射的边界框设置一个大小范围,并将相邻区间的重叠增加50%,以增强边界附近的预测。形式上,对于每个具有步幅 s l s_l sl的标记 t l ( i , j ) t^{(i,j)}_l tlij,其中l是尺度水平的指数,(i,j)是特征图中的位置,我们将原始图像中对应的坐标(x,y)表示为
在这里插入图片描述

考虑到相邻的特征图,我们的协议根据以下规则确定标签 l l ( x , y ) l_l^{(x,y)} ll(x,y),即:
在这里插入图片描述

其中 D B b o x ( x 、 y 、 w 、 h ) D_{Bbox} (x、y、w、h) DBbox(xywh表示地面真相框, d l ( i , j ) = m a x ( h / 2 , w / 2 ) ∈ [ r b l , r e l ] d^{(i,j)}_l =max(h/2,w/2)∈[r^ l_ b,r^l_ e ] dlij=maxh/2w/2[rblrel],表示(x、y)与边界框中心之间的最大棋盘格距离, [ r b l , r e l ] [r^ l_ b,r^l_ e ] [rblrel]表示对象的间隔预测l层特性和 r b l < r b l + 1 < r e l < r e l + 1 r^l_b<r^{l+1}_b<r^l_e<r^{l+1}_e rbl<rbl+1<rel<rel+1 r b l + 1 = ( r b l + r e l ) / 2 , l = { 0 , 1 , 2 , 3 } r^{l+1}_b=(r^l_b+r^l_e)/2,l=\{0,1,2,3\} rbl+1=(rbl+rel)/2,l={0,1,2,3} r b 0 = 0 r_b^0=0 rb0=0 r e 3 = ∞ r_e^ 3 =∞ re3=。DETR稀疏方法的另一个缺点是对多尺度特征的利用不足。特别是忽略了不同尺度之间的语义关联和标记选择决策的差异。为了填补这一差距,我们构建了具有自上而下的分数调制的FTS模块。我们首先设计了一个基于多层感知器(MLP)的评分模块来预测每个特征图中的前景得分。考虑到高级特征映射比具有更高分辨率的低级特征包含更丰富的语义,我们利用高级语义的前景分数作为补充信息来调制相邻的低级语义的特征映射。如图5所示,我们的自上而下的分数调制只通过上采样逐层传输前景分数。形式上,给定特征图 f l , l ∈ { 2 , 3 , 4 } f_l,l∈\{2,3,4\} fll{2,3,4}

在这里插入图片描述

S l S_l Sl表示前景得分的特征地图,UP(·)是使用上采样函数双线性插值, M L P F ( ⋅ ) MLP_F(·) MLPF()是一个全球得分预测标记在所有特征地图, { α l } l = 1 L − 1 \{αl\}^{L−1}_{l=1} {αl}l=1L1是一组可学习的调制系数,和L表示多尺度的层特征地图。不同特征图的定位信息以这种方式相互关联。

Multi-category score predictor

在选择具有高前景下降概率的标记后,我们然后寻求一个有效的操作来确定更细粒度的标记,以最小的计算代价进行查询增强。直观地说,在这种情况下,引入更细粒度的类别信息将是有益的。基于此动机,我们提出了一种新的更细粒度的标记选择机制,并与前景标记选择相结合,以更好地利用标记特征。如图3所示,为了避免对背景令牌的无意义计算,我们采用了一种同时考虑定位信息和类别语义信息的堆叠策略。

具体来说,由预测器 M L P C ( ⋅ ) MLP_C(·) MLPC计算出的前景得分和类别得分的乘积将被用来作为我们确定注意力计算中涉及的细粒度标记的最终标准 p j p_j pj,即:

在这里插入图片描述

其中, s j s_j sj c j c_j cj分别代表 T f j T_f^ j Tfj的前景得分和类别概率。与来自编码器输出的两阶段可变形DETR [37]的查询选择策略不同,我们的多类别概率不包括背景类别(∅)。我们将根据 p j p_j pj来确定用于增强计算的令牌。

Calculation Process of Dual Attention

所提出的可靠的令牌评分机制将使我们能够执行更细粒度和歧视性的计算。在根据评分机制逐步选择前景和细粒度对象标记后,首先通过增强自注意,利用细粒度对象标记的交互信息和相应的位置编码。然后,增强的对象令牌将被分散到原来的前景令牌中。通过这种方式,Focus-DETR可以利用具有增强的语义信息的前景查询。此外,由于可靠的细粒度标记评分,与简单的查询稀疏策略相比,编码器中的双重注意有效地提高了性能,而计算成本的增加可以忽略不计。我们利用算法1来说明编码器中的细粒度特征选择和增强过程。

在这里插入图片描述

Complexity Analysis

证明复杂度没有因为模块而上升。

Optimization

与类似于detr的检测器一样,我们的模型以端到端方式进行训练,损失函数定义为:

在这里插入图片描述

Loss for feature scoring mechanism

Focus-DETR通过FTS模块获得前景令牌。Focal损失应用于FTS训练如下:

在这里插入图片描述

其中 p f p_f pf表示前景概率, α f = 0.25 α_f = 0.25 αf=0.25和γ = 2为经验超参数。

实验

在这里插入图片描述

可视化

在这里插入图片描述

消融

作者做的很充分,有需要,看原文比较好。

Limitation and Future Directions

虽然Focus-DETR设计了一种微妙的令牌评分机制和细粒度的特征增强方法,但更分层的语义分级策略,如对象边界或中心,仍然值得探索。此外,我们未来的工作将是构建一个统一的特征语义评分机制和细粒度的特征增强算法。

总结

本文提出了Focus-DETR来关注信息更丰富的标记,以更好地在计算效率和模型精度之间进行权衡。Focus-DETR的核心组件是一种用于特征语义的多层次识别策略,它利用了一种同时考虑位置和语义信息的评分机制。Focus-DETR通过精确选择前景和细粒度标记进行增强,实现了计算效率和模型精度之间更好的权衡。实验结果表明,Focus-DETR已成为类detr模型标记剪枝的SOTA方法。我们的工作对基于变压器的探测器的设计具有指导意义。

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

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

相关文章

观测,让运维更简单!龙蜥社区系统运维 MeetUp 等你报名

为了让广大社区用户和开发者近距离感受 Linux 和 eBPF 技术的魅力&#xff0c;龙蜥社区系统运维于 08 月 12 日在杭州举行 MeetUp 。过去&#xff0c;系统运维 SIG 和大家一起交流了 eBPF 在安全和网络的最佳应用和实践&#xff0c;以及 Linux 在手机和服务器上的运维经验等技术…

深度学习训练营之CGAN生成手势图像

深度学习训练营之CGAN生成手势 原文链接CGAN简单介绍环境介绍前置工作数据导入所需的包加载数据创建数据集查看数据集 模型设置初始化模型的权重定义生成器构造判别器 模型训练定义损失函数设置超参数正式开始训练 结果可视化 原文链接 &#x1f368; 本文为&#x1f517;365天…

leetcode 763. 划分字母区间

2023.8.3 本题的关键是要确保同一字母需要在同一片段中&#xff0c;而这就需要关注到每个字母最后一次出现的位置。 思路&#xff1a;用一个哈希表保存每个字母&#xff08;26个&#xff09;最后一次出现的位置。然后从头遍历&#xff0c;不断更新最右边界&#xff0c;直到当前…

LLVM笔记1

参考&#xff1a;https://www.bilibili.com/video/BV1D84y1y73v/?share_sourcecopy_web&vd_sourcefc187607fc6ec6bbd2c74a3d0d7484cf 文章目录 零、入门名词解释1. Compiler & Interpreter2. AOT静态编译和JIT动态解释的编译方式3. Pass4. Intermediate Representatio…

Eureka增加账号密码认证登录

一、业务背景 注册中心Eureka在微服务开发中经常使用到&#xff0c;用来管理发布的微服务&#xff0c;供前端或者外部调用。但是如果放到生产环境&#xff0c;我们直接通过URL访问的话&#xff0c;这显然是不安全的。 所以需要给注册中心加上登录认证。 通过账号和密码认证进行…

openGauss学习笔记-30 openGauss 高级数据管理-别名

文章目录 openGauss学习笔记-30 openGauss 高级数据管理-别名30.1 语法格式30.1.1 列别名语法30.1.2 表别名语法 30.2 参数说明30.3 示例 openGauss学习笔记-30 openGauss 高级数据管理-别名 SQL可以重命名一张表或者一个字段的名称&#xff0c;这个名称为该表或该字段的别名。…

Spring:JDBCTemplate

JDBCTemplate 概述 概述 JDBC&#xff08;Java DataBase Connectivity&#xff0c;Java 数据库连接&#xff09;&#xff0c; 一 种用于执行 SQL 语句的 Java API&#xff08;Application Programming Interface &#xff0c; 应用程序设计接口 &#xff09;&#xff0c;可以为…

【每日一题】—— C. Mocha and Hiking(Codeforces Round 738 (Div. 2))

&#x1f30f;博客主页&#xff1a;PH_modest的博客主页 &#x1f6a9;当前专栏&#xff1a;每日一题 &#x1f48c;其他专栏&#xff1a; &#x1f534; 每日反刍 &#x1f7e1; C跬步积累 &#x1f7e2; C语言跬步积累 &#x1f308;座右铭&#xff1a;广积粮&#xff0c;缓称…

IO流【笔记】

1. IO概述 1.1 什么是IO 生活中&#xff0c;你肯定经历过这样的场景。当你编辑一个文本文件&#xff0c;忘记了ctrls &#xff0c;可能文件就白白编辑了。当你电脑上插入一个U盘&#xff0c;可以把一个视频&#xff0c;拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢&a…

软件开发过程中前后端联调相关问题

一、接口调用三步曲 1. uniapp接口调用 data中定义 onload中调用 例如&#xff1a;this.getSwiperList()//调用获取轮播图数据的方法 method中定义获取方法 2. 微信小程序接口调用 reques.js中接口封装 如&#xff1a;ScenicspotInfo &#xff08;data&#xff09;> re…

高级web前端开发工程师的岗位职责最新(合集)

高级web前端开发工程师的岗位职责最新1 职责&#xff1a; 1.主导公司前端开发的技术方向&#xff0c;指导其他前端开发人员工作 2.负责产品的Web前端开发及用户交互体验设计; 3.基于HTML、CSS、JavaScript标准进行页面制作&#xff0c;编写界面组件; 4.协同后台开发工程师&…

8.4 day05软件学习

文章目录 微服务的概念微服务的原则微服务的特征&#xff1a;集群介绍 spring aop 在家学习效率真不高&#xff0c;下午好兄弟喊出去玩&#xff0c;一直到晚上才回来&#xff0c;赶紧总结一下早上学习的内容。 继续看java基础进阶的思想&#xff0c;之前学的很多都忘了。 微服…

网工内推 | 实施、售后工程师,厂商认证优先

01 安井食品集团股份有限公司 招聘岗位&#xff1a;网络工程师 职责描述&#xff1a; 1.负责集团组网的网络规划、实施、维护工作&#xff1b; 2.负责公司局域网的网络规划、实施、维护工作&#xff1b; 3.负责公司企业安全系统规划、实施、维护工作&#xff1b; 4、负责公…

百度UEditor编辑器如何关闭抓取远程图片功能

百度UEditor编辑器如何关闭抓取远程图片功能 这个坑娘的功能&#xff0c;开始时居然不知道如何触发&#xff0c;以为有个按钮&#xff0c;点击一下触发&#xff0c;翻阅了文档&#xff0c;没有发现&#xff0c;然后再网络上看到原来是复制粘贴非白名单内的图片到编辑框时触发&a…

LT6711A 是一款HDMI 2.0转DP 1.2/EDP 1.4的芯片,实用于AR或者PC以及PAD

LT6711A 1.概述&#xff1a; Lontium LT6711A是HDMI2.0到DP1.2转换器&#xff0c;内部有c型替代模式开关和PD控制器。对于HDMI输入&#xff0c;LT6711A具有一个HDMI2.0接收器&#xff0c;有1个时钟通道和3个数据通道&#xff0c;每个数据通道最大运行6Gb/s&#xff0c;最大输…

DAY02_Spring第三方资源配置管理Spring容器Spring注解开发Spring整合Mybatis和Junit

目录 一 第三方资源配置管理1 管理DataSource连接池对象问题导入1.1 管理Druid连接池1.2 管理c3p0连接池 2 加载properties属性文件问题导入2.1 基本用法2.2 配置不加载系统属性2.3 加载properties文件写法 二 Spring容器1 Spring核心容器介绍问题导入1.1 创建容器1.2 获取bean…

智能汽车驾驶演进:虚拟ECU种类与优劣分析

现代汽车更安全、更舒适、更智能的代价是车载ECU&#xff08;Electronic Control Unit&#xff09;数量的迅速增长&#xff0c;与之相对应的是ECU上规模软件越来越大、软件开发成本在整车制造成本中的占比越来越高。车企可以从规则与方法两个角度入手来解决上述问题&#xff1a…

ES6新增的语法

ES6实际上是一个泛指&#xff0c;泛指 ES2015 及后续的版本 1&#xff0c;let用于声明变量的关键字 let 声明的变量只在所处于的代码块内有效 if (true) { let a 10 } console.log(a) // a is not defined 2, let 不存在变量提升 console.log(a) // a is not deined let a 1…

元素2D转3D 椭圆形旋转实现

椭圆旋转功能展示 transform-style: preserve-3d;&#xff08;主要css代码&#xff09; gif示例&#xff08;背景图可插入透明以此实现边框线的旋转&#xff09; 导致的无法点击遮挡问题可以参考我的另一个文章 穿透属性-----------------------css穿透属性 实时代码展示

如何与 Boot Barn 建立 EDI 连接?

Boot Barn 专注于提供各种高品质的靴子、鞋类和西部服饰。其经营范围广泛&#xff0c;为广大顾客提供最新潮流和经典款式的选择。 Boot Barn 的使命是成为顾客在西部风格时尚领域的首选购物地点。多年来&#xff0c;Boot Barn 凭借卓越的服务和优质的产品赢得了众多客户的信赖和…