发表年份:2021.12
发表单位:Electronics and Telecommunications Research Institute (ETRI), South Korea
期刊/会议:CVPR
论文链接:https://arxiv.org/abs/2112.11010
代码链接:https://github.com/youngwanLEE/MPViT
目录
Abstract
1. Introduction
2. Related works
3. Multi-Path Vision Transformer
3.1. Architecture
3.2. Multi-Scale Patch Embedding
3.3. Global-to-Local Feature Interaction
3.4. Model Configuration
4. Experiments
4.1. ImageNet Classification
4.2. Object Detection and Instance Segmentation
4.3. Semantic segmentation
4.4. Ablation study
5. Discussion and Conclusion
密集的计算机视觉任务,如目标检测和分割,需要有效的多尺度特征来检测或分类大小不同的对象或区域。虽然卷积神经网络(CNN)已成为此类任务的主导架构,但最近引入的ViT Transformer(VIT)旨在取代CNN作为主干。与CNN类似,ViTs构建了一个简单的多阶段结构(即从细到粗),用于单尺度patchs的多尺度表示。在这项工作中,我们从不同于现有Transformer的角度,探索多尺度patch embedding和多路径结构,构建Multi-Path Vision Transformer(MPViT)。MPViT通过重叠卷积进行patch embedding,将相同大小(即序列长度)的特征同时嵌入不同尺度patch。然后,不同尺度的Tokens通过多条路径独立地馈送到Transformer编码器中,并聚合生成的特征,从而在相同的特征级别上实现精细和粗略的特征表示。多亏了多样化、多尺度的特征表示,我们的MPVIT从微小(5M)扩展到基本(73M),在ImageNet分类、目标检测、实例分割和语义分割方面的性能明显优于最先进的视觉转换器。
自推出以来,Transformer[48]对自然语言处理(NLP)产生了巨大的影响[4、13、39]。同样,Vision Transformer(ViT)[15]的出现推动了计算机视觉领域的发展。因此,基于Transformer的视觉工作最近出现了爆炸式的发展,涵盖了静态图像分类[16、33、45、46、52、53、59、60]、对象检测[5、11、63]和语义分割[49、57]等任务,以及视频分类[1、3、17]和对象跟踪[7、37、51]等临时任务。
对于目标检测和分割等密集预测任务来说,在多个尺度上表示特征以区分不同大小的对象或区域是至关重要的。在密集预测方面,现在的CNN主干网络在卷积核级别[18、28、29、42、43]或特征级别[30、38、50]利用多个尺度表现出更好的性能。Inception Network[42]或VoVNet[28]在相同的特征级别上利用多粒度卷积核,产生不同的感受域,进而提高检测性能。HRNet【50】代表通过同时聚合整个卷积层中的精细和粗糙特征来表示多尺度特征。
虽然CNN模型被广泛用作密集预测的特征提取器,但目前的SOTA Vision Transformer【16、33、52-54、59-61】的性能超过了CNN。虽然ViT变体【16、33、53、54、60、61】侧重于在应用于高分辨率密集预测时如何解决自我注意的二次复杂性,但它们很少关注构建有效的多尺度表示。例如,继传统的CNN【21、40】之后,最近的Vision Transformer主干网络【33、53、60、61】用单尺度patchs(即令牌)构建一个简单的多尺度结构(例如,从细到粗的结构)。CoaT【59】同时表示精细和粗糙的特征,通过使用co-scale mechanism,允许并行的跨层注意,提高检测性能。然而,co-scale mechanism需要大量的计算和内存开销,因为它为基础模型(如CoaT Lite)增加了额外的跨层注意。因此,ViT体系结构的多尺度特征表示仍有改进空间。
在这项工作中,我们关注如何使用Vision Transformer有效地表示多尺度特征,以实现密集预测任务。受利用多个感受野的多粒度卷积核的CNN模型的启发【18、28、42】,我们提出了一种用于Transformer的多尺度patch embedding和多径结构方案,称为Multi-Path Vision Transformer(MPViT)。如图1所示,多尺度patch embedding通过重叠卷积运算同时标记不同大小的六个普通patchs,在适当调整卷积的填充/步长后产生具有相同序列长度(即特征分辨率)的特征。然后,来自不同尺度的token被独立地并行馈入Transformer编码器。每个具有不同大小patchs的Transformer编码器执行全局自我关注。然后聚合生成的特征,在相同的特征级别上启用精细和粗略的特征表示。在特征聚合步骤中,我们引入了一个全局到局部特征交互(GLI)过程,该过程利用CNN的局部连通性和Transformer的全局上下文,将进化局部特征与变换器的全局特征连接起来。
按照DeiT【45】中的标准训练方法,我们在ImageNet-1K【12】上训练MPVIT,与最新的SOTA Vision Transformer【16、33、54、59、60】相比,该模型始终具有优异的性能。此外,我们在COCO数据集上验证了MPViT作为目标检测和实例分割的主干,在ADE20K数据集上验证了语义分割,实现了最先进的性能。特别是,MPViT Small(22M和4GFLOPs)超过了最近更大的SOTA Focal-Base(60)(89M和16GFLOPs),如图2所示。
综上所述,我们的主要贡献如下:
用于密集预测的Vision Transformer。当前的SOTA VisionTransformer【16、33、53、59–61】专注于降低高分辨率密集预测中自我注意的二次复杂性。[33、60、61]在局部区域使用细粒度的patchs来限制注意力范围,并将其与滑动窗口或稀疏的全局注意力相结合。[53,54]通过空间缩减(即池化)减少序列长度来利用粗粒度的全局自我关注。【16,59】通过跨特征通道而非tokens操作自我关注,实现线性复杂性。虽然【33、53、60、61】具有简单的金字塔结构(从细到粗),但XCiT【16】具有与ViT【15】相同的单级结构。当应用于密集预测任务时,XCiT在ImageNet上进行预训练后,添加向下/向上采样层以提取多尺度特征。Xu等人【59】介绍了具有简单金字塔结构的CoaT Lite和在CoaT Lite顶部具有跨层注意的CoaT Lite。跨层注意允许CoaT优于CoaT Lite,但需要大量内存和计算开销,这限制了模型的缩放。
与并行工作的比较。CrossViT[6]还利用不同的patch大小(例如,small or large)和双路径作为单级结构,如ViT[15]和XCiT[16]。然而,CrossViT在分支之间的交互仅通过[CLS]Token发生,而MPViT允许所有不同规模的patch进行交互。此外,与CrossViT(仅分类)一样,MPViT更普遍地探索更大的路径维度(例如,超过两个),并采用多阶段结构进行密集预测。
图3显示了mult-path Vision Transformer(MPViT)架构。由于我们的目标是为密集预测探索一个强大的骨干网络,因此我们构建了一个多级体系结构[33、53、60],而不是像ViT[15]和XCiT[16]这样的单级(即单片)体系结构。具体来说,我们构建了一个四阶段的特征层次,用于生成不同尺度的特征图。由于多级体系结构具有更高分辨率的特性,因此它本质上需要更多的计算量。因此,由于其线性复杂性,我们对整个模型使用Transformer Encoder,包括CoaT【59】中所述的因子化自我注意。在LeViT[19]中,卷积主干模块显示出比无重叠patch embedding更好的低层表示(即,在不丢失显著信息的情况下)。受LeViT的启发,给定一幅大小为H×W×3的输入图像,我们还采用了一个stem块,该块由两个3×3卷积层组成,通道为分别为C2 /2和C2,stride为2,生成一个大小为H \/4×W \/4×C2的特征,其中C2是第2阶段的通道大小。每一次卷积之后都会有一个BN和一个Hardswish激活函数。从第2阶段到第5阶段,我们在每个阶段中堆叠Multi-scale PatchEmbedding(MS PatchEmbed)和Multi-Patch Transformer(MP Transformer)。许多工作【8、15、19、53】已经证明,将【CLS】token替换为最终特征映射的全局平均池(GAP)不会影响性能,因此我们还删除了【CLS】token,并使用GAP以简化操作。
我们设计了一个多尺度patch嵌入(MS PatchEmbed)层,该层在相同的功能级别上利用细粒度和粗粒度的visual token。为此,我们使用重叠patch的卷积运算,类似于CNN【21,40】和CvT【54】。具体而言,对前一阶段的进行2D-reshape特征映射,然后作为stage_i的输入,我们学习一个函数,该函数将Xi映射为具有Ci通道大小的新token Fk×k(Xi),其中F(·)是卷积核大小(即patch大小)k×k、步长为s和填充为p的二维卷积运算。输出的二维token map Fk×k(Xi)∈ RHi×Wi×Ci的高度和宽度如下:
patch embedding层允许我们通过改变stride和padding来调整token的序列长度。例如,可以用不同的patch大小输出相同大小(即分辨率)的特征。因此,我们并行地形成几个具有不同卷积核大小的patch embedding层。例如,如图1所示,我们可以生成具有3×3、5×5、7×7补丁大小的相同序列长度的各种大小的vision token。
由于使用相同通道和滤波器尺寸堆叠连续卷积运算可以扩大感受野(例如,两个3×3相当于5×5),并且需要较少的参数(例如,2×3^2小于5^2),因此我们在实践中选择连续的3×3卷积层。对于第三个路径结构,我们使用三个连续的3×3卷积,具有相同的通道大小C′、padding为1和stride为s=1,当降低空间分辨率时,stride=2。因此,给定一个特征在stage_i,我们可以得到F3×3(Xi)、F5×5(Xi)、F7×7(Xi)特征,其大小与Hi/s×Ci/s×C′相同。由于MPViT具有多径结构,因此有更多的嵌入层,我们通过采用3×3深度可分离卷积来减少模型参数和计算开销[9,23],其中包括embedding层中的3×3深度卷积,然后是1×1点卷积。所有卷积层后面都是BN和Hardswish激活函数。最后,将不同大小的token嵌入特征分别馈入每个Transformer Encoder。
虽然Transformer中的自我关注可以捕捉长期依赖性(即全局信息),但它可能会忽略每个patch中的结构信息[26]和局部关系[35]。此外,Transformer还受益于shape bias【47】,使其能够聚焦图像的重要部分。相反,CNN可以从平移不变性中扩展局部连通性[27,47]——图像中的每个patch都由相同的权重处理。这种归纳偏置使得CNN在对视觉对象进行分类时,对纹理而不是形状有更强的依赖性[2]。因此,MPViT以互补的方式将CNN的局部连接与全局上下文转换器结合起来。为此,我们引入了一个全局到局部特征交互模块,该模块学习如何在局部和全局特征之间进行交互,以丰富表示。具体来说,为了表示stage_i的局部特征Li∈ RHi×Wi×Ci,我们采用了一个深度残差瓶颈块,该瓶颈块由1×1卷积、3×3深度卷积和1×1卷积组成(相当于一个3×3的深度可分离卷积),具有相同通道大小的Ci和残差连接[21]。将每个Transformer重塑为2D全局特征。局部和全局特征的聚合是通过concat执行的,
其中j是路径的索引,,Ci是聚合特征,H(·)是学习与特征交互的函数,生成最终特征,下一级通道尺寸。我们对H(·)使用1×1卷积,通道为。最后一个特征用作下一阶段的多尺度面片嵌入层的输入。
为了减轻多径结构的计算负担,我们使用CoaT[59]中提出的高效因子化自我注意理论:
其中Q,K,V∈ 是线性映射Queries,Keys、Values;N,C分别表示token的数量和嵌入维度。为了保持可比较参数和FLOPs,增加路径的数量需要减少通道C或层L的数量(即Transformer encoder的数量)。具有N个token和h个transformer编码器头的L分解自我注意层[59]的总时间复杂度为O(),内存复杂度为O()。复杂性是二次w.r.t.到通道C,而线性w.r.t.层的数量L.一致的是,我们通过减少C而不是L,将路径的数量从单路径(即CoaT Lite【59】基线)扩展到三路径。我们在消融实验中验证了减少C比减少L获得更好的性能(见表5)。由于特征分辨率较高,第2阶段的计算成本相对较高,因此我们还将三路径模型的第2阶段的路径数设置为2。因此,从第3阶段开始,三重路径模型有3条路径。
有趣的是,我们还发现,虽然三重路径和双路径在ImageNet分类上具有相似的精度,但三重路径模型在密集预测任务中表现出更好的性能。这表明扩展路径维度的各种特性对于密集的预测任务非常有用。.因此,我们建立了基于三重路径结构的MPViT模型。我们放大了MPViT模型从对应于CoaT Lite Tiny(5M)[59]或DeiT Tiny(5.7M)[45]的小型MPViT Tiny(5M)到对应于Swin Base(88M)[33]的大型MPViT Base(74M)。所有MPViT型号都使用8个Transformer encoder,对于Tiny和其他型号,MLP的扩展比分别设置为2和4。MPVIT的详细信息如表1所示。
在本节中,我们评估了MPViT作为图像分类(ImageNet-1K[12])、密集预测(如目标检测和实例分割(COCO[32])和语义分割(ADE20K[62])的视觉主干网络的有效性和通用性。
背景:我们在ImageNet1K[12]数据集上执行分类。为了与最近的作品进行公平比较,我们遵循DeiT[45]中的训练设置,以及其他baseline Transformer[33,52,53,59,60]。我们使用AdamW【34】优化器进行300个epochs的训练,batchsize为1024,权重衰减为0.05,五个warm-up epoch,初始学习率为0.001,由余弦衰减学习率进行缩放。我们将每个图像裁剪为224×224,并使用与[45,59]中相同的数据增强。随机深度下降【24】仅用于小型和基础尺寸模型,其中我们将速率分别设置为0.05和0.3。更多详情见附录。
结果:表2总结了根据型号大小进行的性能比较。为了公平比较,我们仅使用224×224的输入分辨率,而不使用蒸馏[45]或384×384的更大分辨率来比较模型。MPViT模型始终优于SOTA Vision Transformer体系结构,具有相似的参数计数和计算复杂性。MPViT XS和Small都比单路径Base、CoaT Lite Mini和Small分别提高了2.0%和1.1%。MPViT Small的性能也优于CoaT Small,同时GFLOP减少了约3个。此外,MPViT Small优于PVT-L、DeiT-B \/16和XCiT M24 \/16等较大型号。MPViT Base(74M)达到84.3%,超过了使用更多参数的最新SOTA模型,如Swin Base(88M)和Focal Base(89M)。有趣的是,MPViT Base的性能优于XCiT-M24 \/16,XCiT-M24 \/16采用更复杂的训练配置进行训练,使用更多的epochs(400)、层次尺度和不同的裁剪比。
背景:我们验证了MPViT是一种有效的特征提取工具,分别用RetinaNet[31]和Mask R-CNN(Mask R-CNN)[20]做目标检测和实例分割。我们在COCO[32]数据集上对我们的模型进行基准测试。我们在ImageNet-1K上预训练主干网络,并将预先训练的主干插入RetinaNet和Mask R-CNN。根据常见设置【20,55】和Swin Transformer的训练方法【33】,我们采用多尺度训练策略【5,33,41】训练3×schedule(36个epoch)】的模型。我们使用AdamW[34]优化器,初始学习率为0.0001,权重衰减为0.05。我们基于detectron2[55]库实现模型。更多详情见附录。
结果:表3显示了MPViT模型在目标检测和实例分割方面始终优于最近的、尺寸相当的SOTATransformer。对于RetinaNet,MPViT-S达到47.6%,比Swin-T[33]和Focal-T[60]提高了2.1-2.6%。有趣的是,MPViT-S(32M)与更大的SWN-S(59M)/B(98M)和FOCUR-S(61M)/B(100M)相比,表现出更高的性能,表2中的分类精度更高。这些结果表明,与需要尺度不变性的简单多尺度结构化目标检测模型相比,所提出的多尺度patch嵌入和多路径结构可以表示更多样化的多尺度有限元特征。值得注意的是,与Swin S and Focal-S相比,Swin B和Focal-B的性能有所下降,虽然MPViT-B比MPViT-S有所改进,但表明MPViT可以很好地扩展到大型模型。
对于掩码R-CNN,MPViT XS和MPViT-S的性能优于单路径baseline CoaT[59]-Lite Mini和Small,具有显著的优势。相比于在CoaT-Lite上添加平行块并额外注意交叉层的CoaT,MPViT XS的性能优于CoaT Mini,而MPViT S的框APb较低,但掩码APM较高。我们注意到,尽管CoaT-S和MPViT-S的性能相当,但MPViT-S所需的计算量要少得多。这一结果表明,MPViT可以有效地表示多尺度特征,而不需要额外的跨层注意。值得注意的是,MPViT-S的掩码AP(43.9%)高于更大型号(如XCiT-M24 \/8或Focal B)的掩码AP,同时具有更少的触发器。
背景:我们进一步评估了MPViT在ADE20K【62】数据集上进行语义分割的能力。我们将SuperNet【56】作为一种分割方法,并将ImageNet-1k预训练MPVIT集成到SuperNet中。在[16,33]之后,为了公平比较,我们对160k迭代的模型进行了训练,批量大小为16,优化器为AdamW[34],学习率为6e-5,权重衰减为0.01。我们使用标准单标度协议报告性能。我们使用mmseg[10]库实现MPVIT。更多详情见附录。
结果:如表4所示,我们的MPViT模型的性能始终优于最近类似规模的SOTA体系结构。MPViT-S比其他Swin-T、Focal-T和XCiT-S12/16实现了更高的性能(48.3%),大型mar分别为+3.8%、+2.5%和+2.4%。有趣的是,MPViT-S还超过了更大的型号,例如SWN-S \/B、XCiT-S24 \/16、-M24 \/16、-S24 \/8和Focal-S。此外,MPViT-B的性能优于最近(和更大)的SOTA Trans-B(Focal-B)[60]。这些结果表明,由于MPViT的多尺度嵌入和多路径结构,MPViT具有多样的特征表示能力,使得MPViT能够有效地处理像素级的密集预测任务。
我们对MPViT XS的每个组件进行了消融实验,以研究所提出的多路径结构在使用1×schedule[20]和单尺度输入的Mask R-CNN[20]进行图像分类和目标检测方面的有效性。
探索路径维度。我们研究了不同路径维度的影响,以及如何在表5中有效扩展路径维度。我们使用各种指标进行实验,如模型大小(即模型参数)、计算成本(GFLOPs)、GPU峰值内存和GPU吞吐量(img /秒)。我们使用Coat Lite Mini[59]作为单路径基线,因为它还利用了与MPViT相同的因子化自我注意机制。为了与基线进行公平比较,我们没有使用stem块、随机深度下降路径和Sec3.3中引入的卷积局部特征。对于双路径,阶段2更高的特征分辨率需要更多的计算,因此我们减少了层L的数量(即Transformer encoder的数量)。在第5阶段,嵌入维数越高,模型尺寸越大,因此我们也减少了L和嵌入维数C,而在第4阶段增加了L。由于多条路径导致更高的计算成本,我们在第3阶段和第4阶段缩减C以进行补偿。因此,表5中的双路径(a)比单路径有所改进,同时具有相似的模型尺寸和略高的FLOPs。
将双路径扩展为三路径时,我们分别消除了嵌入维数C和层数L,对于表5中(b)的嵌入维数,我们保持C,但减少L以保持相似的模型大小和FLOPs,这导致比双路径更差的精度。相反,当我们降低C并保持L时,与双路径相比,(C)实现了类似的分类精度,但检测性能更高。最后,我们进一步将路径扩展到四路径(d),保持L并减少C。四路径实现了相似的分类精度,但检测性能并不优于三路径(C)。这些结果给了我们三个教训:i)层的数量(即更深)比嵌入维度(即更宽)更重要,这意味着更深和更薄的结构在性能方面更好。ii)多粒度标记嵌入和多路径结构可以为对象检测器提供更丰富的特征表示。iii)在相同模型尺寸和触发器的约束下,三重路径是最佳选择。
我们注意到,我们扩展路径维度的策略不会增加内存负担,如表5所示。与单路径相比,双路径(a)和三路径(b,c)消耗的内存更少。而且,(a)和(b)比(c)消耗更多内存,因为(a)和(b)在第3和4阶段有更大的c。这是因为C(二次型)在内存使用方面比L(线性型)更重要,如第3.4节所述。因此,我们减少嵌入维度并扩展路径维度和层(更深)的策略导致了一个内存高效的模型。然而,与单路径相比,多径结构导致的总层数增长会降低推理速度。此问题将在第5节中详细讨论。
多尺度嵌入。在表6中,我们研究了多尺度嵌入中patch大小和结构的影响,如第3.2节所述。我们使用三个平行的卷积层,stride为2,patch大小分别为3、5和7。 例如,每个路径嵌入层使用之前的输入特性独立运行。为了提高参数效率,我们还串联使用了三个卷积层,分别具有相同的内核大小3和步长2、1、1。我们注意到后者具有等效的接收字段(例如,3、5、7),如图3所示。串联版本比并联版本有所改进,同时减少了模型大小和FLOPs。直观地说,这种性能提升可能来自以下事实:串联版本实际上包含具有非线性的小型3层CNN,这允许更复杂的表示。
全局到局部要素交互。我们在GLI模块中使用不同的聚合方案进行了实验,该模块聚合卷积局部特征和全局变换前特征,我们测试了两种类型的操作:加法和级联。如表6所示,求和运算没有显示出性能提升,而串联运算显示了分类和检测任务的改进。实际上,在1×1卷积之前求和特征会很自然地混合特征,而串联则会保留这些特征,允许1×1卷积来学习特征之间更复杂的交互。这一结果表明,GLI模块有效地学习了局部和全局特征之间的交互,以丰富表示。
模型容量分析。通过测量实际GPU吞吐量和内存使用量,我们分析了MPViT-S的模型容量,并与表7中最近的SOTA传输模式进行了比较【16、33、59、60】。我们在相同的Nvidia V100 GPU上测试所有型号,批量大小为256。虽然CoaT-Lite-Small[59]由于其额外的跨层关注,实现了最佳的检测性能,但它比CoaT-Lite-Small具有更大的内存使用量和GPU计算量,其简单的多级结构类似于Swin-T[33]和Focal-T[60]。与CoaT Small相比,MPViT-S占用内存少,运行速度快4倍,检测性能相当,这意味着MPViT可以高效执行,其多尺度表示有效,无需CoaT额外的跨层注意。此外,CoaT在扩展模型方面有局限性,因为它使用了大量内存,但MPViT可以扩展到更大的模型。对于具有单级结构的XCiT[16],XCiT-S12 \/16(16x16补丁:规模4)显示出更快的速度和更少的内存使用,而XCiT-S12 \/8由于其更高的特性分辨率,需要比MPViT-S更多的计算和内存。我们注意到,XCiT-S12 \/8显示出比MPViT-S(83.0%)更高的分类精度(83.4%),而检测性能则相反(47.0 vs.48.4)。这一结果表明,对于密集预测任务,MPViT的多尺度嵌入和多径结构比配备额外上/下采样层的XCiT的单级结构更有效。与大多数型号相比,MPViT的内存占用也相对较小。
定性分析。在图4中,我们将注意力图可视化,将三重路径(表5中的c)与单路径(CoaT Lite Mini)进行比较。由于三重路径嵌入了不同的面片大小,我们可以可视化每条路径的注意图。CoaT Lite和path-1的注意图具有相似的斑块大小,并显示相似的注意图。有趣的是,我们观察到注意力从路径3映射,路径3关注更大的斑块和更高级别的表征,更以对象为中心,精确地捕获对象的范围,如图4最右列所示。然而,同时,path-3抑制了小对象和噪声。相反,path-1由于精细的面片而关注小对象,但由于使用低级别表示,因此无法精确捕捉大对象边界。这在图4的第三行中尤为明显,路径1捕捉一个较小的球,而路径3关注一个较大的人。这些结果表明,通过多路径结构结合精细和粗糙特征,可以在给定的视觉输入中捕获不同尺度的对象。
限制和未来工作。由于提出了多尺度嵌入策略和多路径方案,我们观察到MPViT不仅在图像级预测上,而且在密集预测任务上都显著优于当前的SOTA Vision Transformer。然而,我们的MPViT模型的一个可能限制是推理时的延迟。我们假设多径结构导致GPU利用率不理想,因为已经对分组卷积进行了类似的观察[36,58](例如GPU上下文切换、内核同步等)。为了缓解这个问题,未来的工作可以实施有效的MPViT,并在考虑所有深度、宽度和分辨率的缩放策略中考虑路径维度[14,44]。
Acknowledge:这项工作得到了韩国政府(MSIT)资助的信息与通信技术规划与评估研究所(IITP)的部分支持(编号2020-0-00004,基于长期视觉记忆网络的预测智能开发,编号2014-3-00123,用于大规模实时数据分析的高性能虚拟大数据发现平台开发,编号2019-0-00075,人工智能研究生院专业(KAIST))和工程研究中心项目,通过国家研究基金会韩国(NRF),由韩国政府MSIT资助(NRF-2018R1A5A1059921)。