1.摘要
显著物体检测和伪装物体检测是相关但又不同的二元映射任务,这些任务涉及多种模态,具有共同点和独特线索,现有研究通常采用复杂的特定于任务的专家模型,可能会导致冗余和次优结果。我们引入了VSCode,这是一种具有新颖的2D提示学习的通用模型,用于联合解决四个SOD任务和三个COD任务,我们利用VST作为基础模型,并在编码器-解码器架构中引入2D提示,以在两个不同的维度上学习领域和任务特定的知识。提示辨别损失有助于解开特殊性。VSCode在26个数据集上的六个任务中的表现由于最先进的方法,并通过结合2D提示(例如RGB-D COD)表现出对未见任务的零样本泛化。
2.主要贡献
- 提出了VSCode,这是第一个用于多模态SOD和COD任务的通用模型
- 建议使用基础分割模型来聚合共性,并引入2D提示以分别沿领域和任务维度学习特性
- 提出了提示判别损失,以分别有效地增强2D提示和基础模型的特性和共性的学习
- 我们的VSCode模型在26个数据集上的所有任务中超越了所有现有的最先进模型,并展示了其推广到未知任务的能力,进一步强调了我们方法的优越性。
3.模型结构图
4.方法
4.1 基础模型
全面整合SOD和COD任务的共性,选择VST作为基本模型,VST包含三个主要组件:变压器解码器、变压器转换器、多任务变压器解码器 最初使用编码器捕获图像特征 f i E ∈ R l i × c i f_i^E \in {R^{{l_i} \times {c_i}}} fiE∈Rli×ci中的长距离关系, i = [ 0 , 1 , 2 , 3 ] i = [0,1,2,3] i=[0,1,2,3] 表示编码器中块的索引, l i l_i li和 c i c_i ci 表示块序列的长度和 的通道数。随后,变压器转换器通过交叉注意将RGB-D SOD 的RGB和深度特征之间的互补性整合在一起,或对RGB SOD使用自注意。在由一系列自注意力层组成的解码器中,VST通过显著性标记、边界标记和解码器特征同时预测显著性图和边界图。
4.2 特定领域提示
在编码器中,较低层专用于提取低级特征,包括边缘、颜色和纹理,这些特征在各个领域中表现出不同的特性,我们在编码器的每个块 i 处引入领域特定提示
p
i
d
p_i^d
pid ,并分别针对 RGB、深度、热和光流设计四种领域特定提示,以突出领域之间的差异。
给定Swin Transformer编码器的特定块的图像特征
f
i
E
f_i^E
fiE,使用窗口注意并将特征
f
i
E
f_i^E
fiE划分为窗口特征$
f
i
−
w
E
∈
R
l
i
/
M
2
×
M
2
×
c
i
f_{i - w}^E \in {R^{{l_i}/{M^2} \times {M^2} \times {c_i}}}
fi−wE∈Rli/M2×M2×ci ,M代表窗口大小,
l
i
/
M
2
l_i/M^2
li/M2是窗口数量,然后为每个窗口复制提示
p
i
d
∈
R
N
i
×
c
i
p_i^d \in {R^{{N_i} \times {c_i}}}
pid∈RNi×ci 并获得
p
i
d
′
∈
R
l
i
/
M
2
×
N
i
×
c
i
p_i^{{d'}} \in {R^{{l_i}/{M^2} \times {N_i} \times {c_i}}}
pid′∈Rli/M2×Ni×ci,
N
i
N_i
Ni表示可学习提示标记的数量,随后将其附加到每个窗口的补丁特征标记中,并在每个窗口内执行自注意,这可以定义为:
[
p
i
+
1
d
′
f
i
−
w
E
]
←
M
L
P
(
S
W
(
W
−
M
S
A
(
[
p
i
d
′
f
i
−
w
E
]
)
)
\left[ \begin{array}{l}p_{i + 1}^{{d'}}\\f_{i - w}^E\end{array} \right] \leftarrow MLP(SW(W - MSA(\left[ \begin{array}{l}p_i^{{d'}}\\f_{i - w}^E\end{array} \right]))
[pi+1d′fi−wE]←MLP(SW(W−MSA([pid′fi−wE]))
4.3 特定任务提示
不同的任务提示的影响
Encoder:SOD任务跟COD任务主要关注的区域不同,SOD更加关注前景区域,COD任务更加关注背景,因为对象通常隐藏在背景中,必须结合特定的任务提示来鼓励编码器学习与任务相关的特征。否则有可能会在解码过程之前最初激活错误的对象。
Decoder:
伪装物体需要在编码器中进行更精细的处理,在解码器中加入了特定于任务的提示,以根据编码器提取的特征为重建边界和物体区域分配不同的注意力。
[
p
j
t
d
f
j
D
]
←
M
L
P
(
M
S
A
(
[
p
j
+
1
t
d
f
j
+
1
D
]
)
)
\left[ \begin{array}{l}p_j^{td}\\f_j^D\end{array} \right] \leftarrow MLP(MSA(\left[ \begin{array}{l}p_{j + 1}^{td}\\f_{j + 1}^D\end{array} \right]))
[pjtdfjD]←MLP(MSA([pj+1tdfj+1D]))
4.4提示布局和讨论
深度版本中,在每个转换器块的开头引入新提示,而浅层版本则涉及首先提出提示并在所有块中更新它们。为了揭示不同网络深度下不同域和任务之间的具体关系,我们在编码器中对域和任务特定的提示都采用了深度版本,随着网络深度的增加,相关性值逐渐降低,促进我们学习越来越多的提示标记。
Loss Function
使用MLP获得整体领域特定提示
p
l
d
a
l
l
p_l^{{d_{all}}}
pldall和任务特定编码器提示
p
k
t
e
a
l
l
p_k^{t{e_{all}}}
pkteall
进一步与分割损失金额和边界损失相结合来训练我们的模型
5.结果
本文介绍了VSCode,是一种新型的通用且参数高效的模型,可以解决一般的多模态COD和SOD任务,具体来说,使用基础模型来吸收共性和2D提示来学习领域和任务的特殊性,此外,引入提示判别损失,帮助有效地解开特定知识并学习更好的共享知识。