当前位置: 首页 > news >正文

【VGGT】统一3D重建:单网络同时预测相机位姿、深度图、点云与3D轨迹的前馈Transformer架构深度解析

摘要

VGGT(Visual Geometry Grounded Transformer)是Meta Research提出的1.2B参数前馈Transformer,能在1秒内从1~100+张图像中同时推断相机参数、点云图、深度图和3D点轨迹。通过Alternating Attention机制(帧内与全局自注意力交替)替代传统Cross-Attention,在相机估计、多视图深度、稠密重建和3D跟踪四项任务上均达到SOTA,且无需迭代优化。论文发表于CVPR 2025。


论文:VGGT: Visual Geometry Grounded Transformer
代码:facebookresearch/vggt


一、问题背景

传统3D重建管线(SfM/MVS)依赖多阶段流水线:特征匹配→ \rightarrow相机标定→ \rightarrow稠密重建→ \rightarrow后处理。每个阶段独立优化,误差层层累积。近期DUSt3R/MASt3R等方法虽用神经网络替代部分模块,但仍需后端全局对齐(BA),且无法同时输出跟踪信息。

VGGT的核心动机:能否用一个前馈网络,一次性输出所有3D几何属性?

关键挑战:

  • 相机位姿需要全局一致性(跨帧信息)
  • 深度/点云需要局部精细度(帧内信息)
  • 3D跟踪需要时序对应关系
  • 这三类输出的supervision信号来源不同,联合训练可能冲突

二、核心方法

2.1 整体框架

图 1:VGGT系统架构。重点看中间的Alternating Attention模块(红色高亮)——帧内与全局自注意力交替24层,不使用Cross-Attention。来源:重绘自 design skill

输入N张RGB图像,经DINOv2 Patchification编码为token序列后,送入24层Alternating Attention Block提取特征,最终由三个并行预测头分别输出相机参数、稠密几何和3D轨迹。

N RGB Images

DINOv2 Patchify

24x AA Blocks

Camera Head

DPT Dense Head

Tracking Module

9D Pose

Depth + Points

3D Tracks

2.2 Alternating Attention(AA)机制

AA是VGGT区别于DUSt3R系列的核心设计。每一层交替执行:

  1. Frame-wise Self-Attention:每帧token独立做自注意力,建立帧内空间关系
  2. Global Self-Attention:所有帧的token拼在一起做自注意力,建立跨帧对应关系

Layer 2 k : X = SA frame ( X ) (帧内) \text{Layer}_{2k}: \quad \mathbf{X} = \text{SA}_{\text{frame}}(\mathbf{X}) \quad \text{(帧内)}Layer2k:X=SAframe(X)(帧内)

Layer 2 k + 1 : X = SA global ( X ) (全局) \text{Layer}_{2k+1}: \quad \mathbf{X} = \text{SA}_{\text{global}}(\mathbf{X}) \quad \text{(全局)}Layer2k+1:X=SAglobal(X)(全局)

网络配置:1024维特征、16个注意力头、24层。

为什么不用Cross-Attention?消融实验(ETH3D Overall Error):

  • Alternating Attention:0.709
  • Global SA only: 0.827
  • Cross-Attention: 1.061

AA的优势在于:帧内层维护局部精度(深度细节),全局层建立对应关系(相机一致性),两者交替互补。Cross-Attention则在帧对过多时计算量爆炸,且缺乏帧内自身结构建模。

2.3 预测头设计

Camera Head:在AA输出上追加4层自注意力 + 线性层,输出9D参数:

g i = [ q i ∈ R 4 , t i ∈ R 3 , f i ∈ R 2 ] \mathbf{g}_i = \left[\mathbf{q}_i \in \mathbb{R}^4,\; \mathbf{t}_i \in \mathbb{R}^3,\; \mathbf{f}_i \in \mathbb{R}^2\right]gi=[qiR4,tiR3,fiR2]

其中q \mathbf{q}q为四元数旋转、t \mathbf{t}t为平移、f \mathbf{f}f为2D焦距。第一帧强制为单位变换(世界坐标系参考)。

DPT Dense Head:DPT上采样将patch-level token恢复到像素级分辨率,3x3卷积输出深度图D i D_iDi、点云图P i ∈ R 3 × H × W P_i \in \mathbb{R}^{3 \times H \times W}PiR3×H×W(世界坐标系)、跟踪特征T i T_iTi

Tracking Module:基于CoTracker2架构,以跟踪特征T i T_iTi为输入,预测稠密3D点轨迹。

2.4 多任务联合训练

图 2:多任务训练策略。重点看消融结果——camera loss对点云估计贡献最大(去掉后error从0.709升到0.834)。来源:重绘自 design skill

总Loss:

L = L camera + L depth + L pmap + 0.05 ⋅ L track \mathcal{L} = \mathcal{L}_{\text{camera}} + \mathcal{L}_{\text{depth}} + \mathcal{L}_{\text{pmap}} + 0.05 \cdot \mathcal{L}_{\text{track}}L=Lcamera+Ldepth+Lpmap+0.05Ltrack

各分项:

  • L camera \mathcal{L}_{\text{camera}}Lcamera:Huber范数,预测与GT相机参数距离
  • L depth \mathcal{L}_{\text{depth}}Ldepth:不确定性加权差异 + 梯度平滑项
  • L pmap \mathcal{L}_{\text{pmap}}Lpmap:类似depth的不确定性损失,作用于3D点坐标
  • L track \mathcal{L}_{\text{track}}Ltrack:L2对应距离 + 可见性BCE

Over-complete Supervision的哲学:深度+相机位姿数学上已能推导点云,但同时监督三者反而提升所有输出质量。这打破了"去掉冗余supervision"的直觉。

训练配置:160K迭代、64张A100、9天、bfloat16精度、梯度裁剪阈值1.0。

三、实验分析

3.1 相机位姿估计

方法Re10K AUC@30CO3Dv2 AUC@30时间
DUSt3R67.776.7~9s
MASt3R76.481.8~7s
VGGSfM78.983.4~10s
VGGT (FF)85.388.2~0.2s
VGGT + BA93.591.8~1.8s

前馈VGGT无需BA已超越所有需要后端优化的方法,加BA后进一步拉开差距。

3.2 多视图深度估计(DTU)

方法Chamfer距离相机来源
GeoMVSNet0.295GT cameras
DUSt3R1.741自估计
VGGT0.382自估计

VGGT用自估计相机即接近使用GT相机的传统MVS方法。

3.3 点云重建(ETH3D)

方法Overall Error时间
DUSt3R1.005~9s
MASt3R0.826~7s
VGGT0.677~0.2s

3.4 3D点跟踪(TAP-Vid)

作为特征骨干,VGGT提取的tracking features显著提升CoTracker基线:

骨干Kinetics AJDAVIS OA
CoTracker baseline49.688.3
CoTracker + VGGT57.291.4

3.5 运行时性能

帧数推理时间显存
100.14s3.63GB
501.08s10.90GB
1003.12s21.15GB
2008.75s40.63GB

四、关键设计决策分析

4.1 为什么选择Alternating Attention而非Cross-Attention?

Cross-Attention的问题:

  • 计算复杂度O ( N 2 ⋅ L 2 ) O(N^2 \cdot L^2)O(N2L2)(N帧、L token/帧),帧数多时爆炸
  • 需要显式定义query来源,隐含假设帧间关系方向
  • 无法同时建模帧内空间结构

AA的设计哲学:让网络自己学习何时关注局部、何时关注全局。帧内层O ( N ⋅ L 2 ) O(N \cdot L^2)O(NL2),全局层O ( ( N L ) 2 ) O((NL)^2)O((NL)2)但可通过flash attention优化。

4.2 数据归一化策略

GT点云按平均欧氏距离归一化后再监督。模型学习预测归一化后的坐标,推理时需要尺度恢复。这避免了不同场景尺度差异导致的梯度不平衡。

4.3 Permutation Equivariance

除第一帧(参考帧)外,架构对其余帧排列等变。这意味着打乱输入帧顺序不影响输出(除了点云坐标系定义)。

小结

VGGT的核心贡献是证明了单个前馈网络可以同时高质量解决多个3D视觉任务,且速度比优化方法快1~2个数量级。

创新点

  1. Alternating Attention替代Cross-Attention,兼顾帧内精度和跨帧一致性
  2. Over-complete supervision——冗余监督反而提升所有输出
  3. 统一架构处理1~100+帧,无需区分双视图和多视图场景

局限性

  • 不支持鱼眼/全景相机
  • 极端旋转(>90度)性能下降
  • 大幅非刚性形变场景失效
  • 显存随帧数线性增长,200帧需40GB

个人判断:VGGT代表了3D视觉从"流水线组合"向"端到端统一"的范式转变。AA机制的成功暗示Cross-Attention在多视图几何中可能被高估——简单的"看自己→看全部"交替就足够。但40GB@200帧的显存需求限制了实际部署,工程化落地仍需蒸馏或分块推理。对VIO系统的启示:VGGT的tracking feature可直接作为前端特征提取器,其跨帧attention可能替代传统光流匹配。

http://www.cnnetsun.cn/news/2836289.html

相关文章:

  • 抖音下载神器:如何永久保存你喜欢的视频内容?
  • 计算机毕业设计之电商客户消费特征数据分析
  • 从Dijkstra到A*:手把手教你用Python实现路径规划算法(避坑Octile距离计算)
  • 基于OpenPose的实时跌倒与异常动作检测系统(含可直接运行的Python工程+训练模型+测试视频)
  • 基于Spring AI框架的RAG应用
  • Winhance中文版:Windows系统优化的终极免费解决方案
  • 室内调试没信号?EVB_Air551G定位模块的‘踩坑’实录与户外快速测试指南
  • 从单机到协作:手把手教你用Kettle数据库资源库实现团队ETL流程共享(附权限管理)
  • 苹果审核2.1大礼包别慌!我从被拒到过审用了2天
  • FIO参数太多看不懂?一张图帮你搞定磁盘性能测试,附送常用场景命令模板
  • 深度解析Mindustry服务器架构:从源码编译到高可用部署的实践指南
  • 米脂县酒店选型指南:如何从“性价比”角度做理性判断
  • 一个平台,全面保护:云祺破解混合架构难题,筑牢业务备份基座
  • WPS表格转换踩坑实录:逗号、空格用不对,格式全乱!附正确设置图解
  • 程序员的“自带干粮”困境:当公司连 Token 都要员工自费,我们该如何优雅地反击?
  • 2026年居然找到家不踩雷的花照壁网咖?
  • Python 开发环境配置繁琐?PyCharm 2026.1 Mac IDE 一站式解决
  • 从菜鸟到高手:玩转Word/WPS文本转表格,这些高级用法你可能不知道
  • 2026年进入体制内学习数据分析的前景分析
  • 从零复现PointPillars:基于PyTorch和KITTI数据集的保姆级训练与部署指南
  • 2026怎么组合降AI最见效?实测5款热门工具,这份指南直接照搬
  • Dify 被调用的CHATFLOW怎么看报错日志或运行日志
  • 国际期货核心优势+步骤
  • 示波器抓毛刺?手把手教你用临界阻尼公式搞定PCB信号完整性问题
  • Balena Etcher:如何实现跨平台USB镜像烧录的安全性与易用性平衡
  • 将RK3588s/LubanCat4开发板IMX415摄像头官方4k30fps驱动修改为4K60fps完全指北
  • 别再到处找了!我整理了全套Apriltag tag36H11视觉标定图,附高清下载链接
  • 大厂笔试通关秘籍:从性格测试到编程题,我的2小时时间分配策略
  • 别再乱铺地了!从Henry Ott的经典理论,聊聊PCB地平面设计的几个关键‘高度’
  • 从斗地主AI到FPS外挂:深度强化学习在游戏中的实战与伦理困境