ViT-Adapter: 密集预测任务的ViT适配器

本项研究为 Vision Transformer(ViT)设计了一种简单但功能强大的密集预测任务适配器。与最近将视觉特定感应偏差纳入其架构的先进变体不同,普通 ViT 由于先验假设薄弱而在密集预测方面性能较差。为了解决这个问题,作者提出了 ViT-Adapter,它能让普通 ViT 实现与 Vision-specific Transformers 相当的性能。具体来说,框架的支柱是普通 ViT,它可以从大规模多模态数据中学习强大的表征。在向下游任务转移时,使用免预训练的 adapter 将与图像相关的归纳偏差引入模型,使其适用于这些任务。作者在多个密集预测任务中验证了 ViT-Adapter 的性能,包括物体检测、实例分割和语义分割。值得注意的是,在不使用额外检测数据的情况下,ViT-Adapter-L 在 COCO test-dev 上获得了最先进的 60.9 box AP 和 53.0 mask AP。作者希望 ViT-Adapter 可以作为视觉专用转换器的替代品,并促进未来的研究。

题目: Vision Transformer Adapter for Dense Predictions
作者: Zhe Chen, Yuchen Duan, Wenhai Wang, Junjun He, Tong Lu, Jifeng Dai, Yu Qiao
论文地址: https://arxiv.org/abs/2205.08534
代码地址: https://github.com/czczup/ViT-Adapter
内容整理:杜君豪

引言

最近,Transformers 在计算机视觉领域取得了巨大成功。得益于动态建模能力和注意力机制的长程依赖性,各种 vision transformers 很快在物体检测和语义分割等许多计算机视觉任务中崭露头角,超越了 CNN 模型,达到了最先进的性能。这些模型主要分为两个系列,即普通 ViT 及其分层变体。一般来说,后者能产生更好的结果,并且被认为通过使用局部空间操作,在其架构中引入了视觉特有的归纳偏差。

尽管如此,普通的 ViT 仍然具有一些不可忽视的优势。一个典型的例子是多模态预训练。Transformer 源于自然语言处理(NLP)领域,对输入数据没有任何假设。配备不同的标记器,例如 patch embedding、3D patch embedding 和token embedding,诸如普通 ViT 之类的普通 Transformers 可以使用大量多模态数据进行预训练,包括图像、视频和文本,鼓励模型学习语义丰富的表示。然而,与特定于视觉的 Transformer 相比,普通 ViT 在密集预测方面存在决定性的缺陷。缺乏与图像相关的先验知识会导致收敛速度变慢和性能降低,因此普通 ViT 很难与特定于视觉的 Transformer 竞争密集的预测任务。受到 NLP 领域 adapters 的启发,这项工作旨在开发一种 adapters,以缩小普通 ViT 和特定于视觉的主干网之间的性能差距,以实现密集的预测任务。

为此,作者提出了Vision Transformer Adapter(ViT-Adapter),它是一种免预训练的附加网络,可以有效地将普通ViT适应下游密集预测任务,而无需修改其原始架构。具体来说,为了将特定于视觉的归纳偏差引入普通 ViT,作者为 ViT-Adapter 设计了三个定制模块,包括(1)用于从输入图像捕获局部语义(空间先验)的空间先验模块,(2)空间特征注入器,用于将空间先验合并到 ViT 中;(3) 多尺度特征提取器,用于重建密集预测任务所需的多尺度特征。

如图 1 所示,与之前在大规模图像数据集(例如 ImageNet )上进行预训练然后在其他任务上进行微调的范式相比,作者的范式更加灵活。在作者的框架中,主干网络是一个通用模型(例如,普通 ViT),它不仅可以使用图像进行预训练,还可以使用多模态数据进行预训练。对于密集预测任务的迁移学习,使用随机初始化的适配器将图像相关的先验知识(归纳偏差)引入到预训练的主干中,使模型适合这些任务。通过这种方式,使用 ViT 作为骨干,作者的框架实现了与 Swin 等视觉特定转换器相当甚至更好的性能。

ViT-Adapter: 密集预测任务的ViT适配器
图1 以前的范式与作者的范式。(a) 以前的范式通过监督或自监督学习设计特定于视觉的模型并在大规模图像数据集上进行预训练,然后在下游任务上对其进行微调。(b) 作者提出了一种免预训练的适配器,以缩小普通 ViT和 Vision-specific Transformers(例如 Swin)之间的性能差距,以实现密集的预测任务。与之前的范例相比,作者的方法保留了 ViT 的灵活性,因此可以受益于先进的多模式预训练。

作者的主要贡献如下:

  • 探索了一种新的范式,将特定于视觉的归纳偏差引入到普通的 ViT 中。它通过常规 ImageNet 预训练和多模态预训练的进一步优势,帮助 ViT 实现与最新 Transformer 变体相当的性能。
  • 设计了一个空间先验模块和两个特征交互操作,以在不重新设计ViT架构的情况下注入图像先验。它们可以补充缺失的局部信息并重新组织细粒度的多尺度特征以进行密集的预测任务。
  • 在多个具有挑战性的基准上评估ViT-Adapter,包括COCO和ADE20K。在公平的预训练策略下,与现有技术相比,作者的模型始终取得了改进的性能。例如,当仅使用 ImageNet-1K 预训练时,ViT-Adapter-B 在 COCO val 上报告为 49.6 box AP,比 Swin-B 好 1.0 个点。受益于多模态预训练, ViT-Adapter-L 产生了 60.9 box AP,这是 COCO test-dev 上没有对 Objects365 等额外检测数据进行训练的最佳记录。

Vision Transformer Adapter

整体架构

如图 2 所示,作者的模型可以分为两部分。第一部分是普通 ViT,由补丁嵌入和 L 个 Transformer 编码器层组成(见图 2(a))。第二部分是提出的 ViT 适配器,如图 2(b)所示,其中包含(1)一个空间先验模块,用于从输入图像中捕获空间特征;(2)一个空间特征注入器,用于将空间先验注入到 ViT 中,(3)一个多尺度特征提取器,用于从 ViT 的单尺度特征中提取层次特征。

ViT-Adapter: 密集预测任务的ViT适配器
图2 ViT-Adapter的总体架构。(a) ViT,其编码器层被分为 N(通常 N = 4)个相等的块以进行特征交互。(b) ViT-Adapter,包含三个关键设计,包括 (c) 用于根据输入图像对局部空间上下文进行建模的空间先验模块,(d) 用于将空间先验引入 ViT 的空间特征注入器,以及 (e)一种多尺度特征提取器,用于从 ViT 的单尺度特征重新组织多尺度特征。

对于 ViT,输入图像首先被输入到 patch 嵌入中,其中图像被划分为 16 × 16 不重叠的 patch。之后,这些补丁被展平并投影为 D 维 token,特征分辨率降低到原始图像的 1/16。然后,这些添加了位置嵌入的标记通过 L 个编码器层。

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

空间先验模块

最近的研究表明卷积可以帮助 Transformer 更好地捕获局部空间信息。受此启发,作者引入了空间先验模块(SPM)。它旨在对与补丁嵌入层并行的图像的局部空间上下文进行建模,以免改变 ViT 的原始架构。

ViT-Adapter: 密集预测任务的ViT适配器

功能交互

由于先验假设较弱,与特定于视觉的 Transformer 相比,普通 ViT 在密集预测任务上的性能不佳。为了缓解这个问题,作者提出了两个特征交互模块来桥接 SPM 和 ViT 的特征图。具体来说,这两个模块主要是基于交叉注意力的,即空间特征注入器和多尺度特征提取器。

空间特征注入器

ViT-Adapter: 密集预测任务的ViT适配器

多尺度特征提取器

ViT-Adapter: 密集预测任务的ViT适配器

架构配置

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

实验

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

目标检测和实例分割

作者的检测实验基于 MMDetection 和 COCO  数据集。作者使用 4 个主流检测器来评估 ViT-Adapter,包括 Mask R-CNN 、Cascade Mask R-CNN 、ATSS  和 GFL 。为了节省时间和内存,参考并修改L层ViT以使用14×14窗口注意力,除了以L/4间隔的层之外。按照常见做法 ,采用 1× 或 3× 训练计划(即 12 或 36 个 epoch),批量大小为 16,并采用 AdamW  优化器进行初始学习速率为 1 × 10-4,权重衰减为 0.05。

ImageNet-1K 预训练的结果

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

ViT-Adapter: 密集预测任务的ViT适配器
表1 在 COCO val2017 上使用 Mask R-CNN 进行对象检测和实例分割。为了公平比较,使用常规 ImageNet-1K 预训练(Touvron 等人,2021)初始化所有 ViT-T/S/B 模型,并使用来自(Steiner 等人,2021)的 ImageNet-22K 权重初始化 ViT-L†。
ViT-Adapter: 密集预测任务的ViT适配器
表2 COCO val2017 上使用不同框架的对象检测。为了公平比较,使用常规 ImageNet-1K 预训练初始化所有 ViT-S/B 模型。“#P”表示参数的数量。“MS”意味着多尺度训练。

ImageNet-22K 预训练的结果


在表 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 改进。

多模式预训练的结果

在这个实验中,作者研究多模态预训练的效果。具体来说,使用不同的预训练权重对 ViT-Adapter-B 和 Mask R-CNN 进行微调,以实现 3×+MS 调度。如表 3 所示,只需将 ImageNet-22K 预训练替换为多模态预训练即可获得 0.7 APb 和 APm 的显着增益。这些结果表明,作者的方法可以轻松地从先进的多模态预训练中获得相当大的好处,这对于像 Swin 这样的视觉特定模型来说是困难的。

ViT-Adapter: 密集预测任务的ViT适配器
表3 不同预训练权重的比较。作者的方法保留了 ViT 的灵活性,因此可以受益于先进的多模式预训练。

语义分割

作者使用 ADE20K  数据集和 MMSegmentation  代码库评估语义分割上的 ViT-Adapter。采用 Semantic FPN  和 UperNet  作为基本框架。对于语义 FPN,作者应用 PVT的设置并训练模型进行 80k 次迭代。对于UperNet,作者按照Swin的设置对其进行160k次迭代的训练。

ImageNet-1K 预训练的结果

在表 4 中,作者以单尺度和多尺度(MS)mIoU 的形式报告了语义分割结果。使用 DeiT发布的 ImageNet-1K 权重初始化所有 ViT-T/S/B 模型。它表明,在可比较的模型大小下,作者的方法超越了 ViT 和许多代表性的视觉特定 Transformer 。例如, 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 的有效性和通用性。

ViT-Adapter: 密集预测任务的ViT适配器
表4 ADE20K val 上的语义分割。Semantic FPN  和 UperNet 被用作分割框架。“IN-1K/22K”和“MM”分别代表ImageNet-1K/22K和多模态预训练。“MS”意味着多尺度测试。

ImageNet-22K 预训练的结果

当使用 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 的不足,使其更适合语义分割。

多模式预训练的结果

在这里,作者应用 Uni-Perceiver  的多模态预训练权重进行语义分割。如表 4 所示,对于 Semantic FPN 和 UperNet,用多模态预训练替换 ImageNet-22K 预训练使 ViT-Adapter-LF 受益,分别获得了 1.3 mIoU 和 1.6 mIoU 的令人印象深刻的增益。

与最先进技术的比较

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

如表 5 所示,作者的方法达到了最先进的性能。虽然这些结果可能部分归因于高级预训练的有效性,但作者的研究表明,普通骨干检测器/分割器可以挑战分层骨干的根深蒂固的地位。

ViT-Adapter: 密集预测任务的ViT适配器
表 5 与以前的 SOTA 比较。

消融研究

ViT vs. ViT-Adapter Feature

最近的工作(Park & Kim,2022;Si et al.,2022)表明,ViT 呈现出学习低频全局信号的特征,而 CNN 倾向于提取高频信息(例如局部边缘和纹理)。为了展示 ViT 和 ViT-Adapter 功能之间的差异,作者首先使用傅里叶分析作为可视化工具包。如图 3(a) 所示,傅里叶变换特征图的傅里叶频谱和相对对数幅度(超过 100 张图像的平均值)表明 ViT-Adapter 比 ViT 捕获更多的高频信号基线。此外,还可视化了图3(b)(c)中的stride-8特征图,这表明ViT的特征是模糊和粗糙的。相比之下,作者的特征更加细粒度,并且具有更多的局部边缘和纹理。这一观察结果表明,作者的方法将 CNN 捕获高频信息的优点移植到 ViT 上。

ViT-Adapter: 密集预测任务的ViT适配器
图 3:ViT 与 ViT 适配器特征对比。(a) 傅立叶变换特征图的相对对数振幅。(b) 检测结果。(c) Stride-8 特征图。与 ViT 相比,ViT-Adapter 能够捕捉到更多高频信号,并生成具有丰富边缘和纹理的更细粒度特征,这对密集预测大有帮助。

组件消融

为了研究每个关键设计的贡献,作者逐渐将 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 的改进。

ViT-Adapter: 密集预测任务的ViT适配器
表 6:ViT-Adapter 的消融研究。(左)关键组件的消减。作者提出的组件共带来 4.5 APb 和 2.8 APm 的增益。(右图)交互次数 N 的消减。当 N = 4 时,模型的性能最佳。SPM 是空间先验模块的简称。

互动次数

在表 6 的右侧,作者研究了交互次数的影响。具体来说,构建了多个具有不同交互次数的 ViT-Adapter-S 变体。当 N 变大时,模型精度会饱和,并且应用更多的交互不能单调地提升性能。因此,作者根据经验将 N 默认设置为 4。

注意力类型

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

ViT-Adapter: 密集预测任务的ViT适配器
表 7:在Adapter中使用不同注意力机制的消减率。每次迭代的训练时间和 GPU 训练内存是通过 A100 GPU(每 GPU 批次大小为 2)和 FP16 训练测得的。”*”表示使用激活检查点来节省训练内存。

总结

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

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论