Open-Vocabulary Camouflaged Object Segmentation

论文链接:Open-Vocabulary Camouflaged Object Segmentation

1 introduction

现在的伪装目标检测主要集中在预定义的封闭集场景上,其中所有的语义概念都在推理和训练阶段被看到,但是这过度简化了真实世界的复杂性,因此,作者提出了一个新的方向,开放词汇环境下的伪装目标检测,Open-Vocabulary Camouflaged Object Segmentation(OVCOS)。

open-vocabulary就是让模型能够识别训练集中没有的全新类别,其关键就是对其图像和语言特征(注意,不是完全开放,不是让模型模型没有任何信息的情况下预测一个新的类,在测试的时候,测试集可能的类别都已经限定死了,模型在测试时要根据测试图片从中选出最可能的类别,但是这些类别在训练时没遇到过)。由网上具有丰富概念、带有噪声的、多样的数据训练的CLIP,表现出惊人的open-vocabulary的能力,作者因此以CLIP为基石,专门为OVCOS任务开发了OVCoser,利用其强大的图片文字匹配和解读能力创造了一个强大的OVCOS的基线。

2 Methodology

2.1 overall framework

首先把RGB图片输入进CLIP的Visual Encoder,得到multi-scale visual features。类别集class set会经过camopromts处理得到为伪装场景专门生成的类别描述,送进textual encoder里得到类别的文本特征(类别文本嵌入);multi-scale visual features会和depth map、edge map一起送进iterative Refinement Decoder里去,伴随着correlation matrix的校准,逐步产生最终的分割图;最后,来自multi-scale visual features的最高级特征和最终分割图做MAP,送进visual embedding layer,生成图像嵌入,然后类别文本嵌入和图像嵌入做similarity计算,得到cls_logtis,得到图片在每个类别上的得分。

2.2  Semantic Guidance

在分割中,充分利用类别先验是非常有利于复杂环境下的物体检测的。因此,作者设计了Semantic Guidance Attention在图像特征中注入概念线索(concept cues)。

首先,作者把图像特征\(X\)投影到\(Q, K, V\),同时将类别文本嵌入信息\(f_t\)转换到class guidance vector\(G_t\),\(Q\)和\(G_t\)之间的相似度反映了不同空间位置在不同类别上的激活程度。然后做Agg操作,是对刚刚的相似度函数做softmax操作,可以得到每个位置最相关的类别。\(V\)经过modulate(后面会讲)之后会和\(Q, K\)做MHSA。

2.3 Structure Enhancement

现有的方法表明,低级的结构信息,如边缘和深度,在伪装目标识别中起着重要的作用,这与人类视觉系统的机制密切相关。

SG的输出会被送进两个分隔的数据流,包含convolutional stem和head用来edge和depth estimation,生成edge和depth logits,logits会受到edge、depth的真值监督。同时,convolutional stem的输出,也就是edge和depth的相关特征,会送进SE,使用MHSA去分别更新规则化之后的visual features

2.4 Iterative Refinement

在SG中,aggregation这个操作,反映了每个位置最相关的类别,但是image features和class semantic并没有对齐,通俗点、直白点来说,由于文本和图像的本身固有差距和距离,导致计算相似度向量或者矩阵的第n个位置的值可能并不是对应于图片特征的第n个位置,并且相似度向量的的部分值是我们不需要的,它可能会包含背景的相关信息,可能会干扰模型的判断。因此作者引入modulate weight \(W_r\)。作者将correlation matrix和object-ware representation \(f_obj\)(使用上一次迭代产生的粗略分割图和image feature做MAP得到的)结合,得到task-oriented object cues,我这里认为是“经过图像分割特征筛选之后的文本类别语义信息”,然后和image feature结合,得到modulate weight \(W_r\),去modulate \(W_b\)。

2.5 CamoPromts

prompts对于CLIP想要适应下游任务是至关重要的,因此作者专门为伪装检测设计了一套camoprompts,用来修饰类名,比如说原来类名是“frog”,经过修饰之后变为“A photo of the camouflaged frog”。CamoPrompts见下表:

最终每个类的文本语义嵌入向量是表中prompts的平均值

3 Experiments

Ablation、Comparison这里就不再讲了,可以查看原论文,值得注意的是,作者对CamoPrompts的重要性进行了分析。

为了分析不同prompts template的影响,作者计算了来自training和testing的class labels在embedding space下的Hausdorff distance。上图可以看出,那些有良好分类准确率的templates通常能拉近training class和testing class之间的距离,这对之后OVCOS的prompts engineering起到了一个指导作用。

同时,作者还探讨了Edge和Depth对于OVCOS谁给更重要,作者通过实验得出了edge information flow更加重要的结论。

4 Future work

  1. 作者用最终的分割图和最高级特征\(f_5\)来和textual embedding计算相似度来判断类别,这是不充分的,因为最高级特征\(f_5\)并不包含许多细节信息,并且使用最终分割图做MAP会将分类的依据局限在物体区域这一块,但是伪装目标检测里,环境(背景)和前景的相互interaction在分类时作用也很大。
  2. 在论文中,作者一直在用cls_logtis也就是correlation matrix去指导分割,但是分割的过程也能指导分类,可以实现mutual learning
  3. 论文虽然是为了伪装目标检测设计的,但是整个网络的设计只有CamoPrompts是专门为OVCOS设计的,其他的网络模块更加general,用于OVSIS(open-vocabulary semantic image segmentation)也是行得通的,现在需要设计更加OVCOS Specific的Model。
  4. 做open-vocabulary segmentation最重要的是图像特征和文本特征的对齐,但是在伪装目标分割中,由于伪装物体和背景高度相似,导致提取到的特征充满环境噪音,如果不经处理直接和类别文本特征进行对齐,可能会产生错误的对齐,影响分割和最终分类效果。
  5. CLIP在训练时是进行的图像级监督,所以CLIP用于语义分割这种像素级任务可能会造成performance declination,尤其是COD这种对像素、细节要求更高的任务,所以说对CLIP做Per-Pixel的adapt是非常重要的。
  6. 本文是one-stage,可以设计two-stage的网络,首先是mask2former提取a bunch of masks,用shallow prompts “camouflaged objects”进行初始删选,筛掉那些基本不可能的mask,然后再使用CLIP将mask pooling之后的image进行分类,在CLIP内部可以加入Context信息,以弥补被mask掉的环境信息。

 

 

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇