原文链接
[2010.04159] Deformable DETR: Deformable Transformers for End-to-End Object Detection (arxiv.org)https://arxiv.org/abs/2010.04159
原文笔记
What
作者结合了可变形卷积的稀疏空间采样和 Transformer 的关系建模能力的优点。提出了Deformable Detr
Deformable Detr具有快速收敛,高计算效率、高内存效率的优点
Why
1、Detr收敛速度慢(注意力的初始化问题,初始的时候Q和所有K算出的softmax值都很接近;以及注意力的计算特性所造成的,2,3也是原因之一)
2、Detr的计算量大(Q要和每个K计算attention,3也是原因之一)
3、Detr参数量多(这是结构问题造成的 backbone+6enclayer+6declayer)
4、Detr特征空间的分辨率有限无法处理小物体(注意力计算的复杂度限制了使用大尺度的特征图或原图,高分辨率的特征图导致DETR不可接受的复杂性(一次注意力计算就是token^2的计算量,而如果要求特征图的尺寸小的话就对检测小物体非常不利;DETR中也没有多尺度的特征,不能同时的高效检测大物体和小物体)
Challenge
Idea
deformable detr与detr的不同之处:
deformable detr与detr的总体流程基本相同,都是用backbone提取特征再输入transformer的encoder和decoder处理再经过分类头和回归头得到预测类别和预测框
deformable detr相较于detr有三个改进优化点
1、deformable detr采用多尺度特征来解决同时检测大尺度物体和小尺度物体的问题(大尺度特征对检测小物体有帮助,小尺度特征对检测大物体有帮助)
提取resnet50提取的特征的后三层并且将最后一层再进行一个3*3卷积,一共是有四层特征,将他们的通道数统一为256以便拼接,在每层特征后面接一个参数为32(32个组每个组是8)的GroupNorm(因为使用的是八个头的多头注意力),之后沿着通道维度拼接起来。
2、deformable detr将detr中encoder的的multiheadselfattention改成了multiscaledeformableattention(MSDrformAtten) (K是Q自己学习到的,降低了计算量,提高了收敛速度)
3、deformable detr将detr中decoder的multiheadcrossattention改成了multiscaledeformableattention(MSDrformAtten)(K是Q自己学习到的,降低了计算量,提高了收敛速度)(但是decoder中的multiheadcrossattention并没有改动)
总结就是deformable attention解决了attention的计算复杂度问题
多尺度deformable attention解决了多尺度特征图问题
参考点的提出为query初始化提出了新的思路(但本工作中仍然采取的是随机初始化)
原文翻译
Abstract
DETR最近被提出以消除对目标检测中许多手工设计的组件的需求,同时表现出良好的性能。然而,由于Transformer注意模块在处理图像特征映射方面的局限性,它收敛速度慢,特征空间分辨率有限。为了缓解这些问题,我们提出了 Deformable DETR,其注意力模块只关注参考点周围的一小部分的关键采样点。可变形 DETR 可以比 DETR(尤其是在小物体上)获得更好的性能,训练时间减少了 10 倍。在 COCO 基准上的广泛实验证明了我们方法的有效性。代码发布在 https://github.com/fundamentalvision/Deformable-DETR。
1 Introduction
尽管 DETR 具有有趣的设计和良好的性能,但 DETR 有自己的问题:(1)它需要更长的训练时期才能收敛到现有的对象检测器。例如,在 COCO (Lin et al., 2014) 基准测试中,DETR 需要 500 个 epoch 才能收敛,这比 Faster R-CNN 慢大约 10 到 20 倍 (Ren et al., 2015)。(2) DETR在检测小物体时性能相对较低。现代目标检测器通常利用多尺度特征,从高分辨率特征图中检测小物体。同时,高分辨率特征图导致 DETR 的不可接受的复杂性。上述问题主要归因于 Transformer 组件在处理图像特征图方面的不足。在初始化时,注意力模块将几乎均匀的注意力权重转换为特征图中的所有像素。学习注意力权重以专注于稀疏有意义的位置,需要长时间的训练 epoch。另一方面,Transformer 编码器中的注意力权重计算是关于像素数的二次计算。因此,处理高分辨率特征图具有非常高的计算和内存复杂性。
在图像域,可变形卷积 (Dai et al., 2017) 是一种强大且高效的机制来关注稀疏的空间位置。它自然避免了上述问题。然而它缺乏元素关系建模机制,这是 DETR 成功的关键。
在本文中,我们提出了可变形DETR,它缓解了DETR收敛速度慢、复杂度高的问题。它结合了可变形卷积的稀疏空间采样和 Transformer 的关系建模能力的优点。我们提出了可变形注意模块,该模块将一小组采样位置作为从所有特征图像素中突出关键元素的预过滤器。该模块可以自然地扩展到聚合多尺度特征,而无需 FPN (Lin et al., 2017a) 的帮助。在可变形DETR中,我们利用(多尺度)可变形注意模块来代替处理特征映射的Transformer注意模块,如图1所示。
可变形DETR为我们利用端到端对象检测器的变体开辟了可能性,这要归功于其快速收敛和计算与内存效率。我们探索了一种简单有效的迭代边界框细化机制来提高检测性能。我们还尝试了两阶段可变形DETR,其中区域建议也是由可变形DETR的Vaiant生成的,进一步馈送到解码器进行迭代包围盒细化。
在 COCO (Lin et al., 2014) 基准上的广泛实验证明了我们方法的有效性。与 DETR 相比,可变形 DETR 可以在训练 epoch 少 10 倍的情况下获得更好的性能(尤其是在小物体上)。提出的两阶段可变形DETR变体可以进一步提高性能。代码在 https://github 发布。com/fundamentalvision/Deformable-DETR。
2 Related Work
Efficient Attention Mechanism.Transformers (Vaswani et al., 2017) 包含自注意力机制和交叉注意机制。Transformers 最著名的痛点之一是大量关键元素数字的高时间和内存复杂性,这在许多情况下阻碍了模型的可扩展性。最近,已经做出了许多努力来解决这个问题(Tay 等人,2020b),这在实践中可以大致分为三类。
第一类是在键上使用预定义的稀疏注意力模式。最直接的范例是将注意力模式限制为固定的局部窗口。大多数作品(Liu et al., 2018a; Parmar et al., 2018; Child et al., 2019; Huang et al., 2019; Ho et al., 2019; Wang et al., 2020a; Hu et al., 2019; Ramachandran et al., 2019; Qiu et al., 2019; Beltagy et al., 2020; Ainslie et al., 2020; Zaheer et al., 2020)遵循这种范式。尽管将注意力模式限制在局部邻域可以降低复杂性,但它会丢失全局信息。为了弥补这一点,Child等人(2019);Huang等人(2019);Ho等人(2019);Wang等人(2020a)以固定间隔关注关键元素,以显著增加键的接受域。Beltagy等人(2020);Ainslie等人(2020);Zaheer等人(2020)允许少量可以访问所有关键元素的特殊令牌。Zaheer等人(2020);邱等人(2019)还添加了一些预先固定的稀疏注意模式来直接关注遥远的关键元素。
第二类是学习与数据相关的稀疏注意力。Kitaev等人(2020)提出了一种基于局部敏感哈希(LSH)的注意,它将查询和键散列到不同的箱子中。Roy等人(2020)提出了一种类似的想法,其中k-means找出最相关的键。Tay等人(2020a)学习块排列进行块稀疏注意。
第三类是探索自注意力中的低秩属性。Wang等人(2020b)通过对大小维度而不是通道维度的线性投影来减少关键元素的数量。Katharopoulos等人(2020);Choromanski等人(2020)通过核化近似重写自我注意的计算。
在图像域,高效注意机制的设计(例如,Parmar等人(2018);Child等人(2019);黄等人(2019);Ho等人(2019);Wang等人(2020a);Hu等人(2019);Ramachandran等人(2019))仍然局限于第一类。尽管理论上降低了复杂性,Ramachandran等人(2019);Hu等人(2019)承认,由于内存访问模式的内在限制,这种方法的实现速度比具有相同FLOPs的传统卷积慢得多(至少慢3倍)。
(慢的原因大概是因为这个稀疏注意力他读取的输入在内存中不是连续的,所以需要大量的读写时间)
另一方面,如Zhu等人(2019a)中所讨论的,有卷积的变体,如可变形卷积(Dai等人,2017;Zhu等人,2019b)和动态卷积(Wu等人,2019),也可以被视为自我注意机制。特别是,可变形卷积在图像识别方面比 Transformer self-attention 更有效和高效。同时,它缺乏元素关系建模机制。
我们提出的可变形注意模块受到可变形卷积的启发,属于第二类。它只关注从查询元素的特征预测的一小组固定采样点。与Ramachandran等人(2019)不同;Hu等人(2019),在相同的FLOPs下,可变形注意比传统卷积略慢。
用于目标检测的多尺度特征表示。对象检测的主要困难之一是有效地表示不同尺度的对象。现代目标检测器通常利用多尺度特征来适应这一点。作为开创性的工作之一,FPN (Lin et al., 2017a) 提出了一种自上而下的路径来组合多尺度特征。PANet (Liu et al., 2018b) 在 FPN 之上进一步添加了一个自下而上的路径。Kong等人(2018)通过全局注意操作将所有尺度的特征结合起来。Zhao等人(2019)提出了一种u型模块来融合多尺度特征。最近,NAS-FPN (Ghiasi et al., 2019) 和 Auto-FPN (Xu et al., 2019) 被提议通过神经架构搜索自动设计跨尺度连接。Tan等人(2020)提出了BiFPN,它是PANet的重复简化版本。我们提出的多尺度可变形注意模块可以自然地通过注意力机制聚合多尺度特征图,而无需借助这些特征金字塔网络。
3 REVISITING TRANSFORMERS AND DETR
Transformers 中的多头注意力。Transformers (Vaswani et al., 2017) 是一种基于机器翻译注意力机制的网络架构。给定一个查询元素(例如,输出句子中的目标词)和一组关键元素(例如输入句子中的源词),多头注意力模块根据衡量查询键对兼容性的注意力权重自适应地聚合关键内容。为了允许模型关注来自不同表示子空间和不同位置的内容,不同注意力头的输出与可学习的权重线性聚合。设q∈Ωq索引一个表示特征为zq∈RC的查询元素,k∈Ωk索引一个表示特征为featurexk∈RC的键元素,其中C为特征维度,Ωq和Ωk分别表示查询元素和键元素的集合。然后计算多头注意力特征
Transformers 有两个已知的问题。一种是 Transformer 在收敛之前需要很长的训练计划。假设查询和关键元素的数量分别为 Nq 和 Nk。通常,在适当的参数初始化下,Umzq 和 Vmxk 遵循均值为 0 的分布,方差为 1,当 Nk 很大时,注意力权重 Amqk ≈ 1/Nk 。这将导致输入特征的模糊梯度。因此,需要长时间的训练计划,以便注意力权重可以专注于特定的键。在关键元素通常是图像像素的图像域中,Nk可能非常大,收敛繁琐。
另一方面,随着查询和关键元素众多,多头注意力的计算和内存复杂度可能非常高。式1的计算复杂度为O(Nq C2 + NkC2 + Nq NkC)。在图像域,其中查询和关键元素都是像素 Nq = Nk >> C,复杂度由第三项主导,如 O(Nq NkC)。因此,多头注意力模块随着特征图大小的二次复杂度增长而受到影响。
DETR.DETR (Carion et al., 2020) 建立在 Transformer 编码器-解码器架构之上,并结合基于集合的匈牙利损失,通过二分匹配强制每个真实边界框的唯一预测。我们简要回顾网络架构如下。
给定由CNN主干(例如ResNet (He et al., 2016))提取的输入特征映射x∈RC×H×W, DETR利用标准Transformer编码器-解码器架构将输入特征映射转换为一组对象查询的特征。一个3层前馈神经网络(FFN)和一个线性投影被添加到对象查询特征(由解码器产生)的顶部作为检测头。FFN作为回归分支预测边界框坐标esb∈[0,1]4,其中b = {bx, by, bw, bh}编码归一化的框中心坐标、框高和框宽(相对于图像大小)。线性投影作为分类分支产生分类结果。
对于DETR中的Transformer编码器,查询元素和键元素都是特征映射中的像素。输入是ResNet特征映射(带有编码的位置嵌入)。设H和W分别表示特征映射的高度和宽度。自关注的计算复杂度为ofO(h2w2c),随空间大小呈二次增长。
对于DETR中的Transformer解码器,输入既包括来自编码器的特征映射,也包括由可学习的位置嵌入(例如,N = 100)表示的N个对象查询。解码器中的注意模块有两种类型,即交叉注意模块和自注意模块。在交叉关注模块中,对象查询从特征映射中提取特征。查询元素是对象查询,关键元素是来自编码器的输出特征映射。其中,Nq = N, Nk = H × W,交叉关注复杂度为0 (HW C2 + N HW C),复杂度随特征映射的空间大小线性增长。在自关注模块中,对象查询之间相互作用,从而捕获它们之间的关系。query和key元素都是对象查询。其中,Nq = Nk = N,自注意模块的复杂度为0 (2nc2 + n2c)。对于中等数量的对象查询,复杂性是可以接受的。
DETR是目标检测的一个有吸引力的设计,它消除了对许多手工设计的组件的需求。但是,它也有自己的问题。这些问题主要归因于 Transformer 注意力在处理图像特征图作为关键元素方面的缺陷:(1)DETR 在检测小物体方面的性能相对较低。现代目标检测器使用高分辨率特征图来更好地检测小物体。然而,高分辨率特征图会导致 DETR 的 Transformer 编码器中的自注意力模块的不可接受的复杂性,这与输入特征图的空间大小具有二次复杂度。(2) 与现代目标检测器相比,DETR 需要更多的训练时期才能收敛。这主要是因为处理图像特征的注意力模块很难训练。例如,在初始化时,交叉注意模块在整个特征图上几乎是平均注意力。虽然,在训练结束时,注意力图被学习非常稀疏,只关注对象的边界,DETR似乎需要很长时间的训练日程来学习注意力图的这种显著变化
4 METHOD
4.1 DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION
Deformable Attention Module.将Transformer的Attention应用到图像特征的核心问题是它将同样注意所有可能的空间位置,为了解决这个问题,我们提出了一个可变形注意模块(a deformable attention module)受可变形卷积的启发,可变形注意力模块只关注参考点周围的一小组关键采样点,不考虑特征图的空间大小,如图二所示,通过为每个查询只分配少量固定数量的键,可以缓解收敛性和特征空间分辨率的问题。
给定一个输入特征图 x ∈ R^C×H×W ,令 q 索引具有内容特征 zq 和 2d 参考点 pq 的查询元素,可变形注意力特征由下式计算
这里强烈建议去看enzo大神的讲解视频,这个有点不太好理解
Deformable DETR| 3、Deformable Attention、MSDeformAttention、流程讲解_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Uj411z7QU/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=ae3f1ec4d3d413e8531d6bbc07cd4394
多尺度可变性卷积公式
到下篇
Deformable Transformer论文笔记(2)-CSDN博客https://blog.csdn.net/Zssss12/article/details/142767031?sharetype=blogdetail&sharerId=142767031&sharerefer=PC&sharesource=Zssss12&spm=1011.2480.3001.8118