跳转至

SceneScaffold: Active Scene-State Construction for Unified 3D Scene Understanding

会议: NeurIPS2026
arXiv: 2609.33518
领域: 3D 视觉
关键词: 场景状态、视觉瓶颈、空间参照、角色约束、统一场景理解

一句话总结

SceneScaffold 把固定的 100 个视觉 token 分配给细节、实体、空间参照、关系和全局摘要,在语言推理前组织场景证据,相比 3D-LLaVA 将 ScanRefer / Multi3DRefer 的 mIoU 从 43.3 / 42.7 提高到 47.0 / 47.9。

研究背景与动机

统一 3D 大多模态模型需要让同一个语言模型完成物体定位、问答和物体描述,但点云包含的超点证据远多于语言模型能够接收的视觉 token。3D-LLaVA 等方法通过选择或聚合压缩输入;压缩后的对象特征虽然能告诉模型“有哪些东西”,却未必保留“场景边界在哪里”“哪些区域被占据”“物体如何相对这些参照定位”。当房间里有多个同类物体时,识别类别正确仍不足以定位指定实例。

论文认为问题不只是 token 不够,而是视觉侧与语言侧的职责分配不合适。视觉侧保留高语义显著性的对象片段,语言侧却要从扁平序列中恢复缺失的空间组织,同时完成任务推理。问答所需的整体布局与定位所需的细粒度参照也不同,仅提高对象 token 的显著性不能保证两类信息同时存在。因此,本文在不增加最终 token 数量的条件下,让不同状态从不同来源读取证据,并用训练目标稳定各自职责。

这里的 active 指视觉连接器主动构造表示,不是智能体实时移动、选择视角或探索环境;scene-state 也是一次静态场景前向计算得到的隐状态,而不是跨时间维护的世界模型。核心 idea:先在视觉侧搭好“实体—空间参照—关系”的场景脚手架,再把带角色身份的固定长度状态交给语言模型。

方法详解

整体框架

输入为点云,冻结的 3D U-Net 提取超点特征及其三维质心。连接器一边保留原有对象细节,一边分别构造对象核心证据与几何锚点;实体和场景框架读取器各自聚合对应证据,关系读取器再读取已经形成的两类状态。最后汇总全局信息,投影并序列化为 100 个视觉 token,供同一个 LLM 执行不同任务。

默认预算按“残余细节 / 实体 / 场景框架 / 关系 / 全局摘要”分配为 75 / 8 / 8 / 8 / 1。128 个实体证据超点是读取器的候选输入,不是额外进入 LLM 的 128 个 token;场景框架证据数量也随有效锚点变化,但其输出始终为 8 个状态。残余细节直接进入最终序列,不经过关系读取器。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    X["点云编码<br/>超点特征与质心"] --> E["实体与细节保留"]
    X --> F["几何场景框架"]
    E -->|实体状态| R["实体框架关系读取"]
    F -->|框架状态| R
    E -->|75细节与8实体| Z["共享状态接口"]
    F -->|8框架| Z
    R -->|8关系| Z
    Z --> O["LLM文本输出<br/>或SEG掩码解码"]
    T["仅训练监督<br/>语义一致与几何标签"] -.-> E
    T -.-> F
    T -.-> R

关键设计

1. 实体与细节保留:把对象核心信息与局部辨别线索分开保存

实体分支用共享的轻量 MLP 给每个超点打分,不依赖用户语言,硬 TopK 选出 128 个对象核心证据。8 个可学习实体查询通过交叉注意力读取这些证据,形成当前场景的实体状态。查询参数是固定学习的,但输出取决于场景输入;这些状态并不被定义为“一槽对应一个已检测物体”,也不要求 8 个槽枚举所有实例。

与此同时,原视觉连接器中的 75 个 token 被保留为残余对象缓冲,帮助保存小物体和外观差异。这样的分工避免把所有细节强行平均进少量实体状态:实体分支负责可复用的对象语义,残余分支继续提供细粒度证据。训练时对残余缓冲施加 0.2 的 dropout,降低 LLM 完全绕过状态分支的可能;推理时关闭该 dropout。

2. 几何场景框架:给对象语义提供不被显著性筛选掉的空间参照

场景框架不再选“最像物体”的超点,而是根据质心的水平坐标构造锚点。首先取得场景的 x、y 范围,在左、右、前、后四个边界带内平均聚合特征;默认带宽为对应轴跨度的 0.15。再把水平面划分为 3×3 网格,对被占据的格子聚合区域特征。有效锚点至少包含 4 个超点;边界锚点优先,剩余预算留给区域锚点,预算不足时优先保留超点更多的区域。

8 个框架查询读取这些锚点,而不是实体分支的 TopK 证据。因此,即使墙边或空旷区域的特征不够语义显著,也有独立通道进入表示。这里“左、右、前、后”按场景坐标范围定义,并非根据每个问题重建观察者视角;边界锚点也不是额外检测出的真实墙面。这个粗粒度水平参照有利于室内布局表达,但不能等同于完整三维拓扑。

实体、框架和关系读取器都采用一层、4 头的交叉注意力,各自拥有独立查询和读取器参数。原文附录给出的读取机制为:

\[ \Phi(Q,P)=\mathrm{LN}\left(Q+\mathrm{MHA}(Q,P,P)\right). \]

其中查询读取证据作为键和值,残差与归一化保留查询的角色身份;注意力 dropout 为 0.0,温度为 1.0。

3. 实体框架关系读取:让关系从已经组织好的对象与参照中产生

关系状态不直接读取原点云或全部超点,而是在实体和框架状态形成后,读取二者的拼接:

\[ S_{\mathrm{rel}}=\Phi_{\mathrm{rel}}\left(Q_{\mathrm{rel}},[S_{\mathrm{ent}};S_{\mathrm{frame}}]\right). \]

默认 8 个关系查询面对的是 8 个实体状态和 8 个框架状态。这样,关系聚合在结构上同时接触对象语义和空间参照,而不是仅从另一组高显著性片段中猜测位置。附录的“直接从原始证据构造关系”控制实验表现较差,为这条诱导路径提供了经验依据,但并不能证明每个关系槽都学习到可命名的关系。

关系监督同样很克制:对选中实体证据按分数归一化加权,计算一个整体质心;根据该质心离哪个水平边界最近、落在哪个网格单元,得到边界类别和区域类别。池化后的关系状态预测这两个标签。它们是从几何自动生成的粗参照标签,不是逐对象对的“支撑、接触、遮挡”等真实关系图标注,也不保证完整恢复所有对象间关系。

4. 共享状态接口:把结构信息保留到语言输入与掩码查询中

实体、框架、关系状态分别池化后拼接,经映射生成 1 个全局摘要 token。它不是再从原点云独立读取的新分支,而是对三类状态的紧凑汇总。随后残余、实体、框架、关系、摘要按固定顺序拼接,用同一个跨模态投影器映射到 LLM 嵌入空间,再给每类块加一个可学习角色嵌入;角色嵌入从零初始化,不设置五套独立投影器。

问答与描述直接使用这个共享接口。定位任务仍保留标准的 [SEG] 查询生成与掩码解码,并把实体、框架、关系的池化拼接映射后,作为额外残差条件加到分割查询上;可学习缩放系数初始化为 0.0。这个条件让解码器访问与 LLM 相同的空间摘要,但状态 token 并不替代密集视觉特征或直接输出点级掩码。

一个完整示例

以“靠近房间边界的那把椅子”为说明性输入,而非原文新增实验样本。场景中的椅子证据可能进入 128 个实体候选,随后聚合为 8 个实体状态;几何分支独立读取四侧边界带和有效网格锚点,输出 8 个框架状态。关系读取器在这 16 个状态上聚合对象与参照信息,不会执行智能体移动,也不运行一个显式椅子—墙面关系图搜索。

最终 75 个细节 token 保留候选椅子的外观差异,24 个角色状态与 1 个摘要补充组织信息。用户表达进入 LLM 后产生 [SEG] 查询,状态池化条件进一步调整该查询,再由标准掩码解码路径定位目标。这个例子说明数据如何流动,不表示实体池化质心必然对应所问的那把椅子;几何辅助标签本身不依赖该用户表达。

损失函数 / 训练策略

任务监督包含语言建模损失,以及定位任务的 BCE、Dice 和解码器辅助损失。角色保持监督分别约束实体语义、框架覆盖和关系几何:实体池化状态经映射后,与按实体分数 softmax 加权的证据目标做余弦对齐;关系池化状态用两个分类头预测上述边界和区域标签。

框架覆盖不是要求每个槽均匀读取所有锚点。对每个有效组,先累加一个状态槽对该组锚点的注意力,再在槽之间取最大值:只要至少一个槽充分读取该组,就算较好覆盖。原文定义为:

\[ c_g=\max_m\sum_{j:g_j=g}A_{\mathrm{frame}}^{m,j},\qquad \mathcal{R}_{\mathrm{frame}}=-\frac{1}{|\mathcal{G}|}\sum_{g\in\mathcal{G}}\log(c_g+\epsilon). \]

边界方向和有效网格单元构成组集合。这种损失惩罚完全被忽略的组,鼓励不同槽分担空间覆盖,而不是仅关注同一个高响应位置。总体目标保留原文的紧凑写法:

\[ \mathcal{L}=\mathcal{L}_{\mathrm{task}}+\lambda_{\mathrm{ent}}\mathcal{R}_{\mathrm{ent}}+\lambda_{\mathrm{frame}}\mathcal{R}_{\mathrm{frame}}+\lambda_{\mathrm{rel}}\mathcal{R}_{\mathrm{rel}}. \]

附录报告实体、框架、关系边界和关系区域项的权重均为 0.05;关系项由两个交叉熵组成。硬 TopK 不松弛离散索引,梯度沿被选中特征路径传播。辅助语义和几何目标只在训练时使用,推理不需要人工边界、区域或关系标签。

模型采用 LLaVA-1.5-7B,沿用 3D-LLaVA 的统一指令微调协议。点云编码器与 LLM 主体冻结,只训练状态构造模块、跨模态投影、分割查询投影与 LoRA。使用 8 张 NVIDIA A800、AdamW、余弦学习率调度,初始学习率 \(2\times10^{-4}\),batch size 2、1 个 epoch、梯度累积 8 步。

实验关键数据

主实验

以下只比较点云输入的通用模型,不把使用图像的 PC+I 模型或任务专用模型混入同协议排名。定位指标为 mIoU;ScanQA 为验证集 CIDEr,SQA3D 为测试集 EM / EM-R;Scan2Cap 为验证集 [email protected],即在 IoU 0.5 的定位匹配门槛下评价描述。各列越高越好,不同指标之间不能比较绝对大小。

点云通用模型 ScanRefer mIoU Multi3DRefer mIoU ScanQA C SQA3D EM / EM-R Scan2Cap [email protected]
3D-LLaVA 43.3 42.7 92.6 54.5 / 56.6 78.8
NDTokenizer3D 未报告 46.0 98.6 54.4 / 57.1 79.0
SceneScaffold 47.0 47.9 95.8 55.5 / 58.3 79.1

相对 3D-LLaVA,两个定位指标提高 3.7 / 5.2 个点;ScanQA CIDEr 提高 3.2,但 BLEU-4 从 17.1 降到 16.8。SceneScaffold 也并非压过 NDTokenizer3D 的全部问答指标:后者 ScanQA CIDEr 为 98.6,本文为 95.8。Scan2Cap 的 CIDEr 增益仅 0.3,不能与定位的大幅改善同等描述。

消融实验

表中状态消融保持最终 100 token 不变,去掉的 8 个角色槽回填为细节 token;去掉摘要则仅回填 1 个。因此它们测量的是表示组织的贡献,不是增加输入长度的贡献。

配置 ScanRefer mIoU Multi3DRefer mIoU ScanQA C SQA3D EM Scan2Cap [email protected]
完整模型 47.0 47.9 95.8 55.5 79.1
去实体状态 45.0 46.2 91.1 52.7 77.5
去框架状态 45.9 46.2 95.3 55.3 77.9
去关系状态 45.1 46.4 92.6 56.4 75.5
去全局摘要 45.8 46.3 93.0 54.8 76.1

去实体状态使 ScanQA CIDEr 下降 4.7;去关系状态使 Scan2Cap CIDEr 下降 3.6。不过去关系状态的 SQA3D EM 为 56.4,高于完整模型的 55.5,EM-R 则从 58.3 降至 57.8。必须保留这一混合结果,不能把“完整模型更均衡”改写为“每个组件在所有指标上都有正贡献”。

同预算构造控制也支持证据来源的重要性:同质查询状态的两个定位指标为 45.7 / 46.5,共享证据的角色状态为 45.9 / 46.4,以对象证据代替几何框架为 45.8 / 46.7,直接从原始证据诱导关系为 45.7 / 46.6,均低于完整模型 47.0 / 47.9。仅移除关系几何损失、保留架构时,ScanRefer / Multi3DRefer 为 46.0 / 46.8,说明损失与状态删除是不同干预。

关键发现

Rel.+Amb. 子集由“文本包含明确空间或场景参照词”与“同场景存在多个同类候选”两个条件取交集得到,不是人工标注的纯关系推理测试。下表保留子集规模和同一子集上的对照,不能将这些数值与完整测试集交叉相减。

数据集与指标 子集 / 全量样本数 3D-LLaVA 子集 本文子集 子集增益
ScanRefer mIoU 6329 / 9508 37.6 40.6 3.0
Multi3DRefer mIoU 6235 / 11120 40.7 43.5 2.8
ScanQA C 2272 / 4675 84.9 88.6 3.7
Scan2Cap [email protected] 1631 / 2007 76.0 77.9 1.9
  • 子集均有增益,但定位的 3.0 / 2.8 小于全量的 3.7 / 5.2;论文结论概括“困难子集增益更大”,不能无条件推广到每项任务。
  • 在已训练完整模型上,把框架状态替换为其他场景的对应状态,子集定位从 40.6 / 43.5 降至 38.4 / 41.3。这证明模型会使用场景相关状态,但作者也明确不把它当作 LLM 内部推理的严格因果解释。
  • 全部状态跨场景替换后,四项子集指标为 37.8 / 40.8 / 85.0 / 76.0;残余细节仍保留。与重训练删除组件相比,这更直接检验完整模型是否依赖这些状态。

亮点与洞察

  • 预算约束从“留下哪些 token”转向“为哪类证据预留位置”。对边界和区域设独立入口,可以减少语义显著性选择对空间参照的挤占。
  • 角色由证据来源、读取顺序和监督共同确定,而不只是给同质 token 加标签。附录的共享证据与通用查询控制实验使这一点比单纯模块删除更有说服力。
  • 残余细节不是需要消灭的旧接口,而是结构状态的补充。把高频局部辨别和低频布局参照分开保存,适合在其他受限视觉接口中作为待验证的设计思路。

局限与展望

  • 作者承认实验主要限于静态、室内、ScanNet 风格环境;没有验证室外、动态场景、长期交互或噪声实时感知,不能据 active 一词推断具备这些能力。
  • 水平边界带与 3×3 网格只是粗空间脚手架;单个实体加权中心也可能混合多个物体。可研究逐实体几何监督与垂直参照,但本文未实验证明其收益。
  • 未报告多随机种子、误差条或置信区间,小幅描述指标增益的稳定性仍待核验。固定预算也不等于同计算量,本文未给出足以比较新增读取器开销的时延数据。
  • 源文代码状态有冲突:摘要称 GitHub 可用,实验设置称随补充材料提供、发表后公开;给定全文没有可核实仓库 URL,本笔记不填猜测链接。

相关工作与启发

  • vs 3D-LLaVA:保留其超点、指令微调及掩码解码基础,将同长度视觉接口重新组织为角色状态。定位增益突出,但不能把问答与描述所有指标都称为改善。
  • vs Scenes as Tokens / NDTokenizer3D:后者使用多尺度 NDT tokenizer 构造整体场景 token;本文强调异质证据的角色分工与实体—框架诱导路径。前者在 ScanQA CIDEr 上仍领先。
  • vs LSceneLLM:任务相关区域选择强调适应当前需求;本文实体评分不以语言为条件,目标是给多个任务提供共享场景基础,而非逐问题重选全部角色证据。
  • vs 3DVG-Transformer 等任务专用关系模型:本文把轻量关系信息嵌入共享 LLM 接口,而非只服务某个定位头;代价是关系监督更粗,不等同于显式完整场景图。

评分

  • 新颖性: 4/5 — 固定预算内用证据路径和角色监督共同约束场景接口,概念与实现对应清晰。
  • 实验充分度: 4/5 — 五个基准、构造控制、状态干预与损失消融较完整,但缺少统计显著性与跨环境验证。
  • 写作质量: 3/5 — 主方法和附录可对照实现,代码发布口径与部分总体增益表述需要更严谨。
  • 价值: 4/5 — 为统一 3D 模型提供可复用的表示组织思路,价值主要由定位及空间歧义实验支撑。