Semantic-SAM:更强粒度和语义功能的统一分割模型

2023-07-27 14:56 657 阅读 ID:1278
将门
将门

我们提出Semantic-SAM,在多个粒度(granularity)上分割(segment)和识别(recognize)物体的通用图像分割模型。和SAM相比,我们的模型有两个优点:

(1) 语义感知,即模型能够给分割出的实体提供语义标签。

(2) 粒度丰富,即模型能够分割从物体到部件的不同粒度级别的实体。

据我们所知,我们的工作是在 SA-1B数据集、通用分割数据集(COCO等)和部件分割数据集(PASCAL Part等)上联合训练模型的首次尝试,并系统研究了在SA-1B 上定义的交互分割任务(promptable segmentation)和其他分割任务(例如,全景分割和部件分割)上多任务联合训练的相互促进作用。

论文链接:

https://arxiv.org/abs/2307.04767

代码链接:

https://github.com/UX-Decoder/Semantic-SAM

在线Demo地址:上述代码仓库的首页

一、简介

Semantic-SAM可以完全复现SAM的分割效果并达到更好的粒度和语义功能,是一个强大的vision foundation model。Semantic-SAM 支持广泛的分割任务及其相关应用,包括:

  • Generic Segmentation 通用分割(全景/语义/实例分割)
  • Part Segmentation 细粒度分割
  • Interactive Segmentation with Multi-Granularity Semantics 具有多粒度语义的交互式分割
  • Multi-Granularity Image Editing 多粒度图像编辑

1.1 复现SAM

SAM是Semantic-SAM的子任务。我们开源了复现SAM效果的代码,这是开源社区第一份基于DETR结构的SAM复现代码。

1.2 超越SAM

  • 粒度丰富性: Semantic-SAM能够产生用户点击所需的所有可能分割粒度(1-6)的高质量实体分割,从而实现更加可控和用户友好的交互式分割。
  • 语义感知性。Semantic-SAM使用带有语义标记的数据集和SA-1B数据集联合训练模型,以学习物体(object)级别和细粒度(part)级别的语义信息。
  • 多功能。Semantic-SAM 实现了高质量的全景,语义,实例,细粒度分割和交互式分割,验证了SA-1B 和其他分割任务的相互促进作用。

只需单击一下即可输出多达 6 个粒度分割!与 SAM 相比,更可控地匹配用户意图,不用担心鼠标移动很久也找不到想要的分割了~

二、模型介绍

2.1 模型结构

Semantic-SAM的模型结构基于Mask DINO进行开发。Mask DINO是基于DETR框架的统一检测和分割的网络,目前仍然是相同模型size下的SOTA模型。Semantic-SAM的模型结构主要改进在decoder部分,同时支持通用分割和交互式分割。通用分割的实现与Mask DINO相同。交互式分割包括point和box两种形式,其中box到mask不存在匹配的ambiguity,实现方式与通用分割相同,而point到mask的匹配是Semantic-SAM的关键设计。

在Semantic-SAM中,用户的point输入被转换成6个prompt, 每个prompt包含一个可学习的level embedding进行区分。这6个prompt通过decoder产生6个不同粒度的分割结果,以及object和part类别。

2.2 训练

为了学到物体级别(object)和部件级别(part)的语义,Semantic-SAM同时从多个数据集中进行学习,如多粒度数据集(SA-1B),物体级别数据集(如COCO),以及部件级别数据集(如Pascal Part)。

为了从联合数据集中学习语义感知性和粒度丰富性,我们引入以下两种训练方法:

解耦物体分类与部件分类的语义学习:为了学习到可泛化的物体和部件语义,我们采用解耦的物体分类和部件分类,以使得只有object标注的数据也可以学习到一些通用的part语义。例如,head是在几乎所有动物上都通用的part,我们期望模型从有标注的dog head,cat head,sheep head等head中学习到可泛化的lion,tiger,panda等head的识别能力。

Many-to-Many的多粒度学习:对于交互式分割中的point输入,Semantic-SAM利用6个prompt去输出多粒度的分割结果,并用包含该点击的所有标注分割来作为监督。这种从多个分割结果到多个分割标注的Many-to-Many的匹配和监督,使得模型能够达到高质量的多粒度分割效果。

三、实验

3.1 SA-1B 与通用分割数据集的联合训练

我们发现,联合训练 SA-1B 和通用分割数据集可以提高通用分割性能,如对COCO分割和检测效果有大幅提升。

在训练SA-1B数据的过程中,我们也发现了利用少量SA-1B的数据即可得到很好的效果。

3.2 SA-1B 与细粒度分割数据集的联合训练

同样的,联合训练 SA-1B 和细粒度分割数据集可以提高部件分割性能。

四、可视化

4.1 Semantic-SAM的prompt从大量数据中学到了固定模式的表征

Semantic-SAM一共有6个可学习的prompt。对于不同图片的点击,观察每个prompt对应的分割结果,可以发现每个prompt的分割都会对应一个固定的粒度。这表明每个prompt学到了一个固定的语义级别,输出更加可控。

4.2 Semantic-SAM与SAM, SA-1B Ground-truth 的比较

每行最左边图像上的红点是用户点击的位置,(a)(b) 分别是Semantic-SAM和 SAM 的分割输出, (c) 是包含用户点击的 Groud-truth 分割。与 SAM 相比,Semantic-SAM具有更好的分割质量和更丰富的粒度,方便用户找到自己需要的分割粒度,可控性更好。

五、 总结

我们提出了Semantic-SAM,在多个粒度上分割和识别物体的通用图像分割模型。这是在 SA-1B数据集、通用分割数据集和部件分割数据集上联合训练模型的首次尝试,实现了语义感知性和粒度丰富性。未来,我们期待在本文的基础上引入更多的视觉文本(vision-text)数据集,推动通用多模态模型的发展。

作者:孙培泽

免责声明:作者保留权利,不代表本站立场。如想了解更多和作者有关的信息可以查看页面右侧作者信息卡片。
反馈
to-top--btn