CVPR 2025 | VGGT : 基于视觉几何基础的Transformer模型

引言

我们提出了VGGT,一种基于标准大模型架构的前馈神经网络,能够直接从单视角、多视角甚至数百视角的图像输入中,端到端预测场景的所有关键三维属性(包括相机内外参、深度图、点图及三维点轨迹),且无需依赖传统几何后处理优化(如集束调整)。VGGT通过单一前馈推理(耗时仅数秒)实现多任务联合建模,其性能不仅超越依赖耗时后处理的现有方法(如DUSt3R、MASt3R),还可通过结合后处理进一步刷新三维任务的全领域最优结果。

与传统视觉几何方法不同,VGGT摒弃了针对三维任务的特殊网络设计,仅通过交替式帧内与全局注意力机制,在公开三维标注数据上训练即实现几何理解能力。此外,VGGT的特征可迁移至动态点跟踪、新视图合成等下游任务,展现卓越泛化性。为快速、可靠的三维重建提供新基础框架。

方法

符号和问题的定义

符号定义

设输入为RGB图像序列,其中每幅图像都来自于同一个场景。VGGT中使用transformer作为将序列中的每帧映射到响应3D属性集的一个函数,如下式所述:

transformer将每个图像映射为它对应的相机内、外参数、深度图、点图和用于点跟踪的C维特征表。

对于相机参数,我们将其定义为,其中为旋转四元数,为平移向量,为FoV。我们假设相机的畸变中心处于图像的正中央。

我们将图像的域记为,即像素位置的集合。那么深度图将每个像素位置与对应的深度值对应起来。同样地,点图将每个像素与对应的3D场景中的点对应起来。值得注意的是,所有的点都在第一个相机的坐标系中定义,我们将其作为世界坐标系。

最终,对于关键点跟踪,给定一个在查询图像中的固定的查询图像点,模型会输出这样一个路径:,由该点在所有图像中对应的二维点组成。

注意到上文中的transformer并不直接输出路径而是输出一个用于跟踪的特征表。这是由于具体的跟踪被委托给一个单独的模块,它实现了的映射。它以查询点和稠密化的跟踪特征表作为输入并实现跟踪功能。和这两个神经网络是端到端地联合训练的。

问题定义

预测顺序:输入图像的顺序是任意的,除了第一帧作为世界坐标系的参考。网络架构需要被设计为对首帧外的所有帧保持置换同变性。

过完备预测:并非所有的预测都是独立的。如一些方法可以通过预测出的点图推测相机参数,或通过点图与相机参数推导出深度图。在实验中发现,当使用VGGT同时预测所有结果时会对模型表现产生提升。在推理过程中,也可以发现结合深度图和相机参数后可以产生更准确的点图预测。

特征骨干网络

图 2:我们的模型首先通过DINO将输入图像分块化为token,并添加相机token以进行相机参数预测。随后,模型交替应用帧内自注意力层与全局自注意力层。最终,相机预测头预测相机外参与内参,DPT头部则生成稠密输出(如深度图或点图)。图 2:我们的模型首先通过DINO将输入图像分块化为token,并添加相机token以进行相机参数预测。随后,模型交替应用帧内自注意力层与全局自注意力层。最终,相机预测头预测相机外参与内参,DPT头部则生成稠密输出(如深度图或点图)。

我们使用最小3D归纳偏差设计了一个简单的结构。在实现中,我们将模型设计为一个大的 transformer。为了这个目的,每个输入图像都会通过DINO在初始化中被分割为一个包含 个 token 的集合 。所有帧的 token 的集合 被主干网络的交替帧内、帧间自注意力层。

交替注意力

我们通过引入交替注意力(Alternating-Attention)机制来优化 transformer 的结构。这使得 transformer 可以以不同的方式聚焦于每帧内或全局。具体而言,帧内自注意力关注每帧内的不同 token ,而全局自注意力趋向于结合不同帧之间的 token 。这实现了跨帧集成信息与帧内token的规范化激活之间的平衡。值得注意的是,经过改良的 transformer 只有自注意力,不具有交叉注意力。

预测头

这里,我们描述如何通过预测相机参数、深度图、点图和点轨迹。首先,对于每个输入图像,我们将一个额外的相机 token 和四个register token 增加到对应的tokens 中。这三类token的级联通过transformer,输出token 。这里,第一帧的相机token和register token(定义为和)被设置为与其他帧(将和定义为和其中)不同的结构,使得模型可以分辨出第一帧。注意到改良后的相机token和register token具有了帧特异性,这是由于我们的transformer中具有帧内自注意力层,使得模型可以将相机token和register token与来自相同图像的相关token进行匹配。输出的register token 被丢弃,而和被用于后续预测。

坐标系帧

如上文所述,我们在首帧相机的坐标系内预测相机、点图和深度图。这样,第一个相机的外参就可以固定为。

相机预测

相机参数从模型输出的相机token 中预测,使用额外的四个自注意力层和一个线性层实现。这种形成了相机预测头,并可以同时预测相机的内外参数。

稠密预测

输出的图像token 被用于预测点图、深度图以及跟踪特征表。具体来说,首先被DPT层转换为稠密特征图。每个随后被的卷积层映射为对应的深度图和点图。此外,DPT 头也输出了稠密的特征表。我们也预测了深度图和点图的数据不确定性和。这一不确定性被用于loss中,在训练完成后其与模型对预测的置信度成比例。

跟踪

为了实现跟踪模型,我们使用CoTracker2架构。具体而言,给定一个查询图中的查询点,跟踪头预测一组2D点,即在所有图像中与对应的点。为了实现这个目标,查询图像的特征表首先在处双线性采样来获得其特征。这一特征随后与所有特征表联合,从而得到联合特征表。这些表随后被一个自注意力层处理从而得到最终的2D点。

训练

损失函数

我们使用如下的多任务损失来端到端地训练VGGT:

我们发现相机参数、深度、点图的损失具有类似的值范围,不需要调节彼此的权重。而跟踪损失需要降权重,通常取。

相机损失定义为:

对预测相机 和真值 使用Huber损失。深度损失定义为:

其中 为不确定性图,为通道维度的广播逐元素乘积。

类似地,点图损失定义为

跟踪损失定义为 。这里,外侧的求和会遍历在查询图像 中的所有ground-truth 查询点 , 是 在图像 中的真值点。

真值坐标归一化

为了消除尺寸带来的歧义,我们强制要求模型输出归一化后的坐标。我们通过计算点图中所有点到坐标系原点的平均欧氏距离作为归一化因子,并对相机平移参数、点图和深度图进行归一化。但是我们并不对模型的输出进行归一化,而是要求模型学习这一归一化过程。

实施细节

我们使用24层注意力层,模型共有1.2B的参数量。我们随后通过如式(2)所示的损失,使用AdamW优化器迭代160K次。我们使用一个余弦学习率策略,最高学习率为0.0002,伴有8K迭代的warmup环节。对于每个batch,我们从一个随机场景中随机采样2-24帧。所有输入的帧、深度图、点图都缩放到最大518像素。横纵臂在0.33到1.0之间随机变化。我们也随机应用了颜色抖动、高斯模糊和灰度增强。训练在64张A100上跑了9天。我们使用了梯度范数裁剪来保证训练稳定。我们也使用了16位浮点数精度和梯度检查点来提高计算效率。

训练数据

训练数据是一个由Co3Dv2, BlendMVS, DL3DV, MegaDepth, Kubric, WildRGB, ScanNet, HyperSim, Mapillary, Habitat, Replica, MVS-Synth, PointOdyssey, Virtual KITTI, Aria Synthetic Environments, Aria Digital Twin以及Objaverse组成的庞大数据集。

实验结果

相机位姿估计

我们首先在CO3Dv2 和 RealEstate10K 数据集上评估了方法在相机姿态估计任务中的性能,如表1所示。我们的前馈模型在两个数据集的所有指标上均一致优于其他竞争方法,包括那些依赖计算成本高昂的后优化步骤的方法(如DUSt3R/MASt3R的全局对齐、VGGSfM的集束调整,通常耗时超过10秒)。相比之下,VGGT仅以纯前馈方式运行(同硬件下仅需0.2秒)即可实现更优性能。

表 1:RealEstate10K和CO3Dv2的随机10帧相机姿态估计。所有参数越高越好。没有一种方法是在Re10K数据集上训练的。使用一台H100 GPU测量运行时间。用‡标记的方法表示并行工作。表 1:RealEstate10K和CO3Dv2的随机10帧相机姿态估计。所有参数越高越好。没有一种方法是在Re10K数据集上训练的。使用一台H100 GPU测量运行时间。用‡标记的方法表示并行工作。

实验结果表明,VGGT与视觉几何优化方法(如集束调整BA)结合后可进一步提升性能。具体而言,通过BA对预测的相机姿态和轨迹进行优化可提高精度。需注意的是,我们的方法直接预测接近精确的点图/深度图,可作为BA的良好初始化,从而无需依赖三角测量和迭代优化,显著加速流程(即使结合BA也仅需约2秒)。因此,尽管VGGT的纯前馈模式已超越所有现有方法(无论其是否依赖后优化),后优化仍能带来额外性能增益,表明模型仍有改进空间。

多视角深度估计

遵循MASt3R的评估流程,我们在DTU数据集上进一步评估了多视角深度估计性能。报告指标包括标准DTU评估项:Accuracy(预测结果到真值的最小欧氏距离)、Completeness(真值到预测结果的最小欧氏距离)及其平均Overall分数(即倒角距离)。如表2所示,DUSt3R与我们的VGGT是仅有的两种不依赖真实相机参数的方法。

表 2:DTU数据集上的密集MVS估计。表的上半部分是已知地真值相机的操作方法,下半部分是不知道地真值相机的操作方法。表 2:DTU数据集上的密集MVS估计。表的上半部分是已知地真值相机的操作方法,下半部分是不知道地真值相机的操作方法。

点图估计

我们还在ETH3D 数据集上将预测点云的精度与DUSt3R和MASt3R进行了对比。对于每个场景,我们随机采样10帧图像,并使用Umeyama算法将预测点云与真值对齐,同时通过官方掩码过滤无效点后报告结果。我们展示了点图估计的Accuracy、Completeness和Overall(倒角距离)。如表3所示,尽管DUSt3R和MASt3R进行了高代价优化(全局对齐——每场景约10秒),我们的方法在纯前馈模式下(每重建仅需0.2秒)仍显著优于它们。

表 3:基于ETH3D的点图估计。DUSt3R和MASt3R使用全局对齐,而我们的是前馈的,因此要快得多。“我们的(点)”表示直接使用点地图头的结果,而“我们的(深度+ Cam)”表示从深度地图头和相机头结合构建点云。表 3:基于ETH3D的点图估计。DUSt3R和MASt3R使用全局对齐,而我们的是前馈的,因此要快得多。“我们的(点)”表示直接使用点地图头的结果,而“我们的(深度+ Cam)”表示从深度地图头和相机头结合构建点云。

图像匹配

双视角图像匹配是计算机视觉中广泛研究的课题,属于刚性点跟踪的一种特例(仅限两个视角)。尽管我们的模型并非专为此任务设计,但其仍可作为评估跟踪精度的合适基准。尽管未针对双视角匹配进行显式训练,表4显示VGGT在所有基线方法中取得了最高精度。

表 4:ScanNet-1500上的二视图匹配比较。虽然我们的跟踪头不是专门用于双视图设置,但它优于最先进的双视图匹配方法Roma。以AUC测量(越高越好)。表 4:ScanNet-1500上的二视图匹配比较。虽然我们的跟踪头不是专门用于双视图设置,但它优于最先进的双视图匹配方法Roma。以AUC测量(越高越好)。

消融实验

特征骨干网络

我们首先通过对比两种替代注意力架构(a)仅全局自注意力,(b)交叉注意力,验证了提出的交替注意力设计的有效性。为确保公平比较,所有模型变体保持相同参数总量(共使用48个注意力层)。对于交叉注意力变体,每帧独立关注来自其他所有帧的标记,虽能最大化跨帧信息融合,但显著增加运行时间(尤其在输入帧数增加时)。隐藏维度、注意力头数等超参数保持一致。选择点图估计精度作为消融实验的评估指标(因其反映模型对场景几何与相机参数的联合理解)。表5结果表明,我们的交替注意力架构显著优于两种基线变体。此外,其他初步实验也表明,使用交叉注意力的架构普遍弱于仅采用自注意力的方案。

表 5:骨干网络在ETH3D上的消融实验。我们将交替注意架构与两种变体进行比较:一种只使用全局自我注意,另一种使用交叉注意。表 5:骨干网络在ETH3D上的消融实验。我们将交替注意架构与两种变体进行比较:一种只使用全局自我注意,另一种使用交叉注意。

多任务学习

我们还验证了单网络联合学习多个三维量的优势(即使这些输出可能存在冗余,例如深度图与相机参数可联合生成点图)。如表6所示,当不训练相机参数、深度图或轨迹估计时,点图精度显著下降。值得注意的是:引入相机参数估计能明确提升点图精度;深度估计仅带来边际改进。该现象可解释为:相机参数提供了全局几何约束(如坐标系对齐与尺度归一化),而深度图更多编码局部几何细节,对点图优化的直接贡献有限。

表 6:多任务学习的消融研究(Ablation Study for Multi-task Learning),该研究表明,同时使用相机、深度和轨迹估计进行训练,在ETH3D上的点图估计精度最高。表 6:多任务学习的消融研究(Ablation Study for Multi-task Learning),该研究表明,同时使用相机、深度和轨迹估计进行训练,在ETH3D上的点图估计精度最高。

结论

我们提出了VGGT,这是一种前馈神经网络,可直接从数百个输入视角中估计所有关键三维场景属性。其在多项三维任务中取得了最先进的成果,包括相机参数估计、多视角深度估计、密集点云重建与三维点跟踪。我们的方法以纯神经网络为核心,摒弃了传统基于视觉几何的流程(依赖优化与后处理来获取任务专用结果)。其简单性与高效性使其非常适用于实时应用场景,这也是相较于优化类方法的另一优势。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值