VGG-T³:可扩展的离线前馈式大规模三维重建 VGG-T^3: Offline Feed-Forward 3D Reconstruction at Scale
通过测试时训练将二次方复杂度的全局注意力压缩为线性MLP,实现千张图像秒级重建
前置知识
多视图前馈式3D重建
这是一种从多张未标定图像直接预测场景三维几何的深度学习方法。与传统SfM(Structure-from-Motion)的多阶段流水线不同,前馈式方法使用端到端的神经网络,将图像token化后通过注意力机制聚合跨视图信息,直接输出每张图像的深度图、相机位姿和内参。代表性工作如VGGT使用全局softmax注意力层来融合所有视图的特征,从而实现精确的三维重建。
本文的核心贡献就是对这种前馈式架构进行线性化改造,理解原始架构的工作原理是理解本文创新的前提。
Key-Value (KV) 空间表示
在Transformer的注意力机制中,每个输入token会被投影为Query、Key和Value三个向量。在VGGT这类多视图重建模型中,所有图像的token被投影到KV空间后,这个KV空间就充当了整个场景的隐式表示。全局注意力层通过Query与所有Key计算相似度,从Value中检索对应的场景信息来解码三维属性。这种变长的KV表示是导致二次方计算复杂度的根源。
本文的核心洞察就是这个变长KV空间可以被压缩到固定大小的MLP中,理解KV空间的作用才能理解压缩的意义。
测试时训练 (Test-Time Training, TTT)
TTT是一种在推理阶段对模型进行自监督优化的技术。具体来说,给定一组键值对 (K, V),TTT通过优化一个小型神经网络的参数θ来学习从K到V的映射,即求解 argmin_θ Σ_i L(T_θ(k_i), v_i)。优化完成后,对新查询q的输出就是 o_i = T_θ(q_i)。这个过程类似于将注意力操作中的相似度检索转化为函数拟合,从而使复杂度从O(n²)降为O(n)。
TTT是本文方法的技术基石,它使得将变长KV空间压缩到固定大小MLP成为可能。
线性注意力与Softmax注意力的权衡
Softmax注意力是标准Transformer的核心,通过 softmax(QK^T/√d)V 计算输出,能捕获任意token间的依赖关系,但计算复杂度为O(n²)。线性注意力通过用线性特征映射替代softmax核函数,将复杂度降为O(n),但通常会损失精度。近年来的研究(如SSM、Mamba、门控线性注意力等)试图在保持线性复杂度的同时提升表达能力。
本文面临的核心挑战就是在保持线性复杂度的同时,尽可能逼近softmax注意力的重建精度。
研究动机
当前最先进的前馈式多视图3D重建模型(如VGGT、Fast3R、π3)采用全局softmax注意力机制来聚合所有输入图像的特征。这种机制将每张图像的token投影到一个变长的Key-Value空间中,然后通过二次方复杂度的softmax注意力操作来查询场景信息。具体来说,对于n张输入图像,全局注意力层的计算和内存需求随n²增长。这意味着处理100张图像可能需要几秒钟,但处理1000张图像就需要几分钟甚至更长时间,处理2000张图像时甚至会出现显存溢出(OOM)错误。现有的加速方法如FastVGGT(token合并)和SparseVGGT(块稀疏注意力)虽然降低了常数因子,但本质上仍是二次方复杂度,无法真正扩展到大规模图像集合。在实际应用中,如从旅游照片重建罗马地标建筑、从自动驾驶数据重建城市街景等场景,往往需要处理成百上千张无序图像,现有方法的计算瓶颈严重制约了其应用范围。
本文的目标是本文的目标是设计一种前馈式3D重建方法,使其计算复杂度与输入图像数量呈线性关系O(n),同时保持与原始二次方方法相当的重建精度。具体量化目标包括:处理1000张图像的时间从11分钟降至1分钟以内;处理2000张图像时实现33倍以上的加速;在标准基准测试(如DTU、ETH3D、NRGBD)上保持与VGGT可比的Chamfer距离和法线一致性指标。此外,作者希望该方法能够支持单GPU推理大规模图像集合、多GPU分布式推理加速,以及用新图像查询已重建场景的视觉定位能力。
与已有工作不同的是,本文的独特视角在于将多视图3D重建中的全局注意力机制重新解释为一种「场景表示压缩」问题。作者注意到,变长的KV空间虽然灵活,但其信息检索依赖于二次方的softmax注意力。相比之下,隐式神经表示(如DeepSDF)使用固定大小的潜码(latent code)来编码实例特定信息,通过测试时优化来适配具体场景。本文抓住了这个被忽视的类比:既然可以用固定大小的潜码表示一个3D形状,为什么不能用固定大小的MLP权重来表示一个3D场景的KV映射?这种视角转换使得作者能够借鉴TTT技术,将预训练模型的全局注意力层「线性化」为基于MLP的线性操作,从而彻底解耦计算复杂度与输入规模。
核心方法
VGG-T³的方法可以用一个图书馆的类比来理解:传统的VGGT就像一个有无限书架的图书馆,每本书(token)都有固定的索引号(Key),你需要遍历所有书架才能找到想要的信息(Value),书越多找得越慢。VGG-T³则像训练一个图书管理员(MLP),让他学会「如果给我这个索引号,我应该去哪里找书」的规律。训练完成后,无论有多少书,管理员都能通过学到的规则快速定位信息,不再需要遍历。技术路线上,本文首先加载预训练的VGGT模型,然后将其中所有全局softmax注意力层替换为基于TTT的线性层。在推理时,输入图像被token化后,通过优化一个SwiGLU MLP来压缩KV空间信息,这个优化过程可以通过minibatch实现,支持CPU卸载和多GPU分布式推理。优化完成后,对任意查询token只需前向传播MLP即可获得输出。
本文最核心的创新在于:将预训练Transformer中的变长KV表示「蒸馏」到固定大小的MLP权重中,并通过测试时训练实现这一压缩。这与已有方法的本质区别在于:FastVGGT和SparseVGGT只是在保留softmax注意力的前提下减少token数量或稀疏化注意力矩阵,本质上仍是二次方复杂度;TTT3R虽然也使用TTT,但它是自回归的在线方法,无法进行全局聚合;而VGG-T³是第一个将TTT应用于离线、双向(bi-directional)Transformer架构的线性化方法。此外,本文发现了两个关键技术细节:一是去除LayerNorm并改用L2归一化可以大幅提升从预训练权重出发的收敛速度;二是在Value空间应用2D卷积(ShortConv2D)可以打破Key和Value之间的线性依赖关系,迫使MLP学习更强大的几何表示。
方法步骤详情
VGG-T³的推理流程包含两个循环执行的阶段:(1)Update阶段:输入图像首先被VGGT的tokenizer转换为token序列 x_i,然后通过投影矩阵得到Query、Key和Value:q_i = L2Norm(W_q x_i),k_i = L2Norm(W_k x_i),v_i = W_v x_i(注意这里用L2归一化替代了原始的LayerNorm)。接着对Value应用3×3 ShortConv2D卷积进行空间混合得到v'_i。然后优化MLP参数θ以最小化TTT目标:L = Σ_i ||T_θ(k_i) - v'_i||²,使用Muon优化器进行2步优化。这个过程将当前层的KV映射压缩到MLP权重中。(2)Apply阶段:用优化好的MLP处理当前层的Query得到输出:o_i = T_θ(q_i)。这两个阶段在每个全局注意力层中交替执行。解码阶段只在最后一层之后进行,输出每张图像的深度图、相机位姿和内参。对于大规模图像集合,Update阶段的梯度可以按minibatch计算,支持CPU卸载和多GPU分布式推理。
技术新颖性
VGG-T³的技术新颖性体现在三个层面:首先,在架构层面,它是首个将TTT线性化应用于离线双向Transformer的工作,不同于TTT3R的自回归设置,这使得模型能够保持全局场景聚合能力。其次,在训练策略上,本文发现从预训练的softmax注意力模型出发进行线性化(而非从头训练)是关键,且去除LayerNorm改用L2归一化能显著加速收敛——这是因为LayerNorm的可学习参数会扭曲MLP需要学习的输入空间。第三,在表示学习上,ShortConv2D的设计打破了Key和Value之间的线性依赖(V = W_v W_k^{-1} K),通过在Value空间引入2D空间混合,迫使TTT目标学习从「局部」Key到「上下文感知」Value的映射,从而增强MLP的表达能力。这种设计还引入了隐式的测试时缩放效应:对于超出训练分布的大规模图像集合,增加优化步数可以维持重建质量。
实验结果
VGG-T³在多个标准基准测试上展示了优异的性能。在点图(pointmap)估计任务上,与同样是O(n)复杂度的TTT3R相比,VGG-T³在DTU数据集上将Chamfer距离从5.708降至1.654(降低71%),在ETH3D上从0.885降至0.480(降低46%),在NRGBD-D上从0.071降至0.029(降低59%)。与O(n²)的VGGT相比,VGG-T³在DTU上接近其性能(1.654 vs 1.537),甚至在NRGBD-S上略优(0.056 vs 0.055)。在视频深度估计任务上,VGG-T³在KITTI数据集上与VGGT表现相当(Abs Rel 0.076 vs 0.071),在Sintel上明显优于TTT3R(0.345 vs 0.469)。在相机位姿估计上,VGG-T³支持有序和无序输入,而TTT3R在无序输入时性能严重退化(ATE从0.063升至0.094)。大规模重建实验显示,VGG-T³处理1000张图像仅需58秒,比VGGT快11.6倍,比FastVGGT快4.3倍;处理2000张图像时,单GPU耗时230.7秒,4 GPU分布式推理降至48.5秒,而VGGT在2 GPU上仍需2827秒。视觉定位实验中,VGG-T³在Wayspots数据集上将旋转误差从74.45°降至32.04°,定位精度从0.69%提升至13.41%。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 点图估计 (DTU) | Chamfer Distance ↓ | 1.654 | VGGT: 1.537, TTT3R: 5.708 | 比TTT3R降低71% |
| 点图估计 (ETH3D) | Chamfer Distance ↓ | 0.480 | VGGT: 0.279, TTT3R: 0.885 | 比TTT3R降低46% |
| 点图估计 (NRGBD-D) | Chamfer Distance ↓ | 0.029 | VGGT: 0.014, TTT3R: 0.071 | 比TTT3R降低59% |
| 视频深度 (KITTI) | Abs Rel ↓ | 0.076 | VGGT: 0.071, TTT3R: 0.151 | 比TTT3R降低50% |
| 视觉定位 (Wayspots) | 旋转误差(°) ↓ | 32.04 | TTT3R: 74.45 | 降低57% |
| 大规模重建 (1k图像) | 推理时间(秒) ↓ | 58 | VGGT: 678, FastVGGT: 250 | 比VGGT快11.6倍 |
局限与改进
尽管VGG-T³取得了显著进展,但仍存在几个明显的局限性。首先,在相机位姿估计任务上,VGG-T³的表现不如预期,作者推测这与VGGT中相机token的特殊处理方式有关——相机token在注意力层前被附加到图像token上,形成了一种异构的输入「模态」,这种结构对MLP来说难以有效记忆。其次,与原始VGGT相比仍存在一定精度差距,特别是在宽基线(wide-baseline)场景下,这表明固定大小的MLP表示能力仍有上限。第三,模型的序列长度泛化能力有限:从训练时的最多24张图像扩展到1000张时,重建误差会增加约5倍,需要通过增加优化步数来补偿。第四,对于空间范围较大的场景(如Waymo自动驾驶数据),重建质量会明显下降,说明线性注意力机制在复杂场景布局下的表达能力仍不足。最后,测试时训练需要额外的计算开销,虽然整体加速显著,但对于小规模图像集合(如100张以内),这个开销可能不划算。
独立分析的弱点
从独立分析的角度看,VGG-T³存在以下几个值得关注的弱点:第一,MLP的固定维度限制了其对复杂场景的表达能力。对于包含大量细节的城市场景或具有复杂遮挡关系的室内场景,固定维度的MLP可能无法充分编码所有几何信息。改进方向可以探索自适应维度的MLP结构,或根据场景复杂度动态调整MLP容量。第二,当前的优化步数(2步)是基于经验选择的,缺乏理论指导。对于不同规模和复杂度的图像集合,最优的优化步数可能不同。可以设计一个轻量级的「场景复杂度估计器」来预测所需的优化步数。第三,ShortConv2D的空间混合范围仅限于3×3的局部邻域,对于具有长程依赖的场景(如透视关系、重复纹理)可能不够。可以考虑引入多尺度卷积或注意力机制来增强空间混合能力。第四,当前方法在视觉定位时需要保留所有映射图像的相机token,这增加了内存开销,且在大规模场景下可能成为瓶颈。
未来方向
基于VGG-T³的成果,未来研究可以从以下几个方向展开:第一,探索更强大的线性注意力机制来进一步缩小与softmax注意力的精度差距,例如结合门控线性注意力(Gated Linear Attention)或选择性状态空间模型(Selective SSM)的优势。第二,将VGG-T³的压缩思想扩展到其他需要处理长序列的视觉任务,如长视频理解、大规模点云处理等。第三,研究自适应计算策略,根据场景复杂度动态调整优化步数和MLP容量,实现计算资源的智能分配。第四,结合显式空间记忆(如Point3R、Long3R的方法)来增强对大范围场景的建模能力。第五,探索将VGG-T³与经典SfM流水线结合,利用MLP压缩表示进行快速初始化,再用传统优化进行精细化。第六,研究增量式场景更新机制,使得在新图像到达时无需重新优化整个MLP,而是进行局部更新。
复现评估
VGG-T³的复现条件相对友好。代码方面,作者基于公开的VGGT代码库进行修改,主要改动包括:替换全局注意力层为TTT层、实现ShortConv2D、集成Muon优化器。数据方面,训练使用了与VGGT相当的数据集组合,涵盖室内(ScanNet、Replica、Hypersim等)和室外(MegaDepth、MatrixCity、KITTI等)场景。算力需求方面,模型在8块NVIDIA A100-80GB GPU上训练约100k步,训练成本约为从头训练VGGT的12%。推理时,单张A100即可处理1000张图像,4 GPU分布式推理可在1分钟内处理2000张图像。复现难度中等,主要挑战在于:需要理解TTT的实现细节、正确去除LayerNorm并替换为L2归一化、以及调试Muon优化器的超参数。总体而言,对于具备Transformer和3D视觉经验的研究团队,复现应该是可行的。
论文图表
图1(a)展示了用VGG-T³从旅游者拍摄的无序照片中重建罗马地标建筑(斗兽场、圣天使堡、万神殿、特莱维喷泉)的结果。图1(b)是推理时间与输入图像数量的关系曲线,横轴为图像数量(200-1000),纵轴为推理时间(秒)。可以看到VGGT、FastVGGT、SparseVGGT的曲线呈二次方增长,而VGG-T³和TTT3R呈线性增长。
这张图直观展示了本文的核心卖点:线性复杂度带来的可扩展性,以及在真实大规模场景上的应用效果。