Kaiming在2022年发表了一篇Exploring Plain Vision Transformer Backbones for Object Detection。
文章的主要目的是追求一种包含较少诱导偏差的主干。原因在于:允许使用非检测数据(如ImageNet)对任务无关组件进行预训练可能提供一个优势,因为检测训练数据相对稀缺。主干可以使用大规模数据和/或自我监督进行有效训练。相比之下,检测任务特定组件的可用数据相对较少。
文章其中针对ViT作为目标检测backbone的情况设计了simple feature pyramid的金字塔结构,与传统FPN的结构对比如下图所示。
在作者设计的结构中,只使用来自backbone的最后一个特征映射,它应该具有最强的特性。我们应用一组卷积或反卷积并行产生多尺度特征地图。具体来说,使用默认的规模为1/16(步幅=16)的ViT特征映射,我们使用步幅{2,1,1/2,1/4}的卷积产生了规模{1/32,1/16,1/8,1/4}的特征映射,其中步幅分数表示反卷积。
由于卷积网络的backbone网络一直是多尺度、分层的体系结构,它影响了多尺度(如FPN)目标检测的头部设计。而与典型的ConvNets不同,原始的ViT是一个普通的、非层次结构的架构,它在整个过程中维护一个单尺度的特征图。在分层骨干中,上采样通常借助于侧连接;在普通的ViT主干中,作者根据经验发现这是没有必要的,简单的反卷积就足够了。作者假设这是因为ViT可以依赖于位置嵌入作为编码位置,也因为高维ViT补丁嵌入不一定会丢弃信息。
作者比较了两种同样构建在普通骨干网上的FPN变体。在第一种变体中,骨干网被人为地划分为多个阶段,以模仿分层骨干网的各个阶段,并应用横向和自顶向下连接。第二种变体类似于第一种,但只使用最后一种地图,而不是划分的阶段。实验证明证明这些FPN变体是不必要的,如下图所示。
为了允许信息传播,作者使用了少数(默认为4)块可以跨窗口。将一个预先训练的backbone平均分成4个区块子集(例如,对于24块ViT-L,每个子集6个区块)。作者在每个子集的最后一块执行全局自我关注。作者对框架结构/跨窗口块的位置等进行ablation experiments如下表所示。
COCO数据集上的系统级别的比较如下所示: