VGGT:用一个模型替代3D视觉栈
2025年3月,一个单一模型使大多数专业3D重建流程变得不再必要。VGGT(视觉几何基础Transformer)来自牛津大学视觉几何组和Meta AI,可以处理一张到数百张图像,在一次前向传递中预测经典流程过去产生的所有内容:每张图像的相机参数、每张图像的深度图以及场景的密集3D点云。无需事先进行运动恢复结构,无需事后优化。它获得了CVPR 2025最佳论文奖,几个月内就成为了更新重建方法的基础,而非竞争对手。
本文解释了它的工作原理、实际预测内容、数据含义,以及它对前馈式3D重建的意义。这是我对前馈式3D高斯溅射:从概念验证到生产更长概述的配套文章,其中VGGT开启了基础模型阶段的故事。
1、它所替代的流程
在VGGT之前,从一组照片恢复几何结构意味着链接专业组件。经典路线运行运动恢复结构(COLMAP)来估计相机,然后使用多视图立体几何获取密集几何结构——需要几分钟处理时间,且在纹理较少的场景中会失败。2024年的替代方案DUSt3R用一个网络替代了大部分流程,该网络接收两张图像并直接预测两张图像中每个像素的3D点。这种表示本身已经足够:一旦你知道每个像素在3D空间中的位置,深度图就可以立即获得,甚至相机位姿也可以从预测点中恢复。但网络一次只能处理两张图像,因此更大的集合需要通过全局对齐优化将成对预测拼接在一起。无论哪种方式,优化步骤都在流程中的某个位置。
VGGT的主张是这些结构都不必要:一个Transformer,经过足够数据的训练,可以同时预测任意数量输入图像的相机、深度图和3D点云——并且比它所替代的流程做得更好。
2、架构:一个简单的Transformer带有一个技巧
每张输入图像由预训练的DINOv2编码器进行标记化。对于每张图像的标记,VGGT附加一个相机标记和四个寄存器标记——这些额外的可学习标记将承载该图像的相机信息。所有图像的序列一起通过24个Transformer块,总计约12亿参数。
唯一的架构新颖性在于注意力的组织方式。块在逐帧自注意力(每张图像的标记只关注同一图像的标记)和全局自注意力(每个标记关注所有图像中的每个标记)之间交替。逐帧层在每张图像自身上建立连贯的理解;全局层在视点之间交换信息——隐式地完成了极线约束、代价体积和成对匹配在早期系统中所做的工作。网络中没有任何交叉注意力或几何机制:自注意力贯穿始终。
Transformer本身只产生特征;四个小输出头将这些特征转换为预测。相机头读取每张图像的相机标记并预测该图像的相机:其方向(四元数表示)、位置和视场角——总共九个数字,假设主点位于图像中心。深度头预测每个像素的深度值,点头预测每个像素的3D点,两者共同形成场景的密集点云;两者都是标准的密集预测解码器(DPT)。最后,跟踪头基于CoTracker2架构,接受你在一帧中选择的任何像素,并预测该物理点在其他每一帧中的出现位置。
3、坐标系技巧
每个预测都需要一个坐标系来表达,VGGT使用与DUSt3R相同的约定:第一个相机就是坐标系。其位姿不被预测——它被定义为位于原点,其他一切都相对于它表达:其他相机的位姿、深度图、整个点云。因此网络必须知道哪个输入是第一张图像,其机制非常简单:第一张图像获得自己的一组可学习标记,与所有其他图像共享的标记集不同。没有其他区别。一个实际后果:其余图像的顺序无关紧要——打乱它们,预测是相同的,只是重新排序。
4、训练
VGGT在十七个数据集上训练,涵盖室内扫描、户外场景、合成渲染、驾驶镜头和以物体为中心的采集——包括Co3Dv2、ScanNet、MegaDepth、DL3DV、Kubric、Hypersim和Virtual KITTI。损失是四个任务的加权和:相机上的Huber损失;由模型自身预测不确定性加权的深度和点损失;以及跟踪项。训练在64个A100 GPU上进行9天,最大图像维度为518像素。按学术标准算大;按语言模型标准算小——而这种数据规模,而非任何架构洞察,是专业流程无法匹配的。
5、结果,以及两个最重要的结果
VGGT在三个模型共享的每项任务上都击败了DUSt3R和MASt3R,通常差距很大。在相机位姿估计上,它在Co3Dv2上得分为88.2 AUC@30,而MASt3R为81.8,DUSt3R为76.7——它在0.2秒内产生该答案,而另外两个需要在其前向传递之上进行优化阶段。在DTU上的深度估计中,它达到了MASt3R只有在给定真实相机时才能达到的准确性,同时完全没有接收任何相机信息。其点云在ETH3D上是三个模型中最准确的。其特征在插入现有跟踪器时改进了点跟踪。
两个结果值得比通常得到的关注更多。首先,前向传递和优化是互补的。就其本身而言,VGGT已经优于依赖优化阶段的方法——DUSt3R和MASt3R的全局对齐,以及VGGSfM(使用光束法平差的学习运动恢复结构流程)。但你也可以在VGGT之上运行光束法平差,以其预测为起点,它仍然有帮助:Co3Dv2上的相机准确率从88.2提高到91.8。前向传递并没有使优化变得无用;它替代了昂贵的部分——从零开始。
其次,专用点头被证明是多余的。VGGT提供两种方式获取3D点云:直接获取点头的输出,或组合其另外两个输出——使用预测的相机参数将每个像素预测的深度提升到3D。第二种方式比为该任务构建的头更准确(ETH3D上的Chamfer距离为0.677对0.709)。分别预测深度和相机并将它们组合起来,比直接预测它们的组合更好。
速度随视图数量优雅地缩放。在带有FlashAttention的H100上,一帧需要0.04秒和1.9 GB内存;五十帧需要约1秒和11 GB;两百帧需要不到9秒和41 GB。
6、VGGT不做什么
VGGT预测几何结构,而非外观。其输出不包含颜色或高斯,因此没有可以从新视点渲染的场景。论文确实包含一个新视图合成实验,但它走了捷径:网络被给定目标视点并直接生成该图像,逐像素地,而从不构建中间3D场景。它通过这种方式接近专用视图合成模型,同时只使用约五分之一的数据进行训练。渲染一个可以自由移动的场景仍然需要附加一个高斯头,这正是AnySplat在发布十周后所做的——使用VGGT本身作为提供几何监督的教师。
作者明确说明了当前限制:不支持鱼眼或全景图像,在极端相机旋转下结果退化,以及只容忍轻微非刚性运动——具有显著变形的场景会破坏模型。
7、在实践中使用
代码和权重在GitHub上。许可需要一分钟注意:原始VGGT-1B检查点是非商业的,但自2025年7月起代码可商业使用,并且可以请求单独的VGGT-1B-Commercial检查点——其得分略优于原始版本。2026年5月发布的内存优化大致使GPU上可容纳的帧数翻倍,同一团队此后发布了VGGT-Omega,这是一个扩展到动态场景的缩放后继版本。如果你在这一系列工作上构建,跟踪仓库而非论文。
8、为什么这个模型超越其数字很重要
两年来,前馈式3D重建意味着在网络中设计几何结构:pixelSplat中的极线注意力、MVSplat中的代价体积、DUSt3R中的点图回归。VGGT证明了一个足够规模的简单Transformer学习它需要的任何结构——并且因此泛化得更好。之后的方法将重建视为在几何骨干之上的微调问题,而非架构设计问题,2025年前馈式3DGS的最强结果要么直接建立在VGGT上,要么建立在它验证的范式上。这种转变,从设计流程到附加头部,是完整时间线后半部分的主题。
原文链接: One Transformer Just Replaced the Classical 3D Vision Stack
汇智网翻译整理,转载需注明出处。