第29篇MPViT:用于密集预测的多路径视觉转换器

Posted AI浩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第29篇MPViT:用于密集预测的多路径视觉转换器相关的知识,希望对你有一定的参考价值。

MPViT:用于密集预测的多路径视觉转换器

密集的计算机视觉任务(例如对象检测和分割)需要有效的多尺度特征表示来检测或分类具有不同大小的对象或区域。虽然卷积神经网络 (CNN) 一直是此类任务的主要架构,但最近推出的视觉转换器 (ViT) 旨在取代它们作为主干。与 CNN 类似,ViT 构建了一个简单的多阶段结构(即从精细到粗糙),用于具有单尺度补丁的多尺度表示。在这项工作中,我们以与现有 Transformer 不同的视角,探索多尺度补丁嵌入和多路径结构,构建多路径视觉 Transformer (MPViT)。 MPViT 通过使用重叠卷积块嵌入,同时将相同大小(即序列长度)的特征与不同尺度的块嵌入。然后,不同尺度的令牌通过多条路径独立地输入到 Transformer 编码器中,并聚合生成的特征,从而在同一特征级别上实现精细和粗略的特征表示。由于多样化、多尺度的特征表示,我们的 MPViT 从微型 (5M) 扩展到基本 (73M) 始终在 ImageNet 分类、对象检测、实例分割和语义分割上实现优于最先进的 Vision Transformers 的性能。这些广泛的结果表明 MPViT 可以作为各种视觉任务的多功能骨干网络。代码将在 https://git.io/MPViT 上公开。

如果不能下载,请在使用gitee上的链接:

https://gitee.com/wanghao1090220084/MPViT

1、简介

自推出以来,Transformer [53] 对自然语言处理 (NLP) [4, 14,43] 产生了巨大影响。 同样,Vision Transformer (ViT) [16] 的出现推动了计算机视觉社区的发展。 因此,基于 Transformer 的视觉工作最近出现了爆炸式增长,涵盖静态图像分类 [17、37、50、51、57、58、65、67]、对象检测 [5、12、74]、 和语义分割 [54, 63] 到时间任务,例如视频分类 [1, 3, 18] 和对象跟踪 [7,41,56]。

对于密集预测任务(例如对象检测和分割)来说,在多个尺度上表示特征以区分不同大小的对象或区域是至关重要的。 在密集预测方面表现出更好性能的现代 CNN 主干利用卷积核级别 [19、32、33、46、47] 或特征级别 [34、42、55] 的多个尺度。 Inception Network [46] 或 VoVNet [32] 在相同的特征级别上利用多粒度卷积核,产生不同的感受野,进而提高检测性能。 HRNet [55] 通过同时聚合整个卷积层的精细和粗糙特征来表示多尺度特征。

尽管 CNN 模型被广泛用作密集预测的特征提取器,但当前最先进的 (SOTA) 视觉转换器 [17,37,57,58,60,65,67,71] 已经超越了 CNN 的性能。虽然 ViTvariants [17, 37, 58, 60, 67, 71] 专注于如何解决自我注意的二次复杂性,当应用于高分辨率的密集预测时,他们不太关注构建有效的多尺度表示.例如,按照传统的 CNN [23, 44],最近的 Vision Transformer 主干 [37, 58, 67, 71] 构建了一个简单的多阶段结构(例如,从精细到粗糙的结构)和单尺度补丁(即,令牌)。 CoaT [65] 通过使用允许并行跨层注意的共同尺度机制同时表示精细和粗糙特征,从而提高检测性能。然而,协同尺度机制需要大量的计算和内存开销,因为它增加了对基础模型(例如 CoaT-Lite)的额外跨层关注。因此,ViT 架构的多尺度特征表示仍有改进空间。

在这项工作中,我们专注于如何使用 Vision Transformers 有效地表示多尺度特征以进行密集预测任务。受 CNN 模型利用用于多个感受野的多粒度卷积核 [19、32、46] 的启发,我们提出了一种用于 Transformer 的多尺度补丁嵌入和多路径结构方案,称为多路径视觉转换器 (MPViT)。如图1所示,多尺度patch embedding通过重叠卷积操作同时对不同大小的视觉patch进行token化,在适当调整padding/stride后产生具有相同序列长度(即特征分辨率)的特征卷积。然后,来自不同尺度的令牌被独立地并行输入到 Transformer 编码器中。每个具有不同大小补丁的 Transformer 编码器都执行全局自注意力。然后聚合生成的特征,在同一特征级别启用精细和粗略的特征表示。在特征聚合步骤中,我们引入了全局到局部特征交互(GLI)过程,该过程将卷积局部特征连接到转换器的全局特征,同时利用卷积的局部连通性和转换器的全局上下文。

按照 DeiT [50] 中的标准训练方法,我们在 ImageNet-1K [13] 上训练 MPViT,与最近的 SOTA Vision Transformers [17, 37, 60, 65, 67] 相比,它始终获得卓越的性能。此外,我们验证 MPViT 作为 COCO 数据集上的对象检测和实例分割以及 ADE20K 数据集上的语义分割的主干,实现了最先进的性能。特别是,MPViT-Small(22M 和 4GFLOPs)超过了最近更大的 SOTA Focal-Base [67](89M 和 16GFLOPs),如图 2 所示。总而言之,我们的主要贡献如下:

• 我们提出了一种具有多路径结构的多尺度嵌入,用于同时表示密集预测任务的精细和粗糙特征。

• 我们引入全局到局部特征交互(GLI)以利用卷积的局部连通性和转换器的全局上下文。

• 我们提供消融研究和定性分析,分析不同路径尺寸和补丁规模的影响,发现高效和有效的配置。

• 我们验证了 MPViT 作为密集预测任务主干的有效性,在 ImageNet 分类、COCO 检测和 ADE20K 分割方面实现了最先进的性能。

2、相关工作

**用于密集预测的视觉转换器。**当前的 SOTA Vision Transformers [17, 37, 58, 65, 67, 71] 在应用于高分辨率密集预测时,专注于降低自注意力的二次复杂度。 [37,67,71] 用局部区域的细粒度补丁限制注意力范围,并将其与滑动窗口或稀疏全局注意力相结合。 [58, 60] 通过空间缩减(即池化)减少序列长度来利用粗粒度的全局自我注意。 [17, 65] 通过跨特征通道而不是令牌操作自我注意来实现线性复杂性。虽然 [37, 58, 67, 71] 具有简单的金字塔结构(从细到粗),但 XCiT [17] 具有单级结构,如 ViT [16]。当应用于密集预测任务时,XCiT 添加下采样/上采样层以在 ImageNet 上进行预训练后提取多尺度特征。 Xu 等人[65] 在 CoaT-Lite 之上介绍了具有简单金字塔结构的 CoaT-Lite 和具有跨层注意力的 CoaT。跨层注意力允许 CoaT 优于 CoaT-Lite,但需要大量内存和计算开销,这限制了模型的扩展。

与并行工作的比较。 CrossViT [6] 还在单级结构中使用不同的补丁大小(例如,小和大)和双路径,如 ViT [16] 和 XCiT [17]。 但是,CrossViT 的分支之间的交互仅通过 [CLS] 令牌发生,而 MPViT
允许不同尺度的所有补丁进行交互。 此外,与 CrossViT(仅分类)不同,MPViT 更普遍地探索更大的路径维度(例如,超过两个),并采用多阶段结构进行密集预测。

3、Multi-Path Vision Transformer

3.1、架构

图 3 显示了多路径视觉转换器 (MPViT) 架构。由于我们的目标是探索用于密集预测的强大主干网络,因此我们构建了一个多阶段架构 [37, 58, 67],而不是 ViT [16] 和 XCiT [17] 等单阶段(即单片)架构]。具体来说,我们构建了一个四阶段的特征层次结构,用于生成不同尺度的特征图。由于多级架构具有更高分辨率的特征,它本质上需要更多的计算。因此,由于其线性复杂性,我们对整个模型使用包含因子分解自注意力的 Transformer 编码器,如 CoaT [65] 中所做的那样。在 LeViT [20] 中,卷积茎块显示出比非重叠补丁嵌入更好的低级表示(即,不会丢失显着信息)。受 LeViT 的启发,给定尺寸为 H × W × 3 的输入图像,我们还采用了一个由两个 3 × 3 卷积层组成的茎块,通道为 C 2 / 2 C_2/2 C2/2 C 2 C_2 C2和 2 的步幅,生成大小为 $H/4 × W/4 × C_2 $的特征,其中 C 2 C_2 C2是阶段 2 的通道大小。每个卷积之后是 Batch Normalization [29] 和 Hardswish [25] 激活函数.从第 2 阶段到第 5 阶段,我们在每个阶段堆叠提出的多尺度补丁嵌入 (MS-PatchEmbed) 和多路径转换器 (MP-Transformer) 块。许多作品 [8, 16, 20, 58] 已经证明用最终特征图的全局平均池化 (GAP) 替换 [CLS] 令牌不会影响性能,因此我们也移除 [CLS] 令牌并使用 GAP为简单起见。

3.2、多尺度补丁嵌入

我们设计了一个多尺度补丁嵌入 (MSPatchEmbed) 层,该层利用相同特征级别的细粒度和粗粒度视觉标记。 为此,我们使用具有重叠补丁的卷积操作,类似于 CNN [23、44] 和 CvT [60]。 具体来说,给定来自前一阶段 X i ∈ R H i − 1 × W i − 1 × C i − 1 \\mathrmX_i \\in \\mathbbR^H_i-1 \\times W_i-1 \\times C_i-1 XiRHi1×Wi1×Ci1的 2D 重构输出特征图(即令牌图)作为阶段 i 的输入,我们学习了一个函数 F k × k ( ⋅ ) F_k \\times k(\\cdot) Fk×k()将 Xi 映射为具有通道大小 C i C_i Ci 的新标记 F k × k ( X i ) F_k \\times k(X_i) Fk×k(Xi),其中 F(·) 是内核大小(即补丁大小)k × k、步幅 s 和填充 p 的 2D 卷积操作。 输出的 2D 令牌映射 F k × k ( X i ) ∈ R H i × W i × C i F_k \\times k\\left(\\mathrmX_i\\right) \\in \\mathbbR^H_i \\times W_i \\times C_i Fk×k(Xi)RHi×Wi×Ci的高度和宽度如下:

H i = ⌊ H i − 1 − k + 2 p s + 1 ⌋ , W i = ⌊ W i − 1 − k + 2 p s + 1 ⌋ (1) H_i=\\left\\lfloor\\fracH_i-1-k+2 ps+1\\right\\rfloor, W_i=\\left\\lfloor\\fracW_i-1-k+2 ps+1\\right\\rfloor \\tag1 Hi=sHi1k+2p+1,Wi=sWi1k+2p+1(1)
卷积补丁嵌入层使我们能够通过改变步幅和填充来调整标记的序列长度。 即,可以输出具有不同补丁大小的相同大小(即分辨率)的特征。 因此,我们并行形成了几个具有不同内核大小的卷积补丁嵌入层。 例如,如图 1 所示,我们可以生成具有 3 × 3,5 × 5, 7 × 7 块大小的相同序列长度的各种大小的视觉标记。

由于堆叠具有相同通道和滤波器大小的连续卷积操作会扩大感受野(例如,两个 3×3 相当于 5×5)并且需要更少的参数(例如, 2 × 3 2 < 5 2 2 \\times 3^2 <5^2 2×32<52),因此我们选择连续 3×3 卷积层在实践中。对于三路径结构,我们使用三个连续的 3 × 3 卷积,具有相同的通道大小 C ′ C^\\prime C,填充为 1,步长为 s,其中当降低空间分辨率时 s 为 2,否则为 1。因此,给定特征 X i ∈ R H i × W i × C i \\mathrmX_i \\in \\mathbbR^H_i \\times W_i \\times C_i XiRHi×Wi×Ci在第 i 阶段,我们可以得到 F3×3(Xi)、F5×5(Xi)、F7×7(Xi) 特征,其大小与 H i s × C i s × C ′ \\fracH_is \\times \\fracC_is \\times C^\\prime sHi×sCi×C 相同。由于 MPViT 由于多路径结构而具有更多的嵌入层,我们通过采用 3 × 3 深度可分离卷积 [9,26] 来减少模型参数和计算开销,该卷积由 3 × 3 深度卷积和 1 × 1 点卷积组成嵌入层。所有卷积层之后都是批量标准化 [29] 和 Hardswish [25] 激活函数。最后,不同大小的令牌嵌入特征分别输入到每个转换器编码器中。

3.3、全局到局部特征交互

尽管 Transformers 中的自注意力可以捕获远程依赖关系(即全局上下文),但它可能会忽略每个补丁内的结构信息 [30] 和局部关系 [39]。此外,变形金刚受益于形状偏差 [52],使他们能够专注于图像的重要部分。相反,CNN 可以利用平移不变性的局部连通性 [31, 52]——图像中的每个补丁都由相同的权重处理。这种归纳偏差促使 CNN 在对视觉对象进行分类时更加依赖纹理而不是形状 [2]。因此,MPViT 以互补的方式将 CNN 的局部连接性与全局上下文转换器结合起来。为此,我们引入了一个全局到局部特征交互模块,该模块学习局部特征和全局特征之间的交互以丰富表示。具体来说,为了表示阶段 i 的局部特征 L i ∈ R H i × W i × C i L_i \\in \\mathbbR^H_i \\times W_i \\times C_i LiRHi×Wi×Ci,我们采用深度残差瓶颈块,由 1×1 卷积、3×3 深度卷积和 1×1 卷积组成,通道大小与 Ci 相同和剩余连接[23]。使用来自每个transformer G i , j ∈ R H i × W i × C i G_i, j \\in \\mathbbR^H_i \\times W_i \\times C_i Gi,jRHi×Wi×Ci的 2D 重构全局特征。局部和全局特征的聚合是通过连接来执行的,
A i = concat ⁡ ( [ L i , G i , 0 , G i , 1 , … , G i , j ] ) (2) A_i=\\operatornameconcat\\left(\\left[L_i, G_i, 0, G_i, 1, \\ldots, G_i, j\\right]\\right) \\tag2 Ai=concat([L以上是关于第29篇MPViT:用于密集预测的多路径视觉转换器的主要内容,如果未能解决你的问题,请参考以下文章

论文阅读:MPViT : Multi-Path Vision Transformer for Dense Prediction

第37篇EdgeViTs: 在移动设备上使用Vision Transformers 的轻量级 CNN

第31篇探索普通视觉Transformer Backbones用于物体检测

第31篇探索普通视觉Transformer Backbones用于物体检测

第43篇CLIP:从自然语言监督中学习可迁移的视觉模型

如何将 Scikit Learn OneVsRestClassifier 预测方法输出转换为谷歌云 ML 的密集数组?