Anchor DETR: Query Design for Transformer-Based Detector
(2021.9)
1.DETR的object query是学习的,没有物理意义也不能解释每个query注意哪。作者认为学习出来的object query不能关注特定的区域。本文提出来,object query的是基于anchor point的,这种设计下,每个object query只关注anchor点周围的目标,另外,每个object query可以在一个位置上预测多个目标(多模式)。
2.设计了一种注意力变体,可以减少内存成本。
Introduction
本文基于DETR做改进,肯定得先说一下DETR的优点就是一个可学习的object query集合来推理目标物和全局图像的关系。然后转折,说DETR局限了,也就是学习到的object query难以解释,也不能关注特定位置。
这幅图来自DETR原文,每个图像代表一个object query,点代表最后预测到的目标的位置,可以看到,各个关注的区域很大。没有关注特定位置所以限制了效果。
Motivation
- 回顾了CNN-based检测器,anchors包含可解释的物理信息并且对位置高度关联。所以提出了基于anchor point的新颖的query设计。我们编码anchor point的坐标作为object query,这样object query就有明确的物理意义了。
- 让每个object query关注特定位置,会带来问题:一个object query只能预测一个目标,如果那个location有多个目标物呢?作者给出解答:可以让其他的object query协助预测啊,可以让每个object query负责较大区域啊。
所以object query设计,对每个anchor point添加了多个模式,使每个anchor point可以预测多个目标。上图中分别表示三种模式的预测结果分布,能看出关注在anchor point周围。
- 设计了一种注意力变体-- Row-Column Decouple Attention (RCDA)。
它将2D的key feature解耦成1D的行特征和1D的列特征,然后依次进行行注意与列注意。RCDA可以在保障性能前提下减少内存成本。
相关工作
- Anchors in Object Detection
CNN-based的检测器可分为两种:anchor box与anchor point(anchor-free);
DETR两者都没有采用,而是一种直接预测目标的方式。
作者发现将anchor point引入object query更好。
- Transformer Detector
- Efficient Attention
Method
- Anchor Points
- Cnn-based检测器中,anchor point总是在feature map的相应位置。但在transformer-based检测器中更灵活,anchor point可以是被学习的点,均匀的网格点,或者其他人工划分的点。本文选择前两者。
- 均匀划分的点;(b)随机初始化,采用0-1的均匀分布并可以学习的点。
- 有了anchor point,预测边界框的中心位置(ˆCx,ˆCy)将被添加到相应的anchor point作为最终预测,就像在Deformable DETR中一样
- Attention Formulation
下标f表示特征,p表示position embedding。
DETR的decoder有两种:self-attention & cross-attention。
Self-attention中:Kf和Vf与Qf相同;Kp和Qp相同。
- Anchor Points to Object Query
(2)式中Qp是可学习的编码(in DETR),但是,本文提出了新的object query设计方式。
- Multiple Predictions for Each Anchor Point
- Row-Column Decoupled Attention
通过1-D全局平均池化,将wh*c的key-feature解耦成w*c 与 h*c。
Experiments