????????眾所周知,DUSt3R只適合做稀疏視角重建,與sapnn3r的目的類似,這篇文章以并行的方法,擴展了DUSt3R在多視圖重建中的能力。
abstract
????????多視角三維重建仍然是計算機視覺領域的核心挑戰,尤其是在需要跨不同視角實現精確且可擴展表示的應用中。當前的主流方法,如DUSt3R,采用了一種基于成對處理的方式,即對圖像進行兩兩處理,并需要通過昂貴的全局對齊程序來實現多視角重建。我們提出了Fast3R,這是對DUSt3R的一種新穎的多視角擴展,通過并行處理多個視角,實現了高效且可擴展的三維重建。Fast3R基于Transformer的架構在一次前向傳播中處理N張圖像,避免了迭代對齊的需求。通過在相機姿態估計和三維重建上的大量實驗,Fast3R展示了最先進的性能,在推理速度上顯著提升,并減少了誤差累積。這些結果表明,Fast3R是多視角應用中的一個強大替代方案,在不犧牲重建精度的前提下提供了更強的可擴展性。
1. Introduction
????????傳統的重建流程,例如基于運動恢復結構(SfM)[44]和多視角立體視覺(MVS)[18]的方法,主要依賴于圖像對來重建三維幾何。但它們需要大量的工程來實現特征提取、對應匹配、三角測量和全局對齊等順序階段,從而限制了其可擴展性和速度。
????????DUSt3R[61通過將成對重建問題轉化為點圖的回歸問題能夠直接從RGB圖像中預測三維結構。并放寬了傳統投影相機模型的硬約束[61],在具有挑戰性的視角下展現了令人印象深刻的魯棒性。這代表了三維重建領域的一次根本性轉變,因為端到端可學習的解決方案不僅減少了流程中誤差的累積,還顯著簡化了操作。
????????然而,DUSt3R的根本是重建兩幅圖像輸入的場景。為了處理多于兩幅圖像,DUSt3R需要計算O(N2)對點圖并執行全局對齊優化過程。這一過程計算成本高昂,隨著圖像數量的增加,其擴展性較差。例如,在A100 GPU上僅處理48個視角就可能導致內存溢出(OOM)。另外,兩兩重建這一過程限制了模型的上下文信息,既影響了訓練期間的學習效果,也限制了推理階段的最終精度。從這個意義上說,DUSt3R與傳統SfM和MVS方法一樣,面臨著成對處理的瓶頸問題。
????????Fast3R是一種新型的多視圖重建框架,旨在克服上面提到的局限性。 FAST3R在Dust3R的基礎上,利用Transformer-based架構[56]并行處理多個圖像,允許在單個正向過程中重建。 每個幀可以同時參與重建過程中輸入集中的所有其他幀,大大減少了誤差的積累。 并且Fast3R推理的時間也大大減少。
總結:
(1)Fast3R是一種基于Transformer的多視角點圖估計模型,無需全局后處理,在速度、計算開銷和可擴展性方面實現了顯著提升。
(2)通過實驗證明,模型性能隨著視角數量的增加而提升。在相機姿態定位和重建任務中,當模型在更大規模的視角集上訓練時,其性能會得到改善。在推理過程中使用更多視角時,每個視角的精度會進一步提高,并且模型能夠泛化到遠超訓練時所見視角數量的場景。
(3)我們展示了在相機姿態估計任務中的最先進性能,并顯著提升了推理時間。在CO3Dv2數據集[39]上,Fast3R在15度誤差范圍內的姿態估計精度達到99.7%,與經過全局對齊的DUSt3R相比,誤差減少了14倍以上。
2. Related Work
????????現代三維重建方法都是基于MVG,分為多個順序階段:特征提取、尋找成對圖像對應關系、通過三角測量生成三維點及成對相機相對姿態,以及全局捆綁調整(bundle adjustment)。然而,任何流程化方法都容易累積誤差,尤其是在手工設計的組件中。此外,順序處理的特性阻礙了并行化,從而限制了速度和可擴展性。MVG方法自計算機視覺早期就已存在,并且至今仍在使用的理由是:當它們沒有災難性失敗時,可以非常精確。最新的多視角幾何流程,如COLMAP[44]或OrbSLAM2[30],融合了近60年的工程改進,但這些方法在靜態場景(如ETH-3D[52])中仍然有超過40%的概率會災難性失敗,而這類場景由于圖像覆蓋密集,實際上可以被認為是相對簡單的情況。
????????DUSt3R通過點圖回歸來替換MVG流程中直到全局成對對齊的所有步驟。直接為成對圖像在共享坐標系中預測三維點圖。其他MVG組件任務,如相對相機姿態估計和深度估計,可以從生成的點圖表示中恢復。然而,DUSt3R存在很大局限性,即只能完成稀疏視角重建,上述也提到了DUSt3R的局限性。
????????然而,DUSt3R具有啟發意義,MASt3R在每個解碼器輸出上添加了一個局部特征頭,而MonST3R[69]則對動態場景進行了數據驅動的探索,但兩者本質上仍然是成對方法。特別是MASt3R并未對全局對齊方法進行任何改動。與我們同期的工作,Spann3R[57]將圖像視為有序序列(例如來自視頻),并使用成對滑動窗口網絡以及學習的空間記憶系統逐步重建場景。這擴展了DUSt3R以處理更多圖像,但Spann3R的增量成對處理無法修復早期幀的重建,這可能導致誤差累積。作者提出的Fast3R的Transformer架構使用了all-to-all注意力機制,使模型能夠同時并聯合地推理所有幀,而無需假設圖像順序。Fast3R消除了順序依賴性,從而在單次前向傳播中實現了跨多個設備的并行推理。
3. Model
3.1. Problem definition????????
? ? ? ? 如圖2,輸入N個無序無pose的RGB圖像,Fast3R預測對應的pointmap
(
)以及confidence map
來重建場景,不過這里的
有兩類,一種是全局pointmap
,另一種是局部pointmap
,confidence map也一樣,全局置信圖
,局部置信圖
,比如,在MASt3R中,
是在視角1的坐標系下,
就是當前相機坐標系:
3.2. Training Objective-Fast3R的loss設計
? ? ? ??Fast3R的預測與GT的loss是DUST3R的一個廣義版本,即歸一化 3D 逐點回歸損失的置信加權:
????????首先,我們回顧DUST3R的點圖loss:
????????在此基礎上,使用confidence-ajusted loss:
????????我們的直覺是置信度加權有助于模型處理標簽噪聲。與DUST3R類似,我們在真實世界的掃描數據上進行訓練,這些數據通常包含底層點圖標簽中的系統性誤差。例如,在真實激光掃描中,玻璃或薄結構通常無法正確重建[4, 67],而相機配準中的誤差會導致圖像與點圖標簽之間的錯位[66]。
3.3. Model architecture
????????Fast3R的結構設計來源于DUSt3R,包括三部分:image encoding, fusion transformer,
and pointmap decoding,并且處理圖片的方式是并行的。
(1)Image encoder
? ? ? ? 與DUST3R一樣,對于任意的圖片,encoder部分使用CroCo ViT里面的
,即分成patch提取特征,最后得到
,其中
,記作:
????????然后,在fusion transformer之前,往patch 特征H里面添加一維的索引嵌入(image index positional embeddings),索引嵌入幫助融合Transformer確定哪些補丁來自同一圖像,并且是識別的機制,而
定義了全局坐標系。使模型能夠從原本排列不變的標記集中隱式地聯合推理所有圖像的相機pose。
(2)Fusion transformer
????????Fast3R 主要的計算在Fusion transformer過程中,我們使用的是與ViTB [12] 或 BERT類似的12層transformer,還可以按照比例放大,在此過程中,直接執行all-to-all的自注意力,這樣,Fast3R獲得了包含整個數據集的場景信息。
(3)pointmap decoding
? ? ? ? Fast3R的位置編碼細節也很講究,這個細節大家感興趣可以仔細看看,可以達到訓練20張圖,推理1000張圖的效果。最后,使用DPT-Large的decoder得到點圖以及置信圖
,下面簡單介紹一下DPT-L。
? ? ? ? DPT探討了如何將視覺Transformer應用于密集預測任務(如語義分割、深度估計等)。通過引入層次化特征提取、多尺度特征融合以及專門的密集預測頭,改進了ViT架構,使其能夠有效處理高分辨率輸入并生成像素級預測。
4. Experiments
? ? ? ? baseline是DUSt3R,MASt3R,Spann3R,所以,訓練數據與他們保持一致,包括object-center和scene scan兩類,在 64 個 A100 GPU 上訓練 6.13 天
4.1. Inference Efficiency
????????表2顯示了隨著視角數量增加,推理時間和內存使用情況的變化。Fast3R能夠單次處理多達1500個視角,而DUSt3R在超過32個視角時就會耗盡內存。Fast3R的推理時間也顯著更快,且隨著視角數量的增加,其優勢更加明顯。
4.2. Pose Estimation
????????受DUSt3R[61]的啟發,我們從預測的全局點圖中估計焦距、相機旋轉和相機平移。我們首先基于圖像分辨率初始化一組隨機焦距猜測,然后使用RANSAC-PnP根據猜測的焦距和全局點圖估計相機的旋轉和平移。RANSAC-PnP的離群點數量用于對每個猜測的焦距進行評分(越低越好),并選擇得分最高的焦距來計算相機的內參和外參矩陣。
????????表1中顯示了15°閾值下的相對旋轉精度RRA(預測的相機旋轉與真實旋轉之間的誤差小于15°的比例)和相對平移精度(RTA),30°閾值下的平均精度mAA(多個誤差閾值(通常從0°到30°)下的平均精度),以及模型的每秒幀數(FPS)。在Co3D數據集上,Fast3R在RRA和mAA指標上超越了所有其他方法,實現了接近完美的RRA,同時在RTA上保持競爭力。重要的是,速度比DUSt3R快200倍,比MASt3R快700倍。
????????圖4和圖5顯示,Fast3R的預測隨著視角數量的增加而改進,表明該模型能夠利用多張圖像的額外上下文信息。
4.3. 3D Reconstruction
????????在場景級基準測試(7-Scenes [47] 和 Neural RGB-D [3])以及物體級基準測試(DTU [1])上評估了Fast3R的三維重建性能。
????????使用ICP(迭代最近點算法)將每張圖像的局部點圖獨立對齊到全局點圖,并使用對齊后的局部點圖進行評估。Fast3R在與DUSt3R和MASt3R等其他點圖重建方法的比較中表現出了競爭力,同時速度顯著更快,如表3和表4所示。我們相信,隨著更好的重建數據、更多的計算資源以及更優的訓練策略,Fast3R的性能將進一步提升。
5. Conclusion
????????我們提出了Fast3R,這是一種能夠在單次前向傳播中直接預測所有像素在統一參考系中三維位置的Transformer模型。通過用端到端訓練的通用架構取代整個SfM(運動恢復結構)流程,Fast3R及類似方法有望受益于Transformer的常規擴展規律:隨著數據質量的提升和參數規模的增加,性能持續改進。由于Fast3R采用全局注意力機制,它避免了現有系統中因瓶頸而導致的兩個潛在人為擴展限制。首先,圖像對重建的瓶頸限制了模型可用的信息量。其次,成對全局優化只能部分彌補這一問題,且無法通過增加數據來改進。
????????通過我們的高效實現,Fast3R能夠以超過250 FPS的速度運行,并在一次前向傳播中處理1500張圖像,遠超其他方法,同時在三維重建和相機姿態估計基準測試中取得了具有競爭力的結果。另外,Fast3R繼承了未來工程改進的優勢,能夠高效地服務于和訓練基于Transformer的大型模型。例如,像Deepspeed-Inference [38]和FlashAttention [7, 8]這樣的工具包提供了融合內核、模型并行化和數據并行化功能。這些功能加速了推理并減少了內存需求,使每個設備能夠處理更多圖像,且圖像數量隨設備數量的增加而擴展。
????????Fast3R的架構允許并行處理多個視角,其位置嵌入設計使得在視角上下文長度上能夠實現“短訓練,長測試”。然而,我們觀察到,對于重建區域非常大的場景,當視角數量變得極端(例如超過200個)時,某些視角的點圖(特別是那些置信度得分較低的視角)開始表現出漂移行為。目前解決這一問題的一種方法是丟棄置信度得分較低的幀。在密集重建中,這種方法通常不會對重建質量造成太大影響。