OpenSeg

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",再去做语言对齐。

相关推荐
大熊背1 小时前
Bayer‑Raw 域 AF vs YUV 域 AF 完整对比
人工智能·自动对焦·af
我是小白呀1 小时前
n8n 实战:把 AcmeFlow 的 READY 事件接到 CRM 通知
数据库·人工智能·workflow
Allen_LVyingbo1 小时前
信息化部门在AI时代的编程转移路径分析(上)
人工智能·python·算法·健康医疗·数据库开发·时序数据库·数据库架构
蓝速科技1 小时前
仓储盘点移动终端选型与蓝速科技 K10 实战方案
运维·数据库·人工智能·科技·材质
硅谷秋水1 小时前
RoboEdit:将人类操作视频转化为可扩展的机器人经验
人工智能·机器学习·计算机视觉·机器人
阿明61 小时前
小白深度学习基础【AI】
人工智能·深度学习
acrel71 小时前
化工企业能源管理体系下智能化技术实践与探索
网络·人工智能
ZEB11061 小时前
博彦科技董事长、总经理韩洁:AI必须扎根具体行业业务场景
人工智能·科技
梦帮科技1 小时前
万亿 Token 工业级语料洗炼:MinHash LSH 兆级去重、语义纯化与元提示词泄漏绝对阻断
人工智能·深度学习·神经网络·生成对抗网络·自然语言处理·数据挖掘