3D版DALL-E來了!谷歌釋出文字3D生成模型DreamFusion,zero-shot

編輯:LRS

【新智元導讀】給一個文字提示就能生成3D模型!

自從文字引導的

影象生成模型

火了以後,畫家群體迅速擴張,不會用畫筆的人也能發揮想象力進行藝術創作。

但目前的模型,如DALL-E 2, Imagen等仍然停留在

二維創作

(即圖片),無法生成360度無死角的

3D模型

3D版DALL-E來了!谷歌釋出文字3D生成模型DreamFusion,zero-shot

想要直接訓練一個

text-to-3D的模型

非常困難,因為DALL-E 2等模型的訓練需要吞噬數十億個影象-文字對,但

三維合成並不存在如此大規模的標註資料

,也沒有一個高效的模型架構對3D資料進行降

噪。

3D版DALL-E來了!谷歌釋出文字3D生成模型DreamFusion,zero-shot

最近Google研究員另闢蹊徑,提出一個新模型

DreamFusion

,先使用一個預訓練2D擴散模型基於文字提示

生成一張二維影象

,然後引入一個基於機率密度蒸餾的損失函式,透過梯度下降法最佳化一個隨機初始化的

神經輻射場NeRF模型

3D版DALL-E來了!谷歌釋出文字3D生成模型DreamFusion,zero-shot

論文連結:https://arxiv。org/abs/2209。14988

訓練後的模型可以在

任意角度

任意光照

條件、

任意三維環境

中基於給定的文字提示生成模型,整個過程

既不需要3D訓練資料

,也

無需修改影象擴散模型

,完全依賴預訓練擴散模型作為先驗。

從文字到3D模型

以文字為條件的生成性影象模型現在支援高保真、多樣化和可控的影象合成,高質量來源於大量對齊的影象-文字資料集和可擴充套件的生成模型架構,如擴散模型。

雖然二維影象生成的應用場景十分廣泛,但諸如遊戲、電影等數字媒體仍然需要成千上萬的詳細的三維資產來填充豐富的互動環境。

目前,3D資產的獲取方式主要由Blender和Maya3D等建模軟體手工設計,這個過程需要耗費大量的時間和專業知識。

2020年,神經輻射場(NeRF)模型釋出,其中體積光線追蹤器與從空間座標到顏色和體積密度的神經對映相結合,使得NeRF已經成為神經逆向渲染的一個重要工具。

最初,NeRF被發現可以很好地用於「經典」的三維重建任務:一個場景下的不同角度影象提供給一個模型作為輸入,然後最佳化NeRF以恢復該特定場景的幾何形狀,能夠從未觀察到的角度合成該場景的新檢視。

很多三維生成方法都是基於NeRF模型,比如2022年提出的Dream Fields使用預訓練的CLIP模型和基於最佳化的方法來訓練NeRF,直接從文字中生成3D模型,但這種方式生成的三維物體往往缺乏真實性和準確性。

3D版DALL-E來了!谷歌釋出文字3D生成模型DreamFusion,zero-shot

DreamFusion採用了與Dream Field類似的方法,但模型中的損失函式基於機率密度蒸餾,最小化基於擴散的前向過程的共享的高斯分佈族與預訓練的擴散模型所學習的分數函式之間的KL散度。

擴散模型是一個隱變數生成模型,學習如何逐步將一個樣本從簡單的噪聲分佈轉換到資料分佈。

3D版DALL-E來了!谷歌釋出文字3D生成模型DreamFusion,zero-shot

擴散模型的包括一個前向過程(forward process),緩慢地從資料中新增噪聲並移除結構,兩個時間步之間的過渡通常服從高斯分佈,並在反向過程(reverse process)或生成式模型中在噪聲上逐漸新增結構。

現有的擴散模型取樣方法產生的樣本與模型訓練的觀測資料型別和維度相同,儘管有條件的擴散取樣能夠實現相當大的靈活性,但在畫素上訓練的擴散模型傳統上只用來對畫素進行取樣。

但畫素取樣並不重要,研究人員只希望建立的三維模型在從隨機角度渲染時,看起來像是一張好的影象。

可微分影象引數化(DIP)允許模型表達約束條件,在更緊湊的空間中進行最佳化(例如任意解析度的基於座標的MLPs),或利用更強大的最佳化演算法來遍歷畫素空間。

對於三維來說,引數θ是三維體積的引數,可微生成器g是體積渲染器,為了學習這些引數,需要一個可以應用於擴散模型的損失函式。

文中採用的方法是利用擴散模型的結構,透過最佳化實現可操作的取樣,當損失函式最小化時生成一個樣本,然後對引數θ進行最佳化,使x=g(θ)看起來像凍結擴散模型的樣本。

為了進行這種最佳化,還需要一個可微的損失函式,其中可信的影象具有較低的損失,而不可信的影象有高的損失,與DeepDream的過程類似。

在實踐中,研究人員發現即使是在使用一個相同的DIP時,損失函式也無法生成現實的樣本。但同期的一項工作表明,這種方法可以透過精心選擇的時間步長來實現,但這個目標很脆弱,其時間步長的調整也很困難。

透過觀察和分解梯度可以發現,U-Net Jacobian項的計算成本很高(需要透過擴散模型U-Net進行反向傳播),而且對於小的噪聲水平來說條件很差,因為它的訓練目標為近似於邊際密度的縮放Hessian

3D版DALL-E來了!谷歌釋出文字3D生成模型DreamFusion,zero-shot

透過實驗,研究人員發現省略U-Net的Jacobian項可以帶來一個有效的梯度結果,能夠用於最佳化帶有擴散模型的DIPs

3D版DALL-E來了!谷歌釋出文字3D生成模型DreamFusion,zero-shot

直觀來看,這個損失用對應於時間步長的隨機數量的噪聲來擾動輸入資料,並估計出一個更新方向,該方向遵循擴散模型的得分函式,以移動到一個更高密度的區域。

3D版DALL-E來了!谷歌釋出文字3D生成模型DreamFusion,zero-shot

雖然這種用擴散模型學習DIP的梯度可能看起來很特別,但實驗結果表明更新方向確實是從擴散模型學到的得分函式中得到的加權機率密度蒸餾損失的梯度。

研究人員將該取樣方法命名為得分蒸餾取樣(Score Distillation Sampling, SDS),因為該過程與蒸餾有關,但使用的是得分函式而不是密度。

3D版DALL-E來了!谷歌釋出文字3D生成模型DreamFusion,zero-shot

下一步就是透過將SDS與為該3D生成任務定製的NeRF變體相結合,

DreamFusion可以為一組不同的使用者提供的文字提示生成了高保真的連貫的3D物體和場景。

文章中採用的預訓練擴散模型為Imagen,並且只使用解析度為64×64的基礎模型,並按原樣使用這個預訓練的模型,不做任何修改。

然後用隨機權重初始化一個類似於NeRF的模型,從隨機的相機位置和角度反覆渲染該NeRF的檢視,用這些渲染結果作為環繞Imagen的分數蒸餾損失函式的輸入。

3D版DALL-E來了!谷歌釋出文字3D生成模型DreamFusion,zero-shot

給出一個預訓練好的文字到影象的擴散模型,一個以NeRF形式存在的可w微分的影象引數化DIP,以及一個損失函式(最小值代表好樣本),這樣無三維資料的文字到三維合成所需的所有元件就齊活了。

對於每個文字提示,都從頭開始訓練一個隨機初始化的NeRF。

DreamFusion最佳化的每次迭代都包含四步:

1、隨機取樣一個相機和燈光

在每次迭代中,相機位置在球面座標中被隨機取樣,仰角範圍從-10°到90°,方位角從0°到360°,與原點的距離為1到1。5

同時還在原點周圍取樣一個看(look-at)的點和一個向上(up)的向量,並將這些與攝像機的位置結合起來,建立一個攝像機的姿勢矩陣。同時對焦距乘數服從U(0。7, 1。35)進行取樣,點光位置是從以相機位置為中心的分佈中取樣的。

使用廣泛的相機位置對合成連貫的三維場景至關重要,寬泛的相機距離也有助於提高學習場景的解析度。

2、從該相機和燈光下渲染NeRF的影象

考慮到相機的姿勢和光線的位置,以64×64的解析度渲染陰影NeRF模型。在照明的彩色渲染、無紋理渲染和沒有任何陰影的反照率渲染之間隨機選擇。

3、計算SDS損失相對於NeRF引數的梯度

通常情況下,文字prompt描述的都是一個物體的典型檢視,在對不同的檢視進行取樣時,這些檢視並不是最優描述。根據隨機取樣的相機的位置,在提供的輸入文字中附加與檢視有關的文字是有益的。

對於大於60°的高仰角,在文字中新增俯視(overhead view),對於不大於60°的仰角,使用文字embedding的加權組合來新增前檢視、側檢視 或 後檢視,具體取決於方位角的值。

4、使用最佳化器更新NeRF引數

3D場景在一臺有4個晶片的TPUv4機器上進行了最佳化,每個晶片渲染一個單獨的檢視並評估擴散U-Net,每個裝置的batch size為1。優化了15,000次迭代,大約需要1。5小時。

3D版DALL-E來了!谷歌釋出文字3D生成模型DreamFusion,zero-shot

實驗部分評估了DreamFusion從各種文字提示中生成連貫的3D場景的能力。

與現有的zero-shot文字到3D生成模型進行比較後可以發現,DreamFusion模型中能夠實現精確3D幾何的關鍵元件。

3D版DALL-E來了!谷歌釋出文字3D生成模型DreamFusion,zero-shot

透過對比DreamFusion和幾個基線的R-精度,包括Dream Fields、CLIP-Mesh和一個評估MS-COCO中原始字幕影象的oracle,可以發現DreamFusion在彩色影象上的表現超過了這兩個基線,並接近於ground-truth影象的效能。

3D版DALL-E來了!谷歌釋出文字3D生成模型DreamFusion,zero-shot

雖然Dream Fields的實現在用無紋理渲染評估幾何圖形(Geo)時表現得很好,但DreamFusion在58。5%的情況裡與標準一致。

3D版DALL-E來了!谷歌釋出文字3D生成模型DreamFusion,zero-shot

參考資料:

https://twitter。com/poolio/status/1575576632068214785?s=46&t=9pUi464Bkyw93WTGhU-cQg

https://dreamfusion3d。github。io/