谷歌重磅發布CAT3D:一分鐘搞定任意數量視圖到3D場景重建
論文鏈接:https://arxiv.org/pdf/2405.10314
項目鏈接:https://cat3d.github.io/
3D重建的進步使得高質量的3D捕捉成為可能,但需要用戶收集數百到數千張圖像來創建一個3D場景。本文提出了CAT3D,一種通過多視點擴散模型模擬這種現實世界捕捉過程的方法,可以在3D中創建任何東西。給定任意數量的輸入圖像和一組目標新視點,本文的模型生成高度一致的場景新視圖。這些生成的視圖可以作為輸入,用于穩健的3D重建技術,從而生成可以實時從任何視點渲染的3D representation。CAT3D可以在短至一分鐘內創建完整的3D場景,并且在單圖像和少視點3D場景創建方面優于現有方法。
我們先來一起看下建模效果吧
介紹
對3D內容的需求比以往任何時候都高,因為它對于實現游戲、視覺效果和可穿戴混合現實設備的實時交互至關重要。盡管需求很高,高質量的3D內容仍然相對稀缺。與可以輕松用消費級攝影設備捕捉的2D圖像和視頻不同,創建3D內容需要復雜的專業工具以及大量的時間和精力投入。
幸運的是,最近在攝影測量技術方面的進展大大提高了從2D圖像創建3D資產的可行性。方法如NeRF、Instant-NGP和Gaussian Splatting允許任何人通過拍攝真實場景的照片并優化該場景的底層3D幾何和外觀表示來創建3D內容。生成的3D representation可以從任何視角渲染,類似于傳統的3D資產。然而,不幸的是,創建詳細場景仍然需要一個勞動密集的過程,需要捕捉數百到數千張照片。對場景覆蓋不足的捕捉可能導致一個不適定的優化問題,通常會導致錯誤的幾何和外觀,并在從新視角渲染恢復的3D模型時產生不合理的圖像。
將這種要求從密集的多視角捕捉減少到較少的輸入,例如單張圖像或文本,將使3D內容創建更加便捷。先前的研究已經針對不同的輸入設置開發了專門的解決方案,例如針對稀疏視角重建的幾何規則化技術,訓練從單張圖像創建3D對象的前饋模型,或在優化過程中使用圖像條件或文本條件的生成先驗——但這些專門方法各自都存在質量、效率和通用性方面的限制。
本文集中研究限制已建立的3D重建方法在觀測受限環境中使用的基本問題:監督視圖數量不足。與其為不同的輸入情況設計專門的解決方案,一種共享的解決方案是簡單地創建更多的觀測 —— 將不太受約束的、不確定的3D創建問題轉化為完全約束、完全觀測的3D重建環境。通過這種方式,本文將一個困難的病態重建問題重新表述為一個生成問題:給定任意數量的輸入圖像,生成一組一致的新穎3D場景觀測。最新的視頻生成模型在應對這一挑戰方面顯示出希望,因為它們展示了合成具有合理3D結構的視頻片段的能力。然而,這些模型通常采樣成本高,難以控制,并且僅限于平滑且短的相機軌跡。
本文的系統CAT3D則通過專門為新視圖合成訓練的多視圖擴散模型實現這一目標。給定任意數量的輸入視圖和任意指定的新視點,本文的模型通過高效的并行采樣策略生成多個3D一致的圖像。隨后,這些生成的圖像通過一個強大的3D重建pipeline,生成一個可以從任何視點以交互速度渲染的3D representation。
本文展示了CAT3D模型能夠在不到一分鐘的時間內,從任意數量的捕獲或合成輸入視圖生成任意對象或場景的逼真效果。在各種輸入設置中評估了本文的工作,范圍從稀疏的多視圖捕獲到單個捕獲圖像,甚至僅僅是一個文本提示(通過使用文本到圖像模型從該提示生成一個輸入圖像)。在可測量任務(如多視圖捕獲案例)中,CAT3D在多個基準測試中優于之前的工作,并且速度比之前的最先進方法快一個數量級。對于經驗性能難以衡量的任務(如文本到3D和單圖像到3D),CAT3D在所有設置中都與之前的工作相比表現良好。
相關工作
從有限的觀測中創建完整的3D場景需要3D生成技術,例如在未見區域中創建內容,本文的工作建立在不斷增長的3D生成模型研究領域上。由于3D數據集相對稀缺,3D生成的許多研究集中在轉移從2D圖像空間先驗知識中學到的知識,因為2D數據是豐富的。
本文的擴散模型建立在最近的視頻和多視圖擴散模型的發展之上, 這些模型可以生成高度一致的新視圖。本文展示了將這些模型與3D重建配對(類似于[17, 58])可以實現高效且高質量的3D創建。
2D先驗。 給定有限的信息,例如文本,預訓練的文本到圖像模型可以為文本到3D生成提供強大的生成先驗。然而,將這些基于圖像的先驗知識提煉成一個連貫的3D模型,目前需要一種迭代提煉的方法。DreamFusion引入了評分提煉采樣(SDS)來從文本提示中合成3D對象(如NeRFs)。這一領域的研究旨在改進提煉策略,替換其他3D representation,并攤銷優化過程。使用基于文本的先驗進行單圖像到3D生成也顯示出希望,但需要在圖像觀測與附加約束之間進行復雜的平衡。結合單目深度模型或修復模型等先驗對于創建3D場景非常有用,但往往會導致較差的全局幾何。
基于攝像機條件的2D先驗。 雖然文本到圖像模型在生成視覺上吸引人的圖像方面表現出色,但它們在圖像姿態的精確控制方面存在不足,因此需要耗時的3D蒸餾過程來鼓勵3D模型符合2D先驗。為了克服這一限制,一些方法通過顯式圖像和姿態條件來訓練或微調生成模型。這些模型為給定文本和/或輸入圖像提供了更強的先驗,表明物體或場景應該是什么樣子,但它們也獨立地建模所有輸出視圖。在新視圖的外觀幾乎沒有不確定性的情況下,獨立地推理生成的視圖對于高效的3D重建是足夠的。但在存在一些不確定性的情況下,這些頂尖方法仍然需要昂貴的3D蒸餾來解決不同新視圖之間的不一致性。
多視圖先驗。 建模多個視圖之間的相關性可以提供更強的先驗,使得3D內容在部分觀測下保持一致性。像MVDream、ImageDream、Zero123++、ConsistNet、SyncDreamer和ViewDiff等方法通過微調文本到圖像模型來同時生成多個視圖。CAT3D在架構上類似于ImageDream,其中多視圖依賴性通過類似視頻擴散模型的架構和3D自注意力機制來捕捉。基于這種更強的先驗,這些論文還展示了更高質量和更高效的3D提取。
視頻先驗。 視頻擴散模型在生成逼真視頻方面展示了驚人的能力,并被認為能夠隱式推理3D。然而,出于多種原因,使用現成的視頻擴散模型進行3D生成仍然具有挑戰性。目前的模型缺乏精確的相機控制,限制了生成的片段只能包含平滑且短暫的相機軌跡,并且難以生成只有相機運動而沒有場景動態的視頻。
一些研究提出通過微調視頻擴散模型來解決這些挑戰,以實現相機控制或多視圖生成。例如,AnimateDiff使用固定類型的相機運動微調了一個視頻擴散模型,而MotionCtrl則基于任意指定的相機軌跡對模型進行了條件化。ViVid-1-to-3結合了一個新的視圖合成模型和一個視頻擴散模型,用于生成平滑的軌跡。SVD-MV、IM-3D和SV3D進一步探索了利用相機控制或多視圖視頻擴散模型進行3D生成。然而,它們的相機軌跡僅限于圍繞中心內容的軌道。這些方法主要關注3D對象生成,而不適用于3D場景、少視圖3D重建或上下文中的對象(即未被遮蔽或從圖像背景中分離的對象)。
前饋方法。 另一條研究方向是學習前饋模型,這些模型以少量視圖作為輸入,直接輸出3D representation,而無需針對每個實例進行優化過程。這些方法可以高效地生成3D representation(在幾秒鐘內),但其質量通常比基于圖像空間先驗的方法差。
方法
CAT3D 是一種兩步法的3D創建方法:首先,本文使用多視圖擴散模型生成與一個或多個輸入視圖一致的大量新視圖;其次,本文在生成的視圖上運行一個穩健的3D重建pipeline(見下圖3)。下面本文將描述本文的多視圖擴散模型、本文生成大量幾乎一致的新視圖的方法,以及這些生成的視圖如何在3D重建pipeline中使用。
多視圖擴散模型
本文訓練了一個多視圖擴散模型,該模型以單個或多個3D場景視圖作為輸入,并根據其相機姿態生成多個輸出圖像(其中“a view”是圖像和相機姿態的配對)。具體來說,給定包含個條件視圖的 張圖像 及其對應的相機參數 ,該模型學習捕捉N個目標圖像 的聯合分布,假設其 N 個目標相機參數 也已給定:
模型架構。 本文的模型架構類似于視頻潛在擴散模型(LDMs),但每個圖像使用相機姿態embedding而不是時間embedding。給定一組條件和目標圖像,模型通過圖像變分自動編碼器將每個圖像編碼為潛在表示。然后,訓練一個擴散模型以估計在給定條件信號下的潛在表示的聯合分布。本文從一個用于文本到圖像生成的LDM模型初始化,該模型類似于[62]在網絡規模圖像數據上訓練的LDM,輸入圖像分辨率為512×512×3,潛在表示的形狀為64×64×8。如同在視頻擴散模型中常見的做法[49, 10, 11],本文的模型主要骨干仍然是預訓練的2D擴散模型,但增加了連接多個輸入圖像潛在表示的層。
如同[43],本文使用3D自注意力(在空間上是2D,在圖像間是1D)代替簡單的跨圖像1D自注意力。本文在原始LDM的每個2D殘差塊之后直接膨脹現有的2D自注意力層,以連接潛在表示與3D自注意力層,同時繼承預訓練模型的參數,增加的模型參數量極少。本文發現,通過3D自注意力層對輸入視圖進行條件化可以消除之前狀態最先進模型在少視圖重建中使用的PixelNeRF和CLIP圖像embedding的需求,例如ReconFusion。本文使用FlashAttention 進行快速訓練和采樣,并微調潛在擴散模型的所有權重。
與之前的工作類似,本文發現從預訓練的圖像擴散模型到捕捉更高維度數據的多視圖擴散模型時,將噪聲調度向高噪聲水平轉移是重要的。具體來說,遵循與[67]類似的邏輯,本文將信噪比的對數按log(N)偏移,其中N是目標圖像的數量。在訓練中,目標圖像的潛在表示被噪聲擾動,而條件圖像的潛在表示保持干凈,并且擴散損失僅在目標圖像上定義。一個二進制 mask 沿通道維度連接到潛在表示,以表示條件圖像和目標圖像。為了處理多個3D生成設置,本文訓練了一個單一的多功能模型,可以建模總共8個條件和目標視圖(N + M = 8),并在訓練期間隨機選擇條件視圖數量N為1或3,分別對應7個和5個目標視圖。
攝像機條件。 為了根據攝像機姿態進行條件,本文使用了一種攝像機光線表示(“光線圖”),其高度和寬度與潛在表示相同,并在每個空間位置編碼光線的起點和方向。光線是相對于第一個條件圖像的攝像機姿態計算的,因此本文的姿態表示對3D世界坐標的剛性變換是不變的。每個圖像的光線圖按通道連接到相應圖像的潛在表示上。
產生新穎的觀點
給定一組輸入視圖,本文的目標是生成大量一致的視圖,以全面覆蓋場景并實現精確的3D重建。 為此,本文需要決定要采樣的攝像機姿態集,并設計一種采樣策略,該策略可以使用在少量視圖上訓練的多視圖擴散模型生成更大的一組一致視圖。
攝像機軌跡。 與軌道攝像機軌跡在3D對象重建中可以有效相比,3D場景重建的挑戰在于完全覆蓋一個場景所需的視角可能復雜且依賴于場景內容。本文通過實驗發現,為不同類型的場景設計合理的攝像機軌跡對于實現引人注目的少視角3D重建至關重要。攝像機路徑必須足夠徹底和密集,以完全約束重建問題,但也不能穿過場景中的物體或從不尋常的角度查看場景內容。總之,本文基于場景特征探索了四種類型的攝像機路徑:
- 圍繞中心場景的不同規模和高度的軌道路徑
- 不同規模和偏移的前向圓路徑
- 不同偏移的樣條路徑
- 沿著圓柱路徑的螺旋軌跡,進入和離開場景
?
生成大量合成視圖。 在將本文的多視圖擴散模型應用于新視角合成時的一個挑戰是,它是用有限的小集合輸入和輸出視圖進行訓練的——總共只有8個視圖。為了增加輸出視圖的總數,本文將目標視點聚類成較小的組,并在給定條件視圖的情況下獨立生成每個組。本文將攝像機位置接近的目標視圖分組,因為這些視圖通常是最具依賴性的。對于單圖像條件,本文采用自回歸采樣策略,首先生成一組覆蓋場景的7個錨點視圖(類似于[41],并使用[69]中的貪心初始化選擇),然后在給定觀察到的和錨點視圖的情況下并行生成剩余的視圖組。這使本文能夠高效地生成大量合成視圖,同時仍然保持錨點視圖之間的長距離一致性和相鄰視圖之間的局部相似性。對于單圖像設置,本文生成80個視圖,而對于少視角設置,本文使用480-960個視圖。
將較大集的輸入視圖和非正方形圖像進行條件化。 為了擴展本文可以進行條件化的視圖數量,本文選擇最近的M個視圖作為條件集,如[7]所述。本文嘗試通過在采樣過程中簡單地增加多視圖擴散架構的序列長度,但發現最近視圖條件化和分組采樣策略效果更好。 為了處理寬高比較大的圖像,本文將從正方形裁剪的輸入視圖中提取的正方形樣本與從填充為正方形的輸入視圖中裁剪的寬樣本結合起來。
魯棒的3D重建
本文的多視圖擴散模型生成了一組高質量的合成視圖,這些視圖在一定程度上相互一致。然而,生成的視圖通常并不是完全三維一致的。事實上,即使是當前最先進的視頻擴散模型,生成完全三維一致的圖像仍然是一個非常具有挑戰性的問題。由于三維重建方法設計時是以照片(按定義是完全一致的)作為輸入的,本文修改了標準的NeRF訓練過程,以提高其對不一致輸入視圖的魯棒性。
?
本文基于 Zip-NeRF 構建,其訓練過程最小化了攝影重建損失、畸變損失、層間損失和歸一化的 L2 權重正則化器的總和。本文另外在渲染圖像和輸入圖像之間加入了感知損失(LPIPS)。與攝影重建損失相比,LPIPS 強調渲染圖像和觀察圖像之間的高級語義相似性,同時忽略低級高頻細節中的潛在不一致性。由于生成的視圖越接近觀察到的視圖,其不確定性越小,因此一致性更高,本文根據生成視圖與最近觀察到的視圖之間的距離對其損失進行加權。這種加權在訓練開始時是均勻的,并逐漸退化為一種加權函數,對靠近觀察視圖的重建損失進行更強烈的懲罰。
實驗
本文在四個具有相機姿態標注的數據集上訓練了CAT3D核心的多視圖擴散模型:Objaverse、CO3D、RealEstate10k和 MVImgNet。然后,本文在少視圖重建任務和單圖像到3D任務上評估了CAT3D,展示了相較于之前工作的定性和定量改進。導致CAT3D設計選擇的消融實驗和進一步討論在本節中進行。
少視圖 3D 重建
本文首先在五個真實世界的基準數據集上評估CAT3D在少視圖3D重建任務中的表現。其中,CO3D和 RealEstate10K是分布內數據集,其訓練集的一部分用于本文的訓練集(本文使用它們的測試集進行評估),而 DTU、LLFF 和 mip-NeRF 360 數據集是分布外數據集,不在訓練數據集中。本文在3視圖、6視圖和9視圖重建任務上測試了CAT3D,使用與 [7] 相同的訓練和評估集劃分。在下表1中,本文與無學習先驗的密集視圖NeRF重建的最新方法(Zip-NeRF)以及大量利用生成先驗的方法(如 ZeroNVS和 ReconFusion )進行了比較。
本文發現,CAT3D在幾乎所有設置中都達到了最先進的性能,同時將生成時間從1小時(對于ZeroNVS和ReconFusion)減少到幾分鐘。CAT3D在更具挑戰性的數據集(如CO3D和mip-NeRF 360)上以更大的優勢超越了基線方法,從而展示了其在重建大型和高度詳細場景中的價值。下圖4顯示了定性比較。在未觀測區域,CAT3D能夠生成合理的紋理內容,同時保留輸入視圖的幾何和外觀,而之前的工作往往會產生模糊的細節和過度平滑的背景。
單幅圖像轉 3D
CAT3D支持從單個輸入視圖高效生成多樣的3D內容。在這種欠約束的情況下進行評估非常具有挑戰性,因為有許多與單個視圖一致的3D場景,例如不同尺度的場景。因此,本文將單圖像評估集中在定性比較(下圖5)和使用CLIP 進行的定量語義評估(下表2)上。
在場景方面,CAT3D生成的高分辨率結果比ZeroNVS和RealmDreamer更好,對于場景和物體,本文都能更好地保留輸入圖像的細節。在包含分割對象的圖像中,本文的幾何表現通常不如ImageDream和DreamCraft3D等現有方法,但保持了競爭力的CLIP得分。與這些在3D蒸餾中迭代利用生成先驗的方法相比,CAT3D的生成速度快了一個數量級以上。盡管已有針對物體的更快生成方法被提出,但它們的分辨率結果顯著低于其迭代對手,因此未被納入此次比較。IM-3D在分割對象上表現更好,且運行時間相似,但無法處理場景或上下文中的物體。
消融實驗
CAT3D的核心是一種多視圖擴散模型,該模型經過訓練能夠生成一致的新視圖。本文考慮了幾種不同的模型變體,并評估了它們在域內和域外數據集上的樣本質量以及少視圖3D重建性能。本文還比較了3D重建中的重要設計選擇。本文的消融研究結果參考下表3和圖6中報告,并總結如下。總體而言,本文發現視頻擴散架構結合3D自注意力(時空)和相機姿態的射線圖embedding,當與魯棒的重建損失結合時,能夠生成足夠一致的視圖以恢復3D representation。
在圖像和姿態的處理方面, 之前的工作使用了PixelNeRF的特征圖條件化來處理多個輸入視圖。本文發現,在條件視頻擴散架構中,用基于注意力的條件化替換PixelNeRF,并使用每個圖像的相機姿態embedding,可以改進樣本和3D重建,同時減少模型復雜性和參數數量。本文發現,將相機姿態embedding為低維向量(如[36]所述)在域內樣本上效果很好,但與射線圖條件化相比,泛化性能較差(詳見前文)。
增加視圖數量。 本文發現,聯合建模多個輸出視圖(即5個或7個視圖,而不是1個視圖)可以改進樣本指標——即使是評估每個輸出圖像質量的獨立指標也有所改進。聯合建模多個輸出視圖能夠生成更一致的視圖,從而也改進了3D重建的效果。
注意力層。 本文發現3D自注意力(時空)是至關重要的,因為它相對于因子化的2D自注意力(僅空間)和1D自注意力(僅時間)表現出更好的性能。雖然在最精細的特征圖(64 × 64)中使用3D自注意力的模型可以產生最高保真度的圖像,但它們在訓練和采樣過程中會產生顯著的計算開銷,而保真度的提升相對較小。因此,本文決定僅在尺寸為32 × 32及更小的特征圖中使用3D自注意力。
多視圖擴散模型訓練。 從預訓練的文本到圖像潛在擴散模型進行初始化,提高了在域外樣本上的表現。本文嘗試對多視圖擴散模型進行微調,使其適應特定數量的輸入和輸出視圖的多個變體,但發現一個單一模型在8幀圖像上聯合訓練,并使用1或3個條件視圖,就足以實現準確的單圖像和少視圖3D重建。
3D重建。 LPIPS損失對于實現高質量的紋理和幾何形狀至關重要,這與[17, 7]中的發現一致。在Mip-NeRF 360上,將生成的視圖數量從80(單橢圓軌道)增加到720(九個軌道)改善了中央物體的幾何形狀,但有時會引入背景模糊,這可能是由于生成內容的不一致性所致。
討論
本文介紹了CAT3D,一種從任意數量的輸入圖像生成3D內容的統一方法。 CAT3D利用多視圖擴散模型生成高度一致的3D場景新視圖,然后將這些視圖輸入到3D多視圖重建pipeline中。CAT3D將生成先驗與3D提取解耦,從而實現高效、簡單且高質量的3D生成。
盡管CAT3D在多個任務上產生了引人注目的結果并優于之前的工作,但它也存在一些限制。由于本文的訓練數據集對同一場景的視圖具有大致恒定的相機內參,訓練模型無法很好地處理由不同內參的多臺相機捕獲的測試案例。CAT3D的生成質量依賴于基礎文本到圖像模型的表達能力,對于基礎模型分布之外的場景內容,其表現較差。本文的多視圖擴散模型支持的輸出視圖數量仍然相對較少,因此當本文從模型生成大量樣本時,并非所有視圖都能在3D上保持一致。最后,CAT3D使用手動構建的相機軌跡來全面覆蓋場景,這對于大規模開放式3D環境可能難以設計。
未來工作中有幾個方向值得探索以改進CAT3D。多視圖擴散模型可能會受益于從預訓練的視頻擴散模型進行初始化,如[10, 17]所觀察到的。通過擴展模型處理的條件視圖和目標視圖數量,可以進一步提高樣本的一致性。自動確定不同場景所需的相機軌跡可以增加系統的靈活性。
本文轉自 AI生成未來 ,作者:Ruiqi Gao等
