作者单位:1上海人工智能实验室,2南京大学,3香港大学,4南京理工大学,5IIAI, 6商汤科技
代码:https://github.com/whai362/PVT.
Transformer最近在计算机视觉方面取得了令人鼓舞的进展。在这项工作中,作者通过添加三种设计来改进原始Pyramid Vision Transformer(PVT v1),从而提出了新的基线,包括(1)线性复杂度注意力层,(2)重叠补丁嵌入,和(3)卷积前馈网络。通过这些修改,PVT v2将PVT v1的计算复杂度降低到线性,并在分类,检测和分割等基本视觉任务上实现了显着改进。值得注意的是,拟议的PVT v2实现了与Swin Transformer等最近作品相当或更好的性能。作者希望这项工作将促进国家的最先进的Transformer在计算机视觉的研究。
1 引言
最近对视觉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-B5在ImageNet上产生了83.8%的top-1误差,优于Swin-B [23]和Twins-SVT-L [5],而PVT v2具有更少的参数和GFLOPs。此外,使用PVT-B2的GFL [19]在COCO val 2017上记录了50.2 AP,比使用Swin-T的高2.6 AP [23],比使用ResNet 50的高5.7 AP [13]。作者希望这些改进的基线将提供一个参考未来的研究在视觉Transformer。
2 相关工作
这里主要讨论与这项工作相关的Transformer主干。ViT [8]将每个图像视为具有固定长度的令牌(补丁)序列,然后将它们馈送到多个Transformer层以执行分类。这是第一个证明纯Transformer在训练数据充足时也可以在图像分类中实现最先进性能的工作(例如,ImageNet-22k [7],JFT300M).DeiT [31]进一步探索了数据有效的训练策略和ViT的蒸馏方法。
为了提高图像分类性能,最近的方法对ViT进行了量身定制的更改。T2T ViT [37]将重叠滑动窗口内的令牌逐步连接为一个令牌。TNT [11]利用内部和外部Transformer块分别生成像素和补丁嵌入。CPVT [6]用条件位置编码取代了ViT中的固定大小位置嵌入,使其更容易处理任意分辨率的图像。CrossViT [2]通过双分支Transformer处理不同大小的图像块。LocalViT [20]将深度卷积集成到视觉变换器中,以提高特征的局部连续性。
为了适应密集预测任务,如目标检测,实例和语义分割,还有一些方法[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]将类似卷积的操作引入到视觉转换器中。Twins [5]结合了局部注意力和全局注意力机制,以获得更强的特征表示。
3 方法
3.1 PVT v1的限制
PVT v1 [33]中有三个主要限制如下:(1)与ViT [8]类似,当处理高分辨率输入(例如,短边为800像素),PVT v1的计算复杂度相对较大。(2)PVT v1 [33]将图像视为一系列不重叠的补丁,这在一定程度上失去了图像的局部连续性;(3)PVT v1中的位置编码是固定大小的,这对于任意大小的过程图像是不灵活的。这些问题限制了PVT v1在视觉任务上的性能。为了解决这些问题,作者提出了PVT v2,它通过三种设计改进了PVT v1,这些设计在第3.2、3.3和3.4节中列出。
3.2 线性空间缩减注意力
首先,为了减少由注意力操作引起的高计算成本,提出了如图1所示的线性空间注意力减少(SRA)层。与使用卷积进行空间缩减的SRA [33]不同,线性SRA在注意操作前使用平均池化来减少空间维度(即,h×w)到固定大小(即,P×P)。因此,线性SRA像卷积层一样具有线性计算和内存成本。具体来说,给定大小为h×w×c的输入,SRA和线性SRA的复杂度为:
3.3 Overlapping patch embedding
其次,为了模拟局部连续性信息,作者利用重叠补丁嵌入标记图像。如图2(a)所示,扩大补丁窗口,使相邻窗口重叠一半的区域,并用零填充特征图以保持分辨率。在这项工作中,使用卷积零填充实现重叠补丁嵌入。具体来说,给定一个大小为h×w×c的输入,将其馈送到一个步长为S、核大小为2S − 1、填充大小为S − 1、核数为的卷积中。输出大小为
。
3.4 Convolutional Feed-Forward
第三,受[17,6,20]的启发,我们删除了固定大小的位置编码[8],并将零填充位置编码引入到PVT中。如图2(B)所示,我们在前馈网络中的第一个全连接(FC)层和GELU [15]之间添加了填充大小为1的3 × 3深度卷积[16]。
3.5 PVT v2系列详情
作者通过改变超参数将PVT v2从B 0放大到B5。
具体如下:
· Si:阶段i中重叠片嵌入的步幅;
· Ci:阶段i的输出通道大小;
· Li:阶段i中编码器层的数量;
·Ri:阶段i中的SRA的减少比率;
· Pi:阶段i中的线性SRA的自适应平均池化大小;
· Ni:阶段i中的高效自注意的头数;
· Ei:在阶段i中前馈层[32]的膨胀比;
Table1显示了PVT v2系列的详细信息。设计遵循ResNet [14]的原则。(1)随着层变深,通道尺寸增大,而空间分辨率减小。(2)阶段3被分配给大部分计算成本。
3.6 PVT v2优势
结合这些改进,PVT v2可以(1)获得更多图像和特征图的局部连续性;(2)更灵活地处理可变分辨率输入;(3)享受与CNN相同的线性复杂度。
4 实验
4.1 图像分类
设置。在ImageNet-1 K数据集[27]上进行图像分类实验,该数据集包括来自1,000个类别的128万个训练图像和50 K个验证图像。所有模型均在训练集上进行训练,以进行公平比较,并报告验证集上的前1位错误。我们遵循DeiT [31],并应用随机裁剪、随机水平翻转[29]、标签平滑正则化[30]、混合[38]和随机擦除[40]作为数据增强。在训练过程中,我们使用AdamW [25],动量为0.9,小批量为128,权重衰减为5 × 10−2来优化模型。初始学习速率被设置为1 × 10 - 3,并按照余弦时间表递减[24]。所有模型都在8个V100 GPU上从头开始训练了300个epoch。在验证集上应用中心裁剪以进行基准测试,其中裁剪224× 224的块来评估分类精度。
结果。在Table2中看到PVT v2是ImageNet-1 K分类的最新方法。与PVT相比,PVT v2具有相似的触发器和参数,但图像分类精度大大提高。例如,PVT v2-B1比PVT v1-Tiny高3.6%,PVT v2-B4比PVT-Large高1.9%。
与其他最新的同类产品相比,PVT v2系列在精度和模型尺寸方面也有很大的优势。例如,PVT v2-B5实现了83.8%的ImageNet top-1准确率,比Swin Transformer [23]和Twins [5]高0.5%,而参数和FLOPS更少。
表2:ImageNet验证集上的图像分类性能。“#Param”是指参数的数量。“GFLOPs”是在224 × 224的输入比例下计算的。“*”表示在其原始论文的策略下训练的方法的性能。“-Li”表示具有线性SRA的PVT v2。
4.2 目标检测
设置.在具有挑战性的COCO基准[22]上进行对象检测实验。所有模型均在COCO train 2017(118 k张图像)上进行了培训,并在val 2017(5 k张图像)上进行了评价。本文验证了主流检测器(包括RetinaNet [21]、Mask R-CNN [12]、Cascade Mask R-CNN [1]、ATSS [39]、GFL [19]和Sparse R-CNN [28])上PVT v2主干的有效性。在训练之前,使用在ImageNet上预先训练的权重来初始化主干,并使用Xavier [9]来初始化新添加的层。在8个V100 GPU上训练所有批量为16的模型,并采用AdamW [25]作为优化器,初始学习率为1 × 10−4。按照惯例[21,12,3],我们采用1×或3×训练计划(即:12或36个epochs)以训练所有检测模型。调整训练图像的大小,使其短边为800个像素,而长边不超过1,333个像素。当使用3×训练时间表时,作者在[640,800]的范围内随机调整输入图像的较短边的大小。在测试阶段,输入图像的短边固定为800个像素。
结果 .如表3所示,在具有类似模型尺寸的一级和两级对象检测器上,PVT v2显著优于PVT v1。例如,PVT v2-B4在RetinaNet [21]上达到最大46.1 AP,在Mask R-CNN [12]上达到最大47.5 APb,分别超过PVT v1模型3.5 AP和4.6 APb。在图3中给出了COCO val 2017 [22]上的一些定性对象检测和实例分割结果,这也表明了所提模型的良好性能。
为了公平比较PVT v2和Swin Transformer [23],保持所有设置相同,包括ImageNet-1 K预训练和COCO微调策略。在四个最先进的检测器上评估Swin Transformer和PVT v2,包括Cascade R-CNN [1],ATSS [39],GFL [19]和Sparse R-CNN [28]。可以看到PVT v2在所有检测器中获得了比Swin Transformer更好的AP,显示了其更好的特征表示能力。例如,在ATSS上,与Swin-T相比,PVT v2具有类似的参数和触发器,但PVT v2达到49.9 AP,比Swin-T高2.7。PVT v2-Li可以将计算量从258减少到194 GFLOPs,同时只牺牲一点性能。
4.3 语义分割
设置。在PVT v1 [33]之后,选择ADE 20 K [41]对语义分割的性能进行基准测试。为了进行公平的比较,通过将其应用于语义FPN来测试PVT v2骨干的性能[18]。在训练阶段,主干使用ImageNet [7]上预先训练的权重初始化,新添加的层使用Xavier [9]初始化。使用AdamW [25]优化模型,初始学习率为1 e-4。遵循常见实践[18,4],在4个V100 GPU上以16个批量大小训练模型进行40 k次迭代。学习速率按照多项式衰减时间表以0.9的幂衰减。随机调整图像大小并将其裁剪为512 × 512以进行训练,并在测试期间重新调整为512像素的短边。
结果。如Table5所示,当使用语义FPN [18]进行语义分割时,PVT v2始终优于PVT v1 [33]和其他对应物。例如,在几乎相同数量的参数和GFLOPs的情况下,PVT v2-B1/B2/B3/B4比PVT v1-微小/小/中等/大至少高5.3%。此外,尽管PVT-Large的GFLOPs比ResNeXt 101 - 64 x4 d的GFLOPs低12%,但mIoU仍高8.5个点(48.7比40.2)。在图3中,还展示了ADE 20 K上的一些定性语义分割结果[41]。这些结果表明,改进后的PVT v2骨架能够提取出用于语义切分的强有力的特征。
4.4 消融实验
4.4.1模型分析
PVT v2的消融实验见表6,可以看到,所有三种设计都可以在性能、参数数量或计算开销方面改进模型。重叠面片嵌入(OPE)是一个重要的问题。比较表中的#1和#2。6,与使用原始补丁嵌入(PE)的模型相比,使用OPE的模型在ImageNet上获得了更好的前1位准确性(81.1% vs. 79.8%),在COCO上获得了更好的AP(42.2% vs. 40.4%)[8]。OPE算法通过重叠滑动窗口的方式来刻画图像和特征映射的局部连续性,是一种有效的图像分割方法。
卷积前馈网络(CFFN)很重要。与原始前馈网络(FFN)[8]相比,CFFN包含一个零填充卷积层。其可以捕获输入张量的局部连续性。此外,由于OPE和CFFN中的零填充引入了位置信息,可以删除PVT v1中使用的固定大小的位置嵌入,使模型能够灵活地处理可变分辨率的输入。如表中#2和#3所述。CFFN在ImageNet上提高了0.9个点(82.0%比81.1%),在COCO上提高了2.4分,这证明了它的有效性。
线性SRA(LSRA)有助于建立更好的模型。如表6中的#3和#4所报告。与SRA [33]相比,LSRA显著降低了22%的模型计算开销(GFLOPs),同时在ImageNet上保持了相当的前1名准确性(82.1% vs. 82.0%),在COCO上仅降低了1个点的AP(43.6 vs. 44.6)。实验表明,该算法计算量小,效果好。
4.4.2计算开销分析
如图4所示,随着输入规模的增加,拟议的PVT v2-B2-Li的GFLOPs增长率远低于PVT v1-Small [33],与ResNet-50 [13]相似。这个结果证明PVT v2-Li成功地解决了由注意力层引起的高计算开销问题。
5.结论
作者研究了Pyramid Vision Transformer(PVT v1)的局限性,并通过重叠贴片嵌入、卷积前馈网络和线性空间缩减注意层三种设计对其进行了改进。对不同任务(如图像分类,对象检测和语义分割)的广泛实验表明,在相当数量的参数下,所提出的PVT v2比其前身PVT v1和其他最先进的基于transformer的主干更强大。作者希望这些改进的基线将提供一个参考未来的研究在视觉Transformer。