最近在看图像深度相关的内容,就准备刷刷论文看一看,随便一搜,就看见这篇VGGT: Visual Geometry Grounded Transformer 拿了去年CVPR的best paper,吓了我一跳还以为是VGG又崛起了,又要make CNN great again了,赶忙下下来看了一眼,就浅浅略读一下。
本篇主要想用比较直白的话来讲述一下VGGT干了啥,怎么干,目标是让和我一样,没接触过这个方向的同学也能大致了解一下到底在干啥。有些细节可能了解的不是很到位,欢迎专门做3D重建的大佬指正。
顺带说一句,看完论文感觉真就突出一个力大砖飞,我还特意看了眼单位,meta的,看的时候我还以为是谷歌的呢。meta给llama4不行找到借口了,搁这儿训VGGT呢。
Motivation
VGGT的motivation非常简单易懂,就是传统三维重建太复杂了,极其依赖几何计算,即使是NN的方法也依旧需要大量的几何处理。所以VGGT的motivation非常直接,能不能用网络直接完成三维重建,避免复杂的几何运算。然后以此开始研究怎么端到端三维重建。
Method
VGGT的method在我这个外行看起来,其实相当简单,不知道是不是有什么在三维重建领域非常标新立异的方法,有懂的朋友也可以指出来。
Feature Backbone
简单来说, 就是使用了一个VIT的架构,使用 DINO 将每帧切成 patch-tokens,再把所有帧 token 串起来输入VIT网络。
同时,略微修改了一下VIT,引入了Alternating-Attention的机制,一层 Frame-wise SA,一层 Global SA,循环往复 24 次。
Prediction heads
网络的预测那更是直接一网打尽,把相机参数、深度图、点云图 及点轨迹一次全部出来。具体操作上,有趣的是每个token 队列都加了1个 Camera Token + 4 个 Register Tokens,在输出的时候再把register token丢弃。而且只有第一帧用了一套可学习的Token,同时其他帧用另一套,显示的告诉模型从哪里开始。
然后就是各个种类的一预测头了,用4个注意力层最后做个先行曾得到相机参数预测,用DPT得到深度,点云图。用CoTracker2架构得到追踪特征。这个地方我感觉应该属于即插即用,随时可以替换成最新的sota任务的头然后fintune,以保持一个有竞争力的效果。
实验:
实验主要做了大量的实验,对自己每个头对应的任务进行了实验,结果么,一言以蔽之,赢麻了。