只需400ms!英偉達提出LATTE3D:大規模高質量的Amortized文本到增強3D 合成
文章鏈接:https://arxiv.org/pdf/2403.15385
工程地址:https://research.nvidia.com/labs/toronto-ai/LATTE3D/
最近的文本到3D生成方法產生了令人印象深刻的3D結果,但需要對耗時進行優化,每個提示可能需要長達一小時。像ATT3D的Amortized方法同時優化多個提示以提高效率,實現了快速文本到3D合成。然而,它們無法捕獲高頻幾何和紋理細節,并且難以擴展到大型提示集,因此泛化能力較差。
本文介紹了Latte3D,解決了這些限制,實現了在顯著更大的提示集上快速生成高質量的結果。方法的關鍵在于:
- 構建了一個可擴展的架構
- 通過3D感知擴散先驗、形狀正則化和模型初始化,在優化過程中利用3D數據,實現對各種復雜訓練提示的魯棒性
Latte3D Amortizes了神經場和紋理表面生成,可以在單次前向傳遞中生成高度詳細的紋理網格。Latte3D在400ms內生成3D對象,并可以通過快速測試時優化進一步增強。
介紹
通過預訓練圖像擴散模型進行文本到3D合成的最新進展,標志著使用自然語言大眾化3D內容創作方面取得了重大進步。然而,這些方法通常涉及昂貴且耗時的優化,從文本提示生成單個3D對象可能需要長達一小時的時間。為了加速這些工具,需要一些技術來實時生成各種高質量的3D對象,從而實現對輸出的快速迭代,提升用戶在3D內容創作中的創造力。本文的目標是實現針對多樣化文本提示的實時文本到3D合成,并在需要進一步提升質量時支持快速的測試時間優化。
開創性工作[39]提出了使用分數蒸餾采樣(SDS)損失來優化神經場以生成3D資源。這解鎖了開放詞匯的3D內容創建,但存在以下問題:(a)缺乏高頻幾何和紋理細節,(b)成本高,(c)容易生成不符合預期的對象。后續研究引入了基于表面的微調階段來生成高頻細節。盡管這種兩階段流程定義了大多數當前最先進的文本到3D方法,但它仍然成本高且容易出現提示失敗。
ATT3D是第一個通過同時訓練單個模型處理一組提示的過程(稱為Amortized優化)來加速文本到3D生成的方法。Amortized通過優化一組提示上的共享文本條件模型來減少訓練時間,使模型能夠在推理時推廣到新的提示。盡管在精心策劃的提示上取得了有希望的結果,但ATT3D和基礎的逐提示方法仍然容易在一般提示上失敗。ATT3D的簡單架構容量有限,缺乏強大的歸納偏差用于3D生成,難以隨著數據集大小和渲染分辨率的增加而擴展,從而限制了該方法僅適用于小規模(100至1000個)提示集和低保真度的紋理。此外,ATT3D只Amortize 3D合成的第一階段,生成神經場表示,因此無法生成高頻細節。
為了解決這些問題,本文引入了Latte3D,一種大規模Amortized文本到增強3D合成的方法,可以實時生成高質量的3D內容。通過以下技術貢獻來提升文本到3D生成模型的質量、魯棒性、規模和速度:
- 提出了一種新穎的文本到3DAmortized架構,可以擴展到數量級更大的提示集。
- 利用3D數據進行訓練,通過3D感知擴散先驗、正則化損失和通過使用3D重建進行預訓練的權重初始化來提高質量和魯棒性。
- Amortized了基于表面的細化階段,極大地提升了質量。
相關工作
早期的3D對象合成工作通常局限于從給定類別中生成對象,例如汽車或椅子。最近的擴展使用帶標題的3D形狀來訓練文本到3D模型,生成來自不同類別的形狀,但需要3D監督,限制了它們在合成過程中使用合成數據集的大小、多樣性和視覺保真度。
可微分渲染的出現,無論是體積還是基于表面,打開了逆向圖像渲染的大門,解鎖了在3D合成過程中使用強大的文本到圖像生成模型。DreamFusion提出了使用SDS損失來優化神經場,使用文本到圖像擴散模型來生成3D資源。后續工作引入了基于表面的細化階段,允許合成高頻細節。這種兩階段優化流程現在定義了大多數最先進的文本到3D方法。
最近發布的大規模3D數據集Objaverse-XL促使研究人員探索在合成過程中使用3D監督的好處。到目前為止,最成功的方法使文本條件圖像擴散模型具有3D感知能力,通過使用渲染的多視圖圖像來微調2D擴散模型。然后使用多視圖擴散模型的SDS來獲取3D形狀。然而,這些方法需要冗長的逐提示優化過程,限制了其在實際內容創建中的適用性。
為了解決這個問題,人們進行了兩種類型的工作。第一種方法使用文本到圖像到3D的方法,通過使用文本到圖像擴散模型生成圖像,并訓練圖像到3D提升網絡。它們在速度上有所提高,但與優化方法相比,質量細節有限,但仍需要每個提示5-20秒的時間來從圖像擴散模型中進行采樣。
在另一種工作路線中,ATT3D提出了一種Amortized框架,可以同時優化多個提示的統一模型。后續工作擴展了網絡架構以獲得更好的質量。Latte3D擴展了這一工作路線,通過在訓練過程中引入3D知識來實現提示的魯棒性,以及其他設計改進,如更好的架構。Amortized式文本到3D提供了一種具有吸引力的質量與速度之間的權衡,因為它使用單個前向傳遞架構,而不需要對擴散模型進行采樣-見下圖2。
并行工作 同時,AToM還Amortized了兩階段訓練,采用三面圖表示,但他們使用DeepFloyd,并且不會擴展到ATT3D中數千個提示的較小集。相比之下,我們將規模擴展到約100,000個提示,使用了諸如MVDream之類的3D感知技術。ET3D的另一個并行工作通過訓練GAN模型實現了快速生成,但它僅在一個規模較小的構成性數據集上進行了訓練,該數據集包含5000個提示,并且僅顯示了類似ATT3D和AToM的構成性泛化結果。此外,它不保證視圖一致的3D輸出,因為它使用了2D神經上采樣器。最后,LGM同時在文本到圖像到3D方向上工作,可以在5秒內生成Gaussian splats,代表了最新的最先進技術。在實驗中將我們的方法與該方法進行了比較,并展示了競爭性能。
方法論
一個已建立的高質量文本到3D生成的流程包括兩個階段,每個階段都使用SDS損失和文本到圖像擴散模型進行逐提示優化。第一階段優化體積表示,通常是神經輻射場。通常使用粗分辨率來加快渲染速度。網格可以實現實時渲染,但僅通過圖像監督很難從頭開始進行優化。第二階段使用神經場的輸出來初始化有符號距離場(SDF)和紋理場,從中可以使用可微分等值面提取得到網格。然后,通過可微分光柵化對這種基于表面的表示進行優化,即使在1024渲染圖像分辨率下也很快,從而能夠從更高分辨率的文本到圖像擴散模型獲得監督。
ATT3D將神經場的優化Amortize到一組提示上,其中一個超網絡將文本提示映射到神經場,該超網絡在一個被稱為已見提示的提示集上使用SDS損失進行訓練。Latte3D引入了一種新的架構,Amortized了生成過程的兩個階段,旨在實時生成高質量的紋理網格。我們通過在Amortize循環中利用3D知識,將該方法擴展到數量級更大、更多樣化的提示集。
本文的方法如下圖4所示。通過一個重建預訓練步驟初始化Latte3D以穩定訓練。該架構由兩個網絡組成,一個用于幾何,另一個用于紋理。通過一個兩階段pipeline進行具有擴散先驗的Amortized模型訓練,包括基于體積的第一階段和基于表面的第二階段。為了協調重建預訓練(使用3D幾何作為輸入)與文本到3D生成的任務,我們在第一階段調整網絡的輸入,逐漸完全替換對3D輸入的依賴,使用單個虛擬輸入。在推理過程中,我們的模型僅通過文本提示在400ms內生成一個3D紋理網格,并允許選擇性的輕量級測試時間細化以增強幾何和紋理的質量)。
預訓練以重建形狀。
盡管SDS損失可以從頭開始合成與文本對齊的3D特征,但經驗上發現它由于高方差而不是一個穩健的監督來源。一個良好的初始化可以穩定優化過程。發現首先對模型進行預訓練,使其能夠編碼解碼3D形狀,可以更容易地使用Amortize SDS進行優化。通過在包含3D資源的數據集上對模型M進行預訓練,使用圖像重建損失,類似于[12]中使用的重建階段,并在下圖3中顯示了流程。
模型架構
模型M由兩個網絡組成,G和T,分別用于預測幾何和紋理。在預訓練之后,通過添加交叉注意力層引入了文本條件。使用CLIP embeddings來對文本提示p進行編碼。在第一階段訓練中,將幾何和紋理網絡的權重綁定在一起(除了單獨的MLP解碼器頭部),有效地訓練了一個單一的輸入編碼器。
在第二階段,凍結幾何網絡G,并使用額外的可訓練上采樣層對紋理網絡T進行細化。推理中使用的最終模型M是來自第一階段的凍結G和來自第二階段的經過細化的T。
幾何網絡G由三平面表示上的U-Net編碼器組成,后跟包含另一個三平面U-Net和神經體積密度場的解碼器,后者從三平面特征中預測輸出形狀。具體地,點云通過PointNet,并通過基于幾何投影到每個平面的平均散射將特征轉換為三平面表示。
在訓練過程中,點云來自3D數據,而在推理過程中,點云被一個球形點云的虛擬輸入替換。三平面表示通過編碼器和解碼器U-Net進行處理。Text embedding被饋送到編碼器中的每個殘差U-Net塊中,通過交叉注意力。對于3D空間中的任意點,通過投影到每個平面并雙線性插值特征圖來提取三平面特征。然后,一個MLP在該點預測密度值。
紋理網絡T和幾何網絡G在預訓練和第一階段中共享相同的編碼器和解碼器U-Net架構。使用另一個非共享的MLP神經紋理場來預測query點處的RGB值。在第二階段,將編碼器產生的三平面特征上采樣到更高分辨率,以獲得額外的容量來生成高頻紋理細節。具體來說,首先將潛在的三平面從128分辨率雙線性上采樣到480,然后添加一個殘差MLP,將text-embedding映射到三平面特征的殘差,模仿ATT3D的映射(超)網絡。解碼器然后以這個上采樣的三平面作為輸入。細節見附錄。
渲染。為了訓練模型,我們使用不同的方法將生成的3D對象渲染成2D圖像,在第一和第二階段使用不同的方法。在第一階段,輸出的3D幾何是基于三平面的神經場,使用來自VolSDF的公式進行體積渲染,以獲得256分辨率的圖像,允許通過近似的有符號距離場參數化密度,其zero-level集定義了對象的幾何形狀。這種選擇使得簡單地轉換為基于表面的渲染成為可能。對于幾何網絡,與表面渲染相比,使用SDS進行體積渲染的訓練更穩定。在第二階段,使用Marching Cubes從密度場中提取等值面,并通過光柵化渲染圖像。網格可以實時以1024圖像分辨率渲染,有助于捕捉更細的紋理細節。
Amortized學習
Amortized學習將圖像擴散先驗中的知識融入到我們的模型中。按順序對體積幾何訓練(第一階段)和表面紋理訓練(第二階段)進行Amortized訓練。通過以下方式將3D信息納入訓練過程中:
- 通過3D感知的2D SDS損失隱式地
- 顯式地進行正則化。
篩選提示集。使用基于規則的文本生成或ChatGPT創建大量的提示集進行訓練。對于前者,從Objaverse 的標題中開始,設計規則,比如“風格B的對象A正在做C”,并提供一組風格和活動。
或者,將標題輸入到ChatGPT中,并要求其提供詳細且多樣的提示,描述類似的3D對象。如前圖4所示,當生成“戴著禮帽的鉤針小螃蟹”,通過檢索與螃蟹相關的3D形狀,并將其用于正則化損失,引導形狀合成以使其更像螃蟹。
Amortized第一階段生成
在這個階段,使用我們的數據集對模型M進行訓練。使用SDS損失與3D感知2D先驗和與配對的3D形狀的正則化,詳細解釋一下:
3D感知SDS損失 在第一階段訓練中,利用一個3D感知擴散先驗,提供了更強的、多視角一致的監督信號。具體來說,使用了MVDream中的模型,該模型是通過修改Stable Diffusion 來生成多視角一致的圖像,對Objaverse數據集中的對象進行四次渲染視圖進行訓練的。
正則化損失 雖然使用MVDream的3D感知SDS損失提供了強大的多視角先驗,但對于一些提示,它仍然可能無法正確捕獲完整的3D幾何,因為MVDream僅監督四個視圖,并且可能會在形狀中創建放大的幾何或浮標。如下圖10右側所示,一些失敗案例。
將使用3D形狀的正則化與SDS損失相結合有助于訓練并改善幾何。如前圖4所示,對于每個訓練提示,我們通過比較其渲染的mask與從3D數據集中檢索的形狀s的mask來對輸出形狀o進行正則化。
輸入點云退火為了彌合訓練中實際點云輸入和推理中虛擬點云之間的差距,在第一階段的訓練過程中逐漸將輸入點云退火為虛擬點云。具體地,在最后5000個訓練迭代中線性增加一個概率,隨機地用虛擬點云中的點替換輸入點云中的子集。通過點云退火,當使用虛擬點云時,模型在推理過程中可以獲得更好的結果。
Amortized第二階段生成
在第二階段的訓練中,凍結了幾何網絡,并僅調整紋理,因為同時訓練兩者會導致不穩定性。使用深度條件的ControlNet來進行SDS引導,允許更高的512分辨率監督。深度條件鼓勵SDS損失指導紋理與幾何網絡中的幾何對齊,從而提高3D紋理的一致性。
推理
測試時間優化
本文的方法支持測試時間優化,如果用戶希望提高特定提示的質量。如果用戶的提示與已見提示顯著偏離,則這可能很有用。與第二階段訓練類似,凍結幾何并用深度條件的SDS引導微調紋理網絡T。與MVDream或其他基于優化的文本到3D方法相比,本文的測試時間優化收斂速度顯著更快,因為我們優化的是Amortized網絡而不是隨機初始化的網絡。
3D風格化
Latte3D還可以作為3D風格化方法進行訓練和部署,使用戶可以從現有的3D資源中廉價地創建變體。在訓練過程中,跳過輸入點云退火步驟,以保持對點云的依賴,并在一個數據集上Amortized,其中每個3D形狀對應于許多樣式提示。結合正則化和SDS引導的方式驅動模型產生結構上與原始形狀相似但語義上與樣式提示對齊的形狀。與分別優化每對形狀-提示相比,Amortized顯著降低了每對形狀-提示的計算成本。在推理過程中,可以將來自訓練集的點云與新的提示組合作為輸入,以產生原始形狀的變體。
實驗
首先,描述了實驗設置,包括數據集、指標和基線比較。然后,展示定量和定性結果,展示了Latte3D的性能和泛化能力,隨后是設計選擇的消融實驗。
實驗設置
現在討論數據集構建、模型預訓練和評估指標。
數據集
訓練集 為了研究Amortized優化的規模化,超出了先前工作的范圍,如下表1,構建了一個新的數據集 gpt-101k,其中包含 101k 個文本提示和 34k 個形狀。對于形狀,使用 Objaverse中的“lvis”子集,其中包含 50k 個經過人工驗證的形狀。濾除了質量較差的形狀,例如扁平圖像和掃描圖像,并保留了 34k 個形狀用于數據集。使用 ChatGPT 對每個對象的標題進行增強,以收集每個對象的 3 個提示。
評估集 使用兩個提示集進行評估。為了評估方法中Amortized優化的好處,在 gpt-101k 上評估模型。然而,由于運行基線的計算成本較高,從 gpt-101k 中隨機選擇了一個包含 50 個提示的子集,形成了用于基準測試的已見提示集。此外,為了評估Amortized模型的泛化能力,構建了一個未見提示集,通過篩選與 lvis 類別分布接近的 DreamFusion子集中的 67 個提示。
基線和評估方案
基線。將Latte3D與以下基線進行比較:ATT3D、MVDream、Instant3D和 LGM。重新實現了ATT3D],使用了超網絡。使用開源的threestudio實現了MVDream。對于MVDream,對每個3D模型進行了10000次迭代訓練,使用了單個A100 GPU,批量大小為8,并采用了提供的默認設置。由于Instant3D的源代碼尚未發布,我們使用了來自3DTopia1的重新實現。對于LGM,我們使用了官方開源實現。
評估指標。通過評估生成的3D內容的保真度以及其與文本提示的一致性來定量比較我們的模型與基線。使用三個指標來評估保真度。
- Render-FID:計算生成的3D內容的渲染圖像與從 Stable Diffusion 中采樣的圖像集之間的FID。該指標衡量生成的形狀與2D先驗中的形狀在視覺質量上的對齊程度。
- CLIP Score:計算文本提示與每個渲染圖像之間的平均CLIP分數,以指示生成的3D形狀與輸入文本提示的對齊程度。
- 用戶研究:通過Amazon Mechanical Turk用戶研究來評估整體3D幾何形狀和紋理。對于每個基線,將由我們的方法和一個基線生成的渲染3D形狀的視頻并排展示,同時呈現相應的文本提示,并詢問用戶的偏好。將每個比較呈現給三個用戶,并將用戶和提示的平均偏好進行平均,以獲取相對于Latte3D的每個基線的平均用戶偏好。
- 計時:通過每個提示的GPU時間來測量我們的優化成本,以評估每個提示的總計算成本。將預訓練、階段1和階段2的總掛鐘時間除以提示集的大小,然后乘以所使用的GPU數量。通過模型從接收文本輸入到輸出最終三平面特征之間所用的時間來衡量Instant3D、LGM和Latte3D的推理時間。對于MVDream,測量了在A100 GPU上優化單個提示的平均時間。
實驗結果
觀察到Latte3D在gpt-101k數據集上訓練后對未見提示(來自DreamFusion 的df)具有強大的泛化能力,這通過定性(下圖6)和定量(前圖2,下表2)結果得到了證明。在圖2中突出顯示了相對于不同基線的推理時間的Latte3D相對用戶偏好。Latte3D在獨特的快速推理時間內產生了與SOTA基線相競爭的結果。
在表2中的定量比較中,在已見和未見提示上的表現與基線相當,而推理時間至少快了一個數量級。注意到,從四個輸入視圖重建3D表示的3DTopia和LGM在基于圖像的指標(FID和CLIP分數)上具有優勢,因為它們傾向于產生從靜態圖像中不明顯的3D不一致結果。感興趣的讀者可以參考補充材料中所有方法的渲染視頻。
總優化成本 Amortized優化在許多提示上的好處是我們在 gpt-101k 上的總優化成本要比針對每個提示進行 MVDream 優化低得多。下圖7說明了為了達到與 Latte3D 相當的用戶偏好,MVDream 需要每個提示36個GPU分鐘,而 Latte3D 每個提示僅花費了215個GPU秒,代表了優化成本的10×降低。
應用
通過測試時間優化展示了 Latte3D 提升質量的能力,以及如何調整 Latte3D 來實現對 3D 內容的風格化。
逐個提示的測試時間優化
通過實驗證明 Latte3D 在測試時間內快速適應新的提示以提高質量。在下圖8中,對比了 Latte3D 的質量與多達 600 步的情況。
每次優化迭代在 A100 GPU 上平均需要 0.98 秒,使每個prompt的總計算預算不到 10 GPU 分鐘。即使進行了測試時間優化,我們的方法仍然比每個提示優化方法(如表2 中所示)快一個數量級。測試時間優化在未見提示上特別有益,其中 FID 降低了 11.6,而在已見提示上為 8.8,并且 CLIP 分數在未見提示上增加了 0.04,而在已見提示上為 0.02。
3D 內容風格化
說明了 Latte3D 架構如何為我們提供增強質量的靈活性,以及如何將其調整為定向 3D 內容風格化。為了測試這一點,手動策劃了一個基于 Objaverse 的 100 個動物形狀數據集,并將每個動物形狀名稱的物種名稱與活動(例如“滑板騎行”)和風格(例如“體素風格”)的組合相結合,以創建我們的 12000 個提示動物風格數據集。我們在動物風格上訓練了一個 Latte3D 模型(stage-1 和 stage-2),沒有點云退火階段。在下圖5中,每行包含給定不同提示的 Latte3D 輸出,同時固定點云輸入,展示了 Latte3D 在文本控制風格上的有效性。
在圖11中,進行了一項用戶研究,比較了 Latte3D 在動物風格上的輸出與 MVDream,并發現在進行了 4000 步優化的情況下,Latte3D 與 MVDream 競爭力相當,優化成本減少了 10×(與為每個提示運行 MVDream 相比)。
Latte3D 在動物風格上還可以推廣到包含動物活動和風格的保留組合,質量下降很小,這表明其與 MVDream 的相似相對偏好。因此,Latte3D 使用戶能夠通過Amortized優化廉價地創建其 3D 資源的變體,甚至在測試時間探索新的提示組合。附加的定量和定性結果可以在補充材料中找到。
消融研究
現在分析了在 Latte3D 中引入的每個組件的價值,附錄中有更多結果。
階段-1 消融。下表3 總結了我們對以下消融的定量比較:使用超網絡的 ATT3D 基線,ATT3D+MV 使用 MVDream 作為擴散引導。ATT3D+UNet+MV 用我們的模型架構替換超網絡,但是從頭開始初始化,并給予虛擬點云作為輸入。ATT3D+UNet+MV+PT 從重建預訓練(PT)模型初始化。引入了 Mask-FID 指標,以定量評估幾何形狀與形狀數據集的一致性,通過計算生成的形狀的渲染二值掩模與 3D 數據集的掩模之間的 FID。
發現引入的每個組件都提高了性能。比較 ATT3D 與 ATT3D+MV,看到使用 MVDream 引導的好處,因為它減輕了幾何圖形上的缺陷,比如Janus faces。比較 ATT3D+MV 與 ATT3D+UNet+MV,看到了我們的架構帶來的性能提升。此外,添加預訓練(ATT3D+UNet+MV+PT)有所幫助,特別是在恢復精細的幾何和紋理細節方面。最后,添加形狀正則化(完整的 Latte3D)使生成的幾何形狀更好地符合 3D 數據,這可以從 Mask-FID 的下降中看出。表3 中還展示了額外的用戶研究。我們將在附錄中展示收斂速度。
使用階段-2 細化的消融。階段-2 的細化可以大大提高紋理細節,超過階段-1 的訓練。在下圖9中展示了比較。
正則化 現在調查了在方程3 中如何加權 α 來平衡 SDS 損失和正則化損失的設計選擇。在表3中,展示了添加正則化損失如何改善定量結果。在下圖10,定性地對比了在不同固定權重下的訓練。通過增加形狀正則化的混合因子 α,看到與輸入形狀更一致的情況。
訓練中的退火和推理中的不同輸入點云 在訓練中,將來自數據集的檢索到的點云作為輸入,并將輸入退火成固定的虛擬點云。在推理中,只使用虛擬點云作為輸入。在下表4中,定量地消融了這個點云退火過程在 gpt-101k 上 LATTE3D 行為上的作用。
我們的模型在訓練時沒有退火,對點云輸入有些敏感。與在推理中使用檢索到的點云相比,在推理中使用虛擬點云時會有輕微的性能下降。然而,通過引入點云退火,使模型以虛擬輸入進行訓練,進而減小了性能差距。此外,在圖12中展示了定性結果,顯示點云退火在推理中使用虛擬輸入時會改善結果。
結論與局限性
本文提出了一種可擴展的方法來進行Amortized文本到增強型 3D 生成。為了成功將Amortized擴展到更大的數據集,我們通過以下方式利用了 3D 數據:
- 3D 感知的 2D SDS
- 預訓練
- 3D 正則化的Amortized過程
本文進一步改進了模型架構,使其更具可擴展性。模型在 400ms 內生成高質量的形狀。此外,通過快速的測試時間優化,質量和泛化能進一步提高。我們的模型也存在局限性。首先,模型使用了 SDS,因此依賴于對文本到圖像模型的理解,這些模型通常無法尊重諸如部件描述之類的細粒度細節。其次,幾何圖形在階段2 和測試時間優化中被凍結,因此階段1 中的幾何缺陷無法修復。為了穩定階段 2 中的幾何變化,開發Amortized訓練留待未來工作。
本文轉自 AI生成未來 ,作者:Tianshi Cao等
