【论文阅读】DQ-DETR

(ECCV 2024) DQ-DETR: DETR with Dynamic Query for Tiny Object Detection

DQ-DETR 旨在改善图像中微小物体的性能,它是 DETR 的一个变种,通过动态调整查询(query)的数量和位置信息来适应图像中物体的数量和分布。

文章主要的技术贡献有:

  1. **分类计数模块:**对图像中对象数量进行估计,并将数量分为几个等级。

  2. **计数引导的特征增强模块:**利用分类计数模块生成的密度图来增强编码器的视觉特征,以改善对微小物体的空间信息。

  3. **动态 Query 选择:**根据分类计数模块的结果动态地调整在变换器编码器中使用的对象查询的数量。

问题背景

传统的 DETR 方法在通用目标检测中表现良好,但在检测微小物体时面临挑战,因为这些方法中对象查询的位置信息并未针对微小物体进行优化。

固定数量的查询使得 DETR 类方法在不同图像中实例数量不平衡时不适合检测。

模型方法

image.png

分类计数模块

设计目标

分类计数模块旨在解决两个问题:

  • **对象数量的动态调整:**在不同的图像中,对象的数量可能会有很大的差异。传统的 DETR 类方法通常使用固定数量的查询,这在对象数量不平衡的情况下可能会导致性能下降。

  • **对象位置信息的改进:**传统的对象查询位置是学习得到的嵌入向量,与当前图像无关,没有明确指示查询关注的区域。

主要组件

分类计数模块由以下两个主要部分组成:

  • **密度提取器:**负责从高分辨率的特征图中生成密度图,这个密度图包含了与对象计数相关的信息。

  • **分类头:**基于密度图的输出,将图像中的对象数量分为几个等级。

过程

  1. **特征提取:**使用 CNN Backbone 提取图像的多尺度特征图,输入 Encoder 得到 EMSV features。

  2. **密度图生成:**选择最大的特征图(S1S_1),输入到一系列扩张卷积层中,以获取密度图(FcF_c)。

  3. **对象数量分类:**针对不同的对象数量对密度图进行分类,从而决定 Object Queries 的数量。

计数引导的特征增强模块(CGFE)

该模块旨在通过使用从分类计数模块生成的密度图来增强编码器的视觉特征,以改善对微小目标的空间信息。

空间交叉注意力图**(Spatial cross-attention map)**

CGFE 模块利用密度图 FcF_c 中的丰富空间信息,通过 2-D 交叉空间注意力来计算。

首先,使用 1×11×1 卷积层对密度图 FcF_c 进行下采样,创建与编码器的多尺度特征图 SiS_i 形状一致的多尺度计数特征图Fc,iF_{c,i},随后对每个 Fc,iRb×256×h×wF_{c,i}\in\mathbb{R}^{b\times256\times h\times w} 在每个通道维度上使用平均池化最大池化。

然后,两个池化特征 Rb×1×h×w\mathbb{R}^{b\times1\times h\times w} 被连接起来,送进一个 7×77 \times 7 的卷积层,然后经由一个 sigmoid 函数,用来生成空间注意力图 WsRb×1×h×wW_{s}\in\mathbb{R}^{b\times1\times h\times w},过程如下式所示:

Ws,i=σ(Conv(Concat[AvgP.(Conv1×1(Fc,i))MaxP.(Conv1×1(Fc,i))]))W_{s,i}=\sigma(Conv(Concat\begin{bmatrix}AvgP.(\underset{1 \times 1}{Conv}(F_{c,i}))\MaxP.(\underset{1 \times 1}{Conv}(F_{c,i}))\end{bmatrix}))

生成的空间注意力图 Ws,iW_{s,i} 与 EMSV features SiS_i 进行逐元素相乘,以进一步得到空间增强的特征 EiE_i,如下式所示:

Ei=Ws,iSiE_i=W_{s,i}\otimes S_i

通道注意力图(Channel attention map)

在空间交叉注意力之后,我们进一步在空间增强的特征 EiE_i 上进行了 1-D 的通道注意力,来探索通道间的特征关系。具体地,我们首先沿着空间维度在 EiRb×256×h×wE_i\in\mathbb{R}^{b\times256\times h\times w} 的每一层之上施加了平均池化和最大池化;然后,池化后的特征 Rb×256×1×1\mathbb{R}^{b\times256\times1\times1} 被送进一个共享的 MLP 层,并且被逐元素相加,用于创建一个通道注意力图 Wc,i W_{c,i}。最后, 通道注意力图 Wc,iRb×256×1×1W_{c,i}\in\mathbb{R}^{b\times256\times1\times1}EiRb×256×h×wE_i\in\mathbb{R}^{b\times256\times h\times w} 相乘,最后得到了计数引导的增强特征图 FtF_t,如下公式所示:

Wc,i=σ(MLP(AvgP.(Ei))+MLP(MaxP.(Ei)))Ft,i=Wc,iEi.W_{c,i}=\sigma(MLP(AvgP.(E_i))+MLP(MaxP.(E_i))) \F_{t,i}=W_{c,i}\otimes E_i.

动态 Query 选择

每一层的 FtF_t 首先被展平到像素级别,然后被拼接在一起,形成 FflatRb×256×hwF_{flat}\in\mathbb{R}^{b\times256\times hw},其中的 top-K 个特征被选择用于增强 Decoder Queries 的特征。选择是基于分类分数的,我们将 FflatF_{flat} 送进一个 FFN 用于进行物体分类,然后生成分类分数 Rb×m×hw\in\mathbb{R}^{b\times m\times hw},其中 mm 是数据集中物体类别的数量。随后,我们生成 top-K 个特征 FselectF_{select} 的 content 和 position 查询。

Score=FFN(Fflat),Fselect=topKScore(Fflat)\begin{aligned}&Score=FFN(F_{flat}),\&F_{select}=topK_{Score}(F_{flat})\end{aligned}

内容查询是由一个线性变换生成的,而对于位置查询,我们则使用一个 FFN 来预测它的偏移量 bi^=(Δbix,Δbiy,Δbiw,Δbih)\hat{b_i}=(\Delta b_{ix},\Delta b_{iy},\Delta b_{iw},\Delta b_{ih}),用来优化最初的 anchor box(由 FselectF_{select} 得来)。

由于特征 FselectF_{select} 是从之前的 CGFE 模块生成的 FtF_t 中选取的,因此 FselectF_{select} 包含了丰富的微小物体的尺度和位置信息。因此,对象查询的增强内容和位置是根据每个图像的密度(拥挤或稀疏)定制的,便于在 decoder 中更容易地定位微小对象。

评论 (0)

暂无评论,来发表第一条评论吧!