1. OpenSeg 要解决什么问题?
OpenSeg 关注的核心问题仍然是:
VLM 有很强的 semantic knowledge,但如何把这种语义能力准确落到 pixel / region 上?
CLIP / ALIGN 通过大规模 image-text 数据学到了很强的开放词汇语义能力,但它们通常用一个全局向量表示整张图片:
这种表示适合判断"图里有什么",却会丢失大量空间信息,因此很难回答"这个概念具体在哪里"。
另一类方法如 LSeg 直接让每个 pixel feature 与 text embedding 对齐:
虽然能够进行 dense prediction,但训练时通常需要昂贵的 pixel-level semantic annotations,而 segmentation dataset 的类别数有限,很难扩展到大规模 vocabulary。
OpenSeg 因此提出一个中间方案:
先把 pixels 组织成 regions,再让 regions 和 language 对齐
即:
OpenSeg = Visual Grouping + Region-Language Alignment
论文认为,CLIP / ALIGN 缺少的重要环节正是 visual grouping:在视觉和语言对齐之前,先把图像组织成少量有意义的区域。
2. OpenSeg 的整体框架
OpenSeg 不再使用一个 global feature,也不是直接使用所有 pixel features,而是把图像表示为 N 个 mask 及其 region features:
整体流程为:
因此可以把模型理解成两个主要模块:
模块一:Visual Grouping 。输入:I ;输出:,即 N 个 class-agnostic region masks。
模块二:Visual-Semantic Alignment 。利用每个 mask 从图像 feature map 中提取 region feature zᵢ ,再和 caption 中的 word feature wⱼ 对齐:
最终同时获得:region 在哪里 + region 是什么
论文的方法部分正是按照"先预测 mask proposals,再学习 region-word alignment"展开。
3. Visual Grouping:为什么要使用 query?
图像首先经过 Backbone + FPN 得到 feature F,然后加入位置编码,并输入一组 learnable queries:
query 通过 cross-attention 从整张 feature map 中读取信息,得到:
然后每个 query 与图像 feature 做点积:
最终:
即 N 张 predicted masks。
这里的 qᵢ 一开始并不知道自己应该寻找什么 region,它只是一个随机初始化的 region slot。之所以最后能够学会寻找 region,是因为后面的 segmentation loss 会不断推动它生成更加完整、有意义的 mask。
可以简单理解:
不是天生知道 region,而是被训练目标训练成一个 region slot
相比直接卷积得到 dense prediction,query-based 方法更加 region-centric :每个 qᵢ 可以理解成"我要负责找一个 region",并通过 cross-attention 从整幅图像中收集相关信息。对于 OpenSeg 后面要进行的 region-word alignment,这种表示更加自然。
4. query、predicted mask 和 GT mask 的关系
query 数量 N 是人为设定的超参数,OpenSeg 实验中使用 128 个 proposals。因此:
即每个 qᵢ 对应一张 predicted mask sᵢ,所以:
query 数量 = predicted mask 数量
如果有 128 个 query,就会生成 128 张 proposal masks。
但一张图中的 GT masks 数量记为 M,通常:
训练时不是要求每一个 predicted mask 都必须有 GT,而是对于每一个 GT mask ,从全部 predicted masks 中寻找最匹配的一个:
因此训练会推动某些 qᵢ:
某个 GT region
而多余的 proposals 即使没有对应 GT,也不会像 DETR 那样一定被强制预测成 "no object"。作者这样设计,是为了让模型能够发现标注之外的其他合理 visual groupings。
所以可以记成:
个 query →
个 predicted masks →
个 GT masks,
5. OpenSeg 并不是完全不需要 pixel-level mask supervision
这一点非常容易误解。
OpenSeg 的训练实际上使用两种监督:
其中 class-agnostic mask supervision 只告诉模型:
哪些 pixels 应该组成一个 region。
而不使用:
这个 region 是 dog、person 还是 grass。
也就是说,原本可能有:
OpenSeg 在 grouping 阶段只把它们当作:
因此:
mask supervision 学"怎么分",caption supervision 学"是什么"
作者也做了实验:如果完全去掉 segmentation loss,仅依赖 region-word grounding loss 自己产生 masks,性能明显较差,说明 class-agnostic mask supervision 对学习稳定的 visual grouping 很重要。
6. 从 mask 得到 region feature:Mask-Based Pooling
得到 predicted mask sᵢ 后,OpenSeg 会从另一个图像 feature map 中提取对应 region feature:
这一步可以理解为:
\ \\boxed{\\text{mask 与 feature map 逐位置相乘}\\rightarrow\\text{空间维度求和}\\rightarrow\\text{region feature}} \\
也就是说,mask 值接近 1 的位置,其 visual feature 被保留;mask 值接近 0 的位置则被抑制。最后把整个区域的 features 聚合成一个向量:
因此 zᵢ 是第 i 个 predicted region 的视觉表示。论文正是通过这种 mask-based pooling 构造 region representation。
这一点和后来的很多 region-level 方法,包括我们之前讨论 GroundHog 时看到的 mask pooling 思路,本质上已经非常接近。
7. Region Feature 如何与 Text 对齐?
caption 会先经过简单过滤,主要保留 noun 和 adjective,例如:
A big stuffed bear sitting on a bench outside a store
可以得到:
这些 word 通过预训练 text encoder 得到:
然后计算 region feature zᵢ 与 word feature wⱼ 的 cosine similarity:
例如:
如果很高,就说明第 3 个 region 很可能对应 "bear"。
所以整个过程可以压缩成:
8. Grounding Loss:让每个 word 找到最合适的 region
Grounding loss 的公式比较复杂,但核心思想很简单:
让 caption 中每个重要 word 对应到一个或少数几个 regions
例如对于:
模型计算:
然后通过 Softmax 让相似度高的 regions 获得更大权重。
最终模型逐渐学会:
需要注意的是,OpenSeg 并不要求每个 region 都必须对应 caption 中的某个 word。
这是因为 caption 往往不会描述图片中的所有内容。例如图片中有:
但 caption 可能只写:
A man standing beside a car.
因此如果强制:
反而会引入错误监督。
OpenSeg 的 grounding similarity 被设计成:每个 word 倾向于找到一个或少数几个 region,但没有对应 caption word 的 region 不会受到强烈惩罚。
9. 为什么这种设计能够扩大 vocabulary 和训练数据?
传统 semantic segmentation 需要:
这种标注很贵,而且每个 segmentation dataset 的类别通常只有几十到几百个。
OpenSeg 则把任务拆成:
只要模型能够先生成合理 regions,就可以利用大量 image-caption 数据建立:
因此大量 image-text datasets 可以被用于 segmentation 的 semantic learning。
为了进一步扩大训练数据,OpenSeg 使用 Localized Narratives。对于没有人工 segmentation mask 的 caption images,作者先训练一个 segmentation teacher 生成 pseudo masks,再利用:
训练 OpenSeg。
从 118k 图像扩展到 652k 图像以后,在四个 benchmark 上平均提升约 2.5 mIoU 和 4.8 Grounding mIoU,说明 caption supervision 确实具有较好的 scalability。
10. Open-Vocabulary 到底是什么意思?
OpenSeg 可以识别 segmentation training labels 中没有出现过的类别,但这并不意味着模型可以凭空认识完全没见过的概念。
更准确地说:
没见过这个 segmentation label 从来没学过这个 semantic concept
例如 segmentation dataset 中可能没有 "helmet" 这一类别,但 text encoder 的大规模预训练或者 caption supervision 中已经包含 "helmet" 的语义,那么推理时仍然可以:
然后与 region features 比较:
从而找到对应 region。
OpenSeg 使用的是 ALIGN 中预训练好的冻结 BERT-Large text encoder,因此文本 semantic space 本身确实来自大规模预训练模型。
但需要注意,OpenSeg 并不是简单直接使用 ALIGN / CLIP 对 region 进行分类。更准确的关系是:
预训练模型提供 semantic space + OpenSeg 学习如何把 region 映射到这个 semantic space
region feature zᵢ 与 word feature wⱼ 的对应关系,是 OpenSeg 自己通过 caption grounding loss 学出来的。
11. OpenSeg 的推理过程
推理时,模型已经能够得到:
给定任意类别文本,例如:
Text Encoder 得到:
首先计算所有类别与所有 regions 的 cosine similarity:
然后利用 predicted masks 把 region-level semantic score 投回 pixel level:
最后每个 pixel 选择得分最高的类别:
因此 inference 可以概括成:
12. 为什么作者认为 Visual Grouping 很重要?
论文做了非常直接的 ablation。
正常 OpenSeg 在 PC-59 上:
如果不使用 predicted masks,而直接对 dense feature 做 text classification:
A-150:
说明:去掉 visual grouping,性能明显下降
如果进一步直接使用 GT masks,则 PC-59:
说明更准确的 localization 仍然能够明显提升效果;但即使使用完美 GT masks,模型性能仍没有达到完全正确,也说明 semantic alignment 本身仍然是一个困难问题。
13. OpenSeg 和 DenseCLIP 的核心区别
DenseCLIP 的思路更接近:把 image-text alignment 下沉到 pixel level
即:
它关注的是:
如何让 VLM feature 更适合 dense pixel prediction?
而 OpenSeg 的核心思路是:不要直接 pixel-text alignment,先进行 visual grouping
即:
因此在我们之前总结的 OVS 范式中:
OpenSeg 更接近第二种,但严格来说应该写成:
因为它并不是简单把现成的 CLIP classifier 接在 mask proposal 后面,而是自己利用 caption supervision 学习 region-word alignment。论文也专门比较了 ALIGN + proposal baseline,OpenSeg 的效果仍明显更好。
14. 最后把整篇论文压缩成一条主线
视觉侧:
语言侧:
然后:学习 region-word alignment。
所以 OpenSeg 最值得记住的思想是:
Image-level representation 太粗,直接 pixel-level semantic supervision 又太贵;因此使用 region / mask 作为视觉与语言之间的中间表示。
最终实现:
这也是 OpenSeg 相比 DenseCLIP 最值得记住的范式变化:DenseCLIP 主要在想怎样让 pixel 和 text 对齐,而 OpenSeg 先问"pixel 是否应该先被组织成 region",再去做语言对齐。