Large Model Based Referring Camouflaged Object Detection

基于大型模型的参考伪装对象检测

参考伪装对象检测(Ref-COD)是最近提出的一个问题,目的是分割出与文本或视觉引用相匹配的指定伪装对象。这项任务涉及两个主要的挑战:COD领域特异性感知和多模态参考图像对齐。我们的动机是充分利用最近的多模态大语言模型(MLLMs)的语义智能和内在知识,以类人的方式分解这个复杂的任务。由于语言是高度浓缩和归纳的,语言表达是人类知识学习的主要媒介,知识信息的传递遵循着从简单到复杂的多层次进程。在本文中,我们提出了一个基于大模型的多层次知识引导多模态方法Ref-COD称为MLKG,多层次知识描述MLLM组织指导大型视觉模型分割逐步感知相机和伪装场景,同时深入调整文本引用与伪装照片。据我们所知,我们的贡献主要包括:

(1)这是首次研究Ref-COD和COD的MLLM知识。

(2)我们首次提出了通过整合MLLM知识,将Ref-COD分解为感知目标和场景的两个主要视角,并提出了一种多层次的知识引导方法。

(3)我们的方法在Ref-COD基准上取得了最先进的性能,超过了众多强大的竞争对手。此外,由于注入了丰富的知识,它在单模态COD数据集上显示了零镜头泛化能力。

REF-COD问题

(1)模型感知伪装场景中的复杂模式是一个挑战。即使是人眼,从伪装场景中识别具有伪装特性的物体也不容易。如图1所示,如果一个人收到一个文本提示/参考,这个人很可能会结合除视觉信息以外的一些先验知识来解决Ref-COD问题。在某种意义上,这项任务超越了视觉感知,因此我们很自然地考虑在模型中注入一些领域知识,以增强其感知能力。

  (2)文本引用使模型需要处理伪装照片和文本引用之间的跨模态对齐。如果文本引用太短和抽象,对于模型来说过于复杂,并且模型在预训练过程中没有看到相关的语料库,那么跨模态对齐将会更加困难。例如,如果文本引用是一个类标签[bird],那么模型很容易将这个概念与各种鸟类的视觉属性联系起来,因为鸟类在训练语料库中很常见,因此模型具有对鸟类及其栖息地场景的内置知识。然而,让我们想象一个困难的案例,如果文本参考是一个罕见的物种[鸭嘴兽],这在训练语料库甚至现实世界中都是罕见的。因此,这些模型对鸭嘴兽及其栖息地场景没有任何了解,无法将参考词[鸭嘴兽]与相应的鸭嘴兽伪装照片对齐。考虑到这一限制,我们将使用可理解/丰富的自然语言来解释和增强Ref-COD的抽象文本参考。这主要有两个好处:(a)丰富的自然语言将为模型带来额外的知识来注入看不见的模式。(b),同时使模型更容易对齐跨模态输入。

   Given the superior semantic intelligence and rich knowledge of LMs, in this paper, we would

  like to make the first attempt to explore LM knowledge to alleviate the aforementioned task-specific challenges of Ref-COD, and meanwhile implement a solution with interpretability.

  缓解REF-COD特定任务挑战和实现一个具有可解释性的解决方案。

方法:

基于上述动机,以及LM在复杂任务分解[24,51]上的丰硕应用的激励,我们的思想是充分利用mllm的语义智能和内在知识,以类人的方式分解这个复杂任务。具体来说,我们将Ref-COD的复杂逻辑分解为两个主要视角,逐步感知伪装目标和场景。这可以指导模型明确地解决两个问题。第一个问题是它需要分离什么特定的物体,第二个问题是它需要处理什么样的伪装场景。我们认为,有效地解决这两个问题可以大大提高该模型的可解释性。在本文中,我们提出一个MLLM-based多层知识引导多模态方法Ref-COD称为MLKG,其中,来自流行的MLLM LLaVA-1.5 [29]的多层次知识描述被组织起来,以指导大型视觉模型SAM [23]逐步感知伪装目标和伪装场景,同时将文本参考与伪装照片深度对齐。

问题:

和伪装评估的参考词如何设计。或者说类别标签。

  SAM能修改用于伪装评估吗

目前看起来都是微调,微调的程度足以适应我的任务需求吗,是用来分割的模型,

用于分类如何调。

  不能的话,使用我的模型可以很好的结合文本参考知识吗,在什么阶段结合,是注意力机制计算前,还是后。

公式:

我们假设一个训练数据集X以N个伪装照片的形式出现:X={Xi=(p=i,tref i)} N i=1。每个伪装照片p迷彩i∈R3×H×W有一个文本类别的标签t ref i,其中H和W表示p迷彩i的高度和宽度。在p camo i中可能有多个伪装的物体,我们需要通过匹配参考t ref i提供的目标来分割出特定的物体。因此,在Ref-COD任务中,我们的目标是学习多模态映射M:Mi→Mseg i输出一个二进制掩模Mseg i∈{0,1}H×W,可以从∈中分割伪装对象,匹配它的参考t ref i。

文本类别标签 是可以自己设计的吧。

网络结构部分:

MLKG网络结构图

1.Visual Encoder 输入伪装图片,产生视觉表示,并传输到视觉编码器。

2.Visual Decoder 同步接收视觉编码器和知识注入器的视觉表示和领域知识,输出分割掩码M,预测与参考目标匹配的特定伪装目标

3.Knowledge Factory 是一种多模态的大型语言模型,它将目标参考t ref i翻译为多层次的知识描述,并将其传输给知识编码器;(应该存在伪装评估知识描述吧)。

4.Knowledge Encoder是一种文本编码器,它从知识工厂获取多层次的知识,并将每一层次的知识编码为一个向量,并传递到知识注入器中;(编码成向量好和视觉向量结合)

5.Knowledge Injector接收知识编码器的输出,并完成两个信号处理步骤: a)选择并融合从知识编码器接收到的多层次知识的编码表示,b)被选择和融合的知识在与视觉解码器的表示空间跨模态对齐后输入到视觉解码器。

我们的管道以一种端到端的方式进行训练,通过一个二进制的交叉熵(BCE)损失连接到我们的视觉解码器。特别是,我们使用一个大型视觉模型SAM [23]的配置来实现我们的视觉编码器和解码器。我们采用CLIP中的文本编码器[43]作为知识编码器。在下面的章节中,我们将详细描述我们的知识工厂和注入器。有关我们所有组件的更多实现细节,请参见第4节。

现在这种方式越来越智能化的模型,相当接近人类正常思考的方式。

通过本身后天学习的知识,碰见新问题,通过知识和观察得出结论。评估就是一个过程。

那么考虑修改方式。

似乎不太行,除非SAM很好修改成我的网络那种输入和计算方式。

又或许,不用修改直接改成分类模型,也不用多余的输入方式。给一个标签就完了,还需要尝试

现在这种方式越来越智能化的模型,相当接近人类正常思考的方式。

通过本身后天学习的知识,碰见新问题,通过知识和观察得出结论。评估就是一个过程。

知识工厂:

可以指导模型明确地找出两个问题Q1:它需要分离什么特定的对象,以及Q2:它处理什么样的伪装场景。

(也需要解决一些问题,需要评估何种特定对象,处理何种伪装场景 和 (伪装对象的伪装效果的高低)这个是我们要的结果,如果直接给的话,不太合理。比如直接告诉这个模型这张伪装的难度等级是几。那网络直接输出不就好了。又或者是训练给,验证不给?这样子比较合理。)

对于Q1,该模型需要一个明确的类别名称,可能需要学习一些与目标参考相匹配的特定类型的物体的形态信息或物理特征的知识,而不考虑与背景相关的干扰信息。例如,如果目标是一种动物,那么模型考虑其栖息地的知识来解决Q1是不好的。

对于Q2,模型有必要学习伪装场景的知识,以知道场景中的哪些属性会导致特定物体的伪装效果,如颜色、纹理、形状、灯光。

伪装-目标级别有两个知识组成部分:

K#a(知识a):一个手工制作的文本模板“一个[CLS]的照片”,它遵循了最近的图像分类[43]的良好实践,让模型知道它需要感知什么类别。K#b:对特定目标的形态学信息和/或物理特征的详细描述,由我们的提示1(P#1)从MLLM中提取。

伪装-场景级别:

提供了关于伪装场景的多重(从全局到细粒度)的知识,包括五个组成部分: K#c从全局的角度描述了整个场景。K#d、K#e、K#f和K#g分别通过关注颜色、纹理、形状和照明特性来提供细粒度的场景描述。知识是通过我们从一个MLLM中提取的。

在组织完我们的多层次知识后,知识工厂模块将其输出到知识编码器,如图2所示。知识编码器负责将知识从语言领域转移到嵌入空间,通过将每级知识编码到一个向量,并传递到知识注入器。

知识注入器:

如前所述,我们的知识注入器接收知识编码器的输出,并完成两个信号过程: (a)选择和融合多层次的知识,以及(b)将知识与视觉模式对齐。

(a)知识注入器选择并融合从知识编码器接收到的多级知识的编码表示。为了获得清晰的可解释性,我们设计了一种加权融合策略来选择和融合多重编码的知识。如图4所示,我们的知识注入器将所编码后的知识用于层间和层内的选择和融合,以生成良好的对视觉解码器的集成引导。具体来说,知识K#a - K#g被编码成7个512d向量,记为ka - kg。伪装目标级知识K#a和K#b的编码向量ka和kb连接为1024d向量,然后是1024×1024全连接层,得到1024d向量。

对于伪装场景级的知识K#c - K#g,我们采用了一种加权融合策略。K#c全局描述图像的场景,而K#d - K#g分别从颜色、纹理、形状和光的角度描述伪装场景。这四个方面的比例因不同的伪装照片实例而有所不同。因此,我们使用kc和kd - kg之间各自的相似性来确定知识的比例。我们计算kc和kd - kg之间的点积,得到四个亲和值。在应用了softmax函数后,这些值产生了权值λd - λg。利用λd - λg对kd−kg进行加权和,得到了一个新的512d向量ks。将ks和kc连接,并将它们通过一个1024×1024全连接层,得到一个1024d向量k场景。最后,ktorget和kscene的平均值作为知识注入器的引导输出,然后注入视觉解码器。上述所有全连接层的所有激活功能都使用GELU [13]。

(b)在与视觉解码器的表示空间进行跨模态对齐后,将被选择和融合的知识输入到视觉解码器。特别是,正如在我们的动机中所述,注入的多层次知识使模型更容易对齐伪装的照片和知识之间的跨模态间隙。因此,我们的知识注入器使用一个MLP来将知识投射到我们的视觉解码器中,而不需要考虑其他更复杂的适配器网络。然后,视觉解码器综合感知视觉模式和知识,以预测目标掩模作为最终输出。

文本模态例子:

一张随机的嘲鸟的迷彩图片:

在本例中,“颜色”、“纹理”、“形状”和“光”对应的权重分别为0.30、0.25、0.27和0.18。这意味着图像中的嘲鸟主要依靠颜色来实现伪装,因为它与环境非常匹配。这与直觉感知很一致。

在这里,我们将说明我们的一小部分贡献。

如前所述,我们的视觉编码器和解码器是由一个SAM实现的。然而,SAM解码器原生地与类别级别上的短文本对齐,其用于这种视觉-文本对齐的源代码从未发布过。在我们的工作中,我们复制了这部分代码,并将SAM与我们复杂和结构化的文本/知识深入对齐。与原始SAM的浅层对齐相比,我们的方法是一个更深入的对齐实践。这使得SAM的交叉模态对齐向前了一步。据我们所知,我们的工作提供了第一个基于sam的Ref-COD解决方案。

其他数据集就COD和Ref-COD的公开数据集

训练方式:

我们使用PyTorch [41]库来实现我们的方法。具体来说,我们分别选择了SAM [23]的图像编码器和解码器作为我们的视觉编码器和解码器。这些参数用SAM的公共检查点ViT-H [23]初始化。SAM编码器是一个沉重的网络,因此我们使用LoRA [14]对其进行微调,以保持其强大的表征能力,同时降低计算复杂度。我们选择CLIP文本编码器作为我们的知识编码器,其参数用CLIP的公共检查点ViT-B/16 [43]初始化,并在我们的训练期间被冻结。使用动量为0.9的SGD作为我们的优化器。我们的学习速率最初设置为5e-3,并按照余弦学习速率策略进行衰减。我们所有的实验都是在NVIDIA GeForce RTX 3090 GPU上进行的。

一些性能比较:

REF-COD

COD

Zero _SHOT 

消融实验

加上文本模态,降低了0.003的点,也就是降低了13%。

后续想法:看看SAM的代码学习一下。尝试学习如何微调SAM

总结

本文提出了一种多层的伪装目标检测(MLKG)多模态方法(Ref-COD)。该方法利用多模态大语言模型(mllm)的语义智能和内在知识,以类似人的方式分解Ref-COD的复杂任务。MLKG方法组织来自mllm的多层次知识描述,指导分割模型逐步感知伪装目标和伪装场景,同时将文本参考与伪装照片对齐。本文的贡献包括探索mllm对Ref-COD和COD的使用,将Ref-COD分解为两个角度以更好地解释,以及在Ref-COD和COD基准上实现最先进的性能。此外,由于合理地注入了丰富的知识,该方法在单模态COD数据集上证明了零镜头泛化能力。我们希望这项工作能够为未来的Ref-COD、COD,甚至伪装的视觉感知方面的工作提供基础,激励社区使用大型模型知识进行复杂的模式学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

for technology

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值