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

AI浩 AI浩     2022-11-30     538

关键词:

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第26篇mobilenets:用于移动视觉应用的高效卷积神经网络

MobileNets:用于移动视觉应用的高效卷积神经网络摘要我们提出了一类称为MobileNets的高效模型,用于移动和嵌入式视觉应用。MobileNets基于流线型架构,使用深度可分离卷积来构建轻量级深度神经网络。我们引入了两个... 查看详情

用vit替代卷积网络做密集预测,英特尔实验室提出dpt架构,在线demo可用

...研究者提出了DPT架构(densepredictiontransformer)。DPT是一种用于密集预测的新架构,它仍然基于编码器-解码器的设计,但其中利用transformer作为编码器的基础计算构建块。具体而言,研究者使用此前的视觉transformer(ViT)作为主干架构... 查看详情

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

摘要最先进的计算机视觉系统被训练来预测一组固定的预定对象类别。这种受限制的监督形式限制了它们的通用性和可用性,因为需要额外的标记数据来指定任何其他视觉概念。直接从有关图像的原始文本中学习是一种很有前途... 查看详情

《计算机视觉基础知识蓝皮书》第9篇模型改进及期刊发表

本专栏将系统性地讲解计算机视觉基础知识、包含第1篇机器学习基础、第2篇深度学习基础、第3篇卷积神经网络、第4篇经典热门网络结构、第5篇目标检测基础、第6篇网络搭建及训练、第7篇模型优化方法及思路、第8篇模型超参... 查看详情

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

...将ScikitLearnOneVsRestClassifier预测方法输出转换为谷歌云ML的密集数组?【英文标题】:HowtoconvertScikitLearnOneVsRestClassifierpredictmethodoutputtodensearrayforgooglecloudML?【发布时间】:2019-08-1709:15:23【问题描述】:我有一个使用sklearn管道和OneVsR... 查看详情

mpvit实战:植物幼苗分类(代码片段)

...试第一种写法第二种写法摘要结合重叠卷积块嵌入,MPViT可以同时对不同尺度、相同序列长度特征进行嵌入聚合。不同尺度的Token分别送入到不同的Transformer模块中(即并行架构)以构建同特征层级的粗粒度与细粒度特征的 查看详情

预测 svm 中的多类

】预测svm中的多类【英文标题】:Predictmulticlassinsvm【发布时间】:2019-07-0623:34:11【问题描述】:我有类似的用户评论数据集review-1,0,1,1,0,0review-1是用户评论,0,1,1,0,0是评论类别。一篇评论可以有多个类别。我想预测评论的类别。... 查看详情

秒杀多线程第六篇经典线程同步事件event(代码片段)

...问题,由于关键段的“线程所有权”特性所以关键段只能用于线程的互斥而不能用于同步。本篇介绍用事件Event来尝试解决这个线程同步问题。首先介绍下如何使用事件。事件Event实际上是个内核对象,它的使用非常方便。下面... 查看详情

第一篇用于测试使用

第一篇用于测试使用第一篇用于测试使用第一篇用于测试使用第一篇用于测试使用第一篇用于测试使用第一篇用于测试使用第一篇用于测试使用第一篇用于测试使用第一篇用于测试使用第一篇用于测试使用第一篇用于测试使用第... 查看详情

SSAS多维中不同粒度的多对多货币转换

...】:我在SSAS中有一个正在开发的销售立方体。我有一个用于实际销售的度量组,称为“开票销售”,还有一个用于销售预测的度量组,称为“销售预算”。已开票的销售具有单独的发票行级别详细 查看详情

第16篇swintransformer

摘要本文介绍了一种称为SwinTransformer的新视觉Transformer,它可以作为计算机视觉的通用主干。将Transformer从语言适应到视觉方面的挑战源于两个领域之间的差异,例如视觉实体的规模差异很大,以及与文本中的单词相比,图像中... 查看详情

第65篇smiletrack:基于相似度学习的多目标跟踪

文章目录摘要1、简介2、相关工作2.1、Tracking-by-Detection2.1.1、检测方法2.1.2、数据关联方法2.2、Tracking-by-Attention3、方法3.1、体系结构概述 查看详情

秒杀多线程第四篇一个经典的多线程同步问题(代码片段)

...这个问题涉及到线程的同步和互斥,是一道非常有代表性的多线程同步问题,如果能将这个问题搞清楚,那么对多线程同步也就打下了良好的基础。 程序描述:主线程启动10个子线程并将表示子线程序号的变量地址作为参数... 查看详情

multinet用于自动驾驶的多模态多任务学习网络

本文发表于2019年的IEEE计算机视觉应用冬季会议上,是一篇有关自动驾驶领域多模态多任务网络应用的文章。本文将多模态学习与MTL(Multi-taskLearning)相结合,提出了一种多行为模式下非结构化自动驾驶的新方法... 查看详情

用vit替代卷积网络做密集预测,英特尔实验室提出dpt架构,在线demo可用

...0c;研究者提出了DPT架构。这种ViT架构代替了卷积网络作为密集预测任务的主干网络,获得了更好的细粒度和更全局一致的预测。图像语义分割的目标是将图像的每个像素所属类别进行标注。因为是预测图像中的每个像素,... 查看详情

第59篇metaformer实际上是你所需要的视觉

transformer在计算机视觉任务中显示出了巨大的潜力。人们普遍认为,他们基于注意力的token混合器模块对他们的能力贡献最大。然而,最近的工作表明,transformer中基于注意力的模块可以被空间mlp取代,得到的模型仍然表现相当好... 查看详情

第59篇metaformer实际上是你所需要的视觉

transformer在计算机视觉任务中显示出了巨大的潜力。人们普遍认为,他们基于注意力的token混合器模块对他们的能力贡献最大。然而,最近的工作表明,transformer中基于注意力的模块可以被空间mlp取代,得到的模型仍然表现相当好... 查看详情

第21篇屏蔽自编码器是可扩展的视觉学习器

...可扩展的视觉学习器摘要本文表明,掩码自编码器(MAE)是用于计算机视觉的可扩展自监督学习器。我们的MAE方法很简单:我们屏蔽输入图像的随机块并重建丢失的像素。它基于两个核心设计。首先,我们开发了一个非对称编码器-... 查看详情