VIT Adapter【Vision Transformer Adapter for Dense Predictions】论文中文翻译

论文地址:https://arxiv.org/pdf/2205.08534.pdf

1.摘要

       本文研究了一种简单有效的适用于密集预测任务的ViT-Adapter。与最近在其架构中引入视觉特异性诱导偏差(vision-specific inductive biases)不同,由于缺乏先验假设(缺乏图像的先验信息),普通的ViT在密集预测任务中取得了较差的性能。

       为了解决这个问题,我们提出了ViT-adapter,它使普通的ViT实现和vision-specific transformer相当的性能。具体来说,我们框架中的主干是一个普通的ViT,它可以从大规模的多模态数据中学习强大的表示。当转移到下游任务时,使用一个无预训练的adapter将与图像相关的归纳偏差引入到模型中,使其适合于这些任务。

       我们在多个密集的预测任务上验证了ViT-adapter,包括目标检测、实例分割和语义分割。值得注意的是,在没有使用额外检测数据的情况下,我们的ViT-Adapter-L在COCO测试开发程序上产生了最先进的60.9 box AP和53.0 mask AP。我们希望ViT-adapter可以作为vision-specific transformer的替代方案并促进未来的研究。

2.Introducation

       最近,transformer在计算机视觉领域取得了显著的成功。得益于注意力机制的动态特征提取能力和长期依赖性,各种ViT很快在许多计算机视觉任务中崛起,如目标检测和语义分割,超越了CNN模型,达到了最先进的性能。这些模型主要分为两种,即普通ViT及其层次化变体。一般来说,后者可以产生更好的结果,并被认为通过使用局部空间操作引入了vision-specific inductive biases。

       尽管如此,普通的ViT仍然有一些不可忽视的优势。一个典型的例子是多模态预训练。由于源于自然语言处理(NLP)领域,transformer没有输入数据的假设。配备不同的标记,如patch embedding、3D patch embedding、token embedding,ViT等普通的transformer可以使用大量的多模态数据进行预训练,包括图像、视频和文本,使得模型学习到更丰富的语义信息。然而,与vision-specific transformer相比,普通ViT在密集预测方面存在明显的缺陷。缺乏与图像相关的先验知识导致收敛速度较慢,性能较低,因此在密集预测任务种,普通的vit很难与vision-specific transformer竞争。受NLP领域的adapter的启发,这项工作旨在开发一种adapter,以缩小用于密集预测任务中普通ViT和vision-specific backbone之间的性能差距。

       为此,我们提出了ViT-Adapter,这是一个无需预训练的附加网络,可以在不改变原有架构的基础上有效地使简单的ViT适应下游密集的预测任务。具体来说,为了将视觉特定的诱导偏差(vision-specific inductive biases)引入到普通ViT中,我们为ViT-Adapter设计了三个定制模块,包括(1)一个用于从输入图像中捕获局部语义的空间先验模块(2)空间特征注入器用于将空间先验融合(3)多尺度特征提取器,用于重建密集预测任务所需的多尺度特征。

       如图1所示,与之前在大规模图像数据集(如ImageNet)上进行预训练并在不同的任务上进行微调的范式相比,我们的范式更加灵活。在我们的框架中,主干网络是一个通用的的模型(如ViT),可以用图像和多模态数据进行预训练。对于密集预测任务的迁移学习,我们使用一个随机初始化的adapter,将与图像相关的先验知识(归纳偏差)引入到预先训练好的backbone中,使模型适合于这些任务。通过这种方式,使用ViT作为骨干,我们的框架实现了与Swin transformer等专门为密集预测任务设计的transformers主干网络相当甚至更好的性能。

我们的主要贡献如下:

(1)探索了一种新的范式,将视觉特异性诱导偏差引入普通的ViT。它通过定期的ImageNat预训练帮助ViT实现与最近的transformer变体相当的性能,并进一步受益于多模态预训练。

(2)为了在不改变ViT结构的情况下融合图像先验,设计了一个空间先验模块和两个特征交互操作。它们可以补充缺失的局部信息,重新组织细粒度的多尺度特征,以完成密集的预测任务。

(3)我们在多个具有挑战性的基准上评估ViT-Adapter,包括COCO和ADE20K数据集。如图2所示,在公平的预训练策略下,我们的模型与现有技术相比始终取得了更好的性能。例如,当只使用ImageNet-1K预训练时,ViT-Adapter-B在COCO val上取得了了49.6 box AP,比Swin-B多出1.0分。得益于多模态预训练,我们的ViT-Adapter-l产生60.9 box AP,这是在没有对额外的检测数据进行训练的COCO测试开发的最佳记录。

3.Related Work

3.1 Transformer

       近年来,transformer已经主导了多种模式的各种任务,如自然语言处理、计算机视觉和语音识别。vanilla transformer最初被提出用于机器翻译,目前仍然是NLP任务的最先进的架构。ViT是第一个将vanilla transformer推广到图像分类任务而无需做太多修改的工作。PVT和Swin transformer通过结合cnn的金字塔结构引入了更多视觉特异性归纳偏差。随后,Conformer提出了第一个将CNN与transformer相结合的双网络。最近,BEiT和MAE将ViT的范围扩展到具有masked图像建模(MIM)的自我监督学习,展示了普通ViT架构的强大潜力。许多作品表明设计vision-specific的模型是一个重要的方向,但对于蒙面数据建模和多模态预训练来说,一般提出的架构更加灵活和必要。因此,我们开发了一种无需预训练的adapter,在不修改ViT架构的情况下引入图像先验知识,保持其灵活性,并享受先进的多模态预训练。

3.2 Decoders for ViT

       密集预测的架构通常遵循encoder-decoder模式,其中编码器生成丰富的特征,解码器聚合并将其转换为最终的预测。近年来,在ViT的global receptive的启发下,许多工作将其作为编码器,并设计特定任务的解码器。SETR是第一个采用ViT作为骨干的工作,并开发了几个用于语义分割的CNN解码器。Segmenter也将ViT扩展到语义分割,但不同之处在于它配备了一个基于transformer的解码器。DPT进一步通过CNN解码器将ViT应用于单眼深度估计任务,并取得了显著的改进。综上所述,这些工作通过设计模态和任务特定的解码器,提高了ViT的密集预测性能,但仍然存在ViT在单尺度和低分辨率表示方面的弱点。

3.3 Adapters

       到目前为止,adapter已经被广泛地应用于NLP领域。PALs和adapter在transformers encoder中引入了新的模块,用于特定任务的微调,使预训练模型快速适应下游的NLP任务。在计算机视觉领域,一些adapter已经被用于增量学习和领域自适应。随着CLIP(Learning transferable visual models from natural language supervision)的出现,许多基于CLIP的adapter被用于将预先训练好的知识转移到zero-shot 或者few-shot的下游任务中。最近,采用了上采样和下采样模块,来适应普通ViT用于目标检测,如图3(a)所示

       然而,在常规训练设置下(即应用ImageNet监督的预训练和微调36个epoch),它们的检测性能仍然低于最近的模型,后者很好地结合了图像先验信息。因此,如何设计一种功能强大的adapter来提高ViT的密集预测性能仍然是一个挑战。

4.Vision Transformer Adapter

4.1 Overall Architecture

       如图4所示,我们的模型可以分为两部分。第一部分是普通的ViT,它由一个补丁嵌入和L个transformer encoder层构成(如图4(a))。第二部分是提出ViT-Adapter,如图4(b)所示,其中包含(1)空间先验模块从输入图像中获取空间特征(2)空间特征注入器注入空间先验,和(3)多尺度特征提取器提取层次特征的单一尺度特征。

       对于ViT,首先将输入图像输入补丁嵌入,其中图像被分成16×16的不重叠的patchs。然后,这些patchs被展平并投影到d维embedding中,这时特征分辨率降低到原始图像的1/16。然后,将嵌入的补丁和position embedding一起通过ViT的L编码器层。

      对于ViT-Adapter,我们首先将输入图像输入到空间先验模块中。将收集3种目标分辨率(即1/8、1/16和1/32)的d维空间特征。然后,这些特征映射进行展平和拼接,作为特征交互的输入。具体来说,给定交互次数N(通常是N = 4),我们将ViT的transformer encoder平均分成N个块,每个块包含L/N编码器层。对于第i个块,我们首先通过空间特征注入器将空间先验因子Fisp注入到该块中,然后通过多尺度特征提取器从该块的输出中提取层次特征。经过N个特征交互后,我们获得了高质量的多尺度特征,然后将特征分割并重塑为三个目标分辨率1/8、1/16和1/32。最后,我们利用2×2转置卷积对1/8尺度的特征图进行上采样,构建了1/4尺度的特征图。通过这种方法,我们得到了一个与ResNet分辨率相近的特征金字塔,可用于各种密集预测任务。

4.2 Spatial Prior Module

       最近的研究表明,卷积可以帮助transformer更好地捕获局部空间信息。受此启发,我们引入了空间先验模块(SPM)。该模块与patch嵌入层并行,用来建模图像的局部空间上下文,不改变ViT的原有架构。

       如图4(c)所示,借用了ResNet的一个标准卷积块,它由三个卷积层和一个最大池化层组成。然后,使用一堆s=2的3×3卷积来加倍通道的数量,并减少feature map的大小。最后应用几个1×1卷积将特征映射投影到D维上。这样,我们得到了一个特征金字塔{F1,F2,F3},它包含d维特征映射的分辨率分别为1/8、1/16和1/32。最后我们将这些feature map展平并拼接,作为后面特征注入器的输入。

4.3 Feature Interaction

       由于缺乏先验假设,与vision-specific transformer相比,普通ViT在密集预测任务上的性能次优。为了缓解这个问题,我们提出了两个特征交互模块来连接SPM和ViT的feature map。具体来说,这两个模块主要是基于交叉注意的(cross-attention),即空间特征注入器(Spatial Feature Injector )和多尺度特征提取器(Multi-Scale Feature Extractor)

4.3.1 Spatial Feature Injector

       如图4(d)所示,该模块用于将空间先验信息注入到ViT中。具体来说,对于ViT的第i个transformers block来说,我们以输入特征Fi(vit)作为查询Q,将空间先验信息Fi(sp)作为键K和值V,我们使用multi-head cross-attention提取空间特征Fi(sp)并注入到输入到Fi(vit)中,可以写成公式1:

       其中,norm为LayerNorm,注意层注意建议使用稀疏注意。此外,我们应用一个可学习的向量γi来平衡注意层的输出和输入特征Fi(vit),它被初始化为0。这种初始化策略保证了Fi(vit)的特征分布不会由于空间先验的注入而发生显著的改变,从而更好地利用了vit的预训练权值。

4.3.2 Multi-Scale Feature Extractor

       将空间先验信息注入ViT第i个block之后,Fi(vit)通过第i块的编码器层得到输出特征Fi+1(vit)。然后,我们应用由一个交叉注意层和一个前馈网络(FFN)组成的模块,来提取多尺度特征,如图4(e)所示。此过程可表述为:

       其中,我们将空间特征Fi(sp)作为查询Q,而输出特征Fi+1(vit)作为交叉注意的键K和值V。与空间特征注入器一样,我们在这里采用稀疏注意的方法来降低计算代价。生成的空间特征Fi+1(sp)将作为下一个空间特征注入器的输入。

4.4 Architecture Configurations

       我们为4种不同大小的ViT构建了ViT-Adapter,包括ViT-T、ViT-S、ViT-B和ViT-L。对于这些模型,我们的adapter的参数数分别为2.5M、5.8M、14.0M和23.7M。在我们的方法中,我们使用变形注意作为默认的稀疏注意,其中采样点的数量被固定为4,注意头的数量被设置为6、6、12、16。交互数N为4,在最后一个特征交互中,我们堆叠了三个多尺度特征提取器。此外,我们将adapter中的FFN比例设置为0.25,以节省计算开销,即4个不同的adapter的FFN的隐藏大小分别为48、96、192和256。


5.Experiments

       之前的工作已经表明,金字塔先验有利于密集预测,但对图像分类带来的好处甚微。因此,在本研究中,我们关注如何更好地使现成的预训练vit适应密集的预测任务。我们希望这种方法也将有助于解耦上游预训练和下游微调的模型设计。

5.1 Object Detection and Instance Segmentation

5.1.1 Settings

       我们的检测实验基于COCO数据集,代码主要基于MMDetection。我们使用4个主流探测器来评估我们的ViT-Adapter,包括掩膜R-CNN、级联掩膜R-CNN 、ATSS和GFL。为了节省时间和内存,我们修改ViT在大多数层使用14×14窗口注意,除了间隔层。遵循惯例,我们采用1×或3×训练计划(即12或36个epoch)来训练检测器,batch size为16,初始学习率为0.0001,权重衰减为0.05,AdamW优化器。

5.1.2 Result with ImageNet-1k Pre-training

       在表1和表2中,我们应用DeiT发布的ImageNet-1K权重(没有蒸馏)作为所有ViT-T/S/B模型的初始化。我们将我们的视觉适配器与两种相关方法和多个具有代表性的视觉特异性骨干进行对比。正如我们所看到的,当使用常规训练设置进行公平比较时,ViT和ViTDet的检测性能不如最近的视觉特异性模型。例如,使用Mask R-CNN和3×+MS schedule,ViT-S和ViTDet-S分别比PVTv2-B2低3.8 APb和3.3APb。不同的是,我们的ViT-Adapter-S的表现明显优于这两种方法,甚至比PVTv2-B2高0.4个APb。这种观察结果也可以在其他三个探测器的实验中看到,包括级联掩模R-CNN、ATSS和GFL。这些结果表明,仅通过常规的ImageNet-1K预训练,ViT-Adapter可以促进普通ViT获得比这些视觉特异性变压器类似甚至更优越的性能。

 5.1.3 Result with ImageNet-22k Pre-training

       在表1中,我们使用来自AugReg的ImageNet-22K预训练权重来初始化所有的ViT-L模型,包括ViT、ViTDet和我们的ViT-Adapter。可以看出,当使用3×+MS计划训练Mask R-CNN时,我们的ViT-Adapter-L分别比ViT-L和ViTDet-L提高了3.8 APb和3.0 APb。

 5.1.4 Result with Multi-Modal Pre-training

       在本实验中,我们研究了多模态预训练的效果。具体来说,我们使用不同的预训练权重,对掩模R-CNN和ViT-Adapter-b进行微调。如表4所示,简单地用多模态预训练(ZhueNet-22K预训练)可以显著获得0.7 APb和APm。这些结果表明,我们的方法可以很容易地从先进的多模态预训练中获得相当大的好处,而这对于像Swin这样的视觉特定模型来说是困难的。

5.2 Semantic Segmentation

5.2.1 Settings

       我们使用ADE20K数据集和MMSegmentation代码库评估vit-adapter。语义FPN和UperNet(X都被用作基本框架。对于语义FPN,我们应用PVT的设置,并将训练模型进行80k次迭代。对于UperNet,我们遵循Swin的设置,进行160k次迭代。

5.2.2 Result with ImageNet-1k Pre-training

       在表3中,我们报告了单尺度和多尺度(MS)mIoU的语义分割结果。与第4.1节相同,我们使用DeiT发布的ImageNet-1K权重初始化所有Vigt-T/S/B模型。结果表明,在可比模型尺寸下,我们的方法超过了ViT和许多具有代表性的视觉专用变压器。例如,我们的ViT-Adapter-s与UperNet实现了47.1 MS的mIoU,优于许多强大的对手,如Swin-T。同样,ViT-Adapter-B为49.7 MS mIoU,比ViT-B高2.6分,与Swin-B和Twins-SVT-L相当。这些仅使用常规ImageNet-1K预训练的公平比较证明了我们的ViT-Adapter的有效性和普遍性。

5.2.3 Result with ImageNet-22k Pre-training

       当使用ImageNet-22K预训练权重时,我们的ViT-Adapter-B通过UperNet获得51.9 mIoU和52.5 MS mIoU,超过Swin-B至少0.8 mIoU。同样,ViT-Adapter-L的结果分别为53.4 mIoU和54.4 MS mIoU,与Swin-L等结果相当。这些在不同模型大小上的显著和一致的改进表明,我们的方法可以弥补纯ViT的不足,使其更适合于语义分割。

5.2.4 Result with Multi-Modal Pre-training

      在这里,我们应用来自单感知器的多模态预训练权值来进行语义分割。如表3所示,对于语义FPN和UperNet,用多模态预训练取代ImageNet-22K预训练,我们的ViT-Adapter-L分别获得了1.3 mIoU和1.6 mIoU。

5.3  COMPARISONS WITH STATE-OF-THE-ARTS

5.3.1 Settings

      我们进行了实验,将我们的ViT-Adapter与最先进的检测/分割框架相结合,包括HTC++(没有额外的检测数据集)和Mask2Former以及最近的多模态预训练BEiTv2。

5.3.2 Results

      如表5所示,我们的方法达到了最先进的性能。虽然这些结果可能部分是由于先进的预训练的有效性,但我们的研究表明,普通主干检测器/分段器可以挑战分层骨干的根深蒂固位置。

 5.4 Ablation Study

 5.4.1 ViT vs ViT-Adapter Feature  

        最近的工作表明,ViT具有学习低频全局信号的特征,而CNN则倾向于提取高频信息(例局部边缘和纹理)。为了显示ViT和ViT-Adapter Feature之间的差异,我们首先使用傅里叶分析作为可视化的工具包。如图5(a)所示,傅里叶变换特征图的傅里叶频谱和相对对数振幅(平均超过100幅图像)表明,ViT-Adapter比ViT基线捕获更多的高频信号。此外,我们还可视化了图5 (b)(c)中的步幅-8特征图,它显示了ViT的特征是模糊和粗糙的。相比之下,我们的特性更细粒度,并有更多的局部边缘和纹理。这一观察结果表明,我们的方法移植了CNN在捕获高频信息方面的优点。

 5.4.2 Ablation for Components 

       为了研究每个关键设计的贡献,我们逐步将ViT-S基线扩展到我们的ViT-Adapter-S。所有模型都使用Mask R-CNN进行1×计划的训练。如表6左侧所示,通过直接调整和添加SPM的空间特征,我们的变量1比基线提高了1.4 APb和0.9 APm,表明局部空间信息对于密集预测是必不可少的。从变体2中,我们发现空间特征注入器进一步提高了1.0 APb和0.8 APm的性能,这说明了交叉注意是一种更灵活的注入空间特征的方法。此外,我们采用多尺度特征提取器重构层次特征,带来2.1 APb和1.1 APm增益,缓解了ViT的单尺度特征的缺点。总之,我们提出的每个组件都是必要的,并共同创建了4.5 APb和2.8 APm改进。

5.4.3 Number of Interactions

       在表6的右侧,我们研究了相互作用的数量的影响。具体来说,我们构建了几个具有不同交互数量的vit-adapter-s变体。我们观察到,当N增大时,模型精度达到饱和,应用更多的交互作用不能单调地提高性能。因此,我们根据经验将N默认设置为4。

5.4.4 Attention Type

       我们的方法是一个注意机制是可替换的一般框架。为了验证这一点,我们采用vit-adapter-s为基本模型,研究了4种不同的注意机制。如表7所示,具有线性复杂度的稀疏注意比具有二次复杂度的全局注意更适合用于我们的适配器。我们最终使用可变形注意作为默认配置。值得注意的是,它可以被其他更高级的注意力机制取代,以进一步提高性能。

6.conclusion 

        这项工作探索了一种新的范式,即ViT-Adapter,以在密集预测任务上弥补普通ViT和视觉特定变压器之间的性能差距。在不修改固有架构的情况下,我们灵活地将与图像相关的归纳偏差注入到ViT中,并重建密集预测所需的细粒度多尺度特征。在目标检测、实例分割和语义分割方面的大量实验表明,我们的方法可以获得与精心设计的特定视觉的转换器相当甚至更好的性能,并进一步从先进的多模态预训练中获得相当大的好处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值