论文笔记:ViT Adapter——VISION TRANSFORMER ADAPTER FOR DENSE PREDICTIONS
综述
论文题目:《VISION TRANSFORMER ADAPTER FOR DENSE PREDICTIONS》
会议时间:ICLR 2023
论文地址:https://openreview.net/pdf?id=plKu2GByCNW
源码地址:https://github.com/czczup/ViT-Adapter
主要思想
Transformer在计算机视觉领域取得了显著的成功,主要得益于transformer的动态建模能力(dynamic modeling capability)和注意力机制中长距离依赖(long-range dependence)的建模能力,同时普通的ViT可以使用大量多模态数据进行预训练(包括图像、文本和视频等等),通过利用大量并且多维度的数据进行预训练,可以显著提升模型学习丰富语义表示的能力。然而,普通的ViT在密集预测任务方面效果往往不是很理想,由于缺少图像相关的先验知识,因此会导致模型收敛慢,实际应用性能比较低。在后面的研究中,推出了一些特定于视觉的transformer网络(vision-specific,例如:Swin transformer、PVTv2),利用局部的空间操作来引入视觉特定的归纳偏置(vision-specific inductive biases),从而缓解transformer模型在视觉任务应用中缺少图像先验知识的问题,但是这些模型由于是视觉特定的模型,因此只能在图像数据上做预训练,无法在其他数据上做预训练,限制了数据源的格式。为了解决这一问题,本文受到NLP领域中adapters的启发,提出了一种视觉adapter结构,用于缩小密集预测任务中,普通ViT和视觉特定backbone之间的性能差异。
对于视觉ViT adapter,他是一种可以附加在普通ViT的模块,可以在不修改原始结构的情况下有效地将普通的ViT适用于下游的密集型预测任务,具体地来说,为了将视觉特定的归纳偏差引入到普通的ViT中,作者设计了三个模块,包括:①Spatial Prior Module:用于从图像中捕获局部的空间语义特征;②Spatial Feature Injector:用于将空间先验特征融入ViT特征中;③Multi-scale Feature Extractor:用于得到密集预测任务所需要的多尺度特征(将ViT特征融入空间先验特征中)。
如下图所示,与之前的范式相比(在大规模数据集上预训练,然后在其他任务上做微调),作者提出的范式更加灵活。之前的框架由于backbone是视觉特定的网络,因此只能用图像数据来做预训练;而在作者提出的框架中,backbone是一个通用的模型(例如普通的ViT),它不仅可以用图像来做预训练,还可以利用多模态数据进行预训练,而对于密集预测任务的迁移学习,只使用随机初始化的adapter来将图像相关的先验知识(归纳偏差)引入预训练的主干网络中,使模型可以适用于这些任务,通过这种方式,在密集预测任务中,仅使用ViT作为骨干网络,利用作者的框架可以实现与Swin等视觉特定的ViT算法相当的性能。
方法
模型主要分为两个部分,分别为普通的ViT网络和所提的ViT-Adapter模块,具体如下图所示:
对于ViT,首先将图像输入到patch embedding中,将图像分割成 16 × 16 16\times16 16×16大小的不重叠patch,之后将这些特征投影成 d d d维的token,之后将这些token加上位置编码。
对于ViT-adapter,首先将输入图像传入由CNN组成的空间先验模块中,得到三种分辨率的 d d d维空间特征( 1 8 、 1 16 、 1 32 \frac18、\frac1{16}、\frac1{32} 81、161、321),之后将这些特征沿空间方向拉直,并连接起来,作为特征交互的输入。具体地来说,给定交互次数 N N N(通常为4),我们将ViT的transformer编码器平均分成N个block,每个block包括 L / N L/N L/N个transformer模块,对于第 i i i个块,首先通过空间注入器向其中注入空间先验特征,之后通过多尺度特征提取器从块的输出中提取多尺度层次特征。经过N次交互之后,得到高质量的多尺度特征,之后对特征进行拆分和重构,得到目标分辨率为 1 8 、 1 16 、 1 32 \frac18、\frac1{16}、\frac1{32} 81、161、321的特征。最后,利用 2 × 2 2\times2 2×2的转置卷积对 1 8 \frac18 81尺度的特征图进行上采样,构建 1 4 \frac14 41尺度的特征图。通过这种方式,会获得与ResNet相似分辨率的特征金字塔,可用于各种密集预测任务。
注:一共四种尺度特征,分别为 1 4 、 1 8 、 1 16 、 1 32 \frac14、\frac18、\frac1{16}、\frac1{32} 41、81、161、321。
空间先验模块
相比于transformer结构,卷积神经网络具有更强的局部建模能力,可以帮助transformer更好地捕获局部的空间信息,受此启发,作者引入了由CNN构成的空间先验模块(SPM),和原ViT分支并行嵌入,可以对图像的局部空间上下文进行建模。
具体结构下图所示,参考resnet的标准卷积系统,Stem由三个卷积层和一个最大池化组成(第一个卷积层步幅为2,其他为1),之后依次使用步幅为2的 3 × 3 3\times3 3×3卷积做下采样操作(通道数增加,并且减小特征图分辨率尺寸),将所得的特征传入 1 × 1 1\times1 1×1的卷积,将特征图的通道数均转为 D D D(跟FPN里的目的一样,得到同特征维数下的多尺度特征),最终会得到三种尺度的特征 F 1 , F 2 , F 3 F_1,F_2,F_3 F1,F2,F3,分辨率均为原图的 1 8 , 1 16 , 1 32 \frac18,\frac1{16},\frac1{32} 81,161,321,之后将特征图沿空间拉直,得到空间特征 F s p 1 ∈ R ( H W 8 2 + H W 1 6 2 + H W 3 2 2 ) × D F_{sp}^1\in R^{(\frac{HW}{8^2}+\frac{HW}{16^2}+\frac{HW}{32^2})\times D} Fsp1∈R(82HW+162HW+322HW)×D。
特征交互模块
特征交互模块由两个模块构成,主要用于ViT特征和空间特征之间的特征交互。
空间特征注入器
该模块用于将空间先验特征注入到ViT特征中,将ViT特征
F
v
i
t
F_{vit}
Fvit作为查询query,空间特征
F
s
p
F_{sp}
Fsp作为键值对key-value:
F
^
v
i
t
i
=
F
v
i
t
i
+
γ
i
A
t
t
e
n
t
i
o
n
(
n
o
r
m
(
F
v
i
t
i
)
,
n
o
r
m
(
F
s
p
i
)
)
\hat{F}^i_{vit}=F^i_{vit}+\gamma^iAttention(norm(F^i_{vit}),norm(F^i_{sp}))
F^viti=Fviti+γiAttention(norm(Fviti),norm(Fspi))
其中
n
o
r
m
norm
norm表示LayerNorm层,注意力运算最好使用线性复杂度的稀疏注意力(例如deformable attention),同时,这里应用一个可学习的向量
γ
\gamma
γ来平衡注意力层的输出和输入特征,并且初始化为0,这种初始化策略保证了vit的特征分布不会因为空间先验的注入而发生剧烈的改变,从而可以更好地利用vit的预训练权重。
这一操作本质上是用ViT特征查询空间特征中对自身有用的特征,相当于将具有局部空间信息的特征融入ViT特征中,做不同领域特征之间的融合。
多尺度特征提取器
在向ViT注入空间特征之后,将所得的
F
^
v
i
t
i
\hat{F}^i_{vit}
F^viti传入第
i
i
i个transformer编码block,得到
F
v
i
t
i
+
1
F^{i+1}_{vit}
Fviti+1,之后使用交叉注意力和前馈神经网络提取多尺度特征,将空间特征
F
s
p
i
F^i_{sp}
Fspi作为查询query,ViT特征
F
v
i
t
i
+
1
F^{i+1}_{vit}
Fviti+1作为键值对key-value
F
^
s
p
i
=
F
s
p
i
+
A
t
t
e
n
t
i
o
n
(
n
o
r
m
(
F
s
p
i
)
,
n
o
r
m
(
F
v
i
t
i
+
1
)
)
F
s
p
i
+
1
=
F
^
s
p
i
+
F
F
N
(
n
o
r
m
(
F
^
s
p
i
)
)
\hat{F}^i_{sp}=F^i_{sp}+Attention(norm(F^i_{sp}),norm(F_{vit}^{i+1}))\\ F^{i+1}_{sp}=\hat{F}^i_{sp}+FFN(norm(\hat{F}^i_{sp}))
F^spi=Fspi+Attention(norm(Fspi),norm(Fviti+1))Fspi+1=F^spi+FFN(norm(F^spi))
这里同样最好使用线性复杂度的稀疏注意力,将所得的空间特征
F
s
p
i
+
1
F^{i+1}_{sp}
Fspi+1作为下一个空间特征注入器SFI的输入。
这一操作本质上是用多尺度的空间特征查询ViT特征中对自身有用的特征,相当于将语义丰富的ViT特征融入多尺度空间特征中,让每个空间特征都具有丰富的语义信息,最终所得的特征既有多尺度表征的能力也有初始ViT丰富语义特征的优势。
模型规格
实验部分
同一框架下(Mask R-CNN)不同Backbone的比较
任务:目标检测和实例分割
不同框架下的比较
任务:目标检测
语义分割
总结
本工作主要针对普通ViT缺少视觉特定的归纳偏置问题做改进,设计了ViT-Adapter模块,利用交叉注意力,充分将CNN中局部空间建模的能力融入到ViT模型中,在保持原有ViT架构不变,即ViT语义特征不减弱的情况下,灵活地将图像相关的归纳偏置注入到ViT模型中,重构密集预测任务所需要的细粒度多尺度特征,最终实现下游任务良好的应用。文章来源:https://www.toymoban.com/news/detail-852439.html
以上仅是笔者个人见解,若有问题,欢迎指正文章来源地址https://www.toymoban.com/news/detail-852439.html
到了这里,关于论文笔记:ViT Adapter——Transformer与CNN特征融合,屠榜语义分割!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!