FoLR:Focus on Local Regions for Query-based Object Detection论文学习笔记

论文地址:https://arxiv.org/abs/2310.06470

自从DETR问询式检测器首次亮相以来,基于查询的方法在目标检测中引起了广泛关注。然而,这些方法面临着收敛速度慢和性能亚优等挑战。值得注意的是,在目标检测中,自注意力机制经常因其全局聚焦而妨碍了收敛。为了解决这些问题,作者提出了FoLR,一种仅包含解码器的类似Transformer的架构。作者通过隔离不相关目标之间的连接来增强自注意力机制,使其聚焦于局部区域而不是全局区域。作者还设计了自适应采样方法,从特征图中基于查询的局部区域提取有效特征。此外,作者采用了一种解码器的回溯策略,以保留先前的信息,然后使用特征混合器模块来融合特征和查询。实验结果表明,FoLR在基于查询的检测器中表现出卓越的性能,具有卓越的收敛速度和计算效率。

1. INTRODUCTION

        通用目标检测旨在定位和分类图像中的现有目标,并使用矩形边界框对它们进行标记以显示存在的置信度。这些方法的框架主要可以分为两种类型:一阶段方法,如SSD和YOLO,以及多阶段检测器,如Faster R-CNN。最近,基于Transformer的目标检测器引起了关注,DETR引入了Transformer的编码器-解码器模块到目标检测中。与传统检测器不同,DETR消除了对Anchor Box设计的需求,依赖于一组可学习的向量,称为目标查询,用于检测。然而,DETR在收敛速度慢和性能问题方面面临挑战。具体来说,在COCO 2017数据集上取得与以前检测器相媲美的结果需要DETR训练超过500个Epoch,而Faster R-CNN通常只需要12个Epoch。

        为了应对这一挑战,一些研究已经提出了解决这些问题的方法。然而,这些方法往往引入了大量的额外参数,增加了网络的大小,显著提高了训练成本。因此,在收敛速度和计算复杂性之间取得适当平衡仍然是一个挑战。此外,包含全局信息的注意力机制可以快速建立不相关目标之间的关联,对算法的收敛产生负面影响。这促使作者对全局信息的注意力机制进行了研究和增强。

        在本文中,作者提出了FoLR,这是一种旨在解决上述挑战的新型基于查询的检测器。总之,作者的工作做出了以下贡献:

  • 引入FoLR,这是一种新型的基于查询的目标检测方法,具有简化的解码器架构,可以增强自注意力与局部区域的交互。

  • 设计和实现了Feature Mixer模块和基于DCN的自适应采样方法,以增强特征和查询之间的交互。此外,作者采用“回顾”策略来保留在先前阶段生成的数据。

  • 通过在COCO数据集上的实验结果展示了FoLR的卓越性能,它有效地克服了传统方法在收敛速度缓慢和计算成本高的限制。

2. RELATED WORK

这部分跳过......

3. METHOD

3.1. Overview

在本节中,作者详细介绍了作者的基于查询的检测器FoLR。FoLR是一个完全的解码器架构,包括以下几个关键组件:

  • 带有局部区域的自注意力:该模块增强了查询的描述能力,代表目标的位置和语义信息。同时,它旨在减轻不相关查询之间的负面关系。

  • 自适应采样方法(ASM):它有助于根据查询的位置从多尺度特征图中自适应地采样特征。

  • 特征混合器:该组件促进了在ASM中采样的特征与查询之间的互动,实现了有效的信息融合。

  • 预测Head:这些Head负责完成分类和回归任务。

这些组件的相互作用塑造了FoLR的整体架构,赋予其有效提取特征和检测目标的能力。架构的视觉表示如图3所示。此外,FoLR采用了受Cascade R-CNN启发的多阶段细化策略。查询向量可以在每个后续阶段迭代地进行细化,以增强目标检测的准确性,如图2所示。

解耦分类和定位 在本文提出的方法中,作者利用了查询的概念,它合并了每个目标的语义和位置信息,就像Sparse RCNN等基于Transformer的算法中所看到的那样。先前的研究表明,将查询分解为这两个向量显著提高了模型的识别效率。作者通过将查询分解为两个不同的向量来扩展这种方法:内容向量(content vector)和边界框向量(bounding box vector)

损失 模型的损失,采用DETR方法计算,包括用于预测分类的Focal Loss(L_{cls}),用于预测框坐标的L1损失(L_{L1})和GIoU(L_{giou})。总损失如下:

3.2. Self-Attention with Local Regions

        自注意力是Transformer样式方法中常用的机制,用于增强查询的描述能力。它有助于在序列内建立关系。在目标检测任务中,自注意力增强了每个查询与其他查询之间的连接,增强了内容向量的描述能力。然而,作者的研究发现,这种具有全局焦点的注意力机制甚至建立了不相关查询之间的连接,如图1所示。这阻碍了检测任务,对模型产生了负面影响。

        为了使模型能够识别和屏蔽负面连接,作者鼓励自注意力集中在局部区域。首先,作者使用方程2计算每个查询与其他查询之间的IoF(帧交集 (Intersection of Frame))矩阵。如果矩阵元素的值低于指定的阈值ε,作者将其替换为一个较大的负数。这表示该信息对于自注意力是有害的,应在后续操作中排除。

其中,\beta \in R(N_{q},N_{q})ij索引,N_{q}是查询的数量,σ是一个设置为10^{-7}的小常数,ε是从间隔[0,1]中取的一个常数。

3.3. Extract Multi-Scale Features

为了增强每个查询的有效性,从每个输入图像的Backbone生成的有意义和丰富的特征是至关重要的。在本节中,作者介绍了一种受可变卷积网络启发的自适应采样方法来提取特征。

Adaptive Sampling Method (ASM) 给定第i个边界框,作者使用以下方程来生成第j个对应的采样点:

其中,Q代表内容向量。\Delta x_{ij}\Delta y_{ij}表示第j个采样点相对于第i个边界框的中心点(xc_{i},yc_{i})的偏移,w_{i}h_{i}分别表示第i个边界框的宽度和高度。 

Focus on Local Regions. 

现在作者已经在特征图上获得了采样点,Sparse RCNN和AdaMixer的下一步涉及与查询交互地融合这些采样点。然而,作者认为以这种方式收集的特征是从特征图派生的,而不是从查询派生的。

与DETR的解码器在目标查询上应用位置编码类似,作者的方法旨在改进收集的采样点,以更好地与查询集成。在这里,作者使用线性层生成的一组参数来增强采样点:

在作者的方法中,作者采用双线性插值方法来处理采样点的小数坐标。此外,作者采用了类似于自注意力中使用的多头机制的策略,以增强采样点的多样性。 

具体来说,作者将特征图的维度,表示为d,分成N_{h}个Head,其中每个头分配d/N_{h}个维度。这种划分确保每个头捕捉到特征的不同方面。对于本研究,作者保持d = 256和N_{h}= 4。

实际上,作者在每个特征图级别的每个查询中生成N_{s}个采样点,总共产生了LN个采样点。然而,不同查询生成的采样点或不同特征图中相同查询生成的采样点不应具有相同的重要性。作者为第i个查询分配自适应和可学习的权重,权重方法如下:

在这里,S表示每个查询对应的边界框面积,计算为其宽度和高度的乘积。形状为R(L,N_{h} \times N_{s})W_{i}表示每个查询在特征图的L个级别上的权重。

3.4. Feature Mixer

采样的多尺度特征与内容向量之间的相互作用在目标检测中至关重要。受MLPmixer和AdaMixer的启发,作者引入了Feature Mixer,一个MLP模块,用于增强这种交互作用。按照MLPmixer的方法,作者使用内容查询来训练两个MLP网络,用于混合采样特征的最后两个维度。然后将结果转换成内容查询的形状,并将其添加到内容查询中,如图3所示。

在作者的设计中,作者在每个查询和采样特征之间建立了直接连接,确保每个采样特征与其相应的查询进行交互。这个过程消除了无效的bins,生成了最终的目标特征。为了保持轻量级设计,作者使用两个连续的1×1卷积和GELU激活函数进行交互。这些卷积的参数是从相应的内容向量生成的。

4. EXPERIMENTS

4.3. Main Result

最终的结果如表1所示。值得注意的是,FoLR在平均精度(AP)方面优于密集检测器,使用ResNet-50和ResNet-101Backbone分别获得42.6 AP(与40.3 AP相比)和43.5 AP(与42.0 AP相比)。

此外,FoLR在基于查询的检测器中获得了相对较高的分数,分别使用ResNet-50和ResNet-101Backbone达到46.7 AP和47.7 AP。此外,FoLR在其他指标(包括小目标准确性和计算成本)方面也表现出色。这些结果提供了有力的证据,表明FoLR在复杂性和性能之间有效地取得了平衡。

表2对比了FoLR和COCO 2017测试开发数据集上其他方法的结果。在使用ResNet-50和ResNet-101作为Backbone时,FoLR分别获得了47.2和48.1的AP分数。这些显著的结果进一步证明了FoLR的卓越性能也可以扩展和适应其他数据集。

此外,如图4所示,作者通过与其他基于查询的检测器进行比较,全面分析了FoLR的收敛速度。结果清楚地表明,FoLR在训练的各个阶段都在收敛速度方面优于基于查询的检测器。具体而言,FoLR在使用更短的36个时期的training schedule时,实现了卓越的准确性,达到了46.7 AP(相对于可变形DETR的44.5 AP)。

4.4. Ablation Studies

在这里,作者还进行了消融实验,以评估FoLR中模块的有效性。由于计算约束,作者对这些实验使用了ResNet-50Backbone和1×training schedule。

Design of Attention with Local Regions. 作者进行了额外的实验,验证了FoLR方法中注意力模块的有效性。不同的ε值表示对局部区域的关注程度不同。具体来说,当ε=0时,意味着不应用局部区域策略。同时,作者在不同阶段的解码器中分配了不同的ε值。作者观察到,在最后三个阶段,ε分别为0.01、0.1和0.2时,算法显示出0.5 AP的提高。结果如表3所示。

Design of Adaptive Sampling Method. 作者还比较了着重关注局部区域策略与不使用此策略的结果。表4中的结果表明,着重关注局部区域策略提高了0.7 AP的性能。同时,N_{s}的选择影响了FoLR的收敛速度和所需的计算资源。为了在性能和计算负荷之间取得平衡,作者在[24, 48]范围内以8为步长进行了不同N_{s}值的实验。表5中的结果表明,N_{s}=32可以在性能和计算负载之间取得良好的平衡。

Look-Back Strategy Validation. 图4中的实验结果表明,使用回溯策略相对于没有回溯策略,准确性提高了0.4 AP。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

长连接的原理

Apollo的长连接实现是 Spring的DeferredResult来实现的,先看怎么用 import ...RestController RequestMapping("deferredResult") public class DeferredResultController {private Map<String, Consumer<DeferredResultResponse>> taskMap new HashMa…

express session JWT JSON Web Token

了解 Session 认证的局限性 Session 认证机制需要配合 cookie 才能实现。由于 Cookie 默认不支持跨域访问&#xff0c;所以&#xff0c;当涉及到前端跨域请求后端接口的时候&#xff0c;需要做很多额外的配置&#xff0c;才能实现跨域 Session 认证。 注意&#xff1a; 当前端…

深眸科技以需求定制AI视觉解决方案,全面赋能产品外观缺陷检测

产品外观是影响产品质量最重要的因素之一&#xff0c;其平整度、有无瑕疵等不仅影响到产品美观&#xff0c;甚至能够直接影响产品本身的使用和后续加工&#xff0c;给企业带来重大经济损失。 随着人工智能技术的快速发展&#xff0c;机器视觉与AI技术的结合应用加速渗透进工业…

C# 使用base64编码用于加密和解密

base64编码原理&#xff1a;Base64编码是一种将二进制数据转换为ASCII字符的编码方式。它使用64个字符来表示二进制数据&#xff0c;包括大小写字母、数字和两个符号。将3个字节的二进制数据转换为4个字符的文本数据&#xff0c;如果不足3个字节&#xff0c;则在末尾补0&#x…

【发展史】鼠标的发展史

最早可以追溯到1952年&#xff0c;皇家加拿大海军将5针保龄球放在能够侦测球面转动的硬件上&#xff0c;这个硬件再将信息转化成光标在屏幕上移动&#xff0c;用作军事计算机输入。这是我们能够追溯到的最早的依靠手部运动进行光标移动的输入设备。但当时这个东西不叫鼠标&…

MySQL进阶(日志)——MySQL的日志 bin log (归档日志) 事务日志redo log(重做日志) undo log(回滚日志)

前言 MySQL最为最流行的开源数据库&#xff0c;其重要性不言而喻&#xff0c;也是大多数程序员接触的第一款数据库&#xff0c;深入认识和理解MySQL也比较重要。 本篇博客阐述MySQL的日志&#xff0c;介绍重要的bin log (归档日志) 、 事务日志redo log(重做日志) 、 undo lo…

Rookit系列二【文件隐藏】【支持Win7 x32/x64 ~ Win10 x32/x64平台的NTFS文件系统】

文章目录 前言探究代码演示 前言 文件隐藏的方法有很多&#xff0c;这里分享的是一种通过内核文件重定向的方式动态规避检测的方法。举例&#xff1a;假设有一个安全软件A&#xff0c;A要扫描文件B&#xff0c;B是我们想要隐藏的文件。那么我们在内核中将A打开文件B的操作重定…

MFC 注册表

文章目录 打开注册表对注册表的键的操作创建子键删除子键遍历子键 对注册表值的操作读取值设置值 打开注册表 void CREGDemoDlg::OnBnClickedBtnOpen() {//打开注册表HKEY hKey;if (ERROR_SUCCESS ! RegOpenKeyEx(HKEY_CURRENT_USER, L"SOFTWARE\\Baidu.com", 0, KEY…

JS加密/解密之那些不为人知的基础逻辑运算符

不多说&#xff0c;直接上干货 使用逻辑非运算符 ! 和双重逻辑非运算符 !!&#xff1a;例如 ![]、!![]、!0、!!0 和 !""、!!""。空字符串的转换&#xff1a;!"" 和 !!""。数组和对象的类型转换&#xff1a;[] []、[] - []、{} [] 和…

2023年中国汽车覆盖件模具竞争格局、市场规模及行业需求前景[图]

汽车覆盖件模具是汽车车身生产的重要工艺装备&#xff0c;其设计和制造时间约占汽车开发周期的 2/3&#xff0c;是汽车换型的重要制约因素之一。汽车覆盖件模具具有尺寸大、工作型面复杂、技术标准高等特点&#xff0c;属于技术密集型产品。汽车覆盖件模具按以其冲压的汽车覆盖…

如何在linux服务器上安装Anaconda与pytorch,以及pytorch卸载

如何在linux服务器上安装Anaconda与pytorch&#xff0c;以及pytorch卸载 1&#xff0c;安装anaconda1.1 下载anaconda安装包1.2 安装anaconda1.3 设计环境变量1.4 安装完成验证 2 Anaconda安装pytorch2.1 创建虚拟环境2.2 查看现存环境2.3 激活环境2.4 选择合适的pytorch版本下…

基于ssm的宠物医院管理系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

hibernate源码(2)--- springboot-jpa是如何引入的

starter引入 要想看jpa是如何将hibernate引入容器&#xff0c;首先要看的是 spring-boot-starter-data-jpa 如何引入依赖&#xff1a; 如果注意的话&#xff0c;starter的包内容其实没有什么实质的内容&#xff0c;关键是pom里的依赖 pom中规定了各依赖和依赖的版本&#xf…

Docker 容器服务的注册、发现及Docker安全

目录 Docker容器服务的注册和发现 1、什么是服务注册与发现&#xff1f; 2、什么是consul consul的部署 1、环境准备 2、部署consul服务器 1&#xff09;建立 Consul 服务 2&#xff09;设置代理&#xff0c;在后台启动 consul 服务端 3&#xff09;查看集群信息 4&a…

BES2700 蓝牙协议之RFCOMM通道使用方法

是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务 BES2700 RFCOMM通道使用方法 RFCOMM_CHANNEL_NUM 枚举定义了一系列的通道号码,并为每个通道号码指定了一个具体的名称。以下是其中一些通道的中文含义: RFCOMM_CHAN…

RustDay06------Exercise[91-100]

91.将指针还原成指定类型 因为指针不知道里面具体有什么,所以一般约定打上unsafe 申明开发者自己对该部分可用性负责,且在调试的时候也能起强调作用 // tests6.rs // // In this example we take a shallow dive into the Rust standard librarys // unsafe functions. Fix …

大数据Flink(一百零二):SQL 聚合函数(Aggregate Function)

文章目录 SQL 聚合函数(Aggregate Function) SQL 聚合函数(Aggregate Function) Python UDAF,即 Python AggregateFunction。Python UDAF 用来针对一组数据进行聚合运算,比如同一个 window 下的多条数据、或者同一个 key 下的多条数据等。针对同一组输入数据,Python A…

2017年亚太杯APMCM数学建模大赛B题喷雾轨迹规划问题求解全过程文档及程序

2017年亚太杯APMCM数学建模大赛 B题 喷雾轨迹规划问题 原题再现 喷釉工艺用喷釉枪或喷釉机在压缩空气下将釉喷入雾中&#xff0c;使釉附着在泥体上。这是陶瓷生产过程中一个容易实现自动化的过程。由于不均匀的釉料在烧制过程中会产生裂纹&#xff0c;导致工件报废&#xff0…

Dubbo 路由及负载均衡性能优化

作者&#xff1a;vivo 互联网中间件团队- Wang Xiaochuang 本文主要介绍在vivo内部针对Dubbo路由模块及负载均衡的一些优化手段&#xff0c;主要是异步化缓存&#xff0c;可减少在RPC调用过程中路由及负载均衡的CPU消耗&#xff0c;极大提升调用效率。 一、概要 vivo内部Java…

AIR101 LuatOS LVGL 显示多个标签例程

屏幕资料 AIR101与屏幕连接 PC端仿真环境合宙官方PC端版本环境搭建教程 PC电脑仿真 -- sys库是标配 _G.sys require("sys") sys.taskInit(function()local cnt0lvgl.init(480,320)--lvgl初始化local cont lvgl.cont_create(nil, nil);-- lvgl.cont_set_fit(cont, …