Slot3R 的集合关联空间记忆如何改进流式三维重建?

Slot3R 将空间寻址与状态身份分离,把 Point3R 点云误差降低 57.1%–72.0%,并在 800 帧以上避免显存耗尽。

直接答案

Slot3R 保持预训练的 Point3R 主干冻结,只改变其空间记忆的工作方式:三维位置只决定一条观测存放在哪里,而不决定它是否必须与已有状态合并。多个不同状态可以共享同一地址,有界稀疏读取则限制解码器每帧访问的记忆 token 数量。在 300–500 个采样帧上,这使 Point3R 的点云精度误差在 7Scenes 上降低 57.1%–63.1%,在 NeuralRGBD 上降低 64.0%–72.0%;它还能在约 19 FPS 下完成 600–1000 帧的全部设置,而 Point3R 和 InfiniteVGGT 从 800 帧起就显存耗尽。

1篇文献引用

本文由 WisPaper 驱动的搜索和论文分析生成。

Slot3R 针对的是把共位误当同一身份

流式重建逐帧接收图像,必须在场景不断扩张的同时保留每一帧的证据。Point3R 把这段历史组织为空间记忆:每条新观测变成一个锚定在重建三维位置上的指针,模型再用附近已存储的条目吸收已见区域的信息。论文指出,Point3R 用同一套空间邻近性完成两件不同的事——判断新观测属于哪条记忆条目,以及判断两者是否应融合为一个状态。

这两件事并不等价。指针只是对图像块的粗略几何概括,在 Point3R 中由该块内预测三维点的平均值得到。因此,不同表面、视角或可见性条件的观测可能落在几乎相同的三维位置,却携带不同且互补的证据。仅凭邻近性取平均,会在后续帧有机会区分它们之前就提前且不可逆地抹掉这些证据。Slot3R 的原则是:位置应决定地址,而不应决定观测是否必须合并。

集合关联记忆让多个状态共享一个地址

Slot3R 是一种免训练改造:已发布的 Point3R 权重保持冻结,改动发生在记忆组织层面。球面哈希把每个候选指针映射到一个桶,采用方位角–仰角–对数半径网格,在 [0.05, 50] 的半径范围内划分为 (16, 8, 32) 个分箱。每个桶最多容纳 K = 8 个槽位,因此一个地址可以存放多个状态,而不是一条取平均后的条目。

准入环节由内容而非位置决定身份。置信度低于逐帧分位数(q = 0.25)的候选会被丢弃。对已存在的桶,方法找出与候选最相似的槽位和置信度最低的槽位。相似候选(余弦相似度达到或超过合并阈值 τ_merge = 0.90)只有在置信度不低于所匹配槽位时才被接纳;不相似候选只有在置信度不低于该桶最弱槽位时才被接纳。匹配的候选按置信度加权平均融合,未匹配的候选则作为独立状态存入空槽位。论文报告,在稀疏 512 读取设置下把球面哈希换成体素式笛卡尔量化,七个诊断序列上的 Acc 从 0.0491 升至 0.1409,NC 从 0.7451 降至 0.6076,因此保留了这种寻址几何。

有界读取把存储与逐帧解码分开

持久记忆与逐帧计算分开处理。解码器不读取全部记忆,而是接收固定预算的 K_read = 640 个记忆 token,其中最多 128 个为均匀采样的全局锚点,去重后最多再加 512 个局部 token,局部读取半径 d = 1。深度估计上的预算扫描显示,该区间内权衡较为平缓:预算从 128 到 1024 个 token 时,Acc 保持在 0.038 至 0.043 之间,NC 在 0.653 至 0.681 之间,FPS 约在 18.9 至 20.3 之间。

运行时比较对所有 Point3R 系列变体都使用融合 RoPE3D 内核,因此 FPS 差异反映的是记忆组织与读取方式,而非 PyTorch 回退实现。论文报告,仅启用融合内核就把 Point3R 吞吐量从 4.547 FPS 提升到 14.750 FPS,重建指标和内存基本不变;在同样的融合实现下,640 token 稀疏读取相对全记忆读取把吞吐量从 16.658 FPS 提升到 18.269 FPS,同时 NC 保持 0.753。所有运行时和显存耗尽比较都在单块 24 GB 的 NVIDIA RTX 4090 上进行,FPS 不含数据加载和指标计算。

300–500 帧上点云误差下降过半

核心重建结果是在 300–500 个采样帧、k = 2 条件下相对 Point3R 的比较。核心 Slot3R 使 Point3R 的点云精度误差在 7Scenes 上降低 57.1%–63.1%,在 NeuralRGBD 上降低 64.0%–72.0%,并全程提升法向一致性。这一区间背后的绝对值是:7Scenes 上 Acc 从 300 帧和 400 帧的 0.1039 和 0.0891 降到 0.0336 和 0.0351;NeuralRGBD 上从 0.1650 和 0.1885 降到 0.0406 和 0.0505。

比较对象不只是 Point3R。在同一批表格中,Spann3R 更快(23.85 和 23.99 FPS),但精度低得多,7Scenes 上 Acc 约为 0.93–1.03,NeuralRGBD 上约为 0.46–0.66。StreamVGGT 和 RetrieveVGGT 在所有列出的设置中都显存耗尽,InfiniteVGGT 从 800 帧起失败。视角条件变体(Ours-VPC-M 和 Ours-VPC-A)保持相当的点云质量,同时针对相机位姿。

位姿普遍改善而深度只是相当

论文自身的讨论区分了三种不应混为一谈的指标。点云方面,核心 Slot3R 提升了精度和法向一致性。深度方面,它在三个基准上都改善了逐序列绝对相对误差(AbsRel),整体保持大致相当,但论文指出度量尺度上的结果有好有坏。相机位姿方面的增益来自辅助的视角条件读取,而非核心记忆本身:Ours-VPC-A 在三个位姿基准上把 Point3R 的 Sim(3) 对齐 ATE 降低 29.1%–53.1%,平移 RPE 降低 47.8%–79.7%。

因此,摘要中“Slot3R 在三个位姿基准上都降低 Sim(3) 对齐 ATE”的说法指的是整个变体家族,其中最大的位姿增益来自 VPC 配置。读者比较方法时应保持指标分离:更低的 ATE 不是更低点云误差的证据,深度结果也只是逐序列 AbsRel 的改善,而非在每一项深度指标上的一致胜出。

长序列在基线显存耗尽处仍能完成

扩展性结果关乎能否完成,而不只是速度。Slot3R 在同一协议下以约 19 FPS 完成 600 到 1000 个采样帧的全部评估设置,而 Point3R 和 InfiniteVGGT 从 800 帧起就显存耗尽。在 7Scenes 和 NeuralRGBD 表格中,核心 Slot3R 在 600–1000 帧上给出了 Acc 值——例如 7Scenes 上为 0.0336 至 0.0362,NeuralRGBD 上为 0.0406 至 0.0618——而 Point3R 那一行在 700 帧之后变为 OOM。

这一点重要,因为被避免的失败模式是显存耗尽,而不是缓慢退化。论文把差异归因于有界的逐帧解码器访问与持久存储的结合,并指出持久存储仍随场景覆盖范围增长,且依赖固定的记忆选择。跨主干的、全局预算的自适应记忆留作未来工作,因此 1000 帧的完成应理解为该协议与该硬件上的证据,而不是恒定内存的保证。

优先事项是把地址与身份分开

论文最具决策相关性的主张是一个设计次序:当空间记忆用于长流式重建时,应把观测存放在哪里与它是否被合并解耦。Slot3R 通过冻结 Point3R 主干、只改记忆来检验这一点,因此报告的 57.1%–72.0% 点云误差降低和约 19 FPS 下完成 600–1000 帧,应归因于记忆组织与有界读取,而非重新训练。

实际取舍随指标而定。如果关心的是 300–500 帧的点云精度,核心 Slot3R 是相关配置;如果关心的是相机位姿,VPC 变体承载了报告的 ATE 和 RPE 降低;如果关心的是深度,证据支持逐序列 AbsRel 改善和整体大致相当,而非一致优势。剩下的边界是存储:记忆仍随场景覆盖范围增长,因此地址与身份的分离换来的是精度和逐帧有界性,而不是固定的总内存占用。

本文引用的文献

1

Slot3R: Set-Associative Spatial Memory for Streaming 3D Reconstruction

一种免训练改造,让多个记忆状态共享同一空间地址,在 300–500 帧上把 Point3R 的点云精度误差在 7Scenes 上降低 57.1%–63.1%、在 NeuralRGBD 上降低 64.0%–72.0%,并在约 19 FPS 下完成 600–1000 帧设置,而 Point3R 和 InfiniteVGGT 从 800 帧起显存耗尽。