【論文筆記】Fast3R:前向并行muti-view重建方法

????????眾所周知,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\sum來重建場景,不過這里的有兩類,一種是全局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個)時,某些視角的點圖(特別是那些置信度得分較低的視角)開始表現出漂移行為。目前解決這一問題的一種方法是丟棄置信度得分較低的幀。在密集重建中,這種方法通常不會對重建質量造成太大影響。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67750.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67750.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67750.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

本地部署DeepSeek教程(Mac版本)

第一步、下載 Ollama 官網地址:Ollama 點擊 Download 下載 我這里是 macOS 環境 以 macOS 環境為主 下載完成后是一個壓縮包,雙擊解壓之后移到應用程序: 打開后會提示你到命令行中運行一下命令,附上截圖: 若遇…

deepseek本地部署會遇到哪些坑

在本地部署DeepSeek(或其他類似AI模型)時,可能會遇到以下常見問題及解決方案: 1. 硬件資源不足 問題表現: GPU不兼容(如型號過舊)、顯存不足(OOM錯誤)或CPU模式性能極低。解決方案: 確認GPU支持CUDA,檢查顯存需求(如至少16GB顯存)。使用nvidia-smi監控顯存,通過降…

微機原理與接口技術期末大作業——4位搶答器仿真

在微機原理與接口技術的學習旅程中,期末大作業成為了檢驗知識掌握程度與實踐能力的關鍵環節。本次我選擇設計并仿真一個 4 位搶答器系統,通過這個項目,深入探索 8086CPU 及其接口技術的實際應用。附完整壓縮包下載。 一、系統設計思路 &…

解決國內服務器 npm install 卡住的問題

在使用國內云服務器時,經常會遇到 npm install 命令執行卡住的情況。本文將分享一個典型案例以及常見的解決方案。 問題描述 在執行以下命令時: mkdir test-npm cd test-npm npm init -y npm install lodash --verbose安裝過程會卡在這個狀態&#xf…

【Redis】Redis 經典面試題解析:深入理解 Redis 的核心概念與應用

Redis 是一個高性能的鍵值存儲系統,廣泛應用于緩存、消息隊列、排行榜等場景。在面試中,Redis 是一個高頻話題,尤其是其核心概念、數據結構、持久化機制和高可用性方案。 1. Redis 是什么?它的主要特點是什么? 答案&a…

昆侖萬維Java開發面試題及參考答案

進程和線程的區別是什么? 進程和線程都是操作系統中非常重要的概念,它們在多個方面存在顯著的區別。 從定義上看,進程是操作系統進行資源分配和調度的基本單位。每個進程都有自己獨立的內存空間,包括代碼段、數據段、堆棧段等。例如,當你在電腦上同時打開瀏覽器和音樂播放…

Visual Studio Code應用本地部署的deepseek

1.打開Visual Studio Code,在插件中搜索continue,安裝插件。 2.添加新的大語言模型,我們選擇ollama. 3.直接點connect,會鏈接本地下載好的deepseek模型。 參看上篇文章:deepseek本地部署-CSDN博客 4.輸入需求生成可用…

DeepSeek技術深度解析:從不同技術角度的全面探討

DeepSeek技術深度解析:從不同技術角度的全面探討 引言 DeepSeek是一個集成了多種先進技術的平臺,旨在通過深度學習和其他前沿技術來解決復雜的問題。本文將從算法、架構、數據處理以及應用等不同技術角度對DeepSeek進行詳細分析。 一、算法層面 深度學…

SpringBoot 整合 Mybatis:注解版

第一章&#xff1a;注解版 導入配置&#xff1a; <groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.1</version> </dependency> 步驟&#xff1a; 配置數據源見 Druid…

[Linux]如何將腳本(shell script)轉換到系統管理服務器(systemd service)來運行?

[InfluxDB]Monitor Tem. and Volt of RaspberryPi and Send Message by Line Notify 在Linux中&#xff0c;shell腳本(shell script)常用於運行各種自動化的流程&#xff0c;包含API串接&#xff0c;設置和啟動應用服務等等&#xff0c;腳本語法也相對易學易讀&#xff0c;因此…

2025年最新在線模型轉換工具優化模型ncnn,mnn,tengine,onnx

文章目錄 引言最新網址地點一、模型轉換1. 框架轉換全景圖2. 安全的模型轉換3. 網站全景圖 二、轉換說明三、模型轉換流程圖四、感謝 引言 在yolov5&#xff0c;yolov8&#xff0c;yolov11等等模型轉換的領域中&#xff0c;時間成本常常是開發者頭疼的問題。最近發現一個超棒的…

理解知識蒸餾中的散度損失函數(KLDivergence/kldivloss )-以DeepSeek為例

1. 知識蒸餾簡介 什么是知識蒸餾&#xff1f; 知識蒸餾&#xff08;Knowledge Distillation&#xff09;是一種模型壓縮技術&#xff0c;目標是讓一個較小的模型&#xff08;學生模型&#xff0c;Student Model&#xff09;學習一個較大、性能更優的模型&#xff08;教師模型…

Electron使用WebAassembly實現CRC-8 MAXIM校驗

Electron使用WebAssembly實現CRC-8 MAXIM校驗 將C/C語言代碼&#xff0c;經由WebAssembly編譯為庫函數&#xff0c;可以在JS語言環境進行調用。這里介紹在Electron工具環境使用WebAssembly調用CRC-8 MAXIM格式校驗的方式。 CRC-8 MAXIM校驗函數WebAssebly源文件 C語言實現CR…

Vue3.0實戰:大數據平臺可視化

文章目錄 創建vue3.0項目項目初始化項目分辨率響應式設置項目頂部信息條創建頁面主體創建全局引入echarts和axios后臺接口創建express銷售總量圖實現完整項目下載項目任何問題都可在評論區,或者直接私信即可。 創建vue3.0項目 創建項目: vue create vueecharts選擇第三項:…

vector容器(詳解)

本文最后是模擬實現全部講解&#xff0c;文章穿插有彩色字體&#xff0c;是我總結的技巧和關鍵 1.vector的介紹及使用 1.1 vector的介紹 https://cplusplus.com/reference/vector/vector/&#xff08;vector的介紹&#xff09; 了解 1. vector是表示可變大小數組的序列容器。…

Ubuntu 下 nginx-1.24.0 源碼分析 ngx_debug_init();

目錄 ngx_debug_init() 函數&#xff1a; NGX_LINUX 的定義&#xff1a; ngx_debug_init() 函數&#xff1a; ngx_debug_init() 函數定義在 src\os\unix 目錄下的 ngx_linux_config.h 中 #define ngx_debug_init() 也就是說這個環境下的 main 函數中的 ngx_debug_init() 這…

Airflow:深入理解Apache Airflow Task

Apache Airflow是一個開源工作流管理平臺&#xff0c;支持以編程方式編寫、調度和監控工作流。由于其靈活性、可擴展性和強大的社區支持&#xff0c;它已迅速成為編排復雜數據管道的首選工具。在這篇博文中&#xff0c;我們將深入研究Apache Airflow 中的任務概念&#xff0c;探…

開發環境搭建-4:WSL 配置 docker 運行環境

在 WSL 環境中構建&#xff1a;WSL2 (2.3.26.0) Oracle Linux 8.7 官方鏡像 基本概念說明 容器技術 利用 Linux 系統的 文件系統&#xff08;UnionFS&#xff09;、命名空間&#xff08;namespace&#xff09;、權限管理&#xff08;cgroup&#xff09;&#xff0c;虛擬出一…

JavaScript 基礎 - 7

關于JS函數部分的學習和一個案例的練習 1 函數封裝 抽取相同部分代碼封裝 優點 提高代碼復用性&#xff1a;封裝好的函數可以在多個地方被重復調用&#xff0c;避免了重復編寫相同的代碼。例如&#xff0c;編寫一個計算兩個數之和的函數&#xff0c;在多個不同的計算場景中都…

詳解u3d之AssetBundle

一.AssetBundle的概念 “AssetBundle”可以指兩種不同但相關的東西。 1.1 AssetBundle指的是u3d在磁盤上生成的存放資源的目錄 目錄包含兩種類型文件(下文簡稱AB包)&#xff1a; 一個序列化文件&#xff0c;其中包含分解為各個對象并寫入此單個文件的資源。資源文件&#x…