【论文阅读】GenSAM:Relax Image-Specific Prompt Requirement in SAM: A Single Generic Prompt for Segmenting Camouflaged Objects
标题
Relax Image-Specific Prompt Requirement in SAM: A Single Generic Prompt for Segmenting Camouflaged Objects
放松 SAM 中特定于图像的提示要求:用于分割伪装物体的单一通用提示
论文:Relax Image-Specific Prompt Requirement in SAM: A Single Generic Prompt for
Segmenting Camouflaged Objects
代码:https://github.com/jyLin8100/GenSAM/
问题:SAM模型在进行特定物体的分割任务时,需要手动为每个图像提供特定的提示,如果涉及到大量数据的处理,将会变得非常低效。而且这种提示缺乏语义信息,得到的分割图像常常并非所期望的结果。
目标:在只提供一个任务通用的文本提示的条件下,将任务下的所有无标注样本进行有效地分割。
方法
图 2:我们提出的 GenSAM 框架。GenSAM 包含两个组件:跨模态思维链提示(CCTP)和渐进式掩膜生成(PMG)。CCTP 首先以通用任务提示作为输入,BLIP2 为每张图像生成图像标题,使用输入的通用提示作为基础。基于该提示和生成的标题,构建三个并行的思维链,从未标记图像中提取关于隐蔽动物及其相应背景的关键词。然后,将这些关键词输入到我们设计的空间 CLIP 模块,该模块生成热图来定位伪装物体。从这些热图中选择高置信度的区域作为提示,以引导分割过程。CCTP 生成的热图经过加权,并在 PMG 中作为视觉提示使用,逐渐引导模型将注意力集中在与任务相关的区域。此外,在适应过程中,选择与从多次迭代中获得的平均掩膜最接近的单次迭代生成的掩膜作为最终输出。
我们提出了 GenSAM,用于在不同领域中根据通用任务描述对伪装目标进行分割。具体而言,我们:(1)提出跨模态思维链提示(Cross-modal Chains of Thought Prompting),该方法能够推理每张图像中目标对象的描述,并进一步生成共识注意力热图,以此作为 SAM 模型的视觉提示;(2)采用渐进式掩码生成(Progressive Mask Generation)的迭代过程,将共识热图应用到原始图像中作为视觉提示,以进一步提升分割效果。值得注意的是,GenSAM 完全无需训练,仅依赖预训练组件,在测试时适应(test-time adaptation, TTA)的过程中无需额外的训练数据或额外参数调整。
给定测试集中的一张图像 \(X \in \mathbb{R}^{H \times W \times 3}\) 和一个通用任务提示 \(P_g\)(例如“伪装的动物”),GenSAM 旨在推理用于 SAM 的视觉提示,以获得最终的分割掩码 \(M \in \mathbb{R}^{H \times W}\)。我们放宽了对同一任务下每张无标签图像需要唯一监督的要求,而是采用一个通用任务提示,使其在相同任务下的不同数据集中的无标签图像之间共享。
跨模态思维链提示(CCTP)
将通用任务文本提示转换为图像特定的视觉提示这一任务面临两个主要挑战:
- 生成稳健且客观的图像特定提示;
- 准确定位图像中的伪装目标,以实现有效分割。
因此,我们采用多条跨模态思维链,从不同角度评估无标签图像,生成伪装目标及其背景的潜在关键词。然后,这些关键词被输入到空间 CLIP 模块(spatial CLIP module)中,该模块针对每个前景和背景关键词生成特定的热图。随后,前景和背景热图分别进行共识计算(consensus calculation),并通过前景共识热图减去背景共识热图的方式去除干扰信息。最终得到的热图突出显示高置信度区域,这些区域被选作视觉提示,并用于 SAM 模型的分割过程。
通过多条思维链生成关键词.
我们利用多条思维链来生成目标对象及其背景的多种关键词,并为两者分别生成热图,以去除热图中与背景相关的无关高亮区域。具体而言,我们采用 BLIP2(一种图像-文本生成模型),该模型能够基于通用任务提示生成与任务相关的目标对象关键词。这些关键词有助于精确定位感兴趣的目标。然而,直接使用通用任务提示 \(P_g\) 查询 BLIP2 以检测图像中的伪装目标,往往会导致不准确的结果。受生成式知识提示(Generated Knowledge Prompting,Liu et al. 2021)的启发,我们提出了一种改进方法:首先,让 BLIP2 为图像 \(X\) 生成一个描述性字幕 \(C\),然后将该字幕融入到查询过程中,以增强模型在预测图像特定目标时的精准度。
与大规模生成模型(如 BLIP2)中的情况类似(Bai et al. 2021; Zhu et al. 2023),提示词的设计需要精心策划,即使是微小的变化也可能导致生成的关键词存在显著差异。Wang et al. (2022) 提出了一种方法,即为生成式语言模型设计多条提示链,然后从输出结果中得出共识,并将其作为最终输出。这种方法假设 BLIP2 的输出可以通过在有限的可能结果中进行多数投票来确定。因此,单个提示往往仅提供目标对象的部分且带有偏差的描述。因此,对于相同的图像 \(X\),我们从不同的角度提出不同的提示,以获取目标前景对象(伪装目标)的不同描述性关键词 \(A^{fore}_j\),其中 fore 代表前景关键词,j 表示第 j 条思维链。
如 图 2 所示,当任务描述 \(P_g\) 为 “伪装的动物”(camouflaged animal) 时,我们首先让 BLIP2 为图像 \(X\) 生成一个字幕描述 \(C\)。随后,以 \(C\) 作为基础,我们用两个同义短语——“隐藏的动物”(hidden animal) 和 “遮蔽的动物”(concealed animal) 替换 \(P_g\),从而创建 \(J\) 条不同的思维链 \(\{(Q^{fore}_j, Q^{back}_j)\}_{j=1}^{J}\),以不同的视角并行提出不同的问题来查询图像 \(X\)。
例如,针对前景对象,我们构造如下三条不同的查询:
- \(Q^{fore}_1\):“用一个词描述隐藏的动物的名称。”(Name of the hidden animal in one word.)
- \(Q^{fore}_2\):“用一个词描述遮蔽的动物的名称。”(Name of the concealed animal in one word.)
- \(Q^{fore}_3\):“用一个词描述伪装的动物的名称。”(Name of the camouflaged animal in one word.)
然后,通过 BLIP2 处理后,我们可以表示所得的前景关键词 \(A^{fore}_j\) 如下:
此外,伪装目标通常利用纹理或背景来隐藏自身。因此,识别伪装目标的背景可以有效减少来自无关对象的干扰。为了实现这一点,我们进一步引入背景查询 \(Q^{back}_j\),通过针对前景关键词 \(A^{fore}_j\) 进行背景相关的询问(例如,图 2 中的“蝗虫”(grasshopper)),以获取背景关键词 \(A^{back}_j\)。具体而言,背景关键词的计算方式如下:
空间 CLIP(Spatial CLIP).
由于 CLIP 具有强大的开放词汇能力,它能够处理多种不同的文本描述。因此,我们将生成的前景关键词 \(A^{fore}_j\) 和 背景关键词 \(A^{back}_j\) 输入 CLIP,以利用其跨模态对齐(cross-modal alignment)能力,突出图像中与目标对象相关的区域。然而,CLIP 的开放词汇能力也带来了一个问题:其生成的热图中往往包含大量与任务无关的无关信息。
CLIP Surgery(Li et al. 2023) 采用 v-v-v 自注意力机制 来解决这一问题,该方法中自注意力机制中的查询(Q)、键(K)和值(V)全部替换为值(V)。查询和键的相似性是基于相同的向量计算的。这一设计提高了计算效率,因为不再需要区分查询和键。然而,使用相同的表示来替代查询、键和值可能会限制模型捕捉输入图像 token 的内部相关性和特征的能力,因为这些信息在表示空间中被混合,可能导致特征表达的不充分。
为了进一步提高热图的定位精度,并有效挖掘图像的内部结构和语义相关性,我们提出了一种k-k-v 自注意力机制,并将其与原始的 k-q-v 机制 并行使用。在该方法中,我们对键向量(K)进行逐元素乘法,以减少冗余特征的干扰,使自注意力机制能够更加聚焦于输入图像的内部相关性。这样不仅能更好地表示图像的内部结构和模式,还能在不同特征之间建立更精准的语义联系。此外,k-k-v 机制 采用了不同的值向量(V),因此可以保留更多原始输入信息,丰富上下文,从而提升模型的表达能力。
对于 CLIP 视觉编码器中的第 \(m\) 个块,其输入特征表示为 \(S_m\),其中
特征计算如下:
其中,\(W_k \in \mathbb{R}^{d \times d_k}\)、\(W_v \in \mathbb{R}^{d \times d_v}\)、\(W_q \in \mathbb{R}^{d \times d_q}\) 为可学习的参数矩阵。
接下来,我们将 \(K\)、\(V\) 和 \(Q\) 分割为 \(h_0\) 个独立的注意力头,每个注意力头的维度分别为 \(d_k\)、\(d_v\) 和 \(d_q\),假设我们有 \(h_0\) 个注意力头,\(K\),\(V\) 和 \(Q\) 可表示为:
这里,第 \(n\) 个头的变换结果分别表示为 \(k_n \in \mathbb{R}^{L \times d_k}\)、\(v_n \in \mathbb{R}^{L \times d_v}\) 和 \(q_n \in \mathbb{R}^{L \times d_q}\)。
在我们提出的 k-k-v 自注意力策略 中,Q 被替换为 K,其计算公式如下:
其中,\(scale\) 是缩放因子。K-Q-V 机制的输出 \(S_{m+1}\) 以及改进的 K-K-V 自注意力机制的输出 \(\hat{S}_{m+1}\) 定义如下:
其中,\(\hat{S}_m\) 和 \(S_m\) 分别表示第 \(m\) 层块中 k-k-v 自注意力机制和 k-q-v 自注意力机制的输出。
在 空间 CLIP 的浅层,模型更多关注于低层次的特征,较少涉及较高级的概念(例如输入关键词的意义)。这些层使用原始的 k-q-v 自注意力机制。而在较深的层次中,模型开始表示更高级的语义,如人类和动物等。因此,对于深度为 \(\delta\) 的层,\(S_{m-1}\) 被作为新模块的输入。而在深度超过 \(\delta\) 的层,前一层的 \(\hat{S}_{m-1}\) 和 \(S_{m-1}\) 都作为输入使用。根据 Clip Surgery (Li et al. 2023) 的方法,\(\delta\) 的值被设置为 7。
这些特征随后通过全连接层 \(f_{\text{FFN}}\) 进行累积和混合。图像 \(X\),通过原始图像路径和 k-k-v 图像路径处理后,分别得到图像特征 \(F_I\) 和 \(\hat{F}_I\)。而对应的关键词 \(A^{fore}_j\) 和 \(A^{back}_j\) 的文本特征分别为 \(F^{fore}_j\) 和 \(F^{back}_j\)。
具有共识的视觉提示. 在获得不同关键词的相应特征后,我们的目标是识别这些特征之间的共识,以定位与任务相关的特定兴趣区域。具体而言,通过前景关键词生成得到的共识用于精确定位伪装目标的位置,而通过背景关键词生成得到的共识有助于消除背景干扰,从而提高目标定位的准确性。
对于前景关键词,前景关键词 \(F^{fore}_j\) 和图像特征 \(\hat{F}_I\) 的特征维度为 \(N_i \times 1 \times C\),其中 \(N_i\) 表示图像 token 的大小,1 表示文本 token 的大小,\(C\) 表示通道数。因此,针对第 \(j\) 个关键词获得的前景相似度向量 \(SI^j_{fore}\) 定义为:
其中,\(\odot\) 表示逐元素乘法。L2 归一化是沿着通道维度进行的。为了在对应不同前景关键词的各个图像特征之间得到共识,\(SI_{fore}\) 可以通过以下公式获得:
其中,\(j\) 表示链的数量,我们将 \(J\) 设置为 3。我们也以类似的方式得到相应的背景共识 \(SI_{back}\)。然后,得到的相似度热图 \(SI\) 为:
其中,\(SI \in \mathbb{R}^{N_i \times 1}\)。然后,使用双线性插值对 \(SI\) 进行上采样。将 \(SI\) 上采样至与原始图像 \(X\) 相同的大小后,得到的输出可以视为与 \(X\) 对应的共识热图 \(H\)。我们进一步在 \(H\) 上采样高激活的像素作为正点提示,并选取相同数量的最低激活像素作为负点提示,以引导 SAM 中的分割过程。
渐进式掩码生成(Progressive Mask Generation)
然而,单次推理可能无法提供令人满意的分割结果。对于背景复杂的图像,一些背景物体也可能在热图中被高度激活,从而造成推理时点提示的噪声。为了获得更稳健的提示,我们使用热图作为视觉提示,重新加权原始图像,并在测试时适应过程中引导模型。加权后的图像 \(X'\) 如下所示:
其中,\(w_{pic} = 0.3\) 是一个超参数。加权图像 \(X'\) 然后作为下一次迭代的输入图像。通过这种方式,我们开发了一个循环的测试时适应框架,其中包含以粗到细的方式进行多次推理迭代。
此外,在随后的迭代中,我们使用前一次迭代的掩膜通过绘制边界框作为后处理来引导分割。我们选择与掩膜具有最高交并比(IoU)值的框作为选择。这优化了当前的迭代,并提高了分割结果的一致性。在第 \(i\) 次迭代中获得的掩膜定义为 \(M_i\),其中 \(i \in \{1, \dots, \bold{Iter}\}\),Iter 设置为 6。为了消除每次迭代中因提示不一致导致的模糊性影响,每次迭代获得的掩膜会进行平均。最后,被选择的迭代 \(i^*\) 定义为通过选择与所有迭代的平均掩膜最接近的结果,如下所示:
然后,\(M_{i^*}\) 就是对应于 \(X\) 的最终掩膜。

浙公网安备 33010602011771号