关于算法:DETR基于Transformer的目标检测新范式性能媲美Faster-RCNN-ECCV-2020-Oral

6次阅读

共计 3424 个字符,预计需要花费 9 分钟才能阅读完成。

DETR 基于规范的 Transorfmer 构造,性能可能媲美 Faster RCNN,而论文整体思维非常简洁,心愿能像 Faster RCNN 为后续的很多钻研提供了大抵的思路

起源:晓飞的算法工程笔记 公众号

论文: End-to-End Object Detection with Transformers

  • 论文地址:https://arxiv.org/abs/2005.12872
  • 论文代码:https://github.com/facebookresearch/detr

Introduction


  之前也看过一些工作钻研将 self-attention 利用到视觉工作中,比方 Stand-Alone Self-Attention in Vision Models 和 On the Relationship between Self-Attention and Convolutional Layers,但这些办法大都只是失去与卷积相似的成果,还没有很出彩的体现,而 DETR 基于 transformer 颠覆了支流指标检测的做法,次要有三个亮点:

  • Standard Transformer,DETR 采纳规范的 Transformer 和前向网络 FFN 进行特色的解决以及后果的输入,配合精心设计的 postion encoding 以及 object queries,不须要 anchor,间接预测 bbox 坐标以及类别。
  • Set prediction,DETR 在训练过程中应用匈牙利排序算法将 GT 和模型预测后果一一对应,使得在推理时的模型预测后果即为最终后果,不须要后续的 NMS 操作。
  • 指标检测性能超过了经典的 Faster RCNN,关上了指标检测钻研的新路线,并且 DETR 也能改装利用于全景宰割工作,性能也不错。

The DETR model


DETR architecture

  DETR 的整体架构很简略,如图 2 所示,蕴含 3 个次要局部:CNN 骨干、encoder-decoder transformer 和简略的前向网络(FFN)。

  • Backbone

  定义初始图片 $x_{img} \in \mathbb{R}^{3\times H_o\times W_o}$,应用惯例的 CNN 骨干生成低分辨率特色图 $f\in \mathbb{R}^{C\times H\times W}$,论文采纳 $C=2048$ 以及 $H,W=\frac{H_o}{32}, \frac{W_o}{32}$。

  • Transformer encoder

  先用 $1\times 1$ 卷积将输出降至较小的维度 $d$,失去新特色图 $z_o \in \mathbb{R}^{d\times H\times W}$,再将特色图 $z_o$ 空间维度折叠成 1 维,转换为 $d\times HW$ 的序列化输出。DETR 蕴含多个 encoder,每个 encoder 都为规范构造,蕴含 mullti-head self-attention 模块和前向网络 FFN。因为 transformer 是排序不变的,为每个 attention 层补充一个固定的地位 encoding 输出。

  • Transformer decoder

  decoder 也是 transformer 的规范构造,应用 multi-head self-attention 模块和 encoder-decoder 注意力机制输入 $N$ 个大小为 $d$ 的 embedding,惟一不同的是 DETR 并行地 decode $N$ 个指标,不须要自回归的机制。因为 decoder 也是排序不变的,采纳学习到的地位 encdoing(等同于 anchor)作为输出,称为 object queries。相似于 encoder,将地位 encoding 输出到每个 attention 层,另外还有空间地位 encoding,见图 10。decoder 将 $N$ 个 object queries 转换为 $N$ 个输入 embedding,而后独立地解码成 box 坐标和 class 标签,失去 $N$ 个最终的预测构造。因为了应用 self-attention 以及 encoder-decoder 注意力机制,模型可能全局地思考所有的指标。

  • Prediction feed-forward networks (FFNs)

  应用带 ReLU 激活的 3 层感知机以及线性映射层来解码失去最终的预测后果,感知机的暗藏层维度为 $d$。FFN 预测 $N 个 $ 归一化的核心坐标、高度、宽度以及 softmax 后的类别得分,因为 $N$ 个别大于指标个数,所以应用非凡的类别 $\emptyset$ 来标记无预测指标,相似于背景类。须要留神,最初用于输入的 FFN 与 encoder 和 decoder 里的 FFN 是不一样的。

  • Auxiliary decoding losses

  论文发现对 decoder 应用辅助损失进行训练非常无效,特地是帮忙模型输入正确的指标个数,所以在每个 decoder 层增加 FFN 和 Hugarian loss,所有的 FFN 共享参数,另外也应用了共享的 layer-norm 来归一化 FFN 的输出。

Object detection set prediction loss

  DETR 输入固定的 $N$ 个预测后果,最大的艰难在于依据 GT 对预测后果进行评分,须要先找到预测后果和 GT 的对应关系。定义 $y$ 为 GT 汇合,大小为 N,短少的用 $\emptyset$ 填充,$\hat{y}=\{\hat{y}_i\}^N_{i=1}$ 为预测后果,为了最好地匹配 GT 和预测后果,应用匈牙利算法 (二部图匹配办法) 找到可能最小化匹配损失的最优排列办法 $\sigma$:

  $\mathcal{L}_{match} (y_i, \hat{y}_{\sigma(i)})=-\Bbb{1}_{\{c_i \ne \emptyset\}}\hat{p}_{\sigma(i)}(c_i)+1_{\{c_i \ne \emptyset \} } \mathcal{L_{box}}(b_i, \hat{b}_{\sigma(i)})$ 为排序后 GT- 预测后果对的匹配损失,匹配损失思考类别预测以及 bbox 的类似度。$y_i=(c_i, b_i)$ 为 GT,其中 $c_i$ 为类别,$b_i\in [0, 1]^4$ 为绝对于图片大小的坐标向量(x, y, hetight, weight),$\hat{p}_{\sigma(i)}(c_i)$ 和 $\hat{b}_{\sigma(i)}$ 别离为预测的类别置信度和 bbox。这里的匹配过程相似于目前检测算法中 anchor 和 GT 的匹配逻辑,而区别在于这里的预测后果和 GT 是一一对应的。
  在找到最优排列办法 $\hat{\sigma}$ 后,计算 Hungarian loss:

  在实现时,思考分类不平衡,对 $c_i=\emptyset$ 的分类项降权 10 倍。
  与一般的指标检测办法预测 bbox 的差值不同,DETR 间接预测 bbox 的坐标。尽管这个办法实现很简略,但计算损失时会受指标尺寸的影响,论文采纳线性 $\mathcal{l}_1$ 损失和 IoU 损失来保障尺度不变,bbox 损失 $\mathcal{L}_{box}(b_i, \hat{b}_{\sigma (i)})$ 为 $\lambda_{iou}\mathcal{L}_{iou}(b_i, \hat{b}_{\sigma(i)})+\lambda_{L1} || b_i – \hat{b}_{\sigma(i)} ||_1$,bbox 损失须要用正样本数进行归一化。

Experiments


  DETR 性能超过了经典的 Faster RCNN。

  探索 encoder 层数对性能的影响

  每层 decoder 输入进行预测的准确率,能够看到逐层递增。

  地位 embedding 形式对性能的影响,这里的 spatial pos 对应图 10 的 spatial positional encoding,而 output pos 则对应图 10 的 Object queries。

  损失函数对性能的影响。

DETR for panoptic segmentation


  DETR 也能够在 decoder 的输入接一个 mask head 来进行全景宰割工作,次要利用了 DETR 模型的特征提取能力。

  与以后支流模型的全景宰割性能比照。

Conclustion


  DETR 基于规范的 Transorfmer 构造,性能可能媲美 Faster RCNN,而论文整体思维非常简洁,心愿能像 Faster RCNN 为后续的很多钻研提供了大抵的思路。



如果本文对你有帮忙,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

正文完
 0