Anchor-DERT

这篇论文再相关工作部分指出——

条件 DETR(Meng 等人,2021)将参考点编码为查询位置嵌入。但与我们的动机不同,因此它仅使用参考点生成位置嵌入作为交叉注意力中的条件空间嵌入,而目标查询仍然是学习到的嵌入。此外,它不涉及一个位置的多个预测和注意力变体。

总得来说,这篇论文将所谓的目标查询具象化成了最初的一些锚点。通过这些锚点经过可学习的变换来得出最初的 QinitQ_{init}的一部分,而另一部分是模式嵌入,用来弥补同一锚点上存在多个物体时只能得出一个结果的


总体流程图


QinitQ_{init}的新生成机制

在原来 DERT 模型中,目标查询的生成一般是随机的,大小是 [Nq,C][N_q,C]。这合理但是过于随意,所以需要花费更多的时间去拟合。

在本文中,首先的生成锚点。这个锚点的说熟练是我们自己定的,就像原来 DERT 中的 NqN_q 一样。最后得到的是:

Posq,size(Nq,2)\text{Pos}_q , \text{size}(N_q,2)

随后通过一个MLP,得到一个初步的目标查询:

Qpos=MLP(Posq),size(Nq,C)Q_{pos} = MLP(Pos_q) , \text{size}(N_q,C)

其中,C 是 encoder 输出的通道数。这里的 MLPMLP
其实充当了位置编码的作用,只不过不是启发式的了,而是可学习的。 MLPMLP 的另外一个作用就是将每个锚点只有二维的位置编码映射到和encoder 输出维度相等的向量空间之中,这样子才能参与后面的运算。但是这还不够,为了预测每个锚点的多个对象,文章将多个模式合并到每个目标查询中,其实就是相当于增加了维度,也就增加了最后的预测数量(每个点的),数学表示:

Qfi=Embedding(Np,C)Q_{f}^{i} = \text{Embedding}(N_{p},C)

其中, ii 代表第 i 个锚点, QfQ_f 就是模式嵌入矩阵。所有的位置编码用 PP 来表示。 PP 的大小是 (Np,C)(N_p,C)NpN_p 是我们自己定的,我们想让每个锚点有几个模式,就让NpN_p 等于几就可以。再引入PP到目标查询初始化中之前,我们的 QQ 的 size 为 (Nq,C)(N_q,C)。如果引入了之后, QQ 的 size 为 (Nq×Np,C)(N_q \times N_p,C)。这样做扩大了目标查询对于K 的扫描次数。

上面的文字描述不便于理解,下面举例说明:

假设:

  • NA=2(锚点)
  • Np=3(模式)
  • C=4(特征维)

输入锚点

1
2
锚点0: [0.2, 0.5]
锚点1: [0.7, 0.3]

位置编码后:

1
2
3
复制
锚点0位置编码: [0.8, -1.2, 0.4, 1.0]
锚点1位置编码: [-0.5, 0.3, 1.1, -0.2]

模式嵌入:

1
2
3
4
复制
模式0: [0.1, 0.1, 0.1, 0.1]
模式1: [0.2, 0.2, 0.2, 0.2]
模式2: [0.3, 0.3, 0.3, 0.3]

构造查询:

1
2
3
4
5
6
7
8
复制
锚点0-模式0: [0.8+0.1, -1.2+0.1, 0.4+0.1, 1.0+0.1] = [0.9, -1.1, 0.5, 1.1]
锚点0-模式1: [0.8+0.2, -1.2+0.2, 0.4+0.2, 1.0+0.2] = [1.0, -1.0, 0.6, 1.2]
锚点0-模式2: [0.8+0.3, -1.2+0.3, 0.4+0.3, 1.0+0.3] = [1.1, -0.9, 0.7, 1.3]

锚点1-模式0: [-0.5+0.1, 0.3+0.1, 1.1+0.1, -0.2+0.1] = [-0.4, 0.4, 1.2, -0.1]
锚点1-模式1: [-0.5+0.2, 0.3+0.2, 1.1+0.2, -0.2+0.2] = [-0.3, 0.5, 1.3, 0.0]
锚点1-模式2: [-0.5+0.3, 0.3+0.3, 1.1+0.3, -0.2+0.3] = [-0.2, 0.6, 1.4, 0.1]

最终查询矩阵 (6×4):

1
2
3
4
5
6
7
复制
[[ 0.9, -1.1, 0.5, 1.1],
[ 1.0, -1.0, 0.6, 1.2],
[ 1.1, -0.9, 0.7, 1.3],
[-0.4, 0.4, 1.2, -0.1],
[-0.3, 0.5, 1.3, 0.0],
[-0.2, 0.6, 1.4, 0.1]]

所以我们最后的目标查询 QQ 用公式来表示的话,对于其中的每一个锚点 qi,kq_{i,k}:

qi,k=MLP(xi,yi)位置特征+pk模式特征RC\mathbf{q}{i,k} = \underbrace{\operatorname{MLP}(x_i, y_i)}{\text{位置特征}} + \underbrace{\mathbf{p}k}{\text{模式特征}} \in \mathbb{R}^C

这样做可以让模型的目标查询设计更加合理、收敛更加迅速而且同一锚点对不同尺度、不同样式的物体的捕捉能力兼备。

而上面做的这么多,最后的目的其实就是得到 QinitQ_{init} , 输入到decoder 中。


行列解耦注意力(Row-Column Decoupled Attention, RCDA)

设计动机是为了加速收敛。原来decoder 中的注意力机制,不管是交叉注意力还是自注意力,其运算量会随着输入图像尺寸的增加而飞速增长。

行列解耦的意思就是通过一位平均池化使得原来特征图中的其中一维(行或者列)压缩成一个值,其实也就是对要压缩方向的向量求平均数。

这样子大大减小了运算量,然后再分布得出最后注意力计算的结果。具体来说:

  • 算法流程将 2D 空间分解为行列两个正交方向:

    1. 行方向压缩:沿宽度维度全局平均池化得行特征 KxRW×CKx∈RW×C

    2. 列方向压缩:沿高度维度全局平均池化得列特征 KyRH×CKy∈RH×C

    3. 分步注意力计算

      Ax=softmax(QxKxTdk)RNq×W,Z=AxVRNq×H×C(行方向加权和),Ay=softmax(QyKyTdk)RNq×H,Output=AyZRNq×C(列方向加权和).\begin{aligned} \mathbf{A}_\mathbf{x} &= \operatorname{softmax}\left( \dfrac{\mathbf{Q}_\mathbf{x} \mathbf{K}_\mathbf{x}^T}{\sqrt{d_k}} \right) \in \mathbb{R}^{N_q \times W}, \\ \mathbf{Z} &= \mathbf{A}_\mathbf{x} \mathbf{V} \in \mathbb{R}^{N_q \times H \times C} \quad (\text{行方向加权和}), \\ \mathbf{A}_\mathbf{y} &= \operatorname{softmax}\left( \dfrac{\mathbf{Q}_\mathbf{y} \mathbf{K}_\mathbf{y}^T}{\sqrt{d_k}} \right) \in \mathbb{R}^{N_q \times H}, \\ \text{Output} &= \mathbf{A}_\mathbf{y} \mathbf{Z} \in \mathbb{R}^{N_q \times C} \quad (\text{列方向加权和}). \end{aligned}

  • 复杂度分析内存占用从 O(Nq×H×W) 降至 O(Nq×(H+W)),当 H=W=32 时节省约 60% 内存(表 6)。


实验验证与分析

数据集与指标

  • 数据集:MS COCO 2017 (118K 训练集,5K 验证集)
  • 评估指标:AP(平均精度)、AP50、AP75、APS(小目标)、APM(中目标)、APL(大目标)

主要结果

模型 骨干网络 Epochs AP FPS 特点
DETR (DC5) ResNet-50 500 43.3 12 原始基准
Deformable DETR ResNet-50 50 43.8 15 多级特征+可变形注意力
Anchor DETR (DC5) ResNet-50 50 44.2 19 本文方法
Anchor DETR (DC5) ResNet-101 50 45.1 - 更强骨干
  • 核心优势
    • 50 epochs 训练即超越 DETR 的 500 epochs 结果(+0.9 AP)。
    • 单级特征(DC5)性能优于多级特征方法(如 Deformable DETR)。
    • 推理速度提升 58%(19 FPS vs. 12 FPS)。

3. 消融实验(表 3 & 表 4)

  • 锚点查询的贡献:替换 DETR 的随机查询为锚点查询 → +3.3 AP(39.3 → 42.6)。
  • 多模式机制的增益:添加 Np=3 模式 → +1.6 AP(42.6 → 44.2)。
  • RCDA 的有效性:在保持 AP 不变的同时,内存降低至标准注意力的 42%(DC5 特征下 4.4GB vs. 10.5GB)。

4. 可解释性分析

  • 预测位置分布(图 1b):每个锚点的预测框紧密围绕其空间位置,验证查询的位置相关性。
  • 模式语义分离(图 4):不同模式自动学习物体尺寸先验:
    • 模式0:倾向大物体(面积 > 0.1)
    • 模式1:倾向小物体(面积 < 0.01)
    • 模式2:中等尺寸物体
Donate
  • Copyrights © 2015-2025 Xinyu Zhuang
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信