Open-Vocabulary Semantic Segmentation via Attribute Decomposition-Aggregation学习笔记

Abstract

开放词汇语义分割是一项具有挑战性的任务,需要在推理时分割出新的对象类别。

最近的研究探索了视觉语言预训练来处理这一任务,但在实际场景中受到不切实际的假设的影响,即低质量的文本类别名称

例如,该范式假设在预训练过程中将准确和完整地提供新的文本类别,并存在于词典中。但是,当遇到简短或不完整的名称产生歧义、未出现在预训练的词典中的新词以及用户难以描述的类别时,通常会出现例外情况。

为了解决这些问题,这项工作提出了一个新的分解聚合框架灵感来自于人类理解新概念的认知

具体来说,在分解阶段decomposition stage,我们将类名解耦为不同的属性描述,以丰富语义上下文。

设计了两种属性构建策略:对公共类别common categories使用大语言模型,对人类发明的类别human-invented categories进行手动标记

聚合阶段aggregation stage,我们将不同的属性组合成一个完整的全局描述,形成一个区分目标对象和其他对象的判别分类器。

进一步设计了一种层次聚合hierarchical aggregation,实现视觉与文本的多层次对齐和深度融合。

通过计算聚合属性与图像之间的嵌入相似度得到最终结果。

为了评估有效性,我们用属性描述注释了三个数据集,并进行了广泛的实验和消融研究。结果表明,该方法具有较好的属性分解聚合性能。这项工作仍在进行中,并将进行更新。

Introduction

开放词汇语义分割

语义分割是计算机视觉的基本任务之一,它涉及到将图像划分为一些语义上有意义的区域。尽管已经取得了很大的进展,但现有的研究主要集中在闭集场景上,在训练和推理阶段,对象类别保持不变。这种假设是对现实生活的过度简化,限制了它的实际应用。另一项研究考虑了一个更具挑战性的问题,这需要视觉系统处理更广泛的类别,包括在推理过程中新的(看不见的)类别。这个问题被称为开放词汇语义分割(open-vocabulary semantic segmentation)(OVSS)

三个主要问题

为了处理OVSS,视觉语言预训练范式[42,14,50]提供了一个初步但流行的想法。通过利用语言作为视觉识别的内部表示,分割被表述为类别的文本表示和像素级视觉表示之间的相似性。在这一范式的基础上,最近的研究集中在一些小的改进上,例如,探索更好地对齐视觉语言模式[53,24,33]。尽管这些研究很有前景,但它们都在现实场景中保持了一个不切实际的假设,即给定的新文本类别是准确完整,存在于预先训练的词汇中。因此,三个主要问题依然存在。

(1)歧义性(Ambiguity):简短或不完整的名字带来了词汇歧义,对语义辨别性提出了很大的挑战。

(2)新词(Neologisms):在视觉语言预训练期间,经常出现的新词可能不存在于词典中,这阻碍了预训练的语言模型解释它们的语义,更不用说将它们与图像对齐了。

(3)不可命名性(Unnameability):未命名或难以描述的类别,如专门术语、稀有动物名称或特定对象,可能会给用户带来命名问题,从而增加使用的复杂性。

以上三个问题导致品类理解质量不高,限制了实证分割效果。

不同的“属性”(diverse attributes)

为了解决这些问题,我们将注意力转向人类理解新概念时的认知心理学(cognitive psychology)。例如,如果一个孩子问如何在动物园里找到一只火烈鸟,你可以通过寻找它粉红色的羽毛、长长的脖子等来解释这个过程。然后,通过结合这些答案,孩子可以很容易地认出火烈鸟。这些答案从多个不同或互补的角度提供了详细的描述,我们称之为不同的“属性”(diverse attributes。与普通类别相比,属性有三个优点:(1)对于模棱两可的类别(ambiguous categories),属性可以弥补缺失的上下文信息,从而实现完整性。(2)对于未知的类别(unseen categories),它们可以转化为已知的属性,容易被预训练的语言模型解释。(3)对于未命名或不可描述的类别,可以更详细地使用属性进行替换。这些属性描述在规模上聚合起来,为视觉识别提供了强有力的基础。

提出一种新的分解聚合框架

受此启发,我们提出了一种新的分解聚合框架(a novel decomposition-aggregation framework)首先将普通类名(vanilla class names)分解为各种属性描述(attribute descriptions)然后将不同的属性表示(attribute representations)聚合为最终的类表示(a final class representation),以便进一步分割。

分解阶段

具体来说,对于分解阶段(decomposition stage),我们的目标是从粗略的类别名称(coarse category names)生成各种属性描述(attribute description),并为数据集构建属性。我们提出了两种构建策略:一种是使用语言模型生成(using language model to generate),另一种是手动标记(manually labelling)第一种策略对应于常见类别名称有时简短或不完整,语义模糊或不充分的可辨别性的情况。因此,我们可以简单地使用PASCAL[10,13]和COCO[26]等现有数据集进行标注。第二个策略涉及到一个新收集的名为“神奇动物”(Fantastic Beasts)的数据集,其中包含了想象中的生物和人类发明的它们的名字。该数据集用于为预训练的视觉语言模型模拟新单词的情况,以及用户难以描述的类别。

聚合阶段

聚合阶段(aggregation stage,我们的目标是将单独的属性片段(separate attribute pieces)组合成一个集成的全局描述(an integrated global description),然后作为分类器(classifier)将目标对象与其他对象区分开来。聚合阶段也可以看作是将不同属性所反映的区域(regions reflected by different attributes)组合成一个特定区域(a specific one)的过程,从而得到分割结果。由于描述对象的属性可能潜在地包含层次结构(hierarchy),因此我们提出了一个层次聚合体系结构(a hierarchical aggregation architecture)来隐式地利用这种潜力。设计一个聚合模块,对不同层次的属性进行聚合,通过计算这一阶段的输出与图像特征的相似度得到最终结果。

贡献

为了评估属性理解对OVSS的意义,我们对三个数据集(PASCAL[10,13]、COCO[26]和Fantastic Beasts)进行了属性描述标注。大量的实验证明了我们的分解聚合框架(decomposition-aggregation framework在多个baseline和竞争对手上的优越性能。此外,我们进行了彻底的消融研究,定量和定性地解剖每个组成部分。总而言之,我们的贡献体现在三个方面:

•我们在仅利用属性描述进行开放词汇分割方面进行了早期探索,为了实现这一目标,我们为两个现有数据集和一个新收集的数据集构建了详细的属性描述;

•我们设计了一个新的分解聚合框架,将类名分解为属性描述,然后将它们聚合为最终的类表示;

•我们进行了彻底的实验和消融,以揭示属性分解聚合的重要性,以及我们的模型在提出的三个数据集上的优越性能。

Related Work

视觉语言预训练(Vision-Language Pre-training

视觉语言预训练(Vision-Language Pre-training旨在与大规模web数据共同优化图像-文本嵌入。近年来,有研究将训练进一步放大,形成“基础模型”,如CLIP[42]、ALIGN[14]、Florence[50]、FILIP[49]、VideoCLIP[47]、LiT[51]等。这些基础模型通常包含一个视觉编码器(visual encoder)和一个文本编码器(text encoder),它们使用简单的噪声对比学习(noise contrastive learning)进行训练,以实现强大的跨模态对齐(cross-modal alignment)。它们在许多任务中都显示出很好的潜力:识别[15,19,52],检测[21,16,20],定位[18,17,27]和分割[32,48,28,31,29]。本文将CLIP用于OVSS,但同样的技术也应该适用于其他基础模型。

开放词汇语义分割(Open-Vocabulary Semantic Segmentation, OVSS)

开放词汇语义分割(Open-Vocabulary Semantic Segmentation, OVSS)的目的是根据文本描述的类别来理解图像。开创性的作品[7,25,12]使用生成模型从新类别的词嵌入中合成视觉特征。SPNet[46]和JoEm[4]采用映射过程,将每个像素和语义词分配到联合嵌入空间。最近,研究人员提出利用预训练的视觉语言模型(VLMs)进行OVSS。OpenSeg[11]通过区域文本接地(region-text grounding)将区域级视觉特征(region-level visual features)与文本嵌入对齐。LSeg[24]将像素级视觉嵌入(pixel-level visual embedding)与CLIP的类别文本嵌入对齐。Fusioner[33]使用轻量级融合模块(a lightweight fusion model)来桥接来自预训练vlm的冻结(frozen)视觉和文本嵌入。然而,上述方法严重依赖类别名称,忽略了文本歧义、新词和不可命名在现实场景中很常见。本文设计了一种新的属性分解-聚合框架novel framework of attribute decomposition-aggregation来解决这些问题。

属性的理解(Attribute Understanding)

属性的理解(Attribute Understanding)。视觉属性最早是在传统的零样本学习(zero-shot learning)中研究的[23,43,22]。随着视觉语言模型的出现,属性理解向着可扩展性(scalable)、开放性(open)和实践性(practical)更强的方向发展。研究的一个方向是检测和识别一组开放的对象,以及每个对象的一组开放属性[39,40,5,8]。另一项研究侧重于通过将属性作为文本提示的一部分来进行对象分类,其目的是评估具有丰富文本的vlm的判别能力[41,37],或增强模型推理的可解释性和可解释性[35,34]。与上述不同的是,我们的工作从开放词汇语义分割的角度研究属性理解,使用分解聚合策略

Method

本文研究开放词汇语义切分(OVSS)。我们从3.1节给出问题场景开始;然后在3.2节中引入属性分解-聚合框架;分解阶段和聚集阶段将分别在3.3节和3.4节中详细介绍。

问题的提出与初步(Problem Formulation & Preliminary)

问题(Problem)。给定图像I∈R H×W×3, OVSS的目标是训练一个模型Φ(Θ),该模型可以根据目标物体的文本描述T对其进行分割,即输出一个像素级掩码M:

M = Φseg(I, T;Θ)∈{0,1}h×w×1……(1)

在开放词汇设置下,训练类(training class)Cbase与测试类(testing class)Cnovel不相交,即Cbase∩Cnovel =∅。在训练过程中,提供来自基类(base class)的图像掩码对,即{(I,M) ~ Cbase};而在测试过程中,模型在不相交的新类(disjoint novel class)上进行评估,即{I ~ Cnovel}。

视觉语言范式(Vision-Language Paradigm)。为了实现开放词汇能力,最近的OVSS研究[53,24,33]采用了视觉语言预训练(VLPs),因为它们具有显著的跨模态对齐(cross-modal alignment)能力。具体来说,将普通类名作为文本描述,可以通过度量类级文本与像素级视觉之间的嵌入相似度来实现开放词汇分割

其中Φvis和Φtxt是指vlp的视觉和文本编码器。这种范式有一个幻想,但遇到了糟糕的现实。在实践中,新类的文本名称可能在以下三个方面遭受低质量的理解:(1)歧义(Ambiguity)。某些名字表现出词汇歧义,而另一些名字有时可能由于过度简化而不完整。这导致了语义可辨别性的不足。(2)新词(Neologisms)。预训练文本语料库在词汇覆盖方面不可避免地受到限制,因此可能不包括在现实世界中作为新词出现的某些术语。(3) 不可命名性(Unnameability。某些类别的实体可能对用户缺乏已知或易于描述的名称,特别是在涉及专门术语、罕见或晦涩的动物名称等的情况下。这些问题极大地限制了开放词汇分词的使用和发展。

属性分解-聚合框架(Attribute Decomposition-Aggregation Framework)

为了解决上述问题,我们引入了一种新的属性分解-聚合框架。

动机(Motivation)。这种文本语义问题是由低质量的范畴理解造成的。我们从颜色、形状、部件、材质等多个角度考虑分解类名。这将形成文本流的信息属性集。作为描述类别的部分表示,(1)属性可以补充不完整和模糊的缺失信息;(2)对于新单词,可以将属性转换为已知单词,便于预训练的语言模型进行解释;(3)对于未命名或不易描述的类别,可以使用属性进行更详细、更准确的描述。当这些属性聚合为全局描述时,可以为视觉识别提供强大的基础。

框架概述(Framework Overview)。如图2所示,给定图像一组属性描述(第3.3节),我们首先获得其视觉和属性嵌入(visual and attribute embedding)(第3.4.1节)。考虑到属性内部潜在的层次结构,我们建议使用层次步骤(hierarchical pipeline)逐步将所有给定的属性嵌入聚合到一个特定的token(a specific token)中(第3.4.2节)。由于最后一个特定的token(the final one specific token)表示聚类属性的信息,可以通过计算该token与视觉嵌入之间的相似性来获得分割(第3.4.3节)。在形式上

其中Φdecp(·)表示分解模块,该模块返回目标类别的n个属性的文本描述集。请注意,类别名称(和同义词)严格不包含在此集合中。Φaggr(·)为属性聚合模块。

分解:类名的详细属性描述(Decompose: Detailed Attribute Descriptions for Class Names)

在实际场景中,普通类名T可能是粗粒度的、不明确的,并且可能出现新词。我们在这里设计了两种策略来生成各种属性描述A来丰富信息背景。如图2a所示,一种使用大型语言模型,另一种涉及人工收集:

        图2:属性分解-聚合的框架概述。(a)分解阶段的目的是将普通类名解耦成各种属性描述。我们设计了两种构建属性的策略,即使用llm和手动收集。(b)聚合阶段旨在将分离的属性表示合并为一个集成的全局描述。我们建议在L阶段分层地将属性token聚合为一个特定的token。每个阶段交替一个融合层(fusion layer)和一个集群模块(clustering module)。通过计算相似度来生成掩码。

大语言模型的属性描述(Attribute Descriptions by Large Language Models)

对于普通类别名称在语义上粗糙或不明确的情况,一个有希望的解决方案是描述属性或上下文以获得更好的可区分性。要生成这样的属性,手工编写可能既耗时又低效,特别是对于大量的类。因此,为了提高成本效益,我们转向大型语言模型(LLMs)[6,38],它在大型数据语料库上进行了预训练,在语义理解和文本生成方面表现出色。

更具体地说,为了自动调整LLMs以丰富类上下文,我们提出了几个问题模板,用于从不同角度进行描述挖掘。以“火烈鸟”类别为例,我们首先提出了多个问题,如“列出照片中区分火烈鸟的所有属性”或“描述照片中的火烈鸟长什么样”;然后我们提示ChatGPT获取属性答案,如“粉红色羽毛,长脖子,大翼展,…”;最后,我们对答案进行过滤和组合,形成每个类别的属性集。详情请参阅补充资料。

手动采集属性说明(Attribute Descriptions by Manual Collection)

除了上述情况之外,还有两种常见情况需要属性描述。一个是常见类别名称、llm和vlp没见过的新词;另一种是当用户不熟悉一个对象时,他们可能难以命名它,特别是当它涉及到一个罕见或模糊的类别时。鉴于此,现有数据集通常不包括稀有或模糊的词汇,因此我们手动收集人造物体和稀有类别的数据集进行模拟。

该数据集名为“神奇动物”(“Fantastic Beasts”),由来自《神奇动物》系列电影[1,2,3]的20类神奇生物组成。我们首先对来自网络的数据集图像进行废弃和过滤,然后组织电影系列的粉丝志愿者仔细标注配对的masks和类别属性(category attributes)。由于所有这些生物和名称都是人类发明的,因此现有的llm和vlp不太可能学会它们。图1显示了一些具有相应类名和属性的图像。数据集信息也请参考补充资料。

讨论(Discussion)

  1. 数据集:开发高质量的属性数据集是推进OVSS实用性的关键贡献。由于目前没有现有的基准和评价,重要的第一步是在现有数据集(即PASCAL和COCO)和手动收集的数据集(神奇动物)上注释属性。
  2. 选择LLM的原因:由于LLM的功能,可以以可扩展的方式获得现有数据集的类别属性。尽管在训练期间没有接受任何视觉输入,LLM可以成功地模仿视觉属性,因为它们是在包含视觉知识描述的大型语料库上训练的。
  3. 意义:我们相信属性分解策略和生成的数据集将对社区产生很大的影响,进一步促进OVSS的实际应用。

聚合:视觉-属性对齐的层次融合(Aggregate: Hierarchical Fusion for Vision-Attribute Alignments)

给定图像I和属性描述A,我们的目标是将这些单独的信息分层地聚合成一个集成的全局描述G,然后作为判别分类器来区分目标对象。

视觉嵌入和属性嵌入(Vision Embeddings and Attribute Embeddings)

我们在这里采用视觉语言预训练[42]作为编码器,并主要考虑基于vit的架构[9],因为它们具有良好的性能,并且可以灵活地编码不同的模态。

给定图像I∈R H×W×3,视觉嵌入表示为V∈R Nv×d,其中Nv为token number;d是通道维数。属性嵌入A∈R Na×d是通过将每个属性分别输入到文本编码器中并将它们连接起来而得到的,其中Na是描述一个目标对象的属性的个数。

分层聚合体系结构(Hierarchical Aggregation Architecture)

属性描述可能包含层次结构。我们建议在L个阶段逐步累积这些属性,希望隐含地利用这种潜力,如图2b所示。

概述(overview)。每个阶段交替一个融合层(fusion layer)和一个集群模块(clustering module)。具体来说,融合层促进了不同模态之间的交互。有了这些丰富的表示,下面的集群模块将合并属性token并将其分组为更少的token。这个过程利用可学习的聚类标记(Learnable cluster tokens)作为聚类的中心。基于相似性,这些聚类中心可以收集并合并所有属性token到特定的组中。

形式上,对于第l阶段,我们将Nv视觉token表示为Vl∈R Nv×d;Na l属性token描述一个目标为Al∈R Na l ×d object;和ngl可学习的聚类令牌为Gl∈R ngl ×d。融合层将Vl、Al和Gl之间的信息进行全局融合和丰富:

为了避免符号滥用,我们仍然对输出使用相同的符号。融合后,通过聚类将Na 1属性token合并并分组为更少的Na (l +1)token(Na (l +1) < Na l):

注意,属性标记不仅根据其本身分组,还取决于可视化嵌入。分组属性Al+1的个数等于此阶段的集群令牌Gl的输入个数,即Na 1 +1 = N g 1。

融合层。Ψl fuse灵活,可适应多种网络架构。在这里,我们使用多个transformer encoder layer作为代表,通过迭代地相互关注来有效地捕获和传播不同模态的远程信息。

聚类模块。这里使用可学习的聚类标记(Learnable clustering token)来表示每个分组阶段的聚类中心。单纯根据属性嵌入进行聚合是不合理的,因为视觉信息在分割中也起着一定的作用。为了更好地融合这两种模式,可学习聚类中心首先通过视觉和属性交叉关注(visual and attribute cross attention)获取上下文信息:

其中Gl∈R N g l ×d为语境中心(contextual centers);Vl和Al是视觉和属性嵌入。通过分别交换视觉标记和属性标记的信息,~ Gl具有这两种模式的知识,为后续处理提供了良好的先验条件。

接下来,我们将每个属性token分配给上下文中心(contextual token)之一,并计算新分组属性的表示(al)作为输出。我们使用槽注意力(slot attention)[30],将每个集群(cluster)视为一个槽(slot):

将残差添加到~ Gl后,可以获得此阶段的最终分组属性Al+1,然后通过ϕmixer更新和传播令牌之间的信息。在这里,我们将MLPMixer[44]与两个连续的group-wise和channel-wise MLP s一起使用。

掩膜计算(Mask Calculation)

总的L阶段聚合给出一个属性token AL+1∈R 1×d的结果,它可以被认为是对所提供属性信息的集体知识的浓缩。logits Y可以通过计算最后阶段视觉嵌入VL+1和AL+1之间的余弦相似度来生成:

最终的预测可以通过简单地重塑空间大小和上采样,然后应用具有温度τ和阈值的sigmoid来获得。

讨论(discussion)

聚合策略的基本概念涉及识别代表所有属性的单个嵌入。如图3所示,我们提出了“Direct”、“Pre-”、“Post-”和“Hierarchy”四种可选设计。(1)“Direct”是指在一句话中列出所有属性,然后直接发送给文本编码器。从输出[CLS]令牌获得聚合嵌入,然后将其输入开放词汇表模型以进行进一步处理。(2)与“direct”相反,其他三种策略分开(separately)向文本编码器提供属性。“Pre-”首先将属性tokens聚合为一个token,然后像“direct”一样将其输入模型。(3)“Post-”通过连接(concatenation)将所有属性标记一起输入到开放词汇表模型中。然后将该模型的输出属性token聚合为一个token。(4)“Hierarchy”在多个阶段逐步从多个tokens聚合为一个token,如本节所述。在4.1节和4.2节中,我们对这些策略对现有开放词汇模型的适应性进行了充分的比较和探讨。

训练与推理(Training and Inference)

在训练过程中,视觉编码器和文本编码器保持冻结状态,我们统一采样N个描述目标类别的属性,并从属性集中替换。使用标准交叉熵损失来监督预测掩模的真值。在推理过程中,用户可以提供测试图像和描述感兴趣对象的任意数量的属性。然后由模型生成相应的分割掩码。

  • 14
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值