Unleashing Vanilla Vision Transformer with Masked Image Modeling for Object Detection

Unleashing Vanilla Vision Transformer with Masked Image Modeling for Object Detection,第1张

MIMDet

Title:Unleashing Vanilla Vision Transformer with Masked Image Modeling for Object Detection

paper:https://arxiv.org/abs/2204.02964

code:https://github.com/hustvl/MIMDet

华中科技大学&腾讯PGG

Abstract

​ 本文提出了一种方法,有效地适应掩蔽图像建模(MIM)预先训练的ViT用于目标检测,这是基于我们的观察:为了构建用于目标检测的多尺度表示,随机初始化的compact convolutional stem取代了预先训练的convolutional stem,其中间特征可以自然地作为特征金字塔的高分辨率输入,而不需要上采样。而预先训练的ViT只被认为是检测器的主干的第三阶段,而不是整个特征提取器,从而产生了ConvNet-ViT混合架构。提出的检测器名为MIMDET,使MIM预训练的ViT在COCO上超过2.3 A P B o x AP^{Box} APBox和2.5 A P M a s k AP^{Mask} APMask的Swin Transformer。

Introduction

​ 在图像和视频级识别任务中,MIM预训练的ViT引人注目的迁移学习结果激励我们:对于更具有挑战性的对象或实例级识别任务,例如对象检测和实例分割,是否有可能也从强大的MIM预训练表示中获益?

​ 但是不幸的是,在VIT模型预训练在检测和分割任务的时候,直接处理对象级识别所需的高分辨率图像,使全局注意的复杂度与空间维度呈二次关系。

​ 一种方法是在微调阶段重新引入window attention或其变体,这有助于降低注意的成本。然而,使用窗口注意会导致预训练和微调之间的差异,因为窗口分区隐式地将输入视为二维规则网格,而普通的ViT则是预训练来处理一维序列。

​ 受MIM预训练的启发,这项工作追求一种不同的解决方案,以转移一个普通的ViT的对象级识别:在目标检测微调阶段,只向MIM预训练的ViT编码器提供部分输入,例如,只有25%的∼和50%的输入序列进行随机采样。输出序列片段然后补充可学习的掩码标记,并由一个小的解码器处理,以恢复完整的特征。

​ 这种看似大胆的方法在准确性-资源权衡方面却惊人地好。动机是:

  • (i)在很长一段时间内,二维连续规则被认为是来自卷积神经网络(ConvNets)以及视觉理解中的层次ViT变体的实际输入。与它们不同的是,ViT将输入视为一个单独的令牌/嵌入序列。

​ 因此,ViT处理非连续输入子集是可行的,这是方法的基础。

  • (ii)视觉信号在本质上具有严重的空间冗余,这鼓励了最近的MIM预训练方法采用非常高的掩蔽比(例如,40%∼75%)。

另一个障碍是在普通的ViT中缺乏金字塔式的特征层次结构,因为完善的视觉识别任务层通常需要多尺度的输入。在这项工作中,我们的目标不是重新设计针对单尺度ViT的特定任务层,相反,我们做了最小限度的调整,重新引入来自普通ViT的多尺度表示。

​ 新引入的ConvStem非常紧凑(只有4.1M,不到ViT-Base编码器大小的5%),它的中间特性可以直接作为特征金字塔的更高分辨率输入。产生的骨干本质上是一个ConvNet-ViT混合架构的早期阶段和最后阶段。

Method

You Only Look at One Partial Sequence

​ Object识别任务通常受益于更高分辨率的输入,这些输入通常比图像分类的输入大小高一个数量级。而普通的ViT计算空间特征聚合的全局注意,以及全局注意尺度的计算和记忆成本与输入分辨率成二次关系。因此,如果一个普通的ViT直接输入完整的输入集,微调过程将在很大程度上减慢。

​ 受到MAE的启发,将ConvStem采样的卷积结果分割为不同的patches,但是只给Encoder送入25%的patches也可以达到50%AP的精度。

推测其原因是:

  • 视觉信号是高度冗余的,并且松散地跨越空间维度,例如,普通的ViT能够在MIM预训练期间仅基于可见内容恢复丢失的上下文信息,这意味着它在生成之前就理解上下文。因此,在部分观察下,基于强的预训练表示,可以在复杂场景中进行全局视觉理解。
  • 我们的方法在MIM预训练和微调之间引入了一个较小的差距,即我们以与训练前类似的方式对ViT进行微调。在训练前,ViT学习一个任务,只需要一个可见子集作为输入的全局上下文推理。我们的微调过程模拟了MIM预训练,它只通过基于高容量表示的部分观察来进行对象级的理解。

You Only Pre-train the Third Stage

​ 本文采用了一个典型的卷积设计,通过简单地叠加3×3卷积与2步和双特征通道。每个卷积层之后都是一个层的归一化和一个GeLU激活,我们的转换逐步减少了空间维度,也丰富了信道维度。输出嵌入与原始模式嵌入具有相同的形状,作为ViT编码器的输入。

就模型尺寸而言,只有4.1M参数,不到ViT-Base编码器尺寸的5%。虽然很小,但金字塔特征层次结构自然存在于ConvStem的中间层中。我们选择的特性{4、8}像素对输入图像的输入特征FPN的前两个阶段(即,P2和P3的输入),而预先训练的作为FPN的P4的输入,输入只是通过无参数平均池化的输出。成功地获得了一个用于目标检测的FPN。

A ConvNet-ViT Hybrid Architecture

从本质上讲,特征提取器是一个ConvNet-ViT混合架构,是一个整洁的ConvNet/ConvStem,模型最后是一个很强的ViT。这也与当前最先进的视觉编码器设计方法的趋势相一致。ConvNet/ConvStem更适合于早期的视觉信号处理,并为ViT编码器和检测器引入了二维感应偏差,而ViT架构更可扩展,并倾向于具有更大的模型容量。

事实上,ConvStem不能通过MIM进行预训练,也不支持任何视觉编码器的MIM预训练,因为内核大小大于步幅的密集滑动卷积会跨块传播信息,导致信息泄漏并阻碍MIM。只需要在第三阶段进行预训练。

Experiment

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/716388.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存