SegPrompt:引入Prompt learning提升开放世界分割的能力
这篇文章是由浙大和阿德莱德大学合作,在2023.8.12上传到arxiv上的文章,创新性强,解决的问题也非常有挑战性,值得一读。
背景
之前Open-World Entity Segmentation这篇文章提出了实体分割的概念,只注重分割对象的质量,而不关注对象的类别,在Photoshop这类图像编辑的软件中有着很好的用处。但是对于open-world instance segmentation这个任务来说还远远不够,需要解决在开放世界中未见过的物体分割,以及对分割的物体生成标签。
为此,本文提出了包含Prompt learning机制的分割网络,在保持分割能力的同时,运用到类别信息。
本文的贡献
- 引入Prompt learning机制,它有效地使用类别信息来改进分割结果
- 第一个关注开放世界分割中的长尾效应
- 类别级的提示信息确实能够提升分割质量,能扩展到少样本的分割
文中将物体分为Known(训练集中有标注)、Seen (训练集中无标注,测试集有标签,看到了但不知道是啥)、Unseen(训练集没出现过,测试集中有标注,开放世界分割较常出现的问题)
方法
总览
模型主要为三个分支,Prompt Extraction Branch,Prompt-based Prediction Branch, Class-agnostic Branch。Prompt Extraction Branch以提示的形式提供类别级实例特性,然后Prompt-based Prediction Branch使用这些提示来预测相应的每类实例掩码,除了少数与提示相关的嵌入外,所有参数都与类别无关的分割网络共享。
Class-agnostic Baseline Branch
采用Mask2Former作为基础的框架
Prompt Extraction Branch
为了提取相关的prompt特征p ,首先经过一个example masked attention模块,与masked attention不同它增加了给定mask,因此它聚合了给定mask的信息,能够使利用提取的prompt分割未见过的物体(这块有点疑问)
然后经过self-attention 做优化
再使用掩码损失来监督每个示例查询,即Example Supervision
最后更新prompt特征
Prompt-based Prediction Branch
这个分支主要是利用提取的prompt并结合类别信息进行预测掩码
首先,对于每一个训练样本,选择(selector)和复制(Duplicate)以创建候选查询
v
c
v_c
vc,初始化方式如下
r
k
r_k
rk是类内嵌入,它是跨类别共享的,并提供了类内不平衡,允许属于同一类别的查询关注不同的对象。
s
c
s_c
sc是特定类别的嵌入。
然后经过普通的Masked Attention
再经过Ref Attention。不仅在
v
c
v_c
vc中编码查询之间的关系,而且还将基线查询q的信息泄露到
v
c
v_c
vc中。表达式如下
即
v
c
v_c
vc的value和key融合了q的信息,q即Class-agnostic Baseline Branch中提取的特征。
结果
从最后的结果看,SegPrompt能大大提升在开放世界中的分割能力
虽然本文中一些细节还未完全理解,但是本文的创新点和结果是显著的,尤其是对未见过物体的识别。