VGG組聯合Meta改進了dust3r,輸入圖片,輸出對應的一系列3D屬性,被CVPR2025收錄!
1.abstract
我們提出了VGGT,一種前饋神經網絡,能夠直接從場景的一個、幾個或數百個視角推斷出所有關鍵的3D屬性,包括相機參數、點云圖、深度圖和3D點軌跡。VGGT不僅簡單高效,能在不到一秒的時間內重建圖像,而且在無需視覺幾何優化技術后處理的情況下,仍然優于其他替代方案。該網絡在多個3D任務中實現了最先進的成果,包括相機參數估計、多視角深度估計、密集點云重建和3D點跟蹤。我們還展示了使用預訓練的VGGT作為特征骨干網絡,能顯著提升下游任務的性能,如非剛性點跟蹤和前饋式新視角合成。
2.introduction
DUSt3R [129]及其改進版MASt3R通過神經網絡直接解決3D重建任務,幾乎完全避免了幾何后處理。但這些網絡一次只能處理兩張圖像,并依賴后處理來重建更多圖像,融合成對重建。
本文進一步推進了減少后處理中對3D幾何優化的需求。我們提出了視覺幾何基礎Transformer(VGGT),這是一種前饋神經網絡,能夠從一個、幾個甚至數百個場景輸入視圖中進行3D重建。VGGT預測包括相機參數、深度圖、點云圖和3D點軌跡在內的完整3D屬性集,并在幾秒鐘內完成一次前向傳遞。
我們還表明,無需為3D重建設計特殊網絡。VGGT基于一個相當標準的大型Transformer [119],沒有特定的3D或其他歸納偏差(除了在幀間和全局注意力之間交替),但在大量帶有3D注釋的公開數據集上訓練。因此,VGGT與自然語言處理和計算機視覺中的大型模型(如GPTs [1, 29, 148]、CLIP [86]、DINO [10, 78]和Stable Diffusion [34])構建方式相同。這些模型已成為多功能骨干,可以微調以解決新的特定任務。同樣,我們展示了VGGT計算的特征可以顯著增強下游任務,如動態視頻中的點跟蹤和新視角合成。
最近有幾個大型3D神經網絡的例子,包括DepthAnything [142]、MoGe [128]和LRM [49]。然而,這些模型只專注于單一的3D任務,如單目深度估計或新視角合成。而VGGT使用共享骨干網絡預測所有感興趣的3D量。我們證明了學習預測這些相互關聯的3D屬性可以提高整體準確性,盡管可能存在冗余。同時,我們展示了在推理過程中,可以從單獨預測的深度和相機參數中導出點圖。
3. Method
3.1問題設定
輸入是N個RGB圖片序列,
,VGGT的transformer是一個從圖片序列到對應的一組3D屬性的函數,對于每一張輸入圖片,輸出相機內參和外參
,深度圖
,點圖
,C點追蹤維特征網格
:
1)相機參數
和SfM的框架一致,相機參數表示為,其中q為四元數,t為平移向量,f為視場角。
2)深度圖
圖像???的域定義為:
深度圖定義為,是每一個像素對應的深度值,其中
是像素位置。
3)點圖
與dust3r一樣,每一個像素對應一個3D點:,?3D 點 定義在第一個相機?g1??的坐標系中,將其作為世界參考系。
4)關鍵點跟蹤
對于關鍵點跟蹤,采用類似 Track-Any-Point [25, 57] 的方法。給定查詢圖像???中的一個固定查詢點?
?,網絡輸出一個軌跡:
。
Transformer 并不直接輸出軌跡,而是輸出特征?。跟蹤任務由一個單獨的模塊完成,該模塊實現函數:
兩個網絡?f?和?T?是端到端聯合訓練的。
輸入圖像序列的順序是任意的,但第一張圖像被選為參考幀,
3.2. Feature Backbone
最近的研究表明,3D 深度學習可以通過減少對模型的先驗假設(歸納偏置),讓模型從大量 3D 標注數據中學習到更好的表示。因此,我們的模型?f?是一個基于 Transformer 的大型網絡。
輸入圖像首先通過 DINO被變成一組 token
,所有幀的 token 被組合起來
,輸入主網絡結構進行處理,交替使用幀內自注意力層和全局自注意力層。
標準 Transformer 使用全局自注意力,本文引入了交替注意力機制(Alternating-Attention),
幀內自注意力(frame-wise self-attention)分別關注每幀內的 token??,而全局自注意力(global self-attention)則聯合關注所有幀的 token?
,這種設計在整合不同圖像信息和歸一化每幀內 token 激活之間取得了平衡。這樣,我們的架構沒有使用任何交叉注意力層,僅使用自注意力層。
3.3. Prediction heads
在這里,我們描述模型?f?如何預測相機參數、深度圖、點云圖和點軌跡。首先需要小補一個知識點:
ICLR2024收錄了一篇來自Meta和Inria的文章VISION TRANSFORMERS NEED REGISTERS,這篇文章主要針對ViT在處理圖像時的局限性提出了一種新的改進方法——“registers”(寄存器):
ViT的一個局限:ViT在處理圖像時,某些區域(如背景或邊緣)可能缺乏足夠的信息,導致模型在這些區域的注意力分配不夠合理。這種信息稀疏性可能影響模型的整體性能,尤其是在處理復雜場景時。Registers是一種額外的可學習參數,類似于Transformer中的特殊token(如[CLS] token)。它們被添加到輸入序列中,用于捕捉圖像中未被充分利用的信息(如背景或邊緣)。提供額外的“存儲空間”,幫助模型更好地處理信息稀疏的區域。增強模型對全局和局部信息的整合能力,提升特征提取效果。
具體的做法是:在ViT的輸入序列中引入一組可學習的registers。這些registers與圖像patches一起輸入到Transformer中,參與自注意力機制的計算。Registers在訓練過程中通過反向傳播優化,逐漸學會捕捉圖像中的有用信息。它們不依賴于特定圖像內容,而是通用的輔助特征。
現在我們回到主題,關注于網絡的head,先來介紹一些架構內的設置:
加入寄存器:首先,對于每張輸入圖像,為其對應的圖像 token?
添加一個額外的相機 token?
和四個寄存器 token
,然后拼接起來
送入AA中,得到輸出token?
,前面也提到過,我們要把第一幀圖片的相機坐標系作為模型的世界坐標系,所以為了區別第一幀,第一幀的相機 token 和寄存器 token設置為
,其他幀為
,經過優化以后,每一幀的相機token和寄存器都是特定的,然后根據上述論文,結束訓練以后丟棄寄存器
,使用
進行預測。
對于坐標系,我們使用了第一幀圖片的相機坐標系作為模型的世界坐標系,因此第一幀的旋轉四元數與平移為,
,相機和寄存器token為
。
接下來,我們還是和3.1一樣,按照輸出來一個一個解釋:
1)相機pose
相機參數???通過輸出的相機 token?
??預測得到,這個camera head是四個額外的自注意力層和一個線性層。
2)深度圖與pointmap
首先通過 DPT 層 [87] 轉換為密集特征圖
,然后,每個?
?通過一個 3×3 卷積層映射到對應的深度圖和點圖?
,我們還為每個深度圖和點云圖分別預測了隨機不確定性
,不確定性圖用于損失函數中,并且在訓練后與模型對預測的置信度成正比。
3)點跟蹤
同3.1中提到的,點跟蹤是另外一個網絡,但是我們先要得到特征,在2)中,DPT 頭還輸出密集特征,作為跟蹤頭的輸入,給定查詢圖像?
?中的一個查詢點?
,
跟蹤頭??預測所有圖像?
??中與?
?對應的 2D 點集
,這個過程是,使用 CoTracker2 架構通過相關性計算和自注意力層預測查詢點在其他圖像中的對應點。
我們的跟蹤器不假設輸入幀的任何時間順序,因此可以應用于任何輸入圖像集,而不僅僅是視頻。
3.4. Training
我們使用多任務損失端到端訓練 VGGT:
我們發現相機損失、深度損失和點圖損失的范圍相似,因此不需要額外加權。跟蹤損失的 λ=0.05。
1)pose損失
使用Huber 損失:
2)深度與點圖loss
遵循 DUSt3R [129],通過預測的不確定性圖加權計算了
各自loss,實現了基于隨機不確定性的損失:
3)點跟蹤loss
訓練配置
數據集包括:Co3Dv2 [88]、BlendMVS [146]、DL3DV [69]、MegaDepth [64]、Kubric [41]、WildRGB [135]、ScanNet [18]、HyperSim [89]、Mapillary [71]、Habitat [107]、Replica [104]、MVS-Synth [50]、PointOdyssey [159]、Virtual KITTI [7]、Aria Synthetic Environments [82]、Aria Digital Twin [82] 以及一個類似于 Objaverse [20] 的藝術家創建的合成數據集。這些數據集涵蓋了各種領域,包括室內和室外環境,并包含合成和真實場景。這些數據集的 3D 注釋來自多種來源,例如直接傳感器捕獲、合成引擎或 SfM 技術 [95]。
使用?L=24 層全局和幀內注意力。模型總共包含約 12 億個參數。輸入幀、深度圖和點云圖的最大尺寸調整為 518 像素。訓練在 64 個 A100 GPU 上運行,耗時 9 天。我們使用梯度范數裁剪,閾值為 1.0,以確保訓練穩定性。利用 bfloat16 精度和梯度檢查點來提高 GPU 內存和計算效率。
4.實驗
4.1pose估計
使用標準指標?AUC@30,結合?RRA(相對旋轉精度)?和?RTA(相對平移精度)。VGGT 的預測結果(相機姿態、點云圖和深度圖)可以作為?捆綁調整(BA)?的良好初始化,從而進一步提升精度。結合 BA 后,VGGT 的優化時間僅需?2 秒,遠快于傳統方法(如 [125] 中的三角測量和迭代優化)。盡管 VGGT 的前饋模式已經優于所有現有方法,但后優化仍能帶來進一步的性能提升。
4.2. Multi-view Depth Estimation
使用 DTU 標準指標,包括:Accuracy、Completeness、Overall,VGGT 的?多圖像訓練方案?使其能夠自然地推理多視角三角測量,而不是像 DUSt3R 那樣依賴臨時的對齊操作(如平均多個成對相機三角測量結果)。這種設計使 VGGT 在多視角深度估計任務中表現出色。
4.3. Point Map Estimation
在ETH3D 數據集?上進一步評估了 VGGT 在點云預測任務中的性能,并與 DUSt3R 和 MASt3R 進行了對比,如表 3 和圖 4?
4.4. Image Matching
?ScanNet 數據集?上評估了 VGGT 在?兩視圖圖像匹配任務的性能,
兩視圖圖像匹配是計算機視覺中的一個經典問題,屬于剛性點跟蹤的特例(僅限于兩個視圖)。盡管 VGGT 并非專門針對此任務設計,但它仍可作為評估跟蹤精度的基準。對每對圖像提取匹配點,并使用這些匹配點估計本質矩陣(Essential Matrix),進而完成相機標定,即SVD得到相對相機姿態。
最終指標是相對pose精度,通過?AUC?衡量。盡管 VGGT 未針對兩視圖匹配任務進行專門訓練,但其在?ScanNet 數據集?上的表現優于所有基線方法,取得了最高的精度。
5. Discussions
當前模型僅適用于常規視角圖像,無法處理魚眼或全景圖像。并且當輸入圖像存在極端旋轉時,重建性能會顯著下降。然模型能夠處理輕微的非剛性運動,但在顯著非剛性變形(如大幅度的物體形變)場景中表現不佳。
改進方法
模型架構設計靈活,能夠通過微調和最小限度的修改適應新的場景或任務。通過在目標數據集上微調模型,可以解決上述局限性,而無需對架構進行大規模修改。