Deformable-DERT

DERT存在的问题

主要是注意力机制引起的收敛慢、开销大的问题

并且对于小目标不敏感,而且这一问题不能通过提高图像分辨率来实现,因为随着图像大小的增加,计算的时间复杂度和空间复杂度都是呈现出幂级增长


1*1卷积+尺度位置编码

通过1*1卷积来使得backbone部分的不同层的结果的通道数统一(一般是256)

为什么要统一? 因为Transformer_encoder输入尺寸的硬性要求

接下来就是增添尺度编码,与空间编码共存

为什么添加尺度编码?为了防止模型将不同尺度的信息混淆。

在接下来的deformable attention中,会融合多个尺度的信息,融合方式就是直接加起来,这样子就相当于好几张油画的颜料混在一起了。

而模型在结构上根本不具备区分不同尺度信息的能力,毕竟再怎么说都是2维的。所以这时候需要尺度编码,相当于给不同的油画加上了纹理,即使叠在一起,也能分出你我。

具体如何实现尺度编码?

1
2
3
4
5
6
7
# 以4个尺度层级(d_model=256)为例:
Scale Embeddings = [
[s₁₁, s₁₂, ..., s₁₂₅₆], # C3层的尺度编码 (256维)
[s₂₁, s₂₂, ..., s₂₂₅₆], # C4层的尺度编码
[s₃₁, s₃₂, ..., s₃₂₅₆], # C5层的尺度编码
[s₄₁, s₄₂, ..., s₄₂₅₆] # C6层的尺度编码
] # 形状: [4, 256]

随后在如特征融合的时候是通过广播机制融合的:

1
2
3
4
5
6
7
8
# 原始:纯一维向量
s_l = [s₁, s₂, ..., s₂₅₆] # shape=(256)

# 第1步:添加维度(变成4D张量)
s_l = s_l[None, :, None, None] # 现为 [1, 256, 1, 1]

# 第2步:广播适配特征图(示例C5层15×20)
broadcasted = s_l.expand(B, 256, 15, 20) # 最终 [B, 256, 15, 20]

也即是说,尺度编码其中一个向量与之预定的尺度的特征图融合的时候,一个通道中的所有值都加同一个数,而不同通道之间加的数基本是不同的。这样到最后每一个不同尺度的特征图都有不一样的编码了


deformable attention

Deformable DETR 中的 Deformable Attention Module 是其核心创新,旨在解决传统 Transformer 在目标检测中计算复杂度高、收敛慢和小目标检测效果差的问题。该模块通过动态稀疏采样机制替代全局注意力,显著提升效率与性能。

  • 核心思路:每个查询(Query)只关注其参考点(Reference Point)周围的少量关键位置(通常 K=4K=4),而非全局。
  • 动态性:采样点的位置偏移量 DeltapDelta p 和注意力权重 AA 均由 Query 特征动态预测,使模型能自适应聚焦于重要区域。

1. 单尺度 Deformable Attention 公式

DeformAttn(zq,pq,x)=m=1MWm[k=1KAmqkWmx(pq+Δpmqk)]\text{DeformAttn}(z_q, p_q, x) = \sum_{m=1}^{M} W_m \left[ \sum_{k=1}^{K} A_{mqk} \cdot W_m' x(p_q + \Delta p_{mqk}) \right]

  • 符号说明
    • zqz_q:Query 特征向量(如目标词嵌入)。
    • pqp_q:参考点的 2D 坐标(初始化为均匀网格或目标位置)。
    • xx:输入特征图。
    • Δpmqk\Delta p_{mqk}:第 mm 个头、第 kk 个采样点的偏移量(由 zqz_q 预测)。
    • AmqkA_{mqk}:第 mm 个头、第 kk 个采样点的注意力权重(由 zqz_q 预测,归一化至 [0,1][0,1])。

2. 多尺度扩展(Multi-Scale Deformable Attention)

MSDeformAttn(zq,p^q,{xl}l=1L)=m=1MWm[l=1Lk=1KAmlqkWmxl(ϕl(p^q)+Δpmlqk)]\text{MSDeformAttn}(z_q, \hat{p}_q, \{x^l\}_{l=1}^L) = \sum_{m=1}^{M} W_m \left[ \sum_{l=1}^{L} \sum_{k=1}^{K} A_{mlqk} \cdot W_m' x^l \left( \phi_l(\hat{p}_q) + \Delta p_{mlqk} \right) \right]

  • 关键改进
    • LL 层不同分辨率的特征图(如 ResNet 的 C3C_3C6C_6)采样,每层采 KK 个点。
    • ϕl()\phi_l(\cdot) 将参考点坐标映射到第 ll 层特征图的归一化空间。

deformable decoder部分

这部分用multi-scale deformable attention 来代替了 cross-attention。

原来的 self-attention 部分不动

Donate
  • Copyrights © 2015-2025 Xinyu Zhuang
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信