FlowSeg: Dynamic Semantic Guidance for LLM-Conditioned Segmentation¶
会议: ICML 2026
arXiv: 2605.29461
代码: https://zkzhang98.github.io/FlowSeg_page
领域: 分割 / LLM 条件分割 / 视觉-语言对齐
关键词: LLM-conditioned segmentation, 双向语义流, 指代分割, 推理分割, 边界细化
一句话总结¶
本文指出当前基于 query 的 LLM-conditioned 分割是"propose-then-select"——候选 mask 往往已经够准,错就错在选不对;为此提出 FlowSeg,让 LLM 条件嵌入在 decoder 每一层都参与 query refinement 并被新的视觉证据持续更新,再叠一个轻量边界细化模块,在 RefCOCO/+/g 和 ReasonSeg 上一致刷点。
研究背景与动机¶
领域现状:LLM-conditioned segmentation 把大语言模型与像素级分割解码器(SAM 风、Mask2Former 风的 query decoder)耦合,已经形成 LISA → PSALM → HyperSeg → Sa2VA → X-SAM 这条快速演进的主线。主流框架几乎都是 query-based propose-then-select:一组可学 query 经过 \(L\) 层 decoder 从视觉特征解码出 candidate masks,最后用 LLM 给的条件嵌入与 query 做相似度匹配,选出最像目标的那一个。
现有痛点:作者系统地分析了 X-SAM 等 SOTA 在 RefCOCO/+/g 上的失败案例,发现"很多失败不是 mask 质量不够,而是匹配错了"——绝大部分错样本里至少有一个 candidate mask 已经和 GT 有高 IoU 重合,但被打分模块判得过低没选上。这种"语义错配"在含模糊属性或关系描述的指代里尤其普遍。
核心矛盾:当前 pipeline 里语义和视觉是浅层、单向地交互的——LLM 算出的条件嵌入要么作为 cross-attention 的固定 key/value 注入,要么完全留到匹配阶段;query 的迭代轨迹仍主要受视觉特征驱动,语言只在"末端打分"那一刻才发挥作用,且条件嵌入从头到尾都不更新,无法吸收 decoder 解出来的视觉证据。
本文目标:在不动 LLM-segmentor 骨架的前提下重构 decoder 内部交互——让语义从 layer 0 起就参与 mask 生成动力学,并允许条件嵌入随解码过程被新的视觉信号修正,从而把"semantic misalignment"从架构层面解决。
切入角度:oracle 实验给出强信号——若按 oracle 选 candidate,X-SAM 与 FlowSeg 在 RefCOCO/+/g 上的 cIoU 上界都接近 91%,几乎相同。这说明 candidate generation 已经差不多到顶,瓶颈在 selection。把 selection 问题"提前到"decoding 过程中去解,比训一个更强的事后打分器更直接。
核心 idea:用"双向语义流" (Bidirectional Semantic Flow, BSF) 让 condition 与 query 在每层 decoder 都互相更新,再叠一个"只动不确定边界、不动自信内部"的轻量 Boundary-Aware Refinement (BAR)。
方法详解¶
整体框架¶
FlowSeg 继承 LISA / X-SAM 那套双视觉编码 + LLM + query decoder 的标准 scaffold:(1) 一个 Vanilla Encoder(SigLIP2-so400m)抽语义特征送进 LLM,(2) 一个 Segmentation Encoder(SAM-ViT-L)抽像素特征 \(\mathbf{F}_{\text{pix}}\) 给分割 decoder。LLM 用 Qwen-3,输入指令里嵌 <p>...</p> 标短语跨度、<SEG> 标分割输出位。从 LLM 隐藏态取两类向量:条件嵌入 \(\mathbf{C}_{\text{LLM}}\)(来自 <p> 跨度)和分割嵌入 \(\mathbf{S}_{\text{LLM}}\)(来自 <SEG> 位置),各自经投影 \(\phi_{\text{llm}}\) 得到 \(\mathbf{C},\mathbf{S}\)。\(\mathbf{S}\) 加到初始 query \(\mathbf{Q}^{(0)}\) 上提供全局多模态上下文。Decoder 采用 Mask2Former 架构 + \(N=200\) query,但 FlowSeg 把每层 decoder 的内部流程换成 BSF;输出阶段对 mask 概率做 BAR 细化;最终用 \(L\) 层后的 \(\mathbf{Q}_{\text{out}}\) 与最终 \(\mathbf{C}^L\) 匹配出 mask。
关键设计¶
-
双向语义流之 Semantic Cross-Attention + Adaptive Fusion (SR):
- 功能:在每层 decoder 里把 LLM 条件嵌入显式注入 query refinement,但保留视觉 cross-attention 的主导地位。
- 核心思路:先按常规做 visual cross-attention 得到 \(\mathbf{Q}_{\text{vis}}^{(l)}=\mathrm{MHA}(\mathbf{Q}^{(l-1)},\mathbf{F},\mathbf{F})\);再做 semantic cross-attention \(\mathbf{Q}_{\text{sem}}^{(l)}=\mathrm{MHA}(\mathbf{Q}_{\text{vis}}^{(l)},\mathbf{C}^{(l-1)},\mathbf{C}^{(l-1)})\);两路输出用一个 sigmoid gate 自适应融合:\(\mathbf{g}^{(l)}=\sigma(\mathbf{W}_g\cdot[\mathbf{Q}_{\text{vis}}^{(l)}\|\mathbf{Q}_{\text{sem}}^{(l)}])\),\(\mathbf{Q}_{\text{fused}}^{(l)}=\mathbf{g}^{(l)}\odot\mathbf{Q}_{\text{vis}}^{(l)}+(1-\mathbf{g}^{(l)})\odot\mathbf{Q}_{\text{sem}}^{(l)}\),后接标准 self-attention 与 FFN。
- 设计动机:直接拼接或硬替换两路 attention 会破坏 visual 主干学到的空间先验;门控让浅层倾向多用视觉、深层倾向多用语义,正好匹配"先建粗时空假设再用语言收敛"的解码节奏。语义注入放在 visual cross-attention 之后而不是之前,是为了让语义在已经有空间候选的基础上"修剪 / 否决"假设,而不是从零开始驱动注意。
-
双向语义流之 Condition Refinement (CR):
- 功能:让 condition embedding \(\mathbf{C}\) 也随解码过程被更新,而不是从头到尾保持 LLM 给的静态向量。
- 核心思路:在每层结束前做一次反向的 cross-attention 让 condition 吸收当前 query 的状态:\(\mathbf{C}^{(l)}=\mathbf{C}^{(l-1)}+\mathrm{MHA}(\mathbf{C}^{(l-1)},\mathbf{Q}_{\text{s}}^{(l)},\mathbf{Q}_{\text{s}}^{(l)})\),其中 \(\mathbf{Q}_{\text{s}}^{(l)}\) 是 self-attended 之后的融合 query。残差形式保证条件不被"覆盖",只在视觉确证下被增量修正。
- 设计动机:消融表 3 显示,仅加 SR(单向)只能 +0.5%,加上 CR 后才暴涨到 +1.5%——说明真正解决 selection 瓶颈的是闭合的 feedback loop。原因是:当 candidate mask 把"红色"区域的视觉证据收齐后,condition 才能反过来知道"我要的是某个具体红色物体的某个部位",而不是抽象的"红色"概念,从而在最终匹配时打分更准。
-
Boundary-Aware Mask Refinement (BAR):
- 功能:在 BSF 解决全局语义错配之后,定向修不确定边界,不动自信内部。
- 核心思路:先用形态学梯度从 raw mask 概率图 \(\mathbf{M}_{\text{prob}}\) 找出边界像素 \(\mathbf{B}=\mathbb{I}[(\mathrm{dilate}(\mathbf{M}_{\text{prob}})-\mathrm{erode}(\mathbf{M}_{\text{prob}}))>\epsilon]\),\(\epsilon=0.1\);再用一个轻量网络 \(f_{\text{refine}}\) 在 \(\mathbf{B}\) 内输出受 \(\tanh\) 限幅的残差 \(\Delta\mathbf{M}=\tanh(f_{\text{refine}}([\mathbf{M}_{\text{raw}}\|f_{\text{comp}}(\mathbf{F}_{\text{pix}})]))\cdot\alpha\),\(\alpha\) 是可学缩放;最终输出 \(\mathbf{M}_{\text{refined}}=\mathbf{M}_{\text{raw}}+\Delta\mathbf{M}\odot\mathbf{B}\)。
- 设计动机:"enhancement-not-replacement"原则:BSF 已把全局选对,但残余错都集中在物体轮廓上;如果让模块自由改任意像素,会破坏 decoder 已经稳定的内部预测。形态学边界提取免训练且对模糊边界容忍,乘 \(\mathbf{B}\) 的 mask 把修改严格关在不确定带内。整套 BSF+BAR 只增 5.93M 参数(+0.12%)和 4.28ms 每样本延迟(+1.39%),相对于 baseline 几乎无感开销。
训练策略¶
端到端三阶段:(1) segmentor 预训 36 epoch;(2) 视觉-语言对齐 1 epoch;(3) 多任务联合训 2 epoch,AdamW lr=\(4\times 10^{-5}\),wd=0.05,bs=8/GPU × 8 GPU (H20)。损失为 LLM 的 next-token 损失加分割损失 \(\mathcal{L}_{\text{seg}}=\mathcal{L}_{\text{CE}}+\lambda_{\text{dice}}\mathcal{L}_{\text{dice}}+\lambda_{\text{mask}}\mathcal{L}_{\text{mask}}\)(\(\lambda_{\text{dice}}=\lambda_{\text{mask}}=5.0\),\(\lambda_{\text{cls}}=2.0\)),所有 decoder 层加深监督帮助语义在层间传播。
实验关键数据¶
主实验¶
RefCOCO / RefCOCO+ / RefCOCOg 三套指代分割(cIoU)+ ReasonSeg(gIoU/cIoU),对比 LISA、PixelLM、GSVA、SAM4MLLM、PSALM、HyperSeg、Sa2VA-8B、X-SAM 等 SOTA。
| 数据集 | LISA-7B | HyperSeg | X-SAM | FlowSeg | vs X-SAM |
|---|---|---|---|---|---|
| RefCOCO val | 74.9 | 84.8 | 85.1 | 85.8 | +0.7 |
| RefCOCO+ val | 65.1 | 79.0 | 78.0 | 80.2 | +2.2 |
| RefCOCOg val | 67.9 | 79.4 | 83.8 | 86.5 | +2.7 |
| RefCOCOg test | 70.6 | 78.9 | 83.9 | 86.1 | +2.2 |
| ReasonSeg test cIoU | 34.1 | – | 41.0 | 54.7 | +13.7 |
| ReasonSeg test gIoU | 36.8 | – | 57.8 | 60.5 | +2.7 |
ReasonSeg 上 +13.7% cIoU 的巨大跳跃印证了"需要复杂推理的指代"恰好最依赖语义在解码中的持续参与。Backbone-controlled 消融(表 4)显示,把 X-SAM 的 LLM 升级到 Qwen3 只带来边缘提升,而 FlowSeg 即使用回 X-SAM 原本的 Phi-3-3.8B 仍超过 X-SAM,证明增益来自架构而非更强 LLM。
消融实验¶
| 配置 | RefCOCO | RefCOCO+ | RefCOCOg | Avg. |
|---|---|---|---|---|
| Baseline | 85.0 | 78.3 | 84.1 | 82.4 |
| + SR (semantic refinement) | 85.4 | 79.0 | 84.3 | 82.9 (+0.5) |
| + SR + CR (= 完整 BSF) | 85.6 | 79.9 | 86.2 | 83.9 (+1.5) |
| + SR + CR + BAR (Full) | 85.8 | 80.2 | 86.5 | 84.2 (+1.8) |
关键发现¶
- 单向语义注入 (SR only) 收益较小 (+0.5%),加上 CR 后才跳到 +1.5%——闭合反馈才是关键,单方向"语言指导视觉"远不够。
- Oracle 上界实验(表 5):FlowSeg 与 X-SAM 的 oracle cIoU 都在 91% 左右,差距来自 selection 而非 generation,验证 motivation。
- 在 X-SAM 的失败子集 (cIoU<0.5) 上,FlowSeg 把这些 case 的平均 IoU 从 4.6 拉到 49.2(+44.6),rescue 率 44.6%;在更难的 cIoU<0.2 子集仍能 rescue +43.4,说明 BSF 主要修的就是语义错配类失败。
- BAR 单独贡献 +0.3% avg cIoU——边界细化是锦上添花,但确保它"只动边界"才不会反噬 BSF 已经稳定的内部预测。
- 仅 +5.93M 参数 / +4.28ms 延迟,工程友好。
亮点与洞察¶
- 诊断驱动的架构改造:先用 oracle 实验明确"问题在 selection 而非 generation",再有针对性地设计 BSF——这套"先量化瓶颈再开方"的方法论非常值得在 LLM-条件 dense prediction 任务中复用。
- 双向流 vs 单向注入:cross-modal attention 这么多年的经验是"加一路 text-to-vision",但本文用消融证明只有 condition 也被刷新才真正解锁性能。这给所有 query-based 多模态 decoder(detection、HOI、视频指代)一个明确改进方向。
- enhancement-not-replacement 的边界细化:用形态学梯度无监督地圈出"该改的地方",再加 \(\tanh\) 限幅的残差,是一种避免重训坏内部表示的稳妥范式,可以套到任何需要"局部修复"的输出头上。
- 轻量、可插:BSF 只是把 decoder 层换内部模块,不改 LLM 也不改 visual encoder,可以无痛接到任何 Mask2Former-类 head 上。
局限与展望¶
- 评测仍局限于"单个指代表达一次"的 expression-level 协议,多目标 / 多 mask / 共指消歧场景没覆盖(X-SAM 在表 1 中正是覆盖这类的,但本文没扩展到那边的多任务设置)。
- ReasonSeg val 集太小(340 例),结果波动大,本文也明示"以 test 为准";val 上 cIoU 反而比 X-SAM 低 (49.2 vs 32.9,方向是好的),但 gIoU 高很多,需要更标准化的评测。
- BSF 在每层都做两次额外 attention,虽然总参数和延迟仍低,但若 query 数 \(N\) 进一步加大(如视频指代分割),condition refinement 的 \(O(|C|\cdot N)\) 开销值得重新评估。
- BAR 用了固定阈值 \(\epsilon=0.1\) 的形态学操作,自适应阈值或者可学的边界检测器可能进一步提升复杂边界场景。
- LLM 与 decoder 之间的语义流只通过
<p>跨度和<SEG>token 一次性中转,更细的层级(如每个 token 流到不同 decoder 层)是潜在扩展。
相关工作与启发¶
- vs LISA / HyperSeg / X-SAM:这些工作都属于"propose-then-select" + LLM 给静态条件嵌入,FlowSeg 在不改 LLM 主干的前提下把 decoder 内部交互从单向变双向,因此可以视为对该家族的通用增益。
- vs PSALM / Sa2VA:这些工作主要扩展任务空间(视频、多任务),但 decoder 仍是被动接收语言;FlowSeg 的 BSF 完全正交,可以叠到它们之上。
- vs Mask2Former / DETR 系:传统 query decoder 完全忽视语言侧迭代,FlowSeg 等价于在 Mask2Former decoder 中增加一条"语言侧的迭代",对 query 设计是范式补全。
- vs cross-modal attention (e.g. PSALM 里把 text 当 KV):差别在"text 是不是固定 KV"——以往工作让 text 单向流入 vision;FlowSeg 让 text 也被 vision 更新,形成 co-evolution。
评分¶
- 新颖性: ⭐⭐⭐⭐ 双向流 + 边界细化都非全新概念,但组合方式和针对"semantic misalignment"的诊断–设计闭环是新的。
- 实验充分度: ⭐⭐⭐⭐ 主实验 + backbone-controlled + oracle + failure case rescue + 组件消融 + 开销分析齐全,可惜没拓展到多 mask / 视频指代。
- 写作质量: ⭐⭐⭐⭐⭐ Section 1 motivation 推得很清,Algorithm 1 把 BSF 写成 14 行伪码极易复现。
- 价值: ⭐⭐⭐⭐ ReasonSeg +13.7 cIoU 是显著进步;BSF 模块小巧可移植,给后续 LLM-条件 dense prediction 提供了通用改造思路。