论文Bridging Vision and Language Encoders: Parameter-Efficient Tuning for Referring Image Segmentation


写在前面

  暑假抽空回了趟家,把一些书都带回来了。就是可惜准备了大半年的 2023CSC 申请给我拒了,吐槽下一点原因都没啊,也是醉了。那就准备毕业吧,此处不留爷自有留爷处。

一、Abstract

  参数高效微调 Parameter Efficient Tuning (PET) 在减少参数量的同时又能保有 SOTA 的性能,提供了友好的硬件资源。然而很少有研究关注稠密预测任务及多模态间的交互。本文研究指代图像分割 referring image segmentation RIS 中的高效参数微调问题。提出了一种自适应器 Bridger ,促进跨模态信息交换以及整合特征任务的信息到预训练模型中。同时设计了一种轻量化的解码器用于图像分割。实验效果很好。

二、引言

  指代图像分割 Referring image segmentation (RIS) 的定义,与语义分割的区别,与开放世界词汇的联系。
  最近微调通用预训练模型的方法效果很好,但是在很多场景中难以部署。于是本文提出问题:模型能够在保留预训练 Backbone 性能的情况下能否固定住 Backbone 的权重。有大量的参数有效性训练方法已经实现了参数效率和性能间的平衡,然而大多数方法受限于单个任务或简单的分类任务,很少有关注于稠密预测任务及不同模态间的交互。
  本文旨在调整预训练的视觉-语言模型用于 RIS,同时在性能可以打平微调的方法。

在这里插入图片描述
  如上图所示,首先引入一个附加的 Bridger 网络,无需预训练,可以无缝地整合到预训练模型的原始结构中。在 Bridger 中,引入特定视觉的引导 bias 来促进双编码器间的交互。Bridger 有两个模块,空间先验模块用于从特征图的中间层捕捉局部语义;跨模态注意力使得两种模态的信息进行交互。其次,设计了一种轻量化的特征任务解码器用于 RIS 分割,同时进一步对齐视觉和语言特征。在这一框架下,Backbone 网络能够用任何预训练在视觉语言数据集上的网络来代替,本文选用 CLIP 作为视觉语言编码器。贡献总结如下:

  • 提出对稠密预测任务的深入调查,这是第一篇研究这一问题的文章;
  • 设计了 Bridger 模块,能够无缝地整合到任意的预训练双编码器视觉-语言模型,从而增强中间特征的交互。
  • 提出一种轻量化的解码器用于 RIS,并进一步对齐视觉语言特征;
  • 大量的实验表明本文方法的有效性。

三、相关工作

Vision-Language Models (VLMs)

  利用统一的表示用于视觉语言建模从而解决视觉-语言任务。通常可以划分为两种类型:单流、双流。前者使用融合模块进行视觉语言 embedding 交互,后者使用对比学习来对齐视觉语言 embedding。本文关注于双流模型,设计微调方法。

Parameter-efficient Tuning (PET)

  当迁移到下游任务时,PET 旨在减少预训练模型中的可训练参数量。相比于微调,PET 保留了整个模型的性能用于特定任务,同时更容易部署。最近的方法可以划分为三种类型:1、更新新添加的模块参数或者输入,类似于 Adapter、Prefix-tuning 和 Prompt tuning。2、稀疏地更新一些模型的参数,类似 Bit-Fit 和 Diff Pruning。3、低秩重参数化模型权重,类似于 LoRA、Compacter 和 Consolidator。然而大多数方法仅关注于分类和一般的任务,而忽视了稠密预测任务,类似多模态任务中的分割。本文通过设计多模态自适应模块来增强预训练视觉语言模型中两个解码器的交互,从而促进下游任务中的迁移效率。

Referring Image Segmentation (RIS)

  早期的工作主要是基于 CNN-LSTM 的方法,例如 RRN 和 RMI。随着 Transformer 的发展,很多工作开始探索注意力机制,例如 MDETR、VLT、CRIS、PCAN。而本文关注于使用参数有效性方法来融合与对齐不同模态的特征。

四、方法

在这里插入图片描述

4.1 图像 & 文本特征提取

  分别通过图像和文本编码器提取特征,而这两个编码器的参数在微调过程中被冻结住。

图像编码器

  给定输入图像 I ∈ R H × W × 3 I\in R^{H\times W\times3} IRH×W×3,从图像编码器的中间层提取特征。对于 CNN 编码器,例如 ResNet,将最后 N − 1 N-1 N1 阶段的视觉特征定义为 F v i F_v^i Fvi i ∈ { 2 , … , N } i\in\{2,\ldots,N\} i{ 2,,N}。对于 vision Transformer,例如 ViT,将 ViT 的 Transformer 编码器划分为 N N N 个 blocks,每个包含 L / N L/N L/N 个编码器层,利用最后 N − 1 N-1 N1 个 blocks的输出进行特征交互。这些提取出的特征作为 Bridger 和 解码器的输入,用于多模态特征对齐。

文本编码器

  对于输入的指代表达式 T T T,利用 Bert 来提取文本特征。将 Transformer 编码器划分为 N N N 个 blocks,提取特征 F t i ∈ R L × C F_t^i\in R^{L\times C} FtiRL×C i ∈ { 2 , … , N } i\in\{2,\ldots,N\} i{ 2,,N},其中 C C C 为特征维度, L L L 是表达式的长度。加上 [SOS] 和 [EOS] tokens 后,Transformer 最后一层 [EOS] token 的激活值进一步用于产生文本的全局表示 F s ∈ R C ′ F_s\in R^{C^{\prime}} FsRC,其中 C ′ C^{\prime} C 为特征维度。

4.2 图像 & 文本特征交互

  提出视觉-语言交互模块,即 Bridger,处理图像和文本编码器的中间特征。
  给定多个视觉特征 F v i F_v^i Fvi i ∈ { 2 , … , N } i\in\{2,\ldots,N\} i{ 2,,N} 和语言特征 F t i F_t^i Fti i ∈ { 2 , … , N } i\in\{2,\ldots,N\} i{ 2,,N}。首先通过 Zoom Layer (ZL) 调整其特征维度:
F ^ v i = Z L i n ( F v i ) F ^ t i = Linear ( F t i ) \begin{gathered} \hat{ {F}}_{v}^{i} =\mathrm{ZL}_{in}(F_v^i) \\ \hat{F}_{t}^{i} =\text{Linear}(F_t^i) \end{gathered} F^vi=ZLin(Fvi)F^ti=Linear(Fti)其中 Z L i n \mathrm{ZL}_{in} ZLin 表示 Zomm Layer 的 zoom-in 操作。之后通过交互器 Interactor (ITA) 来融合这些特征:
f ^ v i = ITA ( f ^ v i − 1 + F ^ v i , f ^ t i − 1 + F ^ t i ) f ^ t i = ITA ( f ^ t i − 1 + F ^ t i , f ^ v i − 1 + F ^ v i ) \begin{aligned}\hat{f}_v^i&=\text{ITA}(\hat{f}_v^{i-1}+\hat{F}_v^i,\hat{f}_t^{i-1}+\hat{F}_t^i)\\\hat{f}_t^i&=\text{ITA}(\hat{f}_t^{i-1}+\hat{F}_t^i,\hat{f}_v^{i-1}+\hat{F}_v^i)\end{aligned} f^vif^ti=ITA(f^vi1+F^vi,f^ti1+F^ti)=ITA(f^ti1+F^ti,f^vi1+F^vi)最后,通过 Zoom Layer 和线性投影恢复到原始维度,并在 Backbone 的下一个阶段(blocks)使用残差连接来结合这些特征:
f v i = Z L o u t ( f ^ v i ) f t i = Linear ( f ^ t i ) F v i + 1 = F v i + 1 + f v i F t i + 1 = F t i + 1 + f t i \begin{aligned} &\begin{aligned}f_v^i=\mathrm{ZL}_{out}(\hat{f}_v^i)\end{aligned} \\ &\begin{aligned}f_t^i=\text{Linear}(\hat{f}_t^i)\end{aligned} \\ &F_{v}^{i+1}=F_{v}^{i+1}+f_{v}^{i} \\ &F_{t}^{i+1}=F_{t}^{i+1}+f_{t}^{i} \end{aligned} fvi=ZLout(f^vi)fti=Linear(f^ti)Fvi+1=Fvi+1+fviFti+1=Fti+1+fti其中 Z L o u t \mathrm{ZL}_{out} ZLout 为 Zoom Layer 的 zoom-out 操作,接下来详细介绍 Zoom Layer 的结构。

Zoom Layer (ZL)

  最近的研究表明,卷积有利于 Transformer 捕捉图像的局部空间上下文信息。于是将 ViT 中间层的特征从 R D × C R^{D\times C} RD×C 重塑为 R H × W × C R^{H\times W\times C} RH×W×C,并使用卷积组成 Zoom Layer。对于 ResNet 来说,先采用步长为 2 的 2 × 2 2\times2 2×2 卷积减少第一二特征图的尺寸。而对于所有从 Backbone 中间层提取的特征图来说,用 Zoom Layer 调整其尺寸:
F ^ v i = { Conv ( F v i ) , h i > = h ′ , w i > = w ′ DeConv ( F v i ) , h i < h ′ , w i < w ′ \hat{F}_v^i=\left\{\begin{array}{cc}\text{Conv}\left(F_v^i\right),&h_i>=h',w_i>=w'\\\text{DeConv}\left(F_v^i\right),&h_i<h',w_i<w'\end{array}\right. F^vi={ Conv(Fvi),DeConv(Fvi),hi>=h,wi>=whi<h,wi<w其中 h ′ h' h w ′ w' w 为一个特征图的高和宽。在将特征添加回 Backbone 后,利用 Zoom Layer 来进行 zoom-out 操作,这是 zoom-in 的反转。

Interactor (ITA)

  ITA 是基于注意力机制和前向传播网络设计的。对于不同模态的特征,利用原始的特征作为 query,而其他模态的特征作为 key 和 value。交互过程如下:
f ^ v i = F M H S A ( f ^ v i − 1 + F ^ v i ) f ^ t i = F MHSA ( f ^ t i − 1 + F ^ t i ) f ^ v i , f ^ t i = F M H C A ( f ^ v i , f ^ t i ) , F M H C A ( f ^ t i , f ^ v i ) f ^ v i , f ^ t i = FFN ( f ^ v i ) , FFN ( f ^ t i ) \begin{aligned} &\hat{f}_{v}^{i}=\mathcal{F}_{\mathrm{MHSA}}(\hat{f}_{v}^{i-1}+\hat{F}_{v}^{i}) \\ &\hat{f}_{t}^{i}=\mathcal{F}_{\text{MHSA}}(\hat{f}_{t}^{i-1}+\hat{F}_{t}^{i}) \\ &\hat{f}_{v}^{i},\hat{f}_{t}^{i}=\mathcal{F}_{\mathsf{MHCA}}(\hat{f}_{v}^{i},\hat{f}_{t}^{i}),\mathcal{F}_{\mathsf{MHCA}}(\hat{f}_{t}^{i},\hat{f}_{v}^{i}) \\ &\hat{f}_{v}^{i},\hat{f}_{t}^{i}=\text{FFN}(\hat{f}_{v}^{i}),\text{FFN}(\hat{f}_{t}^{i}) \end{aligned} f^vi=FMHSA(f^vi1+F^vi)f^ti=FMHSA(f^ti1+F^ti)f^vi,f^ti=FMHCA(f^vi,f^ti),FMHCA(f^ti,f^vi)f^vi,f^ti=FFN(f^vi),FFN(f^ti)

4.3 特定任务的解码器

级联的对齐模块

  给定多组视觉特征 F v i F_v^i Fvi i ∈ { 2 , … , N } i \in \{2,\ldots,N\} i{ 2,,N} 和全局文本表示 F s F_s Fs,通过卷积和跨模态注意力得到多模态特征的融合。对于级联的融合特征,简单地拼接并采用 1 × 1 1\times1 1×1 卷积来聚合:
f m i = C o n v ( F v i ) f m i = F МНСА ( f m i , F s ) F m = C o n v ( [ f m 2 , . . . , f m N ] ) \begin{aligned} &f_m^i=\mathrm{Conv}(F_v^i) \\ &f_{m}^{i}=\mathcal{F}_{\text{МНСА}} ( f _ { m }^{i},F_{s}) \\ &F_{m}=\mathrm{Conv}\left([f_{m}^{2},...,f_{m}^{N}]\right) \end{aligned} fmi=Conv(Fvi)fmi=FМНСА(fmi,Fs)Fm=Conv([fm2,...,fmN])其中 [,] 为拼接操作,卷积操作用于统一不同阶段特征的维度。最后,将 2D 空间坐标特征 F c o o d ∈ R H 16 × W 16 × C F_{cood}\in R^{\frac{H}{16}\times\frac{W}{16}\times C} FcoodR16H×16W×C 拼接到 F m F_m Fm 上,然后使用一个 3 × 3 3\times3 3×3 卷积来融合。之后计算视觉特征 F v ∈ R H 16 × W 16 × C F_v\in R^{\frac{H}{16}\times\frac{W}{16}\times C} FvR16H×16W×C
F v = Conv ( [ F m , F c o o r d ] ) F_v=\text{Conv}\left([F_m,F_{coord}]\right) Fv=Conv([Fm,Fcoord]) F v F_v Fv 的 2D 空间之后展平为序列,用于后续的处理。

全局对齐模块

  通过使用 Transformer 中的注意力模块来组合文本信息和相应的视觉特征。以多模态特征 F v F_v Fv 和句子级别的特征 F s F_s Fs 作为输入,首先添加固定的空间位置编码到 F v F_v Fv F s F_s Fs 上。接下来,通过自注意力和跨模态注意力生成一组更新的多模态特征来捕捉全局上下文信息:
f c = F MHSA ( F v ) f c = F M H C A ( f c , F s ) F c = F F N ( f c ) \begin{aligned} &f_{c}=\mathcal{F}_{\text{MHSA}}(F_{v}) \\ &f_{c}=\mathcal{F}_{\mathsf{MHCA}}(f_{c},F_{s}) \\ &F_{c}=\mathrm{FFN}(f_{c}) \end{aligned} fc=FMHSA(Fv)fc=FMHCA(fc,Fs)Fc=FFN(fc)其中更新后的多模态特征 F c F_{c} Fc 用于最后的分割任务。

投影器

  在 F c F_{c} Fc F s F_s Fs 上应用投影器:
F c ′ = UpSample ( F c ) Z c = Conv ( F c ′ ) Z t = Linear ( F s ) \begin{aligned}F_c'&=\text{UpSample}\left(F_c\right)\\Z_c&=\text{Conv}\left(F_c'\right)\\Z_t&=\text{Linear}\left(F_s\right)\end{aligned} FcZcZt=UpSample(Fc)=Conv(Fc)=Linear(Fs)其中 UpSample \text{UpSample} UpSample 表示 4 × 4\times 4× 倍上采样,卷积和线性投影操作将 F c F_{c} Fc F s F_s Fs 变形为 Z c ∈ R N × D Z_{c}\in R^{N\times D} ZcRN×D N = H 4 × W 4 N=\frac{H}{4}\times\frac{W}{4} N=4H×4W Z t ∈ R C Z_t\in R^{C} ZtRC C = K × K × D + 1 C=K\times K \times D + 1 C=K×K×D+1,接下来将 Z t Z_t Zt 重塑为权重 ∈ R D × K × K \in R^{D\times K \times K} RD×K×K 和 bias ∈ R D \in R^D RD,其中 K K K 为卷积层中核的尺寸。此卷积将跨模态表示 Z c Z_c Zc 转化为最终的 mask 预测。

4.4 训练目标

  考虑到 CLIP 的对比损失,采用文本到图像的对比损失作为训练目标,确保 Z t Z_t Zt 相似于对应的 Z c Z_c Zc,而同时不相似于无关的 Z c Z_c Zc
L con  ( Z t , Z c ) = 1 ∣ P ∪ N ∣ ∑ i ∈ P ∪ N L con  i ( Z t , Z c i ) L_\text{con }(Z_t,Z_c)=\frac{1}{|\mathcal{P}\cup\mathcal{N}|}\sum_{i\in\mathcal{P}\cup\mathcal{N}}L_{\text{con }}^i\left(Z_t,Z_c^i\right) Lcon (Zt,Zc)=PN1iPNLcon i(Zt,Zci)其中 P \mathcal{P} P N \mathcal{N} N 分别表示 GT 中的类别 1 和 0。 L con L_{\text{con}} Lcon 定义如下:
L c o n i ( Z t , Z c i ) = { − log ⁡ ( σ ( Z t ⋅ Z c i ) ) , i ∈ P − log ⁡ ( 1 − σ ( Z t ⋅ Z c i ) ) , i ∈ N L_\mathrm{con}^i\left.(Z_t,Z_c^i)\right.=\begin{cases}-\log\left(\sigma\left(Z_t\cdot Z_c^i\right)\right),&i\in\mathcal{P}\\-\log\left(1-\sigma\left(Z_t\cdot Z_c^i\right)\right),&i\in\mathcal{N}\end{cases} Lconi(Zt,Zci)={ log(σ(ZtZci)),log(1σ(ZtZci)),iPiN其中 σ \sigma σ 为 sigmoid 函数,分割结果通过将 σ ( Z t Z ˙ c ) \sigma\left(Z_t\dot{Z}_c\right) σ(ZtZ˙c) 变形为 H 4 × W 4 {\frac{H}{4}}\times{\frac{W}{4}} 4H×4W,然后上采样到原图尺寸得到。

五、实验设置

5.1 数据集

  RefCOCO、RefCOCO+、G-Ref。

5.2 实施细节

  利用 CLIP 来初始化文本和图像编码器,其中图像 Backbone 分别采用 ResNet-50,ResNet-101。ViT-B 用于所有的消融实验。输入图像尺寸 416 × 416 416\times416 416×416,RefCOCO 和 RefCOCO+ 的输入句子限制为 17 个单词,方便和 [SOS] 和 [EOS] 组成 tokens,而 G-Ref 22 个单词。Transformer 解码器有 3 层,每层 8 个头,FFN 维度 512,投影器最后一层卷积核尺寸为 3。训练 50 epoches,Adam 优化器,学习率 λ = 0.0001 \lambda =0.0001 λ=0.0001。对于 ViT,Bridger 的学习率为 λ = 0.001 \lambda =0.001 λ=0.001,ResNet 学习率为 λ = 0.0001 \lambda =0.0001 λ=0.0001,在第 35 个 epoch 时,学习率降低 0.1 0.1 0.1。Batch_size 32,2 NVIDIA A100(有钱)。推理阶段,二值化阈值为 0.35。
  评估指标采用 Intersection over Union (IoU) 和 Precision@X。

六、实验结果

6.1 主要的结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.2 定性分析

在这里插入图片描述

6.3 消融研究

Bridger 数量和位置的作用

在这里插入图片描述

ZL 组成的作用

在这里插入图片描述

Bridger、级联的对齐模块、全局对齐模块的作用

在这里插入图片描述

七、讨论

  附带提出三种变体:通过考虑类别名字作为文本的语义分割;通过整合 FPN 的目标检测;对解码器做出微小改变的分类。附录 A 里面。

八、结论

  本文提出一种参数高效微调方法用于 RIS。提出 Bridger 在视觉和文本编码器中交互,之后通过组合卷积和注意力机制,设计了一种轻量化的解码器用于后续视觉语言特征级联和全局的对齐。实验效果很棒。

附录 A、进一步分析

Bridger 隐藏维度的作用

在这里插入图片描述

可拓展性

在这里插入图片描述

更广泛的影响

  本文的方法可以用于语义分割或非密集预测任务,类似于分类。原因:Bridge 结构能够促进模态提前融合以及多尺度特征聚合。细节上,添加的 bridgers 能够用文本编码器连接 MDETR 中的视觉 Backbone,同时固定住两个编码器的参数。

附录 B、限制

视觉上相似数量的混淆

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

处理高密度目标图像的不稳定性

在这里插入图片描述
在这里插入图片描述
写在后面

  总算是趁着这周周末完成了这篇博文,接下来这个代码得撸一下了。

猜你喜欢

转载自blog.csdn.net/qq_38929105/article/details/131991182
今日推荐