Dynamic Head学习笔记Dynamic Head: Unifying Object Detection Heads with AttentionsAbstract目标检测中定位与分类相结合的复杂性导致了方法的蓬勃发展。以往的工作试图提高各种目标检测头的性能,但未能提出统一的观点。本文提出了一种新的动态头部框架,将目标检测头部与注意力统一起来。该方法通过在特征层次之间、空间位置之间和输出通道内连贯地组合多个自注意机制实现尺度感知、空间位置之间和任务感知,在不增加计算开销的情况下显著提高了目标检测头部的表示能力。进一步的实验证明了所提出的动态头在COCO基准上的有效性和效率。使用标准的ResNeXt-101DCN骨干,我们大大提高了流行的对象检测器的性能,并在54 AP达到了最新的最先进水平。此外,使用最新的变压器骨干和额外的数据,我们可以将当前最好的COCO结果推到60.6 AP的新记录。代码将在 https://github.com/microsoft/DynamicHead.1. Introduction物体检测是在计算机视觉应用中回答“什么物体位于哪里”的问题。在深度学习时代,几乎所有的现代目标检测器[11,23,12,35,28,31,33]都具有相同的范式——一个是特征提取的骨干,一个是定位和分类任务的头部。如何提高目标检测头的性能已成为现有目标检测工作中的一个关键问题。研制一个好的目标探测头的挑战可以概括为三类。首先,头部应该具有尺度感知能力,因为一个图像中经常会同时存在多个具有截然不同尺度的物体。其次,头部应该具有空间意识,因为在不同的视角下,物体通常以截然不同的形状、旋转和位置出现。第三,头部需要具有任务意识,因为对象可能具有不同的表示(例如,边界框[12],中心[28]和角点[33]),它们拥有完全不同的目标和约束。我们发现最近的研究[12,35,28,31,33]只关注于通过各种方式解决上述问题之一。如何开发一个统一的头脑,同时解决所有这些问题,仍然是一个悬而未决的问题。在本文中,我们提出了一种新的检测头,称为动态头,将尺度感知、空间感知和任务感知统一起来。如果我们考虑一个主干的输出(即检测头的输入)作为一个三维张量,其维度为水平×空间×通道,我们发现这样一个统一的头可以被视为一个注意学习问题。一个直观的解决方案是在这个张量上建立一个完整的自我注意机制。但是,优化问题的求解难度太大,计算成本也难以承受。相反,我们可以在特征的每个特定维度上分别部署注意机制,即水平、空间和渠道。可感知尺度的注意模块只部署在水平尺寸上。它学习各种语义级别的相对重要性,以根据单个对象的规模在适当的级别上增强特征。感知空间的注意模块部署在空间维度上(即高度×宽度)。它学习空间位置上的相干判别表示。任务感知的注意模块部署在通道上。它根据来自对象的不同卷积核响应,引导不同的特征通道分别偏爱不同的任务(例如,分类、箱型回归和中心/关键点学习)。这样,我们明确地实现了检测头的统一注意机制。虽然这些注意机制分别应用于特征张量的不同维度上,但它们的性能可以相互补充。MS-COCO基准的广泛实验证明我们方法的有效性。它为学习更好的表示提供了很大的潜力,可用于改进各种对象检测模型,AP增益为1.2% ~ 3.2%。在标准ResNeXt101-DCN主干下,该方法实现了COCO上54.0% AP的新水平。此外,与EffcientDet[27]和SpineNet[8]相比,dynamic head的训练时间为1/20,但性能更好。此外,利用最新的变压器骨干和来自自我训练的额外数据,我们可以将当前的最佳COCO结果推到一个新的记录,即60.6 AP(详见附录)。2. Related Work近年来的研究主要从尺度感知、空间感知和任务感知等方面对目标检测技术进行了研究。Scale-awareness.由于自然图像中经常存在尺度差异很大的物体,因此许多研究都认为尺度感知在物体检测中的重要性。早期的研究已经证明了利用图像金字塔方法对多尺度训练的重要性[6,24,25]。提出了用特征金字塔[15]代替图像金字塔,通过将下采样的卷积特征金字塔连接起来,提高效率,已成为现代目标探测器的标准组件。然而,来自不同层次的特征通常是从网络的不同深度提取的,这造成了明显的语义差距。为了解决这一问题,[18]提出了一种基于特征金字塔的自底向上路径增强底层特征的方法。后来,[20]通过引入平衡采样和平衡特征金字塔对其进行了改进。最近,[31]提出了一种基于改进的三维卷积的金字塔卷积来同时提取尺度和空间特征。在此工作中,我们在检测头中提出了一种尺度感知的注意,它使各种特征级别的重要性自适应于输入。Spatial-awareness.以前的工作试图提高对象检测中的空间意识,以更好地进行语义学习。卷积神经网络在学习图像[41]中存在的空间变换方面受到限制。一些工作通过增加模型能力(大小)[13,32]或涉及昂贵的数据扩充[14]来缓解这一问题,导致推理和训练的计算成本极高。之后,提出了新的卷积算子来提高空间变换的学习能力。[34]提出使用扩展卷积从指数扩展的接受野中聚合上下文信息。[7]提出了一种具有AD条件自学习偏移量的可变形卷积对空间位置进行采样。[37]通过引入一个学习到的特征振幅来重新定义偏移量,并进一步提高了它的能力。在这项工作中,我们在检测头中提出了一种空间感知的注意,它不仅将注意应用到每个空间位置,而且还自适应地将多个特征级别聚合在一起,以学习更具辨别性的表示。Task-awareness.对象检测源于两阶段范式[39,6],首先生成对象提案,然后将提案分类到不同的类和背景中。[23]通过引入区域提议网络(RPN)将两个阶段定义为单个卷积网络,从而形式化了现代两阶段框架。后来,一级目标检测器[22]因其效率高而受到欢迎。[16]通过引入特定于任务的分支进一步改进了体系结构,从而在保持以前单级检测器的速度的同时,超越了两级检测器的准确性。最近,越来越多的研究发现,对象的各种表示形式可以潜在地提高性能。[12]首先演示了结合边界框和对象分割掩码可以进一步提高性能。[28]提出使用中心表示以逐像素预测的方式解决目标检测问题。[35]进一步改进了基于中心的方法的性能,根据对象的统计特征自动选择正、负样本。后来,[33]将目标检测作为代表性的关键点来简化学习。[9]进一步提高了性能,将每个对象作为一个三元组(而不是一对关键点)进行检测,以减少错误的预测。最近,[21]提出了从每个边界的极值点提取边界特征来增强点特征,并存档了最先进的性能。在这项工作中,我们在检测头中提出了一种任务感知注意力,它允许将注意力部署在通道上,可以自适应地支持各种任务,无论是单级/两级检测器,还是基于盒/中心/关键点的检测器。更重要的是,在我们的头部设计中,所有上述属性都被整合到一个统一的注意机制中。据我们所知,这是第一个通用的探测头部框架,它向理解注意力在目标探测头部成功中所起的作用迈出了一步。3. Our Approach3.1. Motivation为了在一个统一的目标检测头中同时实现尺度感知、空间感知和任务感知,我们需要大致了解以前对物体探测头的改进。给定特征金字塔中L个不同级别的特征Fin={ Fi}i=1LF_{in} = \{F_i\}^L_{i=1}Fin​={Fi​}i=1L​的串联,我们可以使用上采样或下采样将连续的级别特征调整为中值级别特征的规模。重新缩放的特征金字塔可以表示为一个四维张量F∈RL×H×W×CF∈R^{L×H×W ×C}F∈