Deformable DETR

论文:https://arxiv.org/pdf/2010.04159.pdf

源码:https://github.com/fundamentalvision/Deformable-DETR

摘要:

问题:DETR 缺陷:收敛速度慢;小物体检测性能低

解决方案:可变形注意力模块:仅关注参考点周围的一小部分关键采样点;支持多尺度融合,无需依赖FPN等金字塔网络

引言

DETR 缺陷:收敛速度慢;小目标检测性能低

原因:Transformer注意力模块的局限性:初始化时注意力模块对所有像素的权重一致;decoder中注意力权重的计算是关于像素个数的平方计算。

可变形DETR:结合了可变形卷积的系数空间采样和Transformer的关系建模能力。

提出了多尺度可变形注意力模块,该模块仅关注参考点周围少量采样位置,复杂度线性增长;支持多尺度特征聚合,无需依赖FPN等金字塔网络。

注意:这张图里的encoder是多尺度可变形自注意力模块,decoder是多尺度可变形交叉注意力模块

首先是从骨干网络提取多尺度特征图(Image部分),然后到encoder使用多尺度变形自注意力进一步提取特征,再到decoder使用多尺度可变形交叉注意力模块进行目标查询分类。

目标检测的主要困难之一是有效地表示不同尺度的目标。之前大多数网络引用的是FPN。但是,我们提出的多尺度可变形注意力模块可以通过注意力机制自然地聚合多尺度特征图,而不需要这些特征金字塔网络的帮助。

相关工作

Transformer的一个主要问题是当键元素数量很大时,时间和内存复杂度很高,这在许多情况下限制了模型的可扩展性。

解决方案

  • 第一类:使用预定义的稀疏注意力模式,如局部窗口或固定间隔的键元素,但会丢失全局信息。

  • 第二类:学习数据依赖的稀疏注意力,如基于局部敏感哈希(LSH)的注意力机制。

  • 第三类:探索自注意力中的低秩特性,通过线性投影或核化近似来降低复杂度。

多尺度特征表示:

目标检测的主要困难之一是有效地表示不同尺度下的目标。

解决方案:

  • FPN:通过自上而下的路径结合多尺度特征。

  • PANet:在FPN的基础上增加自下而上的路径。

  • 其他方法:通过全局注意力操作、U形模块或神经架构搜索自动设计跨尺度连接。

提出多尺度可变形注意力模块可以通过注意力机制自然地聚合多尺度特征图,而不需要这些特征金字塔网络的帮助

重新审视 Transformer 与 DETR

1、多头注意力机制

给定一个查询元素(例如输出句子中的目标词)和一组键元素(例如输入句子中的源词),多头注意力模块根据查询-键对的兼容性自适应地聚合键内容。

Transformer的两个问题:训练时间长;计算和内存复杂度高

2、DETR

基于 Transformer 编码器-解码器架构,结合了基于二分图匹配的匈牙利损失,以确保每个真实边界框的唯一预测。

DETR 通过结合 CNN 和 Transformer 编码器-解码器架构,消除了许多手工设计的组件需求,但仍然存在检测小物体性能较低和训练收敛慢的问题。这些问题主要归因于 Transformer 注意力在处理图像特征图作为键元素时的缺陷。

Method

4.1、端到端目标检测的可变形Transformer

受启发于可变形卷积,只关注参考点周围的少量关键采样点,不考虑特征图的空间大小。

1、Input Feature Map x:

输入特征图,从卷积提取的多尺度特征图,x∈RC*H*W,C通道数,H、W是特征图的高和宽。经过一个线性投影到多头注意力层。

2、Query Feature zq:查询特征

这是来自解码器的对象查询特征,用于从特征图中提取相关信息。

参考点(Reference Point)这是二维坐标,用于确定在特征图中的采样位置

3、Sampling Offsets ΔPmqk 采样偏移

通过查询特征zp的线性投影生成采样偏移ΔPmqk,这些偏移量用于确定在特征图中的具体采样位置。采样偏移在多头注意力中生成。

4、多头注意力

输入的特征图x经过独立的线性层投影到不同的子空间,生成各头对应的值Wm,x(特征内容)

5、注意力权重

每个注意力头通过查询特征zq生成一组Amqk,这些权重用于加权采样值,以突出重要特征。

每个采样点Pq+ΔPmqk从输入特征图x提取一个特征Wm,x(Pq+ΔPmqk),Wm是可学习的权重矩阵。然后注意力权重Amqk表示查询特征zq对采样点Pq+ΔPmqk的关注程度。Aggregate聚合就表示为

可变形注意力特征

上式x为特征图,维度CxHxW,q为查询元素,zq 为其内容特征,pq 为2D参考点。m为注意力头,k为索引采样键,K为总采样键数。

ΔPmqk 和Amqk分别表示第m各注意力头中第k个采样点的采样偏移和注意力权重。Amqk 是一个标量,范围在0~1之间然后归一化为ΣKk=1Amqk=1;ΔPmqk为2D实数。

W,m和Wm是可学习的权重矩阵。Wm用于对每个注意力头的输出进行线性变换;W,m用于对输入特征图 x 进行线性变换。

多尺度可变注意力模块。

可变形Transformer编码器

提出的多尺度可变形注意力模块替换了 DETR 中处理特征图的 Transformer 注意力模块。

没有使用FPN的自上而下的结构,因为多尺度可变形注意力本身可以在多尺度特征图之间交换信息。

可变形Transformer解码器

解码器中有交叉注意力和自注意力模块。这两种注意力模块的查询元素都是对象查询。在交叉注意力模块中,对象查询从特征图中提取特征,其中键元素是编码器输出的特征图。在自注意力模块中,对象查询相互交互,其中键元素是对象查询。

由于多尺度可变形注意力模块在参考点周围提取图像特征,我们让检测头预测相对于参考点的边界框,以进一步降低优化难度。

4.2 可变形 DETR 的额外改进和变体

两阶段可变形DETR

探索了可变形 DETR 的一个变体,用于生成区域提议作为第一阶段。生成的区域提议将作为对象查询输入到解码器中进行进一步细化,形成两阶段可变形 DETR。

在第一阶段,为了实现高召回率的提议,多尺度特征图中的每个像素都作为对象查询。移除了解码器,形成了一个用于区域提议生成的仅编码器的可变形 DETR。每个像素都被分配为一个对象查询,直接预测一个边界框。选择得分最高的边界框作为区域提议。

参考:

DEFORMABLE DETR 论文精度,并解析网络模型结构_deformer detr-优快云博客

代码部分:深度学习原理篇 第七章:Deformable DETR-阿里云开发者社区

### 关于 Deformable DETR 的研究论文 Deformable DETR 是一种基于 Transformer 架构的目标检测模型,旨在解决原始 DETR 收敛速度较慢以及对小物体检测效果不佳的问题。通过引入可变形注意力机制,使得模型能够更有效地聚焦于感兴趣区域内的关键位置[^1]。 #### 主要创新点 - **可变形注意力模块**:与传统多头自注意不同的是,在计算查询键值交互时加入了偏移参数,允许每个头部独立调整感受野的位置和大小; - **减少冗余计算**:只选取少数重要的参考点参与加权求和操作,从而降低了整体复杂度并提高了效率; ```python class MSDeformAttn(nn.Module): def __init__(self, d_model=256, n_levels=4, n_heads=8, n_points=4): super().__init__() self.im2col_step = 64 # 定义线性层和其他必要组件... def forward(self, query, reference_points, input_flatten, input_spatial_shapes, input_level_start_index, input_padding_mask=None): N_, S_, C_ = input_flatten.shape _, Lq_, _ = query.shape q = k = v = rearrange(query, 'b l c -> (b l) () c') value = ... ``` 这段代码展示了如何定义一个多尺度的可形变注意力层 `MSDeformAttn` ,它接收来自多个特征层次的信息,并利用给定的参考点来进行高效的跨尺度聚合运算[^3]。 --- ### 实现方式 为了加速训练过程并且提升对于小型目标识别的能力,研究人员设计了一套全新的编码解码结构: - 编码器部分依旧采用标准的 Transformer Encoder 来提取全局上下文信息; - 解码器则采用了带有可变形注意力机制的新颖架构,这不仅有助于更好地捕捉局部细节,而且可以显著加快收敛速率; 此外,还加入了一些辅助损失函数用于监督中间预测结果的学习,进一步促进了整个网络稳定性和泛化能力的发展[^2]。 --- ### 应用案例 在实际应用场景中,Deformable DETR 已经证明了自己是一个非常强大的工具。特别是在那些需要高精度定位的小型物品检测任务里表现尤为突出。例如,在自动驾驶领域内,车辆周围的行人、交通标志牌等都是相对较小但又至关重要的对象;而在无人机航拍监控方面,则可能涉及到远距离拍摄下的动物追踪等问题——这些场合下使用 Deformable DETR 都能获得更好的检测效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值