论文阅读:PVT v2: Improved Baselines with Pyramid Vision Transformer

来源:PVTv1 和PVTv2

链接:https://arxiv.org/pdf/2102.12122.pdf

 链接:https://arxiv.org/pdf/2106.13797.pdf

PVTv2是在PVTv1基础上,所以先介绍PVTv1

Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction without Convolutions

0、Abstract

        尽管卷积神经网络(cnn)在计算机视觉领域取得了巨大的成功,但本研究研究的是一种更简单、无卷积的骨干网络,可用于许多密集的预测任务。与最近提出的专门为图像分类而设计的视觉转换器(Vision Transformer, ViT)不同,我们引入了金字塔视觉转换器(Pyramid Vision Transformer, PVT),它克服了将Transformer移植到各种密集预测任务中的困难。与目前的技术相比,PVT有几个优点。

(1)与ViT不同的是,ViT通常产生低分辨率的输出,并导致较高的计算和内存成本,PVT不仅可以在图像的密集分区上进行训练以获得高输出分辨率,这对密集预测很重要,而且它还使用一个逐步缩小的金字塔来减少大型特征图的计算。

(2) PVT继承了CNN和Transformer的优点,使其成为不需要卷积的各种视觉任务的统一主干,可以直接替代CNN的主干。

(3)我们通过大量的实验验证了PVT的有效性,表明它提高了许多下游任务的性能,包括对象检测、实例和语义分割。例如,在参数数量相当的情况下,PVT+ retavanet在COCO数据集上达到40.4 AP,比ResNet50+ retavnet (36.3 AP)的绝对AP高4.1(见图2)。我们希望PVT可以作为像素级预测的替代和有用的主干,并促进未来的研究。

1. Introduction

        卷积神经网络(Convolutional neural network, cnn)在计算机视觉领域取得了显著的成功,使其成为几乎所有任务的通用和主导方法[54,22,73,49,21,39,9,32]。然而,本工作的目标是探索CNN之外的另一种骨干网,该骨干网除了用于图像分类[12]外,还可以用于密集预测任务,如对象检测[40,14]、语义[83]和实例分割[40]。

        受Transformer[64]在自然语言处理方面的成功启发,许多研究人员探索了其在计算机视觉中的应用。例如,一些著作[6,85,72,56,24,42]将视觉任务建模为带有可学习查询的字典查找问题,并使用Transformer解码器作为CNN主干上的特定任务的头部。尽管一些现有技术也将注意力模块纳入cnn[70,48,80],但据我们所知,探索干净且无卷积的Transformer主干来解决计算机视觉中的密集预测任务的研究很少。

        最近,Dosovitskiy et al.[13]引入了视觉转换器(Vision Transformer, ViT)用于图像分类。这是一个有趣且有意义的尝试,它试图用一个无卷积模型来取代CNN主干。如图1 (b)所示,ViT具有以粗图像斑块为输入的柱状结构虽然ViT适用于图像分类,但直接将其适应像素级密集预测(如目标检测和分割)是一个挑战,因为(1)它的输出特征图是单尺度和低分辨率的,(2)它的计算和内存成本相对较高,即使是普通的输入图像大小(如:在COCO基准测试[40]中800像素的较短边缘)。

        为了解决上述限制,本工作提出了一种纯粹的Transformer主干,称为金字塔视觉转换器(PVT),它可以在许多下游任务中作为CNN主干的替代,包括图像级预测和像素级密集预测。具体来说,如图1 (c)所示,我们的PVT克服了传统Transformer的困难,方法是:(1)采用细粒度图像块(即每个块4×4像素)作为输入来学习高分辨率表示,这对密集预测任务至关重要;(2)引入渐进式收缩金字塔,随着网络的深化,减少Transformer的序列长度,显著降低计算成本;(3)采用空间缩减注意(spatial-reduction attention, SRA)层,进一步降低学习高分辨率特征时的资源消耗。

        总的来说,PVT具有以下优点。首先,与传统的CNN主干(见图1 (a))相比,传统的CNN主干有局部的接受域,且随着网络深度的增加而增加,我们的PVT总是产生一个全局的接受域,更适合于检测和分割。其次,与ViT相比(见图1 (b)),由于其先进的金字塔结构,我们的方法更容易插入许多具有代表性的密集预测管道,如RetinaNet[39]和Mask R-CNN[21]。第三,我们可以将我们的PVT与其他任务特定的Transformer解码器结合起来,构建一个无卷积的管道,例如用于对象检测的PVT+DETR[6]。据我们所知,这是第一个完全没有卷积的目标检测管道。

        我们的主要贡献如下:

        (1)我们提出了金字塔视觉变压器(PVT),这是第一个专为各种像素级密集预测任务设计的纯变压器主干。结合我们的PVT和DETR,我们可以构建一个端到端的目标检测系统,没有卷积和手工制作的组件,如密集锚点和非最大抑制(NMS)。

        (2)在将Transformer移植到密集预测时,我们通过设计一个渐进收缩金字塔和空间缩减关注(SRA),克服了许多困难。这能够减少transformer的资源消耗,使PVT能够灵活地学习多尺度和高分辨率的特性。

        (3)我们评估了提出的PVT在几个不同任务上的性能,包括图像分类、目标检测、实例和语义分割,并将其与流行的ResNets[22]和ResNeXts进行了比较[73]。如图2所示,与现有技术相比,我们的PVT具有不同的参数尺度,可以持续地提高性能。例如,在相当数量的参数下,使用retavanet[39]进行目标检测,ppt - small在COCO val2017上达到40.4 AP,比ResNet50高出4.1点(40.4 vs. 36.3)。ppt - large达到42.6 AP,比ResNeXt101-64x4d好1.6分,参数少30%。

2. Related Work   

2.1. CNN Backbones

        cnn是深度神经网络在视觉识别中的主要功能。标准的CNN最早是在[34]中引入的,用来区分手写数字。该模型包含具有特定接受域的卷积核,能够捕捉良好的视觉环境。为了提供平移等方差,卷积核的权值在整个图像空间中被共享。近年来,随着计算资源(如GPU)的快速发展,在大规模图像分类数据集(如ImageNet[51])上成功训练堆叠卷积块[33,54]已经成为可能。例如,GoogLeNet[59]证明了包含多个内核路径的卷积运算符可以获得非常有竞争力的性能。多路径卷积块的有效性在Inception系列[60,58]、ResNeXt[73]、DPN[10]、MixNet[65]和SKNet[36]中得到了进一步验证。此外,ResNet[22]在卷积块中引入了跳跃连接,使得创建/训练非常深的网络成为可能,并在计算机视觉领域获得了令人印象深刻的结果。DenseNet[25]引入了一种密集连接的拓扑,它将每个卷积块与所有之前的块连接起来。最近的研究进展可以在最近的调查/评论论文中找到[31,53]。

        与成熟的cnn不同,视觉Transformer的主干仍处于开发的早期阶段。在这项工作中,我们试图通过设计一种新的通用Transformer主干结构来扩展视觉变压器的范围,适用于大多数视觉任务。

2.2. Dense Prediction Tasks

        初步。密集预测任务的目的是对特征图进行像素级分类或回归。目标检测和语义分割是两个具有代表性的密集预测任务。

        对象检测。在深度学习时代,cnn[34]已经成为目标检测的主导框架,包括单级检测器(如SSD[43]、RetinaNet[39]、FCOS[62]、GFL[37, 35]、PolarMask[71]和OneNet[55])和多级检测器(Faster R-CNN[49]、Mask R-CNN[21]、Cascade R-CNN[4]和Sparse R-CNN[57])。目前流行的目标检测器大多建立在高分辨率或多尺度特征图上,以获得良好的检测性能。最近,DETR[6]和可变形DETR[85]将CNN主干和Transformer解码器结合起来,构建了一个端到端物体检测器。同样,它们也需要高分辨率或多尺度特征图来精确地检测目标。

        语义分割。cnn在语义分割方面也发挥着重要作用。在早期阶段,FCN[44]引入了一种全卷积体系结构来为任意大小的给定图像生成空间分割图。之后,Noh et al.[47]引入了反褶积运算,在PASCAL VOC 2012数据集[52]上取得了令人印象深刻的性能。在FCN的启发下,针对医学图像分割领域提出了UNet[50],连接了相同空间大小的对应的低层和高层特征图之间的信息流。为了探索更丰富的全局上下文表示,Zhao等人[81]设计了不同池化尺度上的金字塔池化模块,Kirillov等人[32]在FPN[38]的基础上开发了一种轻量级的分割头名为Semantic FPN。最后,DeepLab家族[8,41]在保持特征图分辨率的同时,应用扩张卷积来扩大接受域。与目标检测方法类似,语义分割模型也依赖于高分辨率或多尺度特征图。

2.3. Self-Attention and Transformer in Vision

        由于卷积滤波器训练后的权值通常是固定的,因此不能动态地适应不同的输入。人们提出了许多方法来缓解这个问题,使用动态滤波器[30]或自注意操作[64]。非局部块[70]试图在空间和时间上建模长期依赖关系,这已被证明有利于准确的视频分类。然而,尽管非局部操作符取得了成功,但它的计算和内存成本较高。交叉[26]通过交叉路径生成稀疏注意图,进一步降低了复杂性。Ramachandran et al.[48]提出了独立的自注意,用局部自注意单元替换卷积层。AANet[3]结合了自注意和卷积运算,获得了具有竞争力的结果。LambdaNetworks[2]使用lambda层,一种高效的自我注意来替代CNN中的卷积。DETR[6]利用Transformer解码器将对象检测建模为带有可学习查询的端到端字典查找问题,成功地消除了对手工流程(如NMS)的需求。可变形DETR[85]在DETR的基础上进一步采用可变形的注意层来聚焦于稀疏的上下文元素集合,从而获得更快的收敛速度和更好的性能。最近,Vision Transformer (ViT)[13]采用了一种纯Transformer[64]模型进行图像分类,将图像视为一组patch。DeiT[63]利用一种新的蒸馏方法进一步扩展了ViT。与以往的模型不同,本工作在Transformer中引入了金字塔结构,为密集的预测任务提供了一个纯Transformer主干,而不是一个特定于任务的头部或图像分类模型。

3. Pyramid Vision Transformer (PVT)

3.1. Overall Architecture

我们的目标是在Transformer框架中引入金字塔结构,使其能够为密集预测任务(如目标检测和语义分割)生成多尺度特征图。图3描述了PVT的概述。与CNN backbone[22]相似,我们的方法有四个阶段,分别生成不同尺度的特征图。所有阶段都共享一个类似的架构,由补丁嵌入层和Li- Transformer编码器层组成。

图3:金字塔视觉转换器(PVT)的总体架构。整个模型分为四个阶段,每个阶段由patch嵌入层和li层Transformer编码器组成。按照金字塔结构,四个阶段的输出分辨率从高(4步幅)逐渐缩小到低(32步幅)。

        在第一阶段,给定一个大小为H×W×3的输入图像,我们首先将其划分为个patch,每个patch大小为4×4×3。然后,将扁平的patch进行线性投影,得到大小为的嵌入patch。然后,将嵌入的patch和位置嵌入通过L1层的Transformer编码器,将输出重构为大小为的feature mapF1。同样,使用前一阶段的feature map作为输入,我们得到如下feature map: F2, F3, F4,它们相对于输入图像的stride分别为8,16,32像素。通过特征金字塔{F1, F2, F3, F4},我们的方法可以很容易地应用于大多数下游任务,包括图像分类,目标检测和语义分割。

3.2. Feature Pyramid for Transformer

        与CNN骨干网[54,22]使用不同的卷积步距来获取多尺度特征图不同,我们的PVT使用一种渐进收缩策略,通过patch嵌入层来控制特征图的尺度。

        在这里,我们将第i阶段的patch大小表示为Pi。在阶段i的开始阶段,我们首先将输入的feature map 平均划分为patch,然后将每个patch平坦化并投影到ci维嵌入中。线性投影后,嵌入的patch的形状可以看成是,其高度和宽度都是Pi比输入小1倍。

        这样,我们就可以在每个阶段灵活地调整feature map的比例尺,从而可以构造Transformer的feature pyramid。

3.3. Transformer Encoder    

        阶段i的Transformer编码器有Li编码器层,每个Li编码器层由注意层和前馈层组成[64]。由于PVT需要处理高分辨率(如4-stride)特征图,我们提出了空间约简注意(SRA)层来替代编码器中传统的多头注意(MHA)层[64]。        

        与MHA类似,我们的SRA接收一个查询Q、一个键K和一个值V作为输入,并输出一个细化的特征。不同的是,我们的SRA在注意操作前降低了K和V的空间尺度(见图4),大大降低了计算/内存开销。第一阶段SRA的具体情况如下:

式中Concat(·)为串联操作,如[64]。, 为线性投影参数。Ni为阶段i中注意层的头数,因此每个头的尺寸(即dhead)等于Ci Ni。SR(·)是减小输入序列(即K或V)的空间维数的操作,表示为:

其中,x∈R(HiWi)×Ci表示一个输入序列,Ri表示阶段i中注意层的缩减率。重塑(x, Ri)是将输入序列x重塑为一个大小为HiWi R2 i × (R2 i Ci)的序列的操作。WS∈R(R2 iCi)×Ci是一个线性投影,它将输入序列的维数减小到Ci。范数(·)为层规格化[1]。与原来的Transformer[64]一样,我们的注意操作注意(·)计算如下:

通过这些公式,我们可以发现,我们的注意操作的计算/存储成本R2 / i比MHA低,因此我们的SRA可以在有限的资源下处理更大的输入特征映射/序列。

3.4. Model Details

综上所述,我们方法的超参数如下:

•Pi:阶段i的patch大小;

•Ci: i阶段输出的通道号;

•Li:阶段i的编码器层数;

•Ri:第一期SRA的还原比;

•Ni:第i阶段SRA的头号;

•Ei:第i阶段前馈层的扩展比[64];

遵循ResNet[22]的设计规则,我们(1)在浅层使用小的输出通道数;(2)中间阶段集中主要计算资源。

为了提供实例供讨论,我们在表1中描述了一系列不同尺度的PVT模型,即PVT- tiny、Small、-Medium和-Large,其参数数分别可与ResNet18、50、101和152相媲美。在具体的下游任务中使用这些模型的更多细节将在第4节中介绍。

3.5. Discussion

        与我们的模型最相关的工作是ViT[13]。在此,我们将讨论它们之间的关系和区别。首先,PVT和ViT都是没有卷积的纯Transformer模型。它们之间的主要区别是金字塔结构。与传统的Transformer[64]类似,ViT的输出序列长度与输入序列长度相同,即ViT的输出为单级(见图1 (b))。此外,由于资源的限制,ViT的输入是粗粒度的(如patch大小为16或32像素),因此其输出分辨率较低(如16-stride或32-stride)。因此,ViT很难直接应用于需要高分辨率或多尺度特征图的密集预测任务。

        我们的PVT通过引入一个逐渐缩小的金字塔打破了Transformer的常规。它可以像传统的CNN主干一样生成多尺度特征图。此外,我们还设计了一个简单但有效的注意层- sra,以处理高分辨率的特征图和减少计算/内存成本。通过上述设计,我们的方法比ViT具有以下优点:1)更灵活——可以在不同阶段生成不同比例尺/通道的特征图;2)更多功能-可以很容易地插入和发挥在大多数下游的任务模型;3)更友好的计算/内存-可以处理更高分辨率的特征图或更长序列。

4. Application to Downstream Tasks

4.1. Image-Level Prediction

4.2. Pixel-Level Dense Prediction

        除了图像级的预测,需要对feature map进行像素级分类或回归的密集预测也经常出现在下游任务中。在这里,我们讨论两个典型的任务,即对象检测和语义分割。

        我们将我们的PVT模型应用于三种代表性的密集预测方法,即retavanet[39]、Mask RCNN[21]和Semantic FPN[32]。retavanet是一种被广泛使用的单级检测器,Mask R-CNN是目前最流行的两级实例分割框架,而Semantic FPN是一种普通的语义分割方法,不需要特殊操作(如扩张卷积)。使用这些方法作为基线,使我们能够充分检查不同骨干的有效性。

        实现细节如下:(1)像ResNet一样,我们用预先在ImageNet上训练的权值初始化PVT骨干;(2)将输出的特征金字塔{F1, F2, F3, F4}作为FPN[38]的输入,然后将精化后的特征映射馈送到后续的检测/分割头部;(3)在训练检测/分割模型时,PVT中的所有层都没有被冻结;(4)由于检测/分割的输入可以是任意形状,在ImageNet上预先训练的位置嵌入可能不再有意义。因此,我们根据输入分辨率对预训练的位置嵌入进行双线性插值。

5. Experiments

我们将PVT与两种最具代表性的CNN骨干网ResNet[22]和ResNeXt[73]进行比较,这两种骨干网被广泛应用于许多下游任务的基准。

5.1. Image Classification

5.2. Object Detection

5.3. Semantic Segmentation

设置。我们选择具有挑战性的场景解析数据集ADE20K[83]来测试语义分割的性能。ADE20K包含150个细粒度语义类别,分别有20,210、2,000和3,352张图像用于训练、验证和测试。我们在Semantic FPN[32]的基础上评估了我们的PVT骨干,这是一种没有扩展卷积的简单分割方法[74]。在训练阶段,骨干用ImageNet[12]上预训练的权值进行初始化,其他新添加的层用Xavier[18]进行初始化。我们使用AdamW[46]优化模型,初始学习速率为1e-4。按照常见的实践[32,8],我们在4个V100 gpu上以16个批处理大小为80k的迭代训练我们的模型。学习速率按照0.9次幂的多项式衰减时间表衰减。我们随机调整和裁剪图像到512 × 512进行训练,在测试时重新缩放到更短的512像素边。

结果。如表5所示,在使用语义FPN[32]进行语义分词时,基于pvt的模型始终优于基于ResNet[22]或ResNeXt的模型[73]。例如,在大多数相同的参数和GFLOPs的情况下,我们的ppt - tiny /Small/Medium比ResNet-18/50/101至少高2.8点。此外,虽然我们ppt - large的参数数和GFLOPs比ResNeXt101-64x4d低20%,但mIoU仍然高1.9分(42.1 vs. 40.2)。PVT-Large+Semantic FPN具有更长的训练计划和多尺度测试,其最佳mIoU为44.8,与最先进的ADE20K基准测试的性能非常接近。请注意,语义FPN只是一个简单的分割头。这些结果表明,我们的PVT主干能够比CNN主干提取更好的语义分割特征,这得益于全局关注机制。

5.4. Pure Transformer Detection & Segmentation

pvt + detr。为了达到没有卷积的极限,我们只需将我们的PVT与基于Transformer的检测头detr[6]结合起来,就可以构建一个纯Transformer管道用于对象检测。我们在COCO train2017上对模型进行50个epoch的训练,初始学习率为1 × 10−4。在第33代,学习速率除以10。我们使用随机翻转和多尺度训练作为数据增强。其他实验设置与5.2章节相同。如表6所述,基于pvs的DETR在COCO val2017上达到了34.7 AP,比原始的基于resnet50的DETR高出2.4点(34.7 vs 32.3)。这些结果证明,纯Transformer检测器也能很好地完成目标检测任务。

PVT+Trans2Seg。我们将PVT与Trans2Seg[72]相结合,构建了一个纯Transformer的语义分割模型。Trans2Seg是一个基于Transformer的分割头。根据5.3实验设置,我们在ADE20K[83]上进行40k迭代训练、单尺度测试实验,并与表7中的ResNet50-d8 (dilation8)和-d16(dilation8)进行对比。我们发现我们的ppt - small +Trans2Seg达到了42.6 mIoU,优于ResNet50-d8+DeeplabV3+(41.5)。值得注意的是,ResNet50-d8+DeeplabV3+由于扩张型卷积的计算成本较高,有120.5个GFLOPs,而我们的方法只有31.6个GFLOPs,是它的4倍。此外,我们的PVT-Small+Trans2Seg性能优于ResNet50-d16+Trans2Seg (mIoU: 42.6 vs. 39.7, GFlops: 31.6 vs. 79.3)。这些结果证明了一个纯Transformer分割网络是可行的。

5.5. Ablation Study

6. Conclusions and Future Work

        我们引入了PVT,这是一个纯Transformer主干,用于密集预测任务,如对象检测和语义分割。为了在有限的计算/内存资源下获得高分辨率、多尺度的特征图,我们提出了一个逐步缩小的金字塔和一个空间缩小的注意层。在目标检测和语义分割基准上的大量实验验证了我们的PVT在相当数量的参数下比精心设计的CNN主干更强。

        虽然PVT可以作为CNN主干(如ResNet、ResNeXt)的替代方案,但仍有一些针对CNN设计的特定模块和操作在本工作中没有考虑,如SE[23]、SK[36]、dilated convolution[74]、model pruning[20]、NAS[61]。此外,经过多年的快速发展,已经出现了许多精心设计的CNN骨干,如Res2Net[17]、EfficientNet[61]、ResNeSt[79]。相比之下,基于transformer的计算机视觉模型仍处于发展的早期阶段。因此,我们认为未来有许多潜在的技术和应用(如OCR [68, 66, 69], 3D[28, 11, 27]和医学[15,16,29]图像分析)有待探索,希望PVT可以作为一个很好的起点。

-----------------------------------

0、Abstract

        最近,Transformer在计算机视觉方面取得了令人鼓舞的进展。在本研究中,我们通过增加(1)线性复杂度注意层、(2)重叠贴片嵌入和(3)卷积前馈网络三种设计,改进了原始的金字塔视觉转换器(PVT v1),提出了新的基线。通过这些改进,PVT v2将PVT v1的计算复杂度降为线性,并在分类、检测和分割等基本视觉任务上实现了显著改进。值得注意的是,PVT v2与Swin Transformer等最近的作品相比,取得了相当或更好的性能。我们希望这项工作将促进最先进的变压器在计算机视觉的研究。代码可以在https://github.com/whai362/PVT上找到。

1. Introduction

        最近对视觉Transformer的研究主要集中在骨干网[8,31,33,34,23,36,10,5]上,骨干网设计用于下游视觉任务,如图像分类、目标检测、实例和语义分割。迄今为止,已经取得了一些令人鼓舞的成果。例如,Vision Transformer (ViT)[8]首先证明,纯Transformer可以对图像分类的最新性能进行归档。Pyramid Vision Transformer (PVT v1)[33]表明,纯Transformer主干在检测和分割等密集预测任务方面也可以超越CNN[22,41]。在此之后,Swin Transformer[23]、CoaT[36]、LeViT[10]、Twins[5]进一步提高了Transformer主干的分类、检测和分割性能。

        这项工作的目的是在PVT v1框架上建立更强、更可行的基线。我们报告了三种设计改进,即(1)线性复杂度注意层(2)重叠贴片嵌入(3)卷积前馈网络正交于PVT v1框架,当与PVT v1结合使用时,它们可以带来更好的图像分类、目标检测、实例和语义分割性能。改进后的框架称为PVT v2。其中,PVT v2-B51在ImageNet上的top-1错误率为83.8%,优于Swin-B[23]和Twins-SVT-L[5],而我们的模型具有更少的参数和GFLOPs。此外,GFL[19]与ppt - b2存档在COCO val2017上50.2 AP,比Swin-T[23]高2.6 AP,比ResNet50[13]高5.7 AP。我们希望这些改进的基线将为未来视觉Transformer的研究提供参考。

2. Related Work

        我们主要讨论与此工作相关的变压器骨干。ViT[8]将每个图像视为一个固定长度的标记(补丁)序列,然后将它们提供给多个Transformer层进行分类。这是首次证明在训练数据充足的情况下,纯Transformer也可以在图像分类中保存最先进的性能(如ImageNet-22k [7], JFT300M)。DeiT[31]进一步探索了数据高效的培训策略和ViT的精馏方法。

        为了提高图像分类性能,最近的方法对ViT进行了定制化的修改。T2T ViT[37]将重叠滑动窗口中的令牌逐步连接为一个令牌。TNT[11]利用内部和外部的Transformer块分别生成像素和patch嵌入。CPVT[6]用条件位置编码取代了ViT中固定大小的位置嵌入,使其更容易处理任意分辨率的图像。CrossViT[2]通过双支路变压器处理不同大小的图像补丁。LocalViT[20]在vision transformer中引入深度卷积,以改善特征的局部连续性。

        为了适应对象检测、实例和语义分割等密集的预测任务,也有一些方法[33,23,34,36,10,5]将cnn中的金字塔结构引入到Transformer主干的设计中。PVT v1是第一个金字塔结构的Transformer,它给出了一个有四个阶段的分层的Transformer,这表明一个纯Transformer主干可以像CNN主干一样通用,在检测和分割任务上表现得更好。在此之后,我们进行了一些改进[23,34,36,10,5],以增强特征的局部连续性,去除固定大小的位置嵌入。例如,Swin Transformer[23]用相对位置偏差替换固定大小的位置嵌入,并限制在移位窗口内的自注意。CvT[34]、CoaT[36]和LeViT[10]在vision transformer中引入了类似卷积的操作。Twins[5]结合了局部注意和全局注意机制,以获得更强的特征表示。

3. Methodology

3.1. Limitations in PVT v1

        PVT v1[33]的主要局限性有以下三个方面:(1)与ViT[8]类似,在处理高分辨率输入时(如短边为800像素),PVT v1的计算复杂度相对较大。(2) PVT v1[33]将一幅图像视为一组不重叠的patch序列,在一定程度上丧失了图像的局部连续性;(3) PVT v1中的位置编码是固定大小的,对于处理任意大小的图像是不灵活的。这些问题限制了PVT v1在视觉任务上的性能。

        为了解决这些问题,我们提出了PVT v2,它通过三种设计对PVT v1进行了改进,分别在第3.2、3.3和3.4节中列出。

3.2. Linear Spatial Reduction Attention

        首先,为了降低注意力操作导致的高计算成本,我们提出了如图1所示的注意力层线性空间缩减(SRA)。与SRA[33]使用卷积进行空间缩减不同,线性SRA在注意操作前使用平均池化方法将空间维数(即h×w)降至固定大小(即P×P)。所以线性SRA享受线性计算和内存开销,就像卷积层。具体来说,给定大小为h×w×c的输入,SRA和线性SRA的复杂度为:

式中,R为SRA[33]的空间缩减比。P为线性SRA的池大小,设为7。

3.3. Overlapping Patch Embedding

        其次,为了对局部连续性信息进行建模,我们利用重叠贴片嵌入对图像进行标记化。如图2(a)所示,我们将patch窗口放大,使相邻的窗口重叠一半的面积,并对feature map进行零填充以保持分辨率。在这项工作中,我们使用零填充的卷积来实现重叠的贴片嵌入。具体来说,给定一个大小为h×w×c的输入,采用卷积的方式,步长为S,卷积核大小2S−1、填充大小为S−1,卷积核数量为c'。输出尺寸为h/S × w/S ×c'。

3.4. Convolutional Feed-Forward

        第三,受[17,6,20]的启发,我们去除固定大小的位置编码[8],在pv中引入零填充位置编码,如图2(b)所示,我们在前馈网络的第一全连接层(FC)与GELU[15]之间添加填充大小为1的3 × 3深度卷积[16]。

3.5. Details of PVT v2 Series

我们通过改变超参数将PVT v2从B0扩展到B5。

•Si:第i阶段重叠斑块嵌入的步幅;

•Ci: i阶段输出的通道号;

•Li:阶段i的编码器层数;

•Ri:第一期SRA的还原比;

•Pi:第i阶段线性SRA的自适应平均池化大小;

•Ni:第一阶段有效自我注意的头数;

•Ei:第i阶段前馈层[32]的扩展比;

表1显示了PVT v2系列的详细信息。我们的设计遵循ResNet[14]的原则。(1)随层深增加,通道尺寸增大,空间分辨率减小。(2)阶段3分配了大部分的计算费用。

3.6. Advantages of PVT v2

结合这些改进,PVT v2可以(1)获得更多的图像和特征图的局部连续性;(2)更灵活地处理变量分辨率输入;(3)具有与CNN相同的线性复杂度。

4. Experiment

4.1. Image Classification

4.2. Object Detection

4.3. Semantic Segmentation

设置。在PVT v1[33]之后,我们选择了ADE20K[41]来对语义分词的性能进行基准测试。为了进行比较,我们将PVT v2骨干网应用于语义FPN[18],并对其性能进行了测试。在训练阶段,用ImageNet[7]上预先训练的权值初始化骨干,用Xavier[9]初始化新添加的层。我们使用AdamW[25]优化模型,初始学习速率为1e-4。按照常见的实践[18,4],我们在4个V100 gpu上以16个批处理的规模训练我们的模型40k次迭代。学习速率按照0.9次幂的多项式衰减时间表衰减。我们随机调整和裁剪图像到512 × 512进行训练,在测试时重新缩放到更短的512像素边。

结果。如表5所示,在使用语义FPN[18]进行语义分词时,PVT v2始终优于PVT v1[33]等。例如,在参数和GFLOPs数量几乎相同的情况下,PVT v2-B1/B2/B3/B4比PVT v1-Tiny/Small/Medium/Large至少高出5.3%。此外,PVT-Large的GFLOPs虽然比ResNeXt101-64x4d低12%,但mIoU仍比ResNeXt101-64x4d高8.5点(48.7 vs 40.2)。在图3中,我们也看到了一些在ADE20K[41]上的定性语义分割结果。这些结果表明,PVT v2骨干网可以提取强大的语义分割特征,这得益于改进的设计。

4.4. Ablation Study

4.4.1 Model Analysis

表6报道了PVT v2的消融实验。我们看到,这三种设计都可以在性能、参数数量或计算开销方面改进模型。

重叠补丁嵌入(OPE)很重要。对比表6中的#1和#2,使用OPE的模型在ImageNet上的top-1准确率(81.1% vs. 79.8%)和在COCO上的AP (42.2% vs. 40.4%)比使用原始patch embedding (PE)[8]的模型更好。OPE是有效的,因为它可以通过重叠滑动窗口对图像和特征图的局部连续性进行建模。

卷积前馈网络(CFFN)很重要。与原始的前馈网络(FFN)[8]相比,我们的CFFN包含一个零填充卷积层。可以捕获输入张量的局部连续性。此外,由于在OPE和CFFN中通过加零引入位置信息,我们可以去除PVT v1中使用的固定大小的位置嵌入,使模型能够灵活地处理可变分辨率输入。如表6中#2和#3所述,CFFN在ImageNet上提高了0.9分(82.0%对81.1%),在COCO上提高了2.4分,这表明了CFFN的有效性。

线性SRA (Linear SRA)是一种较好的模型。这些结果表明,LSRA算法计算成本低,效果良好。线性SRA (Linear SRA)是一种较好的模型。如表6中#3和#4所述,与SRA[33]相比,我们的LSRA显著降低了模型22%的计算开销(GFLOPs),同时在ImageNet上保持了可比较的top-1精度(82.1%对82.0%),在COCO上只降低了1个点的AP(43.6对44.6)。这些结果表明,LSRA算法计算成本低,效果良好。

4.4.2 Computation Overhead Analysis

如图4所示,随着输入规模的增加,本文提出的PVT v2-B2-Li的GFLOPs增长率远低于PVT v1-Small[33],与ResNet-50[13]相似。这一结果证明我们的PVT v2-Li成功地解决了由注意层引起的高计算开销问题。

5. Conclusion

研究了金字塔视觉转换器(PVT v1)的局限性,采用重叠贴片嵌入、卷积前馈网络和线性空间约简注意层三种设计对其进行了改进。在图像分类、目标检测和语义分割等不同任务上的大量实验表明,在相同的参数数量下,提出的PVT v2比其前身PVT v1和其他最先进的基于变压器的主干更强。我们希望这些改进的基线将为未来视觉Transformer的研究提供参考。

自己总结:

1、应该是优于swin,不知道和segformer的关系,pvtv2一作是segformer二作

2、三个改进点重叠补丁嵌入(OPE),卷积前馈网络(CFFN),线性SRA (Linear SRA)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/139302.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows上运行yolov3代码详解(小白)

batch_normalize1 # 是否做BN 代码链接 环境配置 没有Anaconda的话可以安装下 首先创建虚拟环境,名称随意,版本3.9.我觉得挺好的 激活虚拟环境 conda activate 刚刚创建的环境名称 切换到requirements.txt目录下,直接vscode打开yolov3文件…

【操作系统面试题(32道)与面试Linux命令大全】

文章目录 操作系统面试题引论1.什么是操作系统?2.操作系统主要有哪些功能? 操作系统结构3.什么是内核?4.什么是用户态和内核态?5.用户态和内核态是如何切换的? 进程和线程6.并行和并发有什么区别?7.什么是进…

ThinkPHP图片处理之压缩图片大小,图片处理之图片水印(添加平铺文字水印,并设置文字之间的间距和文字的角度)

安装扩展 使用Composer安装图像处理类库 composer require topthink/think-image在对应的控制器内引入Image use think\Image;图片处理之压缩图片大小 public function upload(){$file request()->file(image);// 将前端传过来的图片移动到项目目录下$info $file->…

web前端开发第4次Dreamweave课堂练习/html练习代码《出版界推出一批纪念抗美援朝胜利70周年主题图书》

目标图片: 文字素材: 出版界推出一批纪念抗美援朝胜利70周年主题图书 2023-08-01来源:新华社 为纪念抗美援朝战争胜利70周年,出版界集中推出了“抗美援朝亲历记丛书”《新中国立国之战——抗美援朝战争的回顾与思考》《毛泽东与…

C 语言 goto 语句

C 语言 goto 语句 在本教程中,您将学习在C语言编程中创建goto语句。此外,您还将学习何时使用goto语句以及何时不使用它。 goto语句使我们可以将程序的控制权转移到指定的label 标签。 goto语句的语法 goto label; ... .. ... ... .. ... label: sta…

Leetcode—2471.逐层排序二叉树所需的最少操作数目【中等】(置换环解法!)

2023每日刷题(二十七) Leetcode—2471.逐层排序二叉树所需的最少操作数目 置换环解题思想 参考自网络 总交换次数 每一层最小交换次数之和 每一层元素个数 - 置换环数 实现代码 /*** Definition for a binary tree node.* struct TreeNode {* …

docker通过nginx代理tomcat-域名重定向

通过昨天的调试,今天做这个域名就简单了, 正常我们访问网站一般都是通过域名比如,www.baidu.com对吧,有人也通过ip,那么这个怎么做呢?物理机windows可以通过域名访问虚拟机linux的nginx代理转向tomcat服务…

【LeetCode刷题-二分查找】--658.找到K个最接近的元素

658.找到K个最接近的元素 方法一:二分查找双指针 假设数组长度为n,数组arr已经按照升序排序,可以将数组arr分为两部分,前一部分所有元素[0,left]都小于x,后一部分[right,n-1]都大于等于x,left与right都可以…

Windows10 安装 Ubuntu(WSL2)

Windows10 安装 Ubuntu(WSL2):因为 Ubuntu(WSL1) 不具备调试功能,所以尽可能安装 Ubuntu(WSL2)。 具体流程如下: 1. 什么是WSL Windows Subsystem for Linux(简称WSL),Windows下的 Linux 子系统&#xff…

YOLO目标检测——猫狗目标检测数据集下载分享【含对应voc、coco和yolo三种格式标签】

实际项目应用:宠物识别、猫狗分类数据集说明:猫狗分类检测数据集,真实场景的高质量图片数据,数据场景丰富,含有猫和狗图片标签说明:使用lableimg标注软件标注,标注框质量高,含voc(xm…

【Linux】初识进程地址空间

❤️前言 大家好!这里是好久没有营业的大懒虫lion,今天要和大家聊的内容是我最近新学习的关于进程地址空间的相关知识。 正文 当我们使用C/C语言进行内存管理时,经常会接触到这样的一张图片: 它常常被我们称作程序地址空间&#…

druid连接池异常GetConnectionTimeoutException(原创)

问题描述 有天,测试同学突然反馈系统页面查询缓慢,影响使用,我查了日志报: druid 连接池异常 GetConnectionTimeoutException wait millis 9120, active 20, maxActive 20 creating 0 结论先行 经一系列排查,得出数…

面试10000次依然会问的【ThreadLocal】,你还不会?

ThreadLocal简介与基本概念 ThreadLocal,即线程局部变量,是Java语言中用于实现线程数据隔离的一个重要类。这种机制允许在多线程环境中,每个线程都有自己的变量副本,从而使得每个线程都可以独立地改变自己的副本,而不…

css实现div倾斜效果

效果如下&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title></head> <style> *{margin:0;padding: 0;} .box1{margin:30px 100px;width:100px;height:200px;background:blueviolet;} …

【信息安全原理】——传输层安全(学习笔记)

&#x1f4d6; 前言&#xff1a;为保证网络应用&#xff0c;特别是应用广泛的Web应用数据传输的安全性&#xff08;机密性、完整性和真实性&#xff09;&#xff0c;可以在多个网络层次上采取安全措施。本篇主要介绍传输层提供应用数据安全传输服务的协议&#xff0c;包括&…

使用 HTTP Client 轻松进行 API 测试

在开发过程中&#xff0c;我们经常需要测试 API 接口以确保其正常工作。JetBrains 的集成开发环境&#xff08;IDE&#xff09;如 CLion、IntelliJ IDEA、PyCharm 等&#xff0c;默认内置了 HTTP Client 插件&#xff0c;可以方便地进行API测试。本文将介绍如何使用HTTP Client…

2023年【汽车驾驶员(高级)】找解析及汽车驾驶员(高级)复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 汽车驾驶员&#xff08;高级&#xff09;找解析是安全生产模拟考试一点通总题库中生成的一套汽车驾驶员&#xff08;高级&#xff09;复审考试&#xff0c;安全生产模拟考试一点通上汽车驾驶员&#xff08;高级&#…

Xilinx FPGA平台DDR3设计详解(一):DDR SDRAM系统框架

DDR SDRAM&#xff08;双倍速率同步动态随机存储器&#xff09;是一种内存技术&#xff0c;它可以在时钟信号的上升沿和下降沿都传输数据&#xff0c;从而提高数据传输的速率。DDR SDRAM已经发展了多代&#xff0c;包括DDR、DDR2、DDR3、DDR4和DDR5&#xff0c;每一代都有不同的…

长虹智能电视使用123

1、开机 在接通电源的情况下&#xff0c;长虹智能电视开机有两种方式。 方式1&#xff1a; 按电视右下角开机按钮 方式2&#xff1a; 按电视遥控器开机按钮 长虹智能电视开机后会进入其操作系统&#xff08;安卓&#xff09;。 屏幕左右双箭头图表&#xff0c;手指点击会…

SpringMvc 常见面试题

1、SpringMvc概述 1.1、什么是Spring MVC &#xff1f;简单介绍下你对springMVC的理解? Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架&#xff0c;通过把Model&#xff0c;View&#xff0c;Controller分离&#xff0c;将web层进行职责解耦&am…