【阅读笔记】Deformable DETR: Deformable transformers for end-to-end object detection

作者团队:商汤,中科大,港中文
来源:arXiv:2010.04159v2
代码:https://github.com/fundamentalvision/Deformable-DETR
在这里插入图片描述

文章简介

1.DETR

是第一个完全端到端的目标检测器。

DETR存在的问题:

  1. 需要较长的训练周期才能收敛
  2. 在小目标上的检测性能较差。主要是因为小目标需要大分辨率,而大分辨率带来DETR难以接受的计算复杂度。

2.DCN

Deformable Convolution(DCN)可以有效地利用稀疏局部位置。DCN一方面能通过改变感受野平衡不同尺寸的目标,且仅计算局部位置信息能提升计算速度,但其缺少刻画元素之间关系的能力。

3.本文工作

于是本文将 dcn 和 transformer 结合,提出了deformable DETR,能够获得较快的收敛速度以及更好的检测性能。其核心是使用 deformable attention 模块取代 transformers attention 模块,如图所示,对于关键点的特征使用期邻近较小集合内的元素进行相关性刻画。
在这里插入图片描述
除此之外,本文还提出了两种提升检测性能的策略:迭代标定框细化策略和两阶段deformable DETR。

相关工作

1.注意力机制

Transformers同时使用了自注意力机制和互注意力机制。最初的transformers时间消耗较大且需要的空间存储也较大导致很难推广。目前对其的改进分为三类:

  1. 使用预先定义的稀疏的 key 上注意力模式。其主要思路就是降低 key 的个数,比如 fixed local window 和网格状 key 点等
  2. 学习数据依赖型稀疏注意力模式。典型做法包括对 key 值进行聚类等
  3. 探索 self-attention 本身具有的低秩特性

另外一些变形的卷积操作,比如 deformable 和 dynamic cnn 都可以视为一种 self-attention 机制,只是其没有显式刻画元素之间的关系。
本文提出的 deformable attention 模块思想源于 deformable cnn,属于第二类,即由数据驱动获得对应的 keys,(但deformable cnn也是提前限制了 keys 的大概范围,所以也有点类似第1种)。deformable attention 模块仅从特征图中 queries 的邻域内预测固定数量的采样点计算 attention。

2.目标检测中的多尺度问题

一般来说都是采用多尺度特征解决该问题,比如FPN网络等,本文提出的多尺度 deformable attention 模块能够自主的通过注意力机制聚合多尺度特征图,而不需要特征金字塔网络。

Transformers 和DETR回顾

1.Transformers

transformers中的多头注意力机制,每个head单独刻画queries与keys之间的注意力加权,然后通过权重线性加权获得最终的输出,计算如下:
在这里插入图片描述
存在的两个问题:

  1. 较长的收敛周期,让attention学习出具有显著性的特征向量需要大量的训练迭代。
  2. query和key的数量严重影响了多头注意力模块的计算和存储。

2.DETR

DETR是建立在transformer 编解码结构上的一个框架,他首先利用匈牙利算法获得预测与gt的最佳匹配,然后再匹配基础上进行loss约束。给定一张backbone提取的特征图, DETR利用标准的transformer的编解码器将其转换为若干queries的特征集合,然后在该特征基础上使用一个3层的前馈网络和一个线性层分别进行box的回归和类别的估计。

方法

1.deformable attention module

在这里插入图片描述

2.deformAttn和self-attention的不同点

  • self attention是全局特征作为key值, 而deformAttn是在每个query附近自主学习K个key值
  • self attention中的权重是key和queries对的关系刻画,比如内积等,而deformAttn则是直接由线性层获得。

deformAttn位置选择和deformable cnn的不同点:deformable cnn是在正常的cnn kernel点上分别预测偏移量,而deformAttn则是在当前一个点上直接预测多个偏移量。

3.多尺度的deformable attention模块

在这里插入图片描述

4.Deformable Transformer Encoder

通过可形变注意力模块,作者直接替换了transformer注意力模块,每个encoder的输入输出都是相同分辨率的多尺度特征图,这里分辨率是指相同尺度下不同encoder的输入。多尺度的特征图直接来自ResNet的最后3个stage,而没有使用FPN,因为多尺度可形变注意力模块本身能够融合交换不同scale的信息。对于query像素位置,除了position信息外,还融合了该query所在的level。

5.Deformable Transformer Decoder

在解码器中除了self-attention还有cross-attention。因为deformable attention作用在卷积层上,因此这里只有cross-attention可以被替代,而self-attention则保持不变。对于每一个object query,由线性层和sigmoid学习出其对应的参考点的2d归一化坐标,然后即可以使用deformable attention操作。另外deformable DETR又把DETR拉回了相对坐标回归的路子,预测box时回归的是相对于参考点的距离,能够加快收敛。

实验

1.执行细节

多头注意力机制M=8,不同的scale K=4. 不同level的特征的encoder共享参数。adam优化器2x1e-4训练50个epoch, queries的个数从100增加到300. Focal Loss权重变为2.

2.DETR的比较

在这里插入图片描述

DC5表示对resnet网络最后一层stride以及空洞卷积保持分辨率的修改。DC5+表示已当前的训练设置相同设置DETR模型训练结果。可以发现Deformable DETR的最大贡献点在于训练周期的大幅缩短以及对小目标精度的提升。
这来自于两点:

  1. 可形变卷积提到全局attention,减少了运算量;
  2. 2.多尺度融合能够处理不同分辨率的目标;

另外还可以发现两个变种模型,性能提升都比较明显,表明先验知识其实有利于模型的精度,这应该是显然的,因为学习这种比较发散的统计规律精度还是没有专门给的先验好。

在这里插入图片描述

MS inputs: 表示多尺度输入,即不同的尺度的feature map独立的输入到encoder中,相当于每个尺度的feature map都经过detr有该尺度本身的预测。
MS attention:多尺度的deformable attention,相当于不同尺度的feature map具有一定的融合输入到encoder中。
K: 表示每层feature map中deformable cnn采样的点的个数。

3.和SOTA方法的对比

总结

本工作是对DETR的一种改进。重要的点包括:

  1. 使用deformable cnn的思想实现local attention替代了全局的attention,这个模块感觉对于检测任务或者分割任务是比较有用的,但对于图像分类这种任务估计作用不是很大。
  2. 另外就是multi-scale特征在encoder中通过deformable attention进行了融合,避免了FPN结构。
  3. 本文还提出了一些更进一步的变种,比如迭代策略和两阶段策略。这两种策略的本质都是引入了更好的先验知识,所以性能能进一步的提升。

Deformable transformers最实际的作用是大大缩短了网络的训练周期。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值