Deformable Detr
摘要部分:作者首先是肯定了Detr在目标检测上的贡献,然后指出了其不足,在收敛速度,以及对于小目标检测上仍然存在一定的漏洞,在此,作者提出了可变型detr,目的是针对每一个特征点,只针对周围小批量的特征点进行采样。有显著的表现,尤其是小目标检测上。
Introduction:第一段仍然是一顿夸(想知道为什么要夸,见我上一篇博客)。然后一个However开始diss detr,首先是收敛速度,作者表示,你在模型的复杂性上diss了faster-rcnn,但是你的训练周期要比faster-rcnn多十几倍,实用性还不如它(也算是为前辈鸣不平)。还有哈,人家使用的FPN可是能捕捉到小分辨率的特征的,而你只能检测在检测大物体上稍有优势,显得无比笨重。(果然欲抑先扬的手法让人看起来是有点不舒服)。然后又表示,这不是detr作者的错,你的想法很好,但是Transformer天然的在处理图像特征图上存在不足。在初始化的时候(自注意力机制),你对于特征图上所有像素点赋予的权重基本上是相同的,所以导致要训练很长的周期。而且,注意力权重的计算是像素点平方级的计算,这对算力和记忆力的要求很高。
然后开始介绍基于什么进行的改进,肯定了可变型卷积的作用,能够处理稀疏的空间位置。但是他缺乏关键元素的建模机制,但是这正是Detr成功的关键。采用可变型卷积的小部分采样机制,作为过滤器来突出关键元素(确实可以理解,一般整个图像中的物体都是在一定的范围嘛,且是闭合图形)。好处是聚集多维度特征(怎么这么像FPN)。作者还提到,探索出一种简单有效的迭代边界框细化机制?好神奇的名称,让我们接着往下看:
第三部分是相关工作:
Transformer不但有自注意力机制还有混合注意力机制,Transformer的长训练周期以及内存复杂性阻碍了其可扩展性。有一些方案可以解决这个问题:
第一个是在key上使用预定义的稀疏注意力模式,尽管将注意力模式限制在局部邻域可以降低复杂性,但是会丢失全局信息。作为补偿,以固定的时间间隔关注key元素,增加感受野。
第二个是学习数据依赖型稀疏注意力,基于局部敏感哈希的注意力。
第三类是探索自注意力机制中的低秩属性,通过在尺寸维度,而不是通道维度上进行线性投影来减少关键元素的数量。
收到的启发,有人提出卷积也有可变体,和动态卷积,可以被视作自注意力机制,而且相比自注意力机制要有效的多。“我们提出的多尺度可变形注意力模块可以通过注意力机制自然地聚合多尺度特征图,而无需这些特征金字塔网络的帮助。”原文是这么说的。
回味Transformer以及Detr:作者帮我们回顾了一下Transformer的知识。这里就不再赘述。
看图:
一图直接概括了deformable的特点。
计算过程:
将原本针对所有k相乘改为针对附近的k相乘。
现代物体检测框架通常是利用多尺度特征图以便更好的捕捉不同大小的物体,作者提出的可变型注意力模块自然可以扩展到多尺度特征图。
计算公式为:
- 退化为可变形卷积:当 L=1、K=1 且 ′Wm′ 被固定为单位矩阵时,提出的注意力模块退化为可变形卷积(Dai et al., 2017)。可变形卷积设计用于单尺度输入,仅关注每个注意力头的一个采样点。
- 高效变体:提出的多尺度可变形注意力模块可以被视为 Transformer 注意力的高效变体,其中通过可变形采样位置引入了预过滤机制。当采样点遍历所有可能的位置时,提出的注意力模块等同于 Transformer 注意力。
作者没有添加FPN结构,因为提出的多尺度可变型注意力模块本身就能在多尺度之间交换信息。同时作者做了实验,添加FPN并不会提高性能。对于每个查询像素,其参考点事其本身。为了识别每个查询像素点所在的特征层,作者在特征表示中添加了一个尺度级的嵌入,(除了位置嵌入外的另一个嵌入),提供了特征图的层级信息。在解码方面,保证其中的自注意力机制模块儿不改变,只改变其交叉注意力机制模块。
作者借鉴了两阶段检测的优势,在detr随机初始化queries的基础上加上了非随机因子。在第一阶段,模型将多尺度特征图中的每个像素视为一个对象查询。这意味着每个像素都有可能预测一个边界框,从而提高召回率。为了避免上述问题,模型去除了解码器,形成了一个仅包含编码器的 Deformable DETR,用于区域提议生成。模型从预测的边界框中选择得分最高的边界框作为区域提议。不使用NMS。