摘要
视觉transformer类的模型可以分为普通ViT和视觉transformer变体两类。后者通常使用局部空间操作将特定于视觉的归纳偏差引入到其架构中,故而可以产生更好的结果(如Swin Transformer)。但普通的ViT可以使用包括图像,视频和文本的大量多模态数据进行预训练,这鼓励模型学习丰富的语义表示,但与特定于视觉的transformer变体相比,普通ViT在密集预测方面有决定性的缺陷。故有如下改进:
-
本文探索了一种新的范式,不同于以往的预训练+微调(上图a),本文开发了基于普通ViT的适配器(上图b),以缩小普通ViT和特定视觉transformer变体之间的性能差距
-
设计了一个空间先验模块和两个特征交互操作,在不重新设计ViT架构的情况下注入图像先验,以补充普通ViT缺失的图像局部信息,并对密集预测任务进行细粒度多尺度特征重组
框架
模型可以分为两部分。第一部分为ViT,由patch embedding和L层transformer编码器层组成(上图a)。流程如下:
- 给定输入图像,被馈送到patch embedding中,图像将被划分为16 × 16的patch token。
- 这些patchs将被展平并投影到D维的tokens,特征分辨率降低到原始图像的1/16,再添加position embedding。
- tokens通过L层编码器层传递。
第二部分为ViT-Adapter(上图b),其中包含空间先验模块(上图c),用于从输入图像中捕获空间特征;空间特征注入器(上图d),将空间先验注入到ViT中;多尺度特征提取器(上图e),从ViT的单尺度特征中提取分层特征。具体如:
- 将输入图像输入到空间先验模块,收集三种目标分辨率(1/8, 1/16和1/32)的 D D D维空间特征,这些特征图被展平并连接起来作为特征交互的输入 F s p i F^i_{sp} Fspi。
- 将ViT的transformer编码器平均分成N块,每个块包含L/N编码器层。对于i -th块,通过空间特征注入器将空间先验 F s p i F^i_{sp} Fspi注入到块中。在通过多尺度特征提取器从块的输出中提取分层特征。
- 在N个特征交互后,获得高质量的多尺度特征,将特征分割和重塑为三个目标分辨率 { 1 / 8 , 1 / 16 , 1 / 32 } \{ {1/8,1/16,1/32}\} { 1/8,1/16,1/32}。最后,使用 2 × 2 2 × 2 2×2转置卷积对1/8尺度的特征图进行上采样,构建1/4尺度的特征图。最终获得了一个与ResNet分辨率相似的特征金字塔,可以用于各种密集预测任务。
空间先验模块
由于transformer擅长捕捉全局信息,而卷积神经网络更擅长捕捉局部空间信息,故提出空间先验模块(SPM),与patch embedding层并行地对图像的局部空间上下文进行建模,而不改变ViT的原始结构。
该模块采用了标准ResNet骨干网络,由三个conv层和一个最max pooling层组成。然后,使用stride为2的 3 × 3 3 × 3 3×3卷积堆栈将通道数量增加一倍并减少特征图的大小,在用几个 1 × 1 1 × 1 1×1卷积将特征映射投影到 D D D维度,获得一个分辨率为 { 1 / 8 , 1 / 16 , 1 / 32 } \{ {1/8,1/16,1/32}\} { 1/8,1/16,1/32}的 D D D维特征金字塔 { F 1 , F 2 , F 3 } \{ {F_1, F_2, F_3}\} { F1,F2,F3}。然后,展平并连接为特征标记 F s p 1 ∈ R ( H W 8 2 + H W 1 6 2 + H W 3 2 2 ) × D F^1_{sp} ∈ \reals^{ ( \frac {HW} {8^2} + \frac {HW} {16^2} + \frac {HW} {32^2} )×D} Fsp1∈R(82HW