What Holds Back Open-Vocabulary Segmentation?

先把它记成一个非常简单的框架:

OVS 性能瓶颈 = Region Classification + Mask Proposal + Train/Test Labeling Mismatch

作者通过一系列 Oracle 实验,把这几个问题一个一个拆开来看。论文观察到,近年来 OVS 性能已经出现明显的平台期,而且 COCO 上训练、ADE20K 上测试的 open-vocabulary 方法,和直接在 ADE20K 上监督训练的模型仍然有接近 20 个点的差距。


1. 论文想回答什么?

我们之前一直在讨论一个问题:

为什么 image-level VLM 很强, 但到了 dense / pixel-level prediction 就变差?

MaskCLIP、DenseCLIP、CAT-Seg 等工作更多是在想:

怎么把 CLIP 的语义能力更好地下沉到 pixel / region

而这篇论文换了一个角度:

假如把 OVS 系统里的某一个组件直接换成"完美组件",性能到底能提高多少?

这样就可以判断真正卡在哪里。

作者主要研究的是 mask-based OVS,具体选了:FC-CLIP、 MAFT+

它们都是:CLIP + Mask Transformer

核心把任务拆成:Mask Localization + Mask Recognition

即先产生 mask,再判断这个 mask 是什么类别。

这点其实和 OpenSeg 的思路非常接近:region/mask proposal → region feature → text matching


2. 研究的标准 pipeline

大致可以记成:

Mask Decoder 会产生很多候选 mask,同时每个 mask 有自己的 embedding:

另一方面:

然后 判断这个 mask 属于哪个类别。

除此之外,还有一个特殊类别:no-object

如果一个 query 被判断为 no-object:,它就不会进入最终 segmentation。论文特别指出,这个 no-object embedding 是在训练集上学出来的,这为后面的问题埋下了伏笔。

所以先记住:250 个左右 candidate masks → 选择/过滤 → 分类 → 最终 segmentation


3. 第一组实验:如果 Mask 完全正确,CLIP 能不能认对?

这就是 Segmentation Oracle。

直接把模型产生的 mask 换成 Ground Truth Mask,完全不考虑 segmentation boundary 的问题。

对于每个 GT mask:

用 mask pooling :

然后与所有类别的 CLIP text embedding 比较:

给出完美的区域我,看 CLIP 能不能认出是什么?

结果:仍然不够好。

最好的 ConvNeXt-Large 即使使用 perfect segmentation,也只有 41.8 PQ,仍然比对应的 in-domain supervised model 低接近 8 个点。作者因此得到:

Finding 1: CLIP 的 region-level classification 本身就是瓶颈

不是说只要 segmentation mask 准确,CLIP 的强大语义能力就一定能正确识别这个区域。

这和前面学习 MaskCLIP / CAT-Seg 的问题正好对应上:

CLIP 知道:整张图片 dog

并不代表:任意一个准确 dog region dog 都能稳定成立。


4. 第二组实验:如果 Classification 完全正确呢?

作者反过来做 Classification Oracle。

这一次保留模型自己的 mask:

但是,只要一个 mask 和 GT overlap 足够:

作者就直接把它的类别改成正确答案。

也就是:Mask 还是模型自己的,Category 直接给正确答案

结果 FC-CLIP:26.8 → 39.8

MAFT+:26.9 → 39.2

提升非常明显,尤其 unseen class 提升更大。说明 classification 确实是大问题。

但问题来了:即使分类完全正确,性能还是明显低于 in-domain model

说明剩下的问题就在:Mask Proposal

所以现在已经得到两个瓶颈:Classification 不够好 + Proposal 不够好


5. 最有意思的实验:模型是真的"没有产生正确 mask"吗?

这里是我觉得这篇论文最值得你关注的一部分。

Mask decoder 实际上不是只输出最终那几个 mask,而是先生成很多候选:

论文中最多:N=250

于是作者问:

有没有可能正确 mask 其实已经在这 250 个里面,只是最后被选错、过滤掉了?

于是做 **Mask Selection Oracle:**利用 GT,从全部 candidate masks 中挑出最匹配 GT 的那些 mask。

理论上:Oracle Selection 应该性能提升。

结果第一次居然:性能下降,FC-CLIP:26.8 → 21.9


6. 为什么"选对 mask"反而变差?------no-object

虽然 Oracle 已经把正确 candidate mask 找出来了:

但 classifier 可能说: → no-object,于是直接 discard

因此:正确的 mask 其实已经生成了, 但被 no-object filtering 干掉了

作者于是直接删除 no-object logit,不允许这些 oracle-selected masks 被扔掉。

结果 FC-CLIP:26.8 → 36.7,MAFT+:26.9 → 33.7

unseen class 的提升尤其明显。

所以得到非常重要的 Finding 3:很多 valid mask 不是"没找到", 而是"找到后被错删了"。

真正的问题变成:Proposal Generation → Proposal Selection


7. 那为什么 unseen object 特别容易被当成 no-object?

这里就进入这篇论文第二个非常重要的观点: Training supervision Test objective

举论文里的例子:painting。

ADE20K 认为墙上的画应该是一个独立 object:

wall + painting

但在 COCO 中,这个 painting 往往:unlabeled,或者直接:merged into wall

那么模型训练的时候,如果它产生:

训练 supervision 反而可能告诉它:

于是模型学会:

看到墙上的 painting mask → 不应该输出。

但是 ADE20K 中 painting 又是 evaluation 想要的类别。类似地还有 pillow。

所以问题已经不只是:COCO 没见过 ADE20K 的 class name,而是更严重的:

COCO 教模型"不应该把这个区域单独分出来",但 ADE20K 却要求:"把这个区域单独分出来"

论文把它称作 labeling policy conflict / shift。

这也是Finding 5:训练 annotation policy 和测试 annotation policy 冲突


8. 所以这篇论文最后真正得出的结论是什么?

如果把整篇论文压缩成一张逻辑图,我认为就是:Open-Vocabulary Segmentation

现在有三层问题:

1.VLM region recognition 不够好

2.Mask proposal / selection 不够好

3.taxonomy 与 test taxonomy 的定义方式冲突

尤其第三点很容易被忽视。

以前我们可能自然认为:Open Vocabulary = 没见过 dog → 测试靠 CLIP 认识 dog

但这篇论文提醒我们,更困难的情况其实是:

训练阶段不仅没要求你预测它, 甚至明确训练你"不要预测它"

这时候再强的 text classifier 也没用,因为:正确 mask → no-object → discard

CLIP 根本没有机会分类它。


9. 作者认为未来应该怎么做?

作者最后给出的方向主要有三类。

1、benchmark / taxonomy 本身要处理好:train taxonomy → test taxonomy,不能存在大量互相矛盾的 annotation policy。

2、也是非常有意思的一点:Vocabulary-aware Proposal Generator

现在的 proposal generator 基本是:

无论测试 vocabulary 是:dog, cat 还是:dog head, dog body, tail,它产生的 proposals 基本一样。作者认为未来应该变成类似:

即:

想分什么,会影响如何产生 mask。

3、引入更丰富的 annotation guidance,如 few-shot segmentation examples 或 natural language annotation guidelines,让模型知道某个类别到底应该怎么划边界、什么算独立对象。


10. 和之前看的论文放到一起理解

到这里其实可以把你最近学的东西串起来了。

MaskCLIP / DenseCLIP 主要在问:CLIP 里到底有没有 dense semantic information?

CAT-Seg 在问:粗糙的 pixel-text similarity 怎样通过 cost aggregation 变好?

OpenSeg / SAN 这类 mask-based 方法更多是在解决:怎样得到 region,再用 VLM 做 open-vocabulary recognition?

而这篇论文是在这些工作之后问:组件都已经做了这么多改进, 为什么 OVS 还是上不去?

它给出的答案是:不是一个组件的问题

而是 dense VLM representation 还不够好,同时 mask proposal / selection 也有问题,而且更底层还有 training supervision 本身可能和 open-vocabulary evaluation 冲突。


你现阶段读这篇论文,我觉得最值得真正记住的不是具体 PQ 数字,而是下面这条逻辑链:

Perfect Mask → Classification 仍然不好,Perfect Classification → Segmentation 仍然不好

继续往下追:很多 good masks 其实已经生成 → 被 no-object 丢弃

最终追到:COCO supervision ADE20K evaluation policy

所以这篇论文真正的核心不是"提出了一个更强 OVS",而是告诉你:

OVS 的问题不仅是如何学到更好的 dense feature, 还包括模型到底应该生成什么 region, 以及训练数据有没有告诉它正确的 segmentation policy。

1、

CLIP 强大的 image-level semantics 强大的 region-level semantics

CLIP 可能认识 dog, 但不一定能从一个局部 dense region representation 中, 稳定、精确地区分 dog 与所有其他类别。

论文自己最终概括为:当前 VLM 缺少足够好的 dense representation / region-level classification ability。

2、mask proposal 为什么会成为 bottleneck?

mask proposal bottleneck 实际上包括两层:Proposal Generation + Proposal Selection

即 "有没有生成正确 region" 和 "生成以后有没有留下来"都有问题。

4、当前方法到底主要卡在 semantics,还是 spatial localization?

|-------------------------------------------------------------------------------------------|
| 两者都是独立 bottleneck;但 annotation-policy shift 导致的很多严重错误首先表现为 proposal / spatial failure |

最值得记住的是最后这一层:

OVS 并不是简单的 "先做好 class-agnostic segmentation,再让 CLIP 分类"就可以解决。

因为所谓的:class-agnostic mask 其实并没有真正脱离 vocabulary。

**你认为哪些区域值得成为一个独立 mask,本身就受到训练 taxonomy / annotation policy 的影响。**这其实也是这篇论文对前面 OpenSeg、SAN 这类「proposal + VLM classification」路线最重要的反思

相关推荐
minji...1 小时前
LangGraph-AI智能体开发框架(1) 认识 LangGraph 框架,Agent Server 智能体基础概念与核心能力
人工智能
码上观世界1 小时前
蔓藤AI-一站式数字人创作平台-官网全新改版升级
人工智能
勤劳X码农1 小时前
2026年电商视频AI配音软件怎么选?
人工智能·音视频
盘古开天16661 小时前
PPO算法代码实战(三):PyTorch从零实现PPO求解CartPole
人工智能·pytorch·算法
大模型任我行2 小时前
阿里:通义千问3.8全能版发布
人工智能·语言模型·自然语言处理·论文笔记
周杰伦fans2 小时前
轻量模型高并发推理优化技巧
开发语言·人工智能·c#
小小小小钰儿2 小时前
2.3-云端API集成
人工智能·计算机·网络安全·操作系统·编程
盘古开天16662 小时前
PPO算法原理详解(下):Clip机制深入剖析与实践指南
人工智能·算法·机器学习
虫无涯2 小时前
大模型联动 CodeQL + Coverity 完整落地方案
人工智能·python·大模型·llm·codeql·coverity