CVPR 2023 | FreeSeg: Unified, Universal and Open-Vocabulary Image Segmentation
- 论文:https://arxiv.org/abs/2303.17225
- 代码:https://github.com/bytedance/FreeSeg
- 文档:https://www.yuque.com/lart/papers/gy7dlrdeu4hwg584
目标任务: Open-Vocabulary Image Segmentation
- semantic segmentation
- instance segmentation
- panoptic segmentation
主要目的
Open Vocabulary 学习范式将分割系统推广到更通用的应用场景. 现有的定制化的设计范式导致各种分割任务之间的碎片化, 从而阻碍了分割模型的统一性.
所以本文基于one-shot训练的形式, 提出了一种统一参数和结构的通用模型用于处理 Open Vocabulary 分割任务.
并引入了prompt来统一不同的任务和类别概念, 以适应不同的任务和场景.
Open Vocabulary Segmentation 旨在分割训练过程中未曾见过的目标类别. 现有的方法主要可以分为两个方向:
- 将视觉特征映射到语义空间.
- 与预训练模型进行跨模态对齐, 这利用了 CLIP 这样的预训练跨模态模型的零样本能力. 本文与此类工作关系密集.
主要工作
方法概览
两阶段方法:
- 提取通用的mask proposal
- 利用 CLIP 对第一阶段生成的 masks 进行 zero-shot 分类.
训练阶段:
- 训练进行在seen类别和对应标签上。
- 先使用Mask Proposal Extractor编码图像得到Visual Concepts 的Fv(NxD)和类别无关的Mask集合M(NxHxW)。对Mask使用特定的任务标签使用Focal和Dice损失监督。
- 每次迭代从三个任务标签(语义分割、实例分割和全精分割)中随机选择一个任务标签监督以避免跨任务训练带来的梯度冲突。
- 关于任务和类别的引入,这里设计了Adaptive Prompt Learning将task和category嵌入joint text embeddings Ft(CxD,C是Category数量)。Fv和Ft的consine similarity matching map表示所有class-agnositc mask各自所属预测类别的概率。这里则使用类别标签监督。
这里的问题:
- 图像的embedding是如何从完整的空间特征上获得的?
- 使用类别标签监督这一策略, 目的和方式是如何?
测试阶段:
- 使用训练好的proposal extractor,使用文本引导可以获得一系列二值masks。
- 利用预训练的CLIP图像编码器获得mask-level的编码。
- 计算mask表征和文本embedding的相似性。
- 根据adaptive prompt learning,输出任务相关的分割结果。
- 测试中使用的category set包含了seen和unseen类。
Adaptive Prompt Learning
- 设计目的: 编码任意task和category到文本表征中.
- 主要内容: 基于Prompt学习策略. 这里没有使用固定地将所有类别和任务名称放入相同的模板中, 而是自适应地将任务和类别文本转换为一组可学习的向量, 这些向量被拼接为text embedding以促进模型训练.
- adaptive task prompt Pt: 可以打包多个学习任务到同一个框架, 并缓解不同任务训练的冲突问题. 具体操作就是将三个任务名称添加到可学习向量集合中, 整体构成task prompt, 并使用CLIP文本编码器编码Et.
- adaptive category prompt Pc: 可以帮助模型兼容更多的类别, 扩展到unseen类别, 提升open-domain性能. 同样的, 训练中, 使用的可见类别和可学习向量组合得到adaptive category prompt, 通过CLIP编码Ec. 拼接Et和Ec获得联合的task-category的embedding Ft. 由于实际输入category可以使任意的, 所以Ft可以迁移到open vocabulary的unseen category.
Semantic Context Interaction Module
在Mask Proposal Extractor中获得的一般性的视觉表征忽略了类别和任务信息, 而这些信息可以为综合推理提供更可靠的线索.
为此作者们在text embedding Ft和extractor中的多尺度visual feature Fv(z)(z: layer index)之间放置了semantic context interaction module, 使用Ft来更新Fv, 从而强调关于给定文本类别的视觉特征.
这一module基于cross attention和一些线性层.
Test Time Prompt Tuning
这是一种test time adaptation的算法[Fully test-time adaptation by entropy minimization], 用于**refine the adaptive class prompt** during testing, 从而提升对于unseen category的跨模态对齐.
- 使用CLIP图像编码器对使用预测的Mask图mask操作后的图像编码.
- 计算与Nu个unseen classes的cosine similarity score.
- 计算每个样本对应的熵值:
- 选择熵小于阈值τ的queries, 可得到K个对应的样本编码.
- 对筛选得到的得分图计算熵损失, 用于优化adaptive class prompt的参数.
实验性能
实验中引入了一个特殊的变体, 即"CLIP", 直接使用预训练的CLIP的文本和视觉编码器匹配结果.