InfiniteVGGT:用于无尽流的视觉几何基础Transformer InfiniteVGGT: Visual Geometry Grounded Transformer for Endless Streams
提出滚动内存机制实现无限长度在线3D几何重建
前置知识
KV Cache
在Transformer的因果注意力机制中,Key-Value Cache是用于存储历史帧计算得到的键值对的缓存机制。在流式处理场景下,每个新帧需要与之前所有帧进行交互,KV Cache避免了重复计算,将历史帧的K和V缓存起来,只需计算当前帧的Q即可。然而,随着序列长度增加,KV Cache大小会线性增长O(t),导致内存和计算开销急剧增加。InfiniteVGGT的核心问题就是如何在保证性能的前提下,将这个线性增长的内存开销限制在固定范围内。
本文的滚动内存机制直接操作KV Cache,理解其工作原理和增长模式是读懂本文方法的前提。
FlashAttention
FlashAttention是一种硬件优化的注意力计算内核,通过避免显式计算完整的注意力矩阵O(N²)来显著提升计算效率和减少内存带宽瓶颈。它通过分块计算和内存高效的算子融合,在保持精度的同时大幅降低GPU内存占用。然而,这种优化也带来了限制:它不提供注意力权重的显式访问,这意味着传统的基于注意力分数的token剪枝策略无法与FlashAttention兼容。
本文的关键约束是必须与FlashAttention兼容,这迫使作者放弃注意力权重作为token重要性度量,转而使用注意力无关的余弦相似性指标。
结构从运动(SfM)
Structure-from-Motion是一种传统的3D重建方法,通过从2D图像序列中同时估计相机位姿和3D点云来重建场景。经典流程如COLMAP包含特征提取、特征匹配、增量重建、Bundle Adjustment全局优化等多个阶段。SfM能获得高精度的全局一致重建,但计算代价高,且需要批处理所有图像,不适合在线流式场景。
本文将InfiniteVGGT与SfM、VGGT等离线方法对比,理解SfM的批处理特性有助于理解为什么现有离线方法无法应用于流式场景。
Chamfer Distance
Chamfer Distance是衡量两个点云之间相似度的常用指标,计算预测点云到真实点云的单向距离之和的期望。具体定义为CD = mean(\min_{y∈GT} ||x-y||²) + mean(\min_{x∈Pred} ||y-x||²),其中x和y分别是预测和真实点云中的点。CD越小表示重建质量越好。本文还进一步将CD分解为Accuracy(精度)和Completeness(完整性)两个指标,分别衡量预测点云到真值和真值到预测点云的距离。
本文的主要实验使用CD、Accuracy、Completeness和Normal Consistency(NC)作为3D重建质量的评估指标,理解这些指标的含义有助于解读实验结果。
因果注意力
因果注意力是一种自注意力机制的变体,确保每个位置只能关注自己和之前的位置,而不能看到未来的信息。在时间序列处理中,这意味着当前帧只能与历史帧交互,这与VGGT原本的全局双向注意力不同。因果注意力通过在注意力矩阵中屏蔽未来位置来实现,是流式处理场景的必要设计。
InfiniteVGGT基于StreamVGGT的因果注意力架构,理解因果注意力的机制有助于理解本文如何从离线VGGT扩展到在线流式处理。
研究动机
现有的3D几何理解方法面临着可扩展性与长期稳定性之间的根本矛盾。离线批处理方法如VGGT虽然在几何能力上表现出色,但其批量处理本质使其无法应用于实时系统,因为需要在处理前预捕获所有数据且GPU内存占用极高。例如,在NVIDIA A100 GPU上,处理300帧时VGGT和StreamVGGT就已经出现OOM(内存溢出)错误。流式架构虽然理论上适合在线场景,但现有方法存在严重缺陷:显式历史累积框架如StreamVGGT会无限增长KV存储,导致内存和计算开销不可持续;隐式状态压缩机制如CUT3R和TTT3R将历史压缩到简单的RNN隐藏状态中,虽保证了有界资源但丢弃了关键信息,导致长期漂移问题加剧。实验数据显示,在长序列输入时,TTT3R在NRGBD数据集上的重建质量明显下降,这表明现有方法在真正无限水平的应用中存在根本性局限。
本文的目标是本文的目标是设计一个能够处理真正无限长度输入的在线3D几何理解系统,同时保持有界的GPU内存占用和计算开销。具体而言,作者希望实现三个目标:第一,开发一个能够在不牺牲几何精度的情况下支持无限水平流的架构;第二,引入一个训练自由的内存剪枝策略,能够智能地识别并丢弃冗余信息,同时保留关键的历史上下文;第三,解决长序列处理中的灾难性漂移问题,确保系统在数千甚至上万帧的连续输入下仍能保持稳定的重建质量。为此,作者提出了滚动内存的概念,通过动态、自适应的KV cache管理来实现这些目标。
与已有工作不同的是,本文的独特切入角度在于重新思考流式3D重建中的内存管理范式。与现有方法要么累积所有历史信息(如StreamVGGT)、要么压缩到固定状态(如CUT3R/TTT3R)不同,作者观察到在连续相机轨迹中,最小视角变化会在KV cache内产生巨大的token级冗余。这个观察引导作者提出一个关键问题:是否可以选择性保留关键历史信息以确保时间一致性,同时仍在真正在线系统所需的有界资源内操作?更深入的分析揭示了一个根本悖论:FlashAttention等硬件优化内核通过避免显式计算O(N²)注意力矩阵来提升速度,但传统剪枝方法依赖于访问这些权重来衡量token重要性。为了解决这个困境,作者提出使用key余弦相似性作为高效的注意力无关的token重要性代理,这允许在昂贵的注意力计算之前识别并丢弃冗余token,既保留了优化内核的效率,又能够智能地缩小缓存。
核心方法
InfiniteVGGT的核心思路是引入一个层次化、动态的滚动内存机制,通过智能的KV cache剪枝来实现无限长度的3D几何重建。直观上,该方法就像一个智能的记忆过滤器,随着新帧的到来,它不是简单地丢弃旧帧或压缩所有信息,而是细粒度地分析每个token的独特性,只保留那些承载了关键几何信息的token,从而在固定内存预算内维持长期依赖关系。技术路线上,该方法首先将KV cache分为不可变的锚点集合(来自第一帧)和可变的候选集合(后续帧),然后针对每个层的每个头独立计算key的多样性分数,基于负余弦相似性度量token与平均key的差异程度,最后通过层级自适应的预算分配机制,为不同层分配不同的token保留数量,通过TopK选择保留最多样化的token。整个过程训练自由,无需额外训练即可应用于StreamVGGT架构,并且完全兼容FlashAttention,确保了在线推理的效率。
InfiniteVGGT的核心创新在于提出了多样性感知的滚动内存机制,这与现有方法有本质区别。StreamVGGT等显式内存方法会无限累积KV存储,导致内存线性增长;CUT3R和TTT3R等隐式状态方法将历史压缩到固定大小的RNN状态,虽然保证有界内存但丢弃了大量信息。InfiniteVGGT通过观察连续相机轨迹中KV cache存在巨大token级冗余的特点,提出基于key余弦相似性的注意力无关剪枝策略。具体创新点包括:将第一帧KV cache设为不可变锚点,确保所有后续3D预测严格对齐到第一帧的坐标系,保证几何一致性;使用负余弦相似性定义多样性分数,衡量每个key与平均key的差异,越差异的key越重要;引入层级自适应预算分配,根据每层的信息多样性动态分配不同的token预算,浅层因强调空间细微差异获得更多预算;整个过程完全避免计算注意力权重,与FlashAttention完全兼容,在单帧推理时间0.168秒下将峰值内存从17.30GB降低到14.49GB。这种设计使得InfiniteVGGT能够在固定GPU内存预算内处理真正无限长度的流式输入,同时保持最先进的重建精度。
方法步骤详情
InfiniteVGGT的方法分为四个主要步骤。第一步是建立不可变锚点token,将来自第一帧I₁的完整KV cache定义为锚点集合C^(l,h)_anc,其中l表示层,h表示头。这个设计基于VGGT架构将所有后续3D预测严格对齐到第一帧坐标系的特点,确保几何一致性,因此第一帧token在任何压缩操作中都被完整保留。总cache C^(l,h)_t被划分为锚点集合和候选集合C^(l,h)_t,cand,后者包含从t=2开始的所有token。第二步是计算多样性分数,首先对每个头h的候选key进行L2归一化得到\hat{k}_i = k_i/||k_i||,然后计算该头所有候选key的均值μ^(l,h) = E_{\hat{k}∈\hat{K}^(l,h)_t,cand}[\hat{k}],最后对每个key定义多样性分数s^(l,h)_div(\hat{k}_i) = -CosSim(μ^(l,h), \hat{k}_i)。这个负余弦相似性度量了key与平均key的差异,分数越高表示该key越独特,应该被保留。第三步是层级自适应预算分配,首先计算每层的平均多样性分数s^l_div作为该层所有token多样性的均值,然后通过softmax归一化计算每层的预算比例p^l_bud = exp(s^l_div/τ) / Σ^L_{j=1} exp(s^j_div/τ),其中τ是温度超参数。每层l的总预算为B^l = p^l_bud · B_total,其中B_total是全局token预算。第四步是TopK选择,对每个层和头独立执行,保留多样性分数最高的B^(l,h)个token,最终压缩后的cache\tilde{C}_t是所有保留的候选token\tilde{C}^(l,h)_t,cand和不可变锚点集合C_anc的并集。整个过程训练自由,在每个新帧到来时自动执行,实现真正的无限长度流式处理。
技术新颖性
InfiniteVGGT的技术新颖性体现在多个方面。首先,该方法提出了第一个真正支持无限长度输入的在线3D几何重建架构,通过滚动内存机制将KV cache大小从线性增长O(t)限制到固定常数O(1),这是对现有StreamVGGT等显式内存方法的根本性突破。其次,作者提出的基于key余弦相似性的注意力无关剪枝策略解决了一个重要技术悖论:如何在需要访问注意力权重的传统剪枝和不能提供注意力权重的FlashAttention优化之间找到平衡。通过使用key空间几何特性作为token重要性代理,该方法在保持FlashAttention兼容性的同时实现了智能cache压缩。第三,层级自适应预算分配机制是首创性的,它认识到不同层的token冗余程度不同,通过动态预算分配优化了整体重建质量。实验显示,相比均匀分配,层级自适应机制在500帧输入上将Chamfer Distance从0.093降低到0.072。第四,作者引入的Long3D基准填补了该领域的重要空白,提供了第一个用于评估连续3D几何估计长期性能的数据集,包含5个序列,每个序列约2000到10000帧,这为未来研究提供了关键评估平台。最后,整个方法完全训练自由,可以直接应用于预训练的StreamVGGT模型,无需额外的微调或重新训练,这大大降低了实际应用的门槛。
实验结果
InfiniteVGGT在多个基准测试上展示了最先进的性能,特别是在长序列处理方面表现出色。在7-Scenes和NRGBD数据集的3D重建任务中,InfiniteVGGT在300帧输入时达到CD=0.032、NC=0.570,显著优于CUT3R(CD=0.135、NC=0.543)和TTT3R(CD=0.041、NC=0.565)。更重要的是,当序列长度增加到500帧时,CUT3R和TTT3R的性能明显下降,而InfiniteVGGT保持了稳定的重建质量(CD=0.033、NC=0.562),这证明了滚动内存机制在长期场景中的有效性。视频深度估计实验在Bonn数据集上验证了方法的泛化能力,200帧输入时InfiniteVGGT的Abs Rel=0.063、δ<1.25=0.964,优于CUT3R(0.072、0.947)和TTT3R(0.068、0.953)。最令人印象深刻的是在Long3D基准上的表现,在2128帧的Classroom场景上,InfiniteVGGT达到CD=0.357、NC=0.576,显著优于CUT3R(0.496、0.520)和TTT3R(0.396、0.530);在9545帧的Academic Building场景上,InfiniteVGGT的CD=5.733,远低于CUT3R的8.062和TTT3R的7.710。这些结果证明,InfiniteVGGT不仅解决了长序列处理的内存溢出问题,还在重建质量上超越了现有方法。消融实验进一步验证了设计选择的必要性:余弦相似性策略相比注意力权重方法将CD从0.036降低到0.032,推理时间从0.288秒减少到0.168秒;锚点帧机制将CD从0.047降低到0.040;层级自适应分配相比均匀分配将CD从0.093降低到0.072。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 3D Scene Reconstruction | Chamfer Distance (CD) | 0.032 (7-Scenes, 300 frames) | CUT3R: 0.135 | 76.3% reduction |
| 3D Scene Reconstruction | Normal Consistency (NC) | 0.570 (7-Scenes, 300 frames) | CUT3R: 0.543 | 5.0% improvement |
| 3D Scene Reconstruction | Chamfer Distance (CD) | 0.357 (Long3D Classroom, 2128 frames) | CUT3R: 0.496 | 28.0% reduction |
| 3D Scene Reconstruction | Chamfer Distance (CD) | 5.733 (Long3D Academic Building, 9545 frames) | TTT3R: 7.710 | 25.6% reduction |
| Video Depth Estimation | Abs Relative Error | 0.063 (Bonn, 200 frames) | CUT3R: 0.072 | 12.5% reduction |
| Video Depth Estimation | δ < 1.25 Accuracy | 0.964 (Bonn, 200 frames) | CUT3R: 0.947 | 1.8% improvement |
局限与改进
作者在论文中坦诚地承认了一个主要局限性:InfiniteVGGT在Long3D基准的Completeness指标上表现不如基线方法。具体来说,在Dormitory场景(4208帧)上,InfiniteVGGT的Completeness均值为0.575,高于CUT3R的0.404和TTT3R的0.329,这意味着我们的方法在重建场景的完整性方面有所牺牲。作者将此识别为未来优化的关键方向。此外,从技术角度观察,该方法仍有几个潜在局限:首先,key余弦相似性作为token重要性代理虽然高效,但可能无法完全捕捉语义重要性,某些视觉上不明显但对几何一致性关键的token可能被错误丢弃;其次,虽然层级自适应预算分配考虑了不同层的多样性差异,但当前实现使用softmax归一化,可能对温度参数τ较为敏感,需要针对不同场景进行调优;第三,锚点帧机制虽然保证了几何一致性,但如果第一帧质量较差(如运动模糊、遮挡),可能会影响整个序列的重建质量;第四,Long3D基准虽然提供了长达10000帧的连续序列,但仅包含5个场景,且主要使用手持扫描设备采集,在动态场景、极端相机运动或室外大尺度场景中的泛化能力尚未得到验证;最后,虽然方法训练自由,但当前实现仅基于StreamVGGT,是否能够泛化到其他在线3D重建架构(如SLAM系统、神经辐射场等)仍需进一步研究。
独立分析的弱点
InfiniteVGGT存在几个可以改进的弱点。第一,key余弦相似性仅从特征空间的几何角度评估token重要性,忽略了语义信息和任务相关性的考虑。改进方向是引入多维度重要性度量,结合余弦相似性、注意力权重估计(通过轻量级代理模型)、位置信息和语义类别,设计更全面的token保留策略。第二,锚点帧机制虽然保证了几何一致性,但对第一帧质量高度依赖,在第一帧存在运动模糊或严重遮挡时可能导致整个序列性能下降。改进方向是引入多锚点机制,选择多个高质量的关键帧作为锚点,或者设计自适应锚点更新策略,在检测到当前锚点质量下降时动态替换。第三,层级自适应预算分配使用固定的全局预算B_total,在不同场景复杂度下可能不是最优。改进方向是设计场景感知的动态预算分配,根据实时计算的重建质量反馈(如当前帧的深度一致性、特征匹配质量)动态调整总预算。第四,Long3D基准虽然填补了长期性能评估的空白,但场景数量有限且缺乏动态物体。改进方向是扩展基准,包含更多样化的场景(动态场景、极端天气、夜间场景等),并引入动态物体跟踪和语义分割评估指标。第五,当前实现假设连续相机轨迹的最小视角变化,但在实际应用中可能遇到突然的场景切换或剧烈相机运动。改进方向是引入场景变化检测机制,在检测到显著场景变化时重置或扩展内存策略。
未来方向
基于本文成果,有多个值得探索的未来研究方向。作者提出的最直接方向是优化Completeness指标,通过改进token保留策略来平衡准确性和完整性。这可以通过引入细粒度的token重要性权重、增加对边界和细节区域的特殊处理,或者设计多阶段的重建策略来实现。另一个重要方向是将滚动内存机制扩展到其他在线3D重建架构,如神经辐射场(NeRF)、3D Gaussian Splatting或传统SLAM系统,验证该范式的泛化能力。在算法层面,可以探索更智能的预算分配策略,例如基于强化学习的自适应预算调整,或者结合任务感知的重要性度量。在应用层面,可以将InfiniteVGGT与增强现实(AR)、机器人导航和自动驾驶等下游任务结合,研究长期几何一致性对任务性能的影响。数据集方面,扩展Long3D基准是一个重要方向,包括增加场景数量、引入动态物体、多传感器数据(IMU、LiDAR)融合,以及设计更全面的评估指标(如语义一致性、时间平滑度)。此外,研究滚动内存机制在极端长序列(百万帧级别)下的性能,以及是否需要引入周期性的全局重对齐或回环检测机制,也是值得探索的方向。最后,探索该方法在4D动态场景重建中的应用,结合时序建模技术处理动态物体,将是一个前沿研究方向。
复现评估
InfiniteVGGT的复现性评估总体良好。作者承诺代码将在GitHub上开源(https://github.com/AutoLab-SAI-SJTU/InfiniteVGGT),这将有助于社区验证和扩展研究成果。该方法训练自由,可以直接应用于预训练的StreamVGGT模型,避免了大规模重新训练的成本和复杂性。实验环境使用单张NVIDIA A100 GPU,这是一个相对容易获得的硬件资源。论文提供了详细的超参数设置,包括初始预算B^(l,h)(实验中测试了10000、25000、50000)、温度参数τ(通过softmax归一化)、以及不同数据集的采样策略(stride=2)。消融实验全面,验证了每个设计选择的必要性,包括注意力权重vs余弦相似性、不同初始预算、层级自适应分配机制、锚点帧机制等。然而,仍有几个方面可能影响复现性:首先,Long3D基准是一个新提出的数据集,虽然作者描述了采集设备(手持3D空间扫描仪、IMU、3D LiDAR、RGB相机),但数据的获取途径和许可证尚未明确说明;其次,不同数据集的评估实现细节(如ICP对齐参数、Chamfer Distance计算方法)可能存在差异,需要仔细对照原始论文的代码实现;第三,该方法依赖于StreamVGGT的预训练权重,这些权重的可用性和兼容性需要确认。总体而言,随着代码开源,InfiniteVGGT应该具有较好的可复现性,但完全复现可能需要一定的技术背景和计算资源。
论文图表
图1展示了四种不同3D几何理解范式的对比:(a) 离线总帧处理(如VGGT)使用全局注意力,能够利用所有帧的信息但无法处理无限长度输入;(b) 在线隐式内存(如CUT3R、TTT3R)使用RNN隐藏状态压缩历史,保证有界内存但会导致信息丢失和漂移;(c) 在线无界内存(如StreamVGGT)显式累积KV cache,能够保持长期依赖但内存无限增长;(d) 本文提出的在线滚动内存(InfiniteVGGT)通过动态KV cache剪枝实现有界内存和长期依赖的平衡。图示清晰地展示了这四种方法在内存增长模式、时间依赖保持能力和计算效率方面的根本差异。
这张图对理解论文至关重要,它直观地展示了InfiniteVGGT与现有方法的本质区别,特别是解决了离线方法无法流式处理、显式内存方法内存爆炸、隐式内存方法信息丢失的三重困境,为后续方法介绍奠定了清晰的动机基础。
表4展示了注意力权重方法和余弦相似性方法的消融实验对比。评估指标包括Chamfer Distance(CD)↓、Normal Consistency(NC)↑、推理时间Time(s)↓和峰值内存Peak Memory(GB)↓。结果显示,余弦相似性方法相比注意力权重方法在多个方面都表现更好:CD从0.036降低到0.032(11.1%改进),NC从0.567提升到0.570,推理时间从0.288秒减少到0.168秒(41.7%加速),峰值内存从17.30GB降低到14.49GB(16.2%减少)。这个消融实验清晰地证明了使用key余弦相似性作为注意力无关的token重要性代理的有效性,不仅在重建质量上更好,还在计算效率和内存占用上都有显著改进。
这个表格对理解论文的核心技术选择很重要,它提供了直接的实验证据证明余弦相似性方法相比传统注意力权重方法的优势,验证了作者解决FlashAttention兼容性问题的创新思路。
表5展示了每头初始预算B^(l,h)的消融实验。实验在7-Scenes数据集上进行,使用300和500帧输入,测试了三个不同的预算值:10000、25000和50000。评估指标为Chamfer Distance(CD)↓和Normal Consistency(NC)↑。结果显示,较小的token存储预算B^(l,h)=10000会显著降低重建质量(300帧时CD=0.062、NC=0.565),而随着预算增加到25000和50000,性能提升逐渐趋于稳定(25000时CD=0.032、NC=0.570,50000时CD=0.032、NC=0.562)。这表明存在一个性能饱和点,超过这个点的预算增加带来的边际收益递减。表格为实际应用中的预算选择提供了指导。
这个表格对理解方法的设计权衡很重要,它展示了内存预算与重建质量之间的权衡关系,帮助读者理解如何在实际应用中根据可用GPU内存选择合适的预算参数。
表6展示了层级分配机制的消融实验。实验在7-Scenes数据集上进行,使用500帧输入,初始预算B^(l,h)=10000,对比了两种分配策略:均匀分配(w/o layer-wise allocation)和本文提出的层级自适应分配(w/ layer-wise allocation)。评估指标包括Accuracy(Acc.)↓、Completeness(Comp.)↓和Normal Consistency(NC)↑。结果显示,层级自适应分配相比均匀分配在所有指标上都有改进:Acc从0.098降低到0.072(26.5%改进),Comp从0.057降低到0.056(1.8%改进),NC从0.554提升到0.582(5.1%改进)。这证明了不同层的token冗余程度确实不同,动态分配预算能够更有效地利用有限的内存资源。
这个表格对理解方法的技术创新很重要,它验证了层级自适应预算分配机制的有效性,证明了作者关于不同层具有不同信息多样性的观察是正确的,动态分配策略确实优于简单的均匀分配。
表7展示了锚点帧机制的消融实验。实验在7-Scenes数据集上进行,对比了两种策略:不使用锚点帧(w/o anchor frame)和使用锚点帧(w/ anchor frame)。评估指标包括Accuracy(Acc.)↓、Completeness(Comp.)↓和Normal Consistency(NC)↑。结果显示,使用锚点帧相比不使用锚点帧在所有指标上都有改进:Acc从0.047降低到0.040(14.9%改进),Comp保持不变(0.027 vs 0.025),NC从0.570略微提升到0.607。更重要的是,锚点帧机制防止了误差累积,确保了几何一致性。这验证了将第一帧作为不可变锚点的设计选择的必要性。
这个表格对理解方法的核心设计很重要,它验证了锚点帧机制的必要性和有效性,证明保留第一帧的完整信息对于确保整个序列的几何一致性至关重要。