【Transformer】3、Deformable DETR: deformable transformers for end-to-end object detection

文章目录

    • 一、背景和动机
    • 二、方法
    • 三、效果
    • 四、可视化

【Transformer】3、Deformable DETR: deformable transformers for end-to-end object detection_第1张图片

论文链接:https://arxiv.org/pdf/2010.04159.pdf
代码链接:https://github.com/fundamentalvision/Deformable-DETR

一、背景和动机

DETR 的提出,改善了之前的方法需要大量手工设计操作的局面(如 anchor 和 NMS),并且首次建立了一个完整的 end-to-end 的检测器。

但 DETR 有明显的问题:

  • 相比之前的方法,DETR 收敛的很慢,DETR 在 coco 数据集上需要约 500 个epoch 才能收敛,比 Faster RCNN 慢了 10 到 20 倍
  • DETR 在小目标上表现不好,现有的方法大多使用多尺度特征中的大分辨率特征来解决小目标问题,但如果使用大分辨率特征的话,DETR 的复杂度会很高
  • 在 decoder 输入初始化的时候,被初始化成相同的值,也就是 attention module 对特征图中的所有像素的注意力权重是相同的,所以需要大的 epoch 训练来找到需要关注的那几个稀疏的位置,此外,注意力的计算复杂度是随着特征图大小而平方增大的。

卷积神经网络中有一种卷积叫“可变形卷积”,可以高效的抽取稀疏空间位置的信息,作者受此启发建立了 deformable DETR。

二、方法

【Transformer】3、Deformable DETR: deformable transformers for end-to-end object detection_第2张图片

1、Deformable Attention Module

如图2所示,Deformable Attention Module 仅仅会收集目标点附近的主要特征点,所以对于每个 query 来说,仅仅有非常少量的 key。

Deformable Attention Feature 如下:
在这里插入图片描述

  • 输入特征图 x ∈ R C × H × W x \in R^{C\times H \times W} xRC×H×W
  • q q q 为 query ,其元素包括为常数 z q z_q zq 和 2 维位置信息 p q p_q pq
  • m m m 是 attention head 的索引, k k k 是 sampled keys 的索引, K K K 是 sample keys 的总数( K < < H W K<K<<HW
  • Δ p m q k \Delta p_{mqk} Δpmqk A m q k A _{mqk} Amqk 是第 m 个 attention head 的第 k 个 sampling point 的 sampling offset 和 attention weight

2、Multi-scale Deformable Attention Module:

在这里插入图片描述

  • l l l 表示输入特征的 level 索引
  • Δ p m l q k \Delta p_{mlqk} Δpmlqk A m l q k A _{mlqk} Amlqk 是第 l l l 个level 的特征图的 m 个 attention head 的第 k 个 sampling point 的 sampling offset 和 attention weight

3、Deformable Transformer Encoder:

作者使用上面提出的多尺度attention模块代替了 DETR 中的 attention 模块,encoder 的输入和输出是具有相同分辨率的多尺度特征图 { x l } l = 1 L − 1 ( L = 4 ) \{x^l\}_{l=1}^{L-1}(L=4) {xl}l=1L1(L=4)。encoder 中,作者从抽取了 Resnet 中从 C 3 C_3 C3 C 5 C_5 C5 stage 的输出特征图,其中 C l C_l Cl 的分辨率比输入特征低 2 l 2^l 2l

encoder 的输出是和输入分辨率相同的特征,query 和 key 都是从这些多尺度特征图中抽取的,并且作者增加了一个 scale-level embedding e l e_l el 来区分 query pixel 所来自的尺度,且该 scale-level embedding { e l } l = 1 L \{e_l\}_{l=1}^{L} {el}l=1L 是随机初始化并且参与训练的。

【Transformer】3、Deformable DETR: deformable transformers for end-to-end object detection_第3张图片

4、Deformable Transformer Decoder:

在 decoder 中,同时存在 cross-attention 和 self-attention。

  • cross-attention:key 是 encoder 的输出,query 是 object queries
  • self-attention:key 和 query 都是 object queries, object queries 中的元素各自进行 attention

因为 deformable attention 模块是为了将卷积特征图看做 key elements 一样处理,所以作者只替换了 cross-attention 模块为 deformable attention,

三、效果

【Transformer】3、Deformable DETR: deformable transformers for end-to-end object detection_第4张图片
【Transformer】3、Deformable DETR: deformable transformers for end-to-end object detection_第5张图片

四、可视化

为了了解 deformable detr 是通过关注哪里而得到的检测结果,作者绘制了最后一层预测结果中的每个元素的梯度绝对值(包括中心点,宽高,类别)如图5。

根据 Taylor 理论,梯度绝对值可以反应输出会有多大改变,即可以说明模型主要依赖哪些像素来预测每个项目。

从可视化可以看出,deformable detr 会关注在目标的末端区域,类似于 detr。

此外,deformable detr 在 x 轴方向和 w 上关注左右两边的边界,在 y 轴方向和 h 上关注上下的边界,且 deformable detr 同时会关注目标的内部来预测其类别。

2、多尺度 deformable attention 可视化

为了更好的理解多尺度形变attention学习到了什么,作者可视化了encoder和decoder最后一层的采样点和attention权重,如图 6 所示。

类似于 detr 中的观点,在encoder中已经能够区分每个实例了。但在 decoder 中,本文的模型更关注于全部的前景目标,而非 detr 中的末端区域。

结合图5,作者猜测原因在于 deformable detr 需要末端点和内部点来确定目标的类别,同时说明 deformable detr attention 模块能够根据不同 scale 和前景的shape来调整 sampling points 和 attention weights。

从蓝色到红色,表示 attention weight 从小到大
【Transformer】3、Deformable DETR: deformable transformers for end-to-end object detection_第6张图片

【Transformer】3、Deformable DETR: deformable transformers for end-to-end object detection_第7张图片

你可能感兴趣的:(Transformer,transformer,r语言,目标检测)