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

作者团队:商汤,中科大,港中文
来源:arXiv:2010.04159v2
代码:https://github.com/fundamentalvision/Deformable-DETR

title

摘要

这篇文章主要针对的是DETR收敛速度较慢以及空间分辨率因计算资源受限问题,提出使用deformable cnn的方式以临近区域采样计算attention取代transformer中全局的self-attention,提升了收敛速度并获得超于DETR的检测性能,尤其是小目标上。

简介

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

DETR存在的问题:

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

(个人感悟:其实DETR文章中的Figure7可以发现,queries具有一定的位置识别功能,也就是说类似于yolo中统计获得anchors尺寸,detr训练过程中实现了目标可能存在位置的统计与分配,显然收敛时间更长,另外全局的attention遍历消耗较大,而detr中需要两次该计算(一次encoder中的self-attention,一次decoder中的cross-attention))

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

于是本文将dcn 和 transformer结合,提出了deformable DETR,能够获得较快的收敛速度以及更好的检测性能。其核心是使用deformable attention 模块取代transformers attention 模块,如图1所示,对于关键点的特征使用期邻近较小集合内的元素进行相关性刻画。


deformable detr

除此之外,本文还提出了两种提升检测性能的策略:迭代标定框细化策略 和两阶段deformable DETR。

相关工作

注意力机制。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。

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

Transformers 和DETR回顾

transformers中的多头注意力机制,每个head单独刻画queries与keys之间的注意力加权,然后通过权重线性加权获得最终的输出,计算如下:

Eq.1

其中W_m'x_k是对key元素的编码, A_{mqk}是第k个key元素的权重,总共有|\Omega_k|个key值,所以A_{mqk}是归一化的权重向量,正比于exp\{\frac{z_q^TU_m^TV_mx_k}{\sqrt{C_v}}\}, z_q即query的特征向量。为了区分不同的位置,z_q, x_k一般是内容特征和位置编码的聚合。

Transformers具有两个显著的问题。1.较长的收敛周期。考虑一个最基本的问题,假设keys初始化时是独立同分布的,那么每个key的attention权重应该为1/N_k, N_k为key的个数,而针对于图像则是featmap中像素点的个数,于是让attention学习出具有显著性的特征向量就需要大量的训练迭代。

另一方面,query和key的数量严重影响了多头注意力模块的计算和存储。公式1中的计算复杂度为O(N_qC^2+N_k^2+N_qN_kC),对于图像而言,N_q, N_k可以认为是图像像素点,于是多头注意力机制的计算复杂度近似于feature map尺寸的平方。

DETR是建立在transformer 编解码结构上的一个框架,他首先利用匈牙利算法获得预测与gt的最佳匹配,然后再匹配基础上进行loss约束。

给定一张backbone提取的特征图, DETR利用标准的transformer的编解码器将其转换为若干queries的特征集合,然后在该特征基础上使用一个3层的前馈网络和一个线性层分别进行box的回归和类别的估计。

对于DETR而言,其encoder中self-attention的计算复杂度为O(H^2W^2C), 其decoder中cross-attention的计算复杂度为O(HWC^2+NHWC), self-attention的计算复杂度为N^2C+2NC^2, 显然复杂度主要来源于encoder的输入和输出的特征图尺寸。

方法

deformable attention module

一个公式就能看懂:

Eq.2

对比公式1就可以发现,这里主要不同在于k的取值有原先的整个集合\Omega_k具体为K个近邻点,而每个近邻点的位置通过\delta p_{mqk}学习获得,另外A_{mqk}也是由数据直接网络生成并进行softmax生成。


deformAttn和self-attention的不同点:

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

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


多尺度的deformable attention模块。

直接看公式:

Eq.3

其中l表示不同的尺度层,\phi_l(\cdot)表示将对应位置映射到第l层,可以发现和公式2相比,不同点在于公式2中从单层生成了K个点,而公式3是每层产生K个点,生成LK个采样位置,然后进行聚合。另外W_m还是每层共享的。

Deformable Transformer Encoder

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

可行变transformer解码器

在解码器中除了self-attention还有cross-attention。因为deformable attention作用在卷积层上,因此这里只有cross-attention可以被替代,而self-attention则保持不变。对于每一个object query,由线性层和sigmoid学习出其对应的参考点的2d归一化坐标,然后即可以使用deformable attention操作。

另外deformable DETR又把DETR拉回了相对坐标回归的路子,预测box时回归的是相对于参考点的距离,能够加快收敛。

Deformable DETR的其他改进和变种

Iterative Bounding Box Refinement 针对于多个decoder,每个decoder的输入是前一层的decoder的输出
两阶段deformable DETR: DETR中的queries是随机初始化的,而两阶段方式则是由Deformable DETR的变种生成初始的候选queries。在第一阶段,移除Deformable DETR中的decoder模块,仅使用encoder模块,每个像素位置都作为queries,直接预测box,然后选择score最大的box作为候选位置。其实第一阶段就有点类似于无锚框单阶段检测思路。

实验

执行细节

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

DETR的比较

comparision of DDETR with DETR

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

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

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


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

这里有点困惑的是实验没有对比 MSinputs +FPN而不使用MS attention的参照组,第一行和最后一行只能说明FPN不能进一步提升,没说单独使用FPN和单独使用MS attention的对比。

和SOTA方法的对比

image.png

总结

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

Deformable DETR的最实际的作用是大大缩短了网络的训练周期。让个人炼丹也能跑动。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容