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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)