【論文解讀】CVPR2024:DUSt3R: Geometric 3D Vision Made Easy

論文“”https://openaccess.thecvf.com/content/CVPR2024/papers/Wang_DUSt3R_Geometric_3D_Vision_Made_Easy_CVPR_2024_paper.pdf?

代碼:GitHub - naver/dust3r: DUSt3R: Geometric 3D Vision Made Easy


????????? ? DUSt3R是一種旨在簡化幾何3D視覺任務的新框架。作者著重于使3D重建過程更加易于使用和高效。該框架利用深度學習和幾何處理的最新進展,提高了準確性并降低了計算復雜性。?

1 摘要

????????本文提出了DUSt3R,一種無需相機校準或視點位置信息即可處理任意圖像集合的密集、無約束立體3D重建的全新范式。我們將成對重建問題視為點圖的回歸,放寬了傳統投影相機模型的硬約束。這種方法統一了單目和雙目重建案例。

????????在提供多于兩張圖像的情況下,我們進一步提出了一種簡單但有效的全局對齊策略,將所有成對點圖表達在一個共同的參考框架中。我們基于標準Transformer編碼器和解碼器的網絡架構,利用強大的預訓練模型。???????

????????我們的方法直接提供了場景的3D模型以及深度信息,并且可以從中無縫地恢復像素匹配、焦距、相對和絕對相機參數。在單目和多視圖深度估計以及相對姿態估計方面的廣泛實驗展示了DUSt3R如何有效地統一各種3D視覺任務,創造新的性能記錄。總而言之,DUSt3R使許多幾何3D視覺任務變得簡單。

圖1展示了DUSt3R的工作流程和重建效果。

  • 上半部分:DUSt3R以一組不受約束的圖像為輸入,輸出點圖(pointmaps),從這些點圖可以直接推導出各種幾何量。

  • 下半部分:展示了DUSt3R在沒有輸入相機位姿或內參的情況下進行的一致3D重建。從左到右依次是輸入圖像、彩色點云、帶有陰影的渲染。右上角的圖示例展示了DUSt3R在沒有視覺重疊的情況下也能進行場景重建。

2 主要貢獻

  1. 簡化的流程:DUSt3R將傳統的多步驟3D視覺流程簡化為一個更直接的過程。這種簡化有助于減少錯誤并提高可用性。
  2. 魯棒性:該框架在各種數據集和場景中表現出魯棒性,包括不同的光照條件和遮擋情況。
  3. 高效性:通過優化算法組件和實現方式,DUSt3R在不犧牲準確性的情況下,實現了顯著的計算效率提升。

3 核心算法:?

?????????DUSt3R算法結合了現代深度學習技術和傳統幾何方法,通過高效的點云生成和三維重建技術,提供高精度和高魯棒性的三維重建結果。?

4? DUSt3R網絡的架構及其主要組件

圖2展示了DUSt3R網絡的架構及其主要組件。這張圖形象地說明了網絡如何處理輸入的兩張RGB圖像(I1和I2),并生成對應的點云圖(Pointmap)和置信度圖(Confidence Map)。

網絡架構
  1. 輸入圖像

    輸入是兩張RGB圖像,分別表示為I1和I2。I1表示由第一個相機拍攝的圖像,I2表示由第二個相機拍攝的圖像。

  2. ViT編碼器(ViT Encoder)

    輸入圖像I1和I2首先經過一個共享權重的ViT編碼器進行特征提取。ViT編碼器是一種基于視覺Transformer(ViT)的模型,用于將圖像轉化為Token表示(Token Representation)。編碼后的特征表示分別為F1和F2。

  3. Patchify

    編碼器輸出的Token表示F1和F2會被劃分成小塊(Patchify),每個塊表示圖像的一部分。

  4. Transformer解碼器(Transformer Decoder)

    經過Patchify處理后的特征表示F1和F2分別輸入到兩個Transformer解碼器中,這兩個解碼器通過交叉注意力機制不斷交換信息。交叉注意力機制允許解碼器在解碼過程中綜合兩張圖像的信息,從而提高點云圖的精度。

  5. 回歸頭(Regression Head)

    Transformer解碼器的輸出結果傳遞給兩個回歸頭,分別對應輸入的兩張圖像。回歸頭負責生成最終的點云圖(X1,1和X2,1)和置信度圖(C1,1和C2,1)。

  6. 輸出

    最終輸出的點云圖(X1,1和X2,1)和置信度圖(C1,1和C2,1)都以第一張圖像(I1)的坐標系為基準。這種設計簡化了后續的處理步驟,使得點云圖可以直接在同一坐標系下進行操作和分析。

訓練過程
  • 損失函數
    • 網絡使用簡單的回歸損失函數(公式4)進行訓練。損失函數基于預測的點云圖和真實點云圖之間的歐幾里得距離進行計算。
    • 為了應對尺度模糊性,網絡對預測和真實的點云圖進行歸一化處理,通過計算所有有效點到原點的平均距離來確定縮放因子。
    • 網絡還會學習為每個像素預測一個置信度分數,這個置信度分數表示網絡對該像素預測的可靠程度。最終的訓練目標是置信度加權的回歸損失。

5 實驗評估

5.1 無地圖視覺定位

????????數據集:使用了Map-free relocalization benchmark,這是一項非常具有挑戰性的測試,其中目標是在沒有地圖的情況下,僅憑一張參考圖像確定相機在公制空間中的位置。測試集包括65個驗證場景和130個測試場景。每個場景中,每幀視頻剪輯的姿勢必須相對于單個參考圖像獨立估計。

????????協議:評價標準包括絕對相機姿態準確性(以5°和25厘米為閾值)和虛擬對應重投影誤差(VCRE),后者測量虛擬3D點根據真實和估計相機姿態重投影誤差的平均歐氏距離。

結果:DUSt3R在測試集上的表現優于所有現有方法,有時優勢顯著,定位誤差小于1米。

5.2 恢復未知相機內參

????????數據集:使用了BLUBB數據集來評估DUSt3R在沒有內參信息的情況下恢復相機內參的能力。數據集提供了一系列場景,每個場景都具有已知的地面真實相機內參和3D點云。

????????協議:評價標準包括相機內參的準確性和重建的3D點云的完整性。DUSt3R通過估計場景的相對姿態和尺度,結合已知的地面真實3D點云來恢復內參。

????????結果:在沒有先驗相機信息的情況下,DUSt3R達到了平均2.7毫米的準確性,0.8毫米的完整性,總體平均距離為1.7毫米。這個精度水平在實際應用中非常有用,考慮到其即插即用的特性。

5.3 總結

????????DUSt3R在多個3D視覺任務中展示了其卓越的性能,無需對特定下游任務進行微調。該模型在零樣本設置下取得了令人印象深刻的結果,特別是在無地圖視覺定位和未知相機內參恢復任務中表現出色。實驗結果表明,DUSt3R不僅適用于3D重建任務,還能有效處理各種3D視覺任務,展示了其廣泛的應用潛力和實際使用價值。

5.4 可視化

????????論文包含了大量可視化內容,有助于理解概念和結果。這些包括流程圖、架構細節和重建3D模型的視覺比較。

圖3展示了兩個場景的重建例子,這兩個場景在訓練期間從未見過。圖像從左到右依次是:RGB圖像、深度圖、置信度圖和重建結果。以下是對每部分的詳細解析:

  1. RGB圖像:

    • 這是輸入的彩色圖像,為網絡提供了豐富的紋理和顏色信息,幫助進行3D重建。
  2. 深度圖:

    • 這是網絡預測的深度圖,表示場景中每個像素到相機的距離。深度值越大,像素點離相機越遠。深度圖為重建提供了基礎的幾何信息。
  3. 置信度圖:

    • 置信度圖表示網絡對每個像素深度預測的信心。高置信度區域通常表示預測較為準確的區域,而低置信度區域可能包含難以預測的部分,如天空、透明物體或反光表面。
  4. 重建結果:

    • 左邊的場景顯示了直接從網絡f(I1, I2)輸出的原始結果。可以看到,網絡已經能夠較為準確地重建場景的3D形狀。
    • 右邊的場景顯示了經過全局對齊(第3.4節)的結果。全局對齊步驟進一步優化了重建結果,使其更加精確和一致。

通過展示這些結果,圖3強調了DUSt3R方法在不同場景中的魯棒性和有效性,尤其是其在未見過的場景中的表現。此外,置信度圖的引入使得網絡能夠在不確定區域進行自適應調整,提高了重建的整體質量。

結論

????????DUSt3R在幾何3D視覺領域提供了顯著的進步。其簡化流程、結合魯棒性和高效性,使其成為計算機視覺研究人員和從業者的寶貴工具。詳細的實驗評估和全面的可視化進一步加強了論文的貢獻。

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

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

相關文章

Docker的架構原理

例子可以想象成一個買手機的場景 clien可以想象 你個人 docker deamon :店員 images: 樣機 regisitry: 手機倉庫 container: 使用的手機 首先我要在店員買一個手機,店員發現是樣機,但是倉庫有,&…

【SpringBoot3】使用Jasypt加密數據庫用戶名、密碼等敏感信息

一、使用步驟介紹 使用Jasypt(Java Simplified Encryption)進行數據加密和解密主要涉及幾個步驟,包括引入依賴、配置加密密碼、加密敏感信息、將加密信息存儲到配置文件中,以及應用程序啟動時自動解密。以下是詳細的使用說明&…

11 docker安裝redis

目錄 安裝redis 1. 配置redis配置文件redis.conf 1.1. 找到redis.conf文件 1.2. 配置文件 2. 啟動容器 3. 測試redis-cli連接 4. 證明docker使用的是指定的配置文件 安裝redis 1. 配置redis配置文件redis.conf 1.1. 找到redis.conf文件 宿主機創建目錄/app/redis在/a…

WebXR:Web上的虛擬與增強現實技術

WebXR 是一種允許在網頁上創建虛擬現實 (VR) 和增強現實 (AR) 體驗的技術標準,它結合了WebVR和WebAR的概念,為開發者提供了一個統一的平臺來開發跨平臺的沉浸式Web應用。 WebXR 概述 什么是WebXR? WebXR API 旨在讓瀏覽器成為VR和AR內容的平…

雙非怎么進大廠?

https://www.nowcoder.com/share/jump/2764630231719583704126 大家好,我是白露啊。 今天我們要分享一個非常勵志的故事,它證明了雙非背景的畢業生也可以通過努力和堅持,進入夢想中的大廠。 下面是這位網友的真實經歷,希望能為正…

泰安再見,泰山OFFICE還會再見

路過泰安,遇見彩虹。懷念和感恩在泰山信息科技的萬丈豪情。 泰山OFFICE,還是要復活。

JavaScript Set新增7個方法操作集合

intersection() intersection () 它返回一個包含此集合和給定集合中所有元素的新集合。 const odds new Set([1, 3, 5, 7, 9]);const squares new Set([1, 4, 9]);console.log(odds.intersection(squares)); // Set(2) { 1, 9 }union() union () 它返回一個包含此集合中所有元…

提升Android Studio開發體驗:使用Kelp插件實現顏色和圖標預覽

提升Android Studio開發體驗:使用Kelp插件實現顏色和圖標預覽 在Android開發中,自動補全功能對于提高開發效率至關重要。然而,默認的Android Studio并不能預覽顏色和圖標,這使得開發者在選擇資源時常常感到困惑。本文將介紹如何使…

【C語言小知識】備選拼寫:iso646.h頭文件

備選拼寫:iso646.h頭文件 C語言中有3種邏輯運算符: 邏輯運算符含義&&與||或!非 假設exp1和exp2是倆個簡單的關系表達式,那么 當且僅當exp1和exp2都為真時,exp1 && exp2才為真。如果exp1或exp2為真,…

【學習筆記】Fréchet距離的 C 語言實現

Frchet 距離 Frchet 距離,又稱為弗雷歇距離,是一種衡量兩條曲線(或兩個路徑)之間相似性的度量方法。這個概念最初在度量空間理論中被定義,后來被廣泛應用于計算機科學、地理信息系統、圖像處理、生物信息學等多個領域…

使用Python實現深度學習模型:遷移學習與領域自適應教程

引言 遷移學習和領域自適應是深度學習中的兩個重要概念。遷移學習旨在將已在某個任務上訓練好的模型應用于新的任務,而領域自適應則是調整模型以適應不同的數據分布。本文將通過一個詳細的教程,介紹如何使用Python實現遷移學習和領域自適應。 環境準備…

Visual Studio常見問題

VS的文件路徑為什么要用雙斜杠(\)? 答:在編程時,寫入文件的路徑如image = cvLoadImage("C:\Users\lyb\Documents),這種寫法在編譯時不會報錯,但在運行時會報錯,報錯圖像讀入為空,這是因為Windows的路徑雖然用的是單斜杠,但在編程時的意義是不同的,單斜杠“\”…

Go語言中的可變參數:靈活而強大的函數參數

Go語言中的可變參數:靈活而強大的函數參數 在Go語言中,可變參數是一種非常有用的特性,它允許函數接受任意數量的參數。這種靈活性使得函數可以更加通用和可復用。本文將深入探討Go語言中可變參數的用法、原理和最佳實踐。 什么是可變參數? 可變參數允許你傳遞零個或多個值給…

LNMP架構搭建Discuz論壇

LNMP架構是一種用于搭建Web服務器環境的常用架構,由Linux、Nginx、MySQL和PHP組成 組成功能Linux作為操作系統的基礎,提供穩定的環境Nginx作為反向代理服務器,處理客戶端的請求并將他們轉發給后端的應用服務器MySQL作為關系型數據庫管理系統…

7.2 數據結構

作業 #include <stdio.h> #include <string.h> #include <stdlib.h> struct student {char name[32];int age;double score; }s[3];void stu_input(struct student *s,int n) {printf("請輸入%d個學生的信息&#xff08;姓名&#xff0c;年齡&#xff0…

【服裝識別系統】圖像識別+Python+人工智能+深度學習+算法模型+TensorFlow

一、介紹 服裝識別系統&#xff0c;本系統作為圖像識別方面的一個典型應用&#xff0c;使用Python作為主要編程語言&#xff0c;并通過TensorFlow搭建ResNet50卷積神經算法網絡模型&#xff0c;通過對18種不同的服裝&#xff08;‘黑色連衣裙’, ‘黑色襯衫’, ‘黑色鞋子’, …

Python機器學習實戰:利用決策樹算法預測鳶尾花種類

引言 在人工智能領域&#xff0c;機器學習作為一種強大的工具正在改變我們對數據的認知和處理方式。Python因其豐富的機器學習庫和直觀易用的特性&#xff0c;成為了眾多開發者首選的語言。本篇文章將帶領大家深入了解如何運用Python中的scikit-learn庫來構建決策樹模型&#…

關系型數據庫和矢量數據庫分別適用于哪些領域?

關系型數據庫和矢量數據庫分別適用于哪些領域&#xff1f; 李升偉 關系型數據庫適用于以下領域&#xff1a; 1. 金融行業&#xff1a;如銀行的交易處理、賬戶管理等&#xff0c;對數據的一致性和事務處理要求極高。 2. 企業資源規劃&#xff08;ERP&#xff09;&#xff1a…

Meta 發布 Meta 3D Gen 文本生成3D模型

Meta推出了 Meta 3D Gen &#xff08;3DGen&#xff09;&#xff0c;這是一種用于文本到 3D 資產生成的最先進的快速管道。3DGen 可在一分鐘內提供具有高提示保真度和高質量 3D 形狀和紋理的 3D 資產創建。 它支持基于物理的渲染 &#xff08;PBR&#xff09;&#xff0c;這是…

網口串口(Serialport)服務器

文章所用工具http://t.csdnimg.cn/2gIR8http://t.csdnimg.cn/2gIR8 搭建服務器界面 操作配置文件保存方式類 public string FileName { get; set; }public IniHelper(string name) {this.FileName name; //在構造函數中給路徑賦值} 1 先導入c語言進行讀取操作ini文件的方法 …