论文:https://arxiv.org/abs/2112.11010

代码:https://github.com/youngwanLEE/MPViT

 

导读

本文对多尺度块嵌入与多路径结构进行探索,构建了MPViT(Multi-path Vision Transformer, MPViT)。结合重叠卷积块嵌入,MPViT可以同时对不同尺度、相同序列长度特征进行嵌入聚合。不同尺度的Token分别送入到不同的Transformer模块中(即并行架构)以构建同特征层级的粗粒度与细粒度特征的。借助于灵活的多尺度特征表达,在不同任务(包含ImageNet分类、COCO目标检测以及ADE20K语义分割)下,不同大小的MPViT均取得了比已有Transformer更优的性能,可参考下图。

 

贡献

现有研究表明,密集的计算机视觉任务如目标检测和分割需要有效的多尺度特征表示,以检测或分类不同大小的物体或区域。Vision Transformer(ViT)构建了一个简单的多阶段结构(即精细到粗糙),用于使用单尺度patch的多尺度表示。然而ViT的变体专注于降低自注意的二次复杂度,较少关注构建有效的多尺度表示。

早期研究CoaT通过使用一种co-scale机制,同时表示精细和粗糙的特征,允许并行地跨层注意,从而提高了检测性能。然而,co-scale机制需要大量的计算和内存开销,因为它为基础模型增加了额外的跨层关注(例如,CoaT-Lite)。因此,对于ViT体系结构的多尺度特征表示仍有改进的空间。

CrossViT利用了不同的patch大小和单级结构中的双路径,如ViT和XCiT。然而,CrossViT的分支之间的相互作用只通过[CLS]token发生,而MPViT允许所有不同规模的patch相互作用。此外,与CrossViT(仅限分类)不同的是,MPViT更普遍地探索更大的路径维度(例如,超过两个维度),并采用多阶段结构进行密集预测。

在这项工作中,作者以不同于现有Transformer的视角,探索多尺度path embedding与multi-path结构,提出了Multi-path Vision Transformer(MPViT)。通过使用 overlapping convolutional patch embedding,MPViT同时嵌入相同大小的patch特征。然后,将不同尺度的Token通过多条路径独立地输入Transformer encoders,并对生成的特征进行聚合,从而在同一特征级别上实现精细和粗糙的特征表示。在特征聚合步骤中,引入了一个global-to-local feature interaction(GLI)过程,该过程将卷积局部特征与Transformer的全局特征连接起来,同时利用了卷积的局部连通性和Transformer的全局上下文。

 

方法

上图给出了本文所提MPViT整体架构示意图,它是一种多阶段架构,旨在提供一种用于稠密预测的强力骨干网络。

由于多阶架构具有高分辨率特征,故本文采用了CoaT中的自注意力机制以降低计算量;正如LeViT一文提到:卷积Stem模块具有更好的low-level表达能力,故采用了卷积Stem模块。此外,每个卷积后接BN与HardSwish激活函数。而Stage2-5部分则由本文所提多尺度块嵌入与多路径Transformer构建。

 

Conv-stem

输入图像大小为:H×W×3,两层卷积:采用两个3×3的卷积,通道分别为C2/2,C2,stride为2,生成特征的大小为H/4×W/4×C2,其中C2为stage 2的通道大小。

每个卷积之后都是Batch Normalization 和一个Hardswish激活函数。从stage 2到stage 5,作者在每个阶段对所提出的Multi-scale Patch Embedding(MS-PatchEmbed)和Multi-path Transformer(MP-Transformer)块进行堆叠。

 

Multi-Scale Patch Embedding

MS-PatchEmbed:stage i 的输入 Xi ,通过一个k×k的2D卷积,s为stride,p为 padding。输出的token map F的高度和宽度如下:

通过改变stride和padding来调整token的序列长度。也就是说,可以输出具有不同patch大小的相同大小(即分辨率)的特征。因此,作者并行地形成了几个具有不同卷积核大小的卷积patch embedding层。例如,如图1所示,可以生成相同序列长度的不同大小的vision token,patch大小分别为3×3,5×5,7×7。

由于具有相同通道和滤波器大小的连续卷积操作扩大了接受域,并且需要更少的参数,在实践中选择了连续的3×3卷积层。为了减少参数量,在实践中选择了两个连续的3×3卷积层代替5×5卷积。对于triple-path结构,使用三个连续的3×3卷积,通道大小为C',padding为1,步幅为s,其中s在降低空间分辨率时为2,否则为1。因此,给定conv-stem的输出 ,通过MS-PatchEmbed可以得到相同大小为的特征。

为了减少模型参数和计算开销,采用3×3深度可分离卷积,包括3×3深度卷积和1×1点卷积。每个卷积之后都是Batch Normalization 和一个Hardswish激活函数。

接着,不同大小的token embedding features 分别输入到transformer encoder中。

 

Multi-path Transformer Block

Transformer中的self-attention可以捕获长期依赖关系(即全局上下文),但它很可能会忽略每个patch中的结构性信息和局部关系。相反,cnn可以利用平移不变性中的局部连通性,使得CNN在对视觉对象进行分类时,对纹理有更强的依赖性,而不是形状。

因此,MPViT以一种互补的方式将CNN与Transformer结合起来。

Global-to-Local Feature Interaction

将局部特征和全局特征聚合起来:

为了保持可比性的参数和FLOPs,增加路径的数量需要减少通道C或层数L(即,transformer encoder的数量)。作者通过减少C而不是L,从单路径(即CoaT-Lite baseline)扩展到triple-path。在消融研究中,验证了减少C比减少L获得更好的性能(见表5)。由于stage2的特征分辨率较高,导致计算成本较高,作者在stage2中将triple-path模型的路径数设置为2。从stage3开始,三路径模型有3条路径。

作者还发现,虽然 triple-path和双路径在ImageNet分类中产生相似的精度,但 triple-path模型在密集预测任务中表现出更好的性能。因此,建立了基于 triple-path结构的MPViT模型。MPViT的详细情况见表1。

 

实验

上表给出ImageNet分类任务上不同方案的性能对比,可以看到:

  • 在同等参数量与计算复杂度约束下,MPViT取得了比有ViT架构更优的性能;
  • MPViT-XS与Small分别比CoaT-Lite Mini与Small性能高2.0%、1.1%;
  • MPViT-Small具有更大网络PVT-L、DeiT-B/16、XCiT-M24/16更优的性能;
  • MPViT-B以74M参数量取得了84.3%的指标,超过了近期同等参数的Swin-Base以及Focal-Base。

上表给出了COCO检测任务上不同方案的性能对比,从中可以看到:

  • 相比同尺寸的其他ViT方案,MPViT均取得了更优的性能;
  • 基于RetinaNet,MPViT-S取得了47.6%的指标,超越了Swin-T与Focal-T;
  • 基于Mask R-CNN,MPViT-XS与MPViT-S优于同尺寸的CoaT-Lite Mini与Small;值得一提的是,MPViT-S取得了比XCiT-M24/8和Focal-B更高的指标,同时具有更少的FLOPs。


上图给出了ADE20K分割任务上的性能对比,从中可以看到:

  • MPViT优于其他同尺寸的ViT方案;
  • MPViT-S以48.3%的指标大幅超越了Swin-T、Focal-T以及XCiT-S12/16;
  • MPViT-B以50.3%的指标超越了近期SOTA方案Focal-B。

 

参考资料

https://arxiv.org/abs/2112.11010

https://zhuanlan.zhihu.com/p/478325208

https://zhuanlan.zhihu.com/p/534597270

https://paperswithcode.com/paper/spa-former-transformer-image-shadow-detection

https://arxiv.org/pdf/2206.09959v1.pdf

内容中包含的图片若涉及版权问题,请及时与我们联系删除