Deformable DETR Deformable Transformers for End-to-End Object Detection
记录论文《Deformable DETR Deformable Transformers for End-to-End Object Detection》阅读过程中的一些思考。
简介
DETR 虽然实现了真正的端到端目标检测,但存在两个主要问题:
- 收敛慢:
DETR需要约 $500$ 个训练轮次才能收敛,远多于传统检测器的轮次(约是Faster R-CNN的 $10\sim 20$ 倍)。这主要是因为标准注意力在初始化时对所有空间位置赋予近乎均匀的权重,模型需要大量训练才能学会聚焦到有意义的区域。 - 特征空间分辨率受限:标准
Transformer的注意力计算复杂度为 $O(N^2)$ ,其中 $N = H \times W$ 为特征图的空间尺寸。这使得DETR使用高分辨率特征图的计算代价非常大,无法像FPN那样利用多尺度特征,在高分辨率特征图上检测小目标,导致小目标检测性能较差。
这两个问题具有相同的根源,即标准注意力的全局计算模式。它既导致初始化时的权重分散(收敛慢),又导致计算量过大而无法处理高分辨率特征图(分辨率受限)。
Deformable DETR 针对 DETR 收敛慢和特征空间分辨率受限这两大问题,提出了多尺度可变形注意力模块(Multi-Scale Deformable Attention Module),使每个查询仅关注参考点附近的少量采样点,将注意力的计算复杂度从 $O(H^2W^2)$ 降至 $O(HWK)$ ,从而支持多尺度特征图的高效处理。在 COCO 基准上,Deformable DETR 仅用 $\frac{1}{10}$ 的训练轮次即可超越 DETR 的性能,尤其在小目标检测上有显著提升。

概念
可变形注意力 / Deformable Attention
可变形注意力(Deformable Attention)受可变形卷积(Deformable Convolution)启发,将注意力操作限制在参考点附近的少量采样点上。与标准注意力对所有空间位置计算权重不同,可变形注意力仅在数据依赖的稀疏位置进行采样,从而实现了线性复杂度。

对于单尺度特征图 $x \in \mathbb{R}^{C \times H \times W}$ ,其数学形式为: $$\text{DeformAttn}(z_q, p_q, x) = \sum_{m=1}^{M} W_m \left[ \sum_{k=1}^{K} A_{mqk} \cdot W'_m x\!\left(p_q + \Delta p_{mqk}\right) \right]$$ 其中:
- $z_q \in \mathbb{R}^C$ 为索引 $q$ 处的
查询特征 - $p_q$ 为索引 $q$ 处的二维
参考点 - $M$ 为
注意力头数, $m$ 则为其索引 - $K$ 为每个头的采样点数,且 $K \ll HW$,如取 $K = 4$ , $k$ 则为其索引
- $\Delta p_{mqk} \in \mathbb{R}^2$ 为第 $m$ 头第 $k$ 个采样点相对于参考点 $p_q$ 的可学习偏移量,由 $z_q$ 经
线性层预测得到,即 $\Delta p = \text{Linear}(z_q) \in \mathbb{R}^{M \times K \times 2}$ - $A_{mqk} \in [0, 1]$ 为对应的注意力权重,同样由 $z_q$ 经
线性层预测并经softmax归一化,满足 $\sum_{k=1}^{K} A_{mqk} = 1$ - $x(\cdot)$ 为在偏移后位置处通过
双线性插值采样得到的特征 - $W_m \in \mathbb{R}^{C \times C_v}$ 为第 $m$ 头的输出投影矩阵,其中 $C_v = C / M$ ,即每个
注意力头的特征维度 - $W'_m \in \mathbb{R}^{C_v \times C}$ 为第 $m$ 头的输入
Value的投影矩阵
衡准
与标准注意力相比,可变形注意力有以下关键区别:
- 权重来源:标准
注意力通过Query-Key的点积计算权重,而可变形注意力直接由Query经线性层预测权重,无需Key - 采样位置:标准
注意力关注所有位置,而可变形注意力仅关注参考点附近 $K$ 个数据依赖的采样位置 - 复杂度:标准
注意力为 $O(N^2)$ ,可变形注意力为 $O(NK)$ ,其中 $K \ll N$
探微
Q1: Transformer 的 Attention 相比 CNN 的 Convolution 的一大优势就是对长距离依赖关系(Long-Distance Dependency)的建模能力,可变形注意力又从“全局”回到“局部”是否是“开历史倒车”?
A: 直觉上从“全局”回到“局部”是在走回头路,但实际上可变形注意力是在保留注意力机制的核心优势基础上针对效率做的优化,更像是一种螺旋上升。
注意力机制虽然强大,但其全局计算的计算复杂度高 $O(N^2)$ ,而图像中大部分区域可能都与当前特征无关,如果能够“智能”地对“最有价值”的少量点做注意力,可以既保留 Attention 的全局关系建模能力,而不像 Convolution 的矩形区域那么死板,又可以像 Convolution 那样仅关注少量区域。本质上 Deformable Attention 是增加了类似 CNN 的归纳偏置,即认为与当前特征相关的区域只在少数区域,但与 Convolution 默认是物理邻域不同,它的动态权重能够支持注意跨越很远距离的区域。这其实是先验的认为经过充分学习后的权重会聚焦在少部分的区域,而不是分散在很多区域,即稀疏的注意力,这在很多领域是有道理的。
Q2: 可变形注意力与可变形卷积有什么联系和区别?
A: 两者的核心思想一致,即通过数据驱动的方式学习数据依赖的空间偏移量打破固定采样模式。区别在于:
可变形卷积在卷积核的固定网格点上学习偏移,每个采样点的权重由卷积核参数确定(训练完成后不变),采样点数等于卷积核大小(如 $3 \times 3 = 9$ )可变形注意力采样点数由超参数 $K$ 控制(文中 $K = 4$ ),注意力权重由Query动态预测而非预设

此外,可变形注意力可以看作可变形卷积在注意力框架下的推广:当 $M = 1$ , $K$ 等于卷积核大小(如 $K = 3 \times 3$ ),且权重固定时,两者等价。
Q3: 为什么可变形注意力不使用 Query-Key 点积计算权重?
A: 在标准注意力中,Query-Key 点积可以衡量不同位置间的语义相关性。作者在早期试验中尝试过使用点积来获取注意力权重,与线性投影相比,它可以实现同等性能( $AP$ 差异 $<0.5\%$ ),但速度慢了 $25\%$ 。
作者猜测性能接近是因为堆叠的卷积或注意力层为查询特征提供了足够的上下文信息来确定注意力权重,而速度差异可能是因为虽然点积和线性投影有相同的计算复杂度,但是点积需要额外的随机内存访问来计算 Key 和做矩阵-矩阵乘法。另外受论文的启发,它表明 Query 和 Key 上下文特征(不含位置编码)之间的点积在 Transformer 的自注意力中起次要作用。
因此作者团队选择使用线性投影的方式。
Q4: 可变形注意力中的采样位置如何确保可微?
A: 由于 $\Delta p_{mqk}$ 是连续值,采样位置 $p + \Delta p_{mqk}$ 通常不在特征图的整数网格上,因此使用双线性插值从相邻的四个整数位置的特征中加权得到该点的特征值。双线性插值对坐标和特征值都是可微的,因此整个操作可以端到端训练。
多尺度可变形注意力 / Multi-Scale Deformable Attention
多尺度可变形注意力将可变形注意力自然地扩展到多尺度特征图上,是 Deformable DETR 的核心模块。每个查询同时在多个尺度的特征图上进行稀疏采样,从而以极低的额外代价实现了多尺度特征融合。
对于 $L$ 个尺度的特征图 $\{x^l\}_{l=1}^{L}$ ,其中 $x^l \in \mathbb{R}^{C \times H_l \times W_l}$ ,其数学形式为: $$\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]$$ 其中:
- $\hat{p}_q \in [0, 1]^2$ 为
参考点的归一化坐标,其中 $(0,0)$ 和 $(1,1)$ 分别表示图像的左上和右下顶点 - $\phi_l(\hat{p}_q)$ 将归一化坐标重新缩放至第 $l$ 层特征图的实际尺寸
- $\Delta p_{mlqk} \in \mathbb{R}^2$ 为第 $m$ 头在第 $l$ 层第 $k$ 个采样点的偏移量
- $A_{mlqk}$ 为对应的注意力权重,满足 $\sum_{l=1}^{L}\sum_{k=1}^{K} A_{mlqk} = 1$ ,即归一化同时跨层级和采样点
整个模块的偏移量和注意力权重均由 $z_q$ 经线性层预测:
- 偏移量:$\text{Linear}(z_q) \in \mathbb{R}^{M \times L \times K \times 2}$ ,共 $2MLK$ 个标量
- 注意力权重:$\text{Linear}(z_q) \in \mathbb{R}^{M \times L \times K}$ ,经
softmax归一化,共 $MLK$ 个标量
衡准
多尺度可变形注意力同时解决了 DETR 的两大问题:
- 收敛快:初始化时偏移量接近零,注意力天然聚焦于
参考点附近,避免了标准注意力的均匀分散问题 - 支持多尺度:计算复杂度为 $O(N \cdot MLK)$ ,对 $L$ 和 $K$ 是线性的($MLK$ 为常数级),与标准
注意力的 $O(N^2)$ 相比,在多尺度场景下优势巨大
此外,该模块天然地融合了 FPN 的功能——不同层级的特征通过注意力权重 $A_{mlqk}$ 被自适应地聚合,无需显式的自顶向下(top-down)路径。
探微
Q1: 注意力权重为什么跨层级和采样点联合归一化,而非分别归一化?
A: 联合归一化 $\sum_{l=1}^{L}\sum_{k=1}^{K} A_{mlqk} = 1$ 使得模型可以自适应地在不同层级之间分配注意力。例如,对于大目标,模型可能将更多权重分配给低分辨率层级;对于小目标,则可能更关注高分辨率层级。如果分别归一化,每个层级都必须贡献固定比例的信息,灵活性降低。
Q2: 多尺度特征图是如何构建的?
A: 文中使用 ResNet 骨干网络输出的 $C_3, C_4, C_5$ 三个阶段的特征图(步长分别为 $8, 16, 32$ ),并通过对 $C_5$ 施加步长为 $2$ 的 $3 \times 3$ 卷积得到第四个层级 $C_6$ (步长为 $64$ )。每个层级的特征图通过 $1 \times 1$ 卷积统一到 $C = 256$ 维。
与 FPN 不同的是,Deformable DETR 没有使用自顶向下的特征融合路径,而是完全依赖多尺度可变形注意力在编码器中隐式地完成跨尺度特征交互。
Q3: 参考点是如何确定的?
A: 参考点的确定在编码器和解码器中有所不同:
- 在
编码器中,每个特征图位置 $(i, j)$ 的参考点就是其自身的归一化坐标 $\hat{p}_q = \left(\frac{i}{H}, \frac{j}{W}\right)$ - 在
解码器中,参考点由对象查询经线性层和sigmoid激活预测得到,即 $\hat{p}_q = \sigma(\text{Linear}(z_q)) \in [0, 1]^2$ ,其可解释为预测目标的初始中心位置估计
Q4: 为什么采样点数 $K = 4$ 就足够了?
A: 文中实验表明,$K$ 从 $1$ 增加到 $4$ 时性能持续提升,但 $K > 4$ 后提升不明显。这可能是因为:
可变形注意力的采样位置是数据依赖的,$4$ 个自适应采样点的信息量可能已经超过了固定 $3 \times 3$ 卷积核的 $9$ 个采样点- 跨 $L = 4$ 个层级共有 $L \times K = 16$ 个采样点参与,总信息量已经足够
- 继续增加 $K$ 虽然不影响复杂度量级,但会增加偏移量和权重预测的参数量,可能导致过拟合