ECCV2022|凯明大神团队出品:一种用于目标检测的主流ViT架构,效果SOTA(已开源)

2022-12-01 16:33:43 浏览数 (2)

  • 链接:https://arxiv.org/abs/2203.16527
  • 代码地址:https://github.com/facebookresearch/detectron2/tree/main/projects/ViTDet
  • 作者单位:Meta AI Research(原FAIR)

1导读

今年3月30日,何恺明大神团队在ArXiv上发布了最新研究工作,目前该工作已被ECCV2022所录用,该工作主要研究了一种适用于目标检测任务的非层次化结构主流骨干网络ViTDet。该研究表明ViTDet无需重新设计用于预训练的分层主干网络,只对传统的FPN模块最后一个Stage进行微调(简化处理)即可。实验结果表明:若使用MAE(恺明大神一作提出的无监督学习方法)进行预训练,则ViTDet可以与之前强具竞争力的层次化主干网络(Swin和 MViTv2)的性能相匹敌。其中ViTDet MAE仅在ImageNet-1K上进行预训练然后直接进行迁移便可以在COCO数据集上达到61.3 AP的性能。

ps:恺明大神团队这应该是在重新挖掘ViT架构中主流骨干网络的设计原理,希望设计一种简易通用的视觉主流网络,以此来打通上下游间的任务,希望消除由于下游任务的不同而带来的约束限制,期待未来有一个视觉上下游任务都通用的主流骨干网络。

2核心创新点

  1. 这项工作中,我们主要追求一种仅使用普通、非分层主干结构的目标检测器。由于遵循ViT在追求通用特征时“减少归纳偏差”的准则下,采取通过更大的数据量,也能学到具有变换等变(translation equivariant)的特征,那应该也可以学到尺度等变(scale equivariant)的特征。因此,直接用ViT最后一层的特征,对它做简单的上采样和下采样便可以实现尺度特征变换,由此主干backbone的设计也可不受目标检测任务的约束。
  2. 我们发现在普通的 ViT 主干中,分层次结构设计并不是必需的。本文重新基于FPN结构设计了一种更简化的特征金字塔结构,它可以更好地在backbone和物体检测的neck/head中,仅通过使用微调手段就可搭建两者的桥梁。
  3. 为了有效地从高分辨率图像中提取特征,ViTDet使用简单的非重叠窗口注意力(无需移动窗口)。其中少量的跨窗口块可能是全局注意力或卷积操作,只用于传播信息。这些调整仅在微调期间进行,不会影响预训练过程。
  4. 本文提出的方法保持了将特定于检测器的设计与与任务无关的主干分离的理念。这种理念与重新设计 Transformer主干(比如PVT、 Swin、 MViTv2等)以支持多尺度层次结构的趋势形成鲜明对比。本文提出的方法检测特定的先验知识仅在微调期间引入,无需在预训练中先验地调整主干网络设计。这使得我们的检测器可以与各个研究方向任务上的ViT兼容,而且不再受分层次结构设计的约束,例如模块设计、自监督学习和尺度缩放策略。

3模块设计

本文主要目标是消除骨干网络中的分层结构约束,主要探索一种适用于目标检测的普通骨干网络。为此,我们的目标是进行最少的修改,以仅在微调期间便可使简单的主干网络适应目标检测任务。由于FPN是构建用于目标检测的特征金字塔的常见解决方案。若主干网络采用分层结构,FPN主要可用来结合早期阶段的高分辨率特征和后期阶段的更强语义特征,其中主要通过自上而下和横向连接的路径实现的(如上图 左所示)。若主干网络不采用分层次结构,那么FPN就体现不出来作用,因为主干中的所有特征图都具有相同的分辨率。本文我们对FPN结构进行简化,仅使用主干中的最后一个极具语义信息的特征图,并在最后一个特征图上并行应用一组卷积或反卷积来生成多尺度特征图。具体来说,使用标准的ViT步长stride=16,然后利用下采样卷积得到1/32,1/16的尺度特征图,利用反卷积操作得到1/8,1/4尺度特征图。这个简化的特征金字塔结构如上图(C)所示,本文采用的主干网络可作为物体检测任务中的backbone和neck的纽带。

本文还采用几个跨窗口的模块来计算Window attention,对于给定高分辨率特征图我们将其划分为常规的非重叠窗口,在每个窗口内计算自注意力。与 Swin 不同,我们不会跨层“移动”窗口。为了允许信息传播,我们使用了极少数(默认情况下,4 个)可以传播的块。我们将预训练的主干网络平均分成 4 个块子集(例如,对于 24 块 ViT-L,每个子集中有 6 个)。我们在每个子集的最后一个块中应用传播策略。我们研究两种策略:

(i) Global propagation。在每个子集的最后一个块中执行全局自我注意。由于全局块的数量很少,内存和计算成本是可行的。这类似于MViTv2中与 FPN 联合使用的网格窗口注意力。

(ii) Convolutional propagation。作为替代方案,我们在每个子集之后添加一个额外的卷积块。卷积块是一个残差块,由一个或多个卷积和一个恒等连接操作组成。该块中的最后一层被初始化为零,因此该块的初始状态是一个标记。将块初始化为身份允许我们将其插入到预训练主干中的任何位置,而不会破坏主干的初始状态。我们的骨干适应很简单,并且使检测微调与全局自注意力预训练兼容。

4实验结果展示

A simple feature pyramid is sufficient

  • 该实验证明在利用尺度特征图信息交互时,只需在每个模块的最后阶段做处理即可,而且应用简化后的特征金字塔结构能带来更大的性能增益。

Masked Autoencoders provide strong pre-trained backbones

  • 采用MAE无监督方法进行预训练能带来更多的性能增益

Comparisons with Hierarchical Backbones

System-level comparisons with the leading results on COCO

5总结

本文的工作表明plain-backbone 检测器是一个很有前途的研究方向。这种方法可以在很大程度上保持通用主干和下游特定任务设计的独立性——这在基于 ConvNet 的研究中是普遍适用的,但在基于 Transformer 的研究中却不是。 本文主要通过提出基于ViT的骨干网络与具体任务结合的方法,将预训练与微调分离开来。例如,在自然语言处理 (NLP) 中,通用预训练 (GPT 、BERT ) 极大地推动了该领域的发展,并一直支持各种下游任务。在这项研究中,我们的普通骨干检测器受益于 MAE 中现成的预训练模型。我们希望这种方法也有助于拉近计算机视觉和 NLP 领域的距离。

0 人点赞