彌合2D和3D生成領域之間的次元壁,X-Dreamer實現高質量的文本到3D生成
近年來,在預訓練的擴散模型 [1, 2, 3] 的開發推動下,自動 text-to-3D 內容創建取得了重大進展。其中,DreamFusion [4] 引入了一種有效的方法,該方法利用預訓練的 2D 擴散模型 [5] 從文本中自動生成 3D 資產,從而無需專門的 3D 資產數據集。
DreamFusion 引入的一項關鍵創新是分數蒸餾采樣 (SDS) 算法。該算法利用預訓練的 2D 擴散模型對單個 3D 表示進行評估,例如 NeRF [6],從而對其進行優化,以確保來自任何攝像機視角的渲染圖像與給定文本保持較高的一致性。受開創性 SDS 算法的啟發,出現了幾項工作 [7,8,9,10,11],通過應用預訓練的 2D 擴散模型來推進 text-to-3D 生成任務。
雖然 text-to-3D 的生成通過利用預訓練的 text-to-2D 的擴散模型已經取得了重大進展,但是 2D 圖像和 3D 資產之間仍存在很大的領域差距。這種區別在圖 1 中清楚地展示出來。
首先,text-to-2D 模型產生與相機無關的生成結果,專注于從特定角度生成高質量圖像,而忽略其他角度。相比之下,3D 內容創建與相機參數 (如位置、拍攝角度和視場) 錯綜復雜地聯系在一起。因此,text-to-3D 模型必須在所有可能的相機參數上生成高質量的結果。
此外,text-to-2D 生成模型必須同時生成前景和背景元素,同時保持圖像的整體連貫性。相反,text-to-3D 生成模型只需要集中在創建前景對象上。這種區別允許 text-to-3D 模型分配更多的資源和注意力來精確地表示和生成前景對象。因此,當直接采用預訓練的 2D 擴散模型進行 3D 資產創建時,text-to-2D 和 text-to-3D 生成之間的域差距構成了顯著的性能障礙。
圖 1 text-to-2D 生成模型 (左) 和 text-to-3D 生成模型 (右) 在同一文本提示下的輸出,即 "A statue of Leonardo DiCaprio's head.”。
為了解決這個問題,論文提出了 X-Dreamer,這是一種用于高質量 text-to-3D 內容創建的新穎方法,可以有效地彌合 text-to-2D 和 text-to-3D 生成之間的領域差距。
X-Dreamer 的關鍵組成部分是兩種創新設計: Camera-Guided Low-Rank Adaptation (CG-LoRA) 和 Attention-Mask Alignment (AMA) 損失。
首先,現有方法 [7,8,9,10] 通常采用 2D 預訓練擴散模型 [5,12] 來進行 text-to-3D 生成,缺乏與相機參數的固有聯系。為了解決此限制并確保 X-Dreamer 產生直接受相機參數影響的結果,論文引入了 CG-LoRA 來調整預訓練的 2D 擴散模型。值得注意的是,在每次迭代期間 CG-LoRA 的參數都是基于相機信息動態生成的,從而在 text-to-3D 模型和相機參數之間建立魯棒的關系。
其次,預訓練的 text-to-2D 擴散模型將注意力分配給前景和背景生成,而 3D 資產的創建需要更加關注前景對象的準確生成。為了解決這一問題,論文提出了 AMA 損失,使用 3D 對象的二進制掩碼來指導預訓練的擴散模型的注意力圖,從而優先考慮前景對象的創建。通過合并該模塊,X-Dreamer 優先考慮前景對象的生成,從而顯著提高了生成的 3D 內容的整體質量。
項目主頁:
https://xmu-xiaoma666.github.io/Projects/X-Dreamer/
Github主頁:https://github.com/xmu-xiaoma666/X-Dreamer
論文地址:https://arxiv.org/abs/2312.00085
X-Dreamer 對 text-to-3D 生成領域做出了如下貢獻:
- 論文提出了一種新穎的方法,X-Dreamer,用于高質量的 text-to-3D 內容創建,有效地彌合了 text-to-2D 和 text-to-3D 生成之間的主要差距。
- 為了增強生成的結果與相機視角之間的對齊,論文提出了 CG-LoRA,利用相機信息來動態生成 2D 擴散模型的特定參數。
- 為了在 text-to-3D 模型中優先創建前景對象,論文引入了 AMA 損失,利用前景 3D 對象的二進制掩碼來引導 2D 擴散模型的注意圖。
方法
X-Dreamer 包括兩個主要階段:幾何學習和外觀學習。對于幾何學習,論文采用 DMTET 作為 3D 表示,并利用 3D 橢球對其進行初始化,初始化時的損失函數采用均方誤差 (MSE) 損失。隨后,論文使用分數蒸餾采樣 (SDS) 損失和論文提出的 AMA 損失來優化 DMTET 和 CG-LoRA,以確保 3D 表示和輸入文本提示之間的對齊。
對于外觀學習,論文利用雙向反射分布函數 (BRDF) 建模。具體來說,論文利用具有可訓練參數的 MLP 來預測表面材料。類似于幾何學習階段,論文使用 SDS 損失和 AMA 損失來優化 MLP 和 CG-LoRA 的可訓練參數,以實現 3D 表示和文本提示之間的對齊。圖 2 展示了 X-Dreamer 的詳細構成。
圖 2 X-Dreamer 概覽,包括幾何學習和外觀學習。
幾何學習 (Geometry Learning)
在此模塊中,X-Dreamer 利用 MLP 網絡將 DMTET 參數化為 3D 表示。為了增強幾何建模的穩定性,本文使用 3D 橢球體作為 DMTET
的初始配置。對于屬于四面體網格
的每個頂點
,本文訓練
來預測兩個重要的量:SDF 值
和變形偏移量
。為了將
初始化為橢球體,本文采樣了均勻分布在橢球體內的 N 個點,并計算相應的 SDF 值
。隨后,利用均方誤差(MSE)損失來優化
。該優化過程確保
有效地初始化 DMTET,使其類似于 3D 橢球體。MSE 損失的公式如下:
初始化幾何圖形后,將 DMTET 的幾何圖形與輸入文本提示對齊。具體的操作方法是通過使用差分渲染技術,在給定隨機采樣的相機姿勢 c 的情況下,從初始化的 DMTET生成法線映射 n 和對象的掩碼 m 。隨后,將法線映射 n 輸入到具有可訓練 CG-LoRA 嵌入的凍結的 Stable Diffusion 模型(SD)中,并使用 SDS 損失更新
中的參數,定義如下:
其中,表示 SD 的參數,
為在給定噪聲水平 t 和文本嵌入 y 的情況下的 SD 的預測噪聲。此外,
,其中
表示從正態分布采樣的噪聲。
、
和
的實現基于 DreamFusion [4]。
此外,為了將 SD 集中于生成前景對象,X-Dreamer 引入了額外的 AMA 損失,以將對象掩碼 與 SD 的注意力圖對齊,如下所示:
其中表示注意力層的數量,
是第 i 個注意力層的注意力圖。函數
用于調整渲染出來的 3D 對象掩碼的大小,確保它的尺寸與注意力圖的尺寸對齊。
外觀學習 (Appearance Learning)
在獲得 3D 對象的幾何結構后,本文的目標是使用基于物理的渲染(PBR)材料模型來計算 3D 對象的外觀。材料模型包括擴散項,粗糙度和金屬項
,以及法線變化項
。對于幾何體表面上的任一點
,利用由參數化的多層感知機(MLP)來獲得三個材料項,具體可以表示如下:
其中,表示利用哈希網格技術進行位置編碼。之后,可以使用如下公式計算渲染圖像的每個像素:
其中,表示從方向
渲染 3D 物體表面的點
的像素值。
表示由滿足條件
的入射方向集合
定義的半球,其中
表示入射方向,
表示點
處的表面法線。
對應于來自現成環境圖的入射光,
是與材料特性(即
)相關的雙向反射分布函數 (BRDF)。通過聚合所有渲染的像素顏色,可以獲得渲染圖像
。與幾何學習階段類似,將渲染圖像
輸入 SD,利用 SDS 損失和 AMA 損失優化
。
Camera-Guided Low-Rank Adaptation (CG-LoRA)
為了解決 text-to-2D 和 text-to-3D 的生成任務之間存在的領域差距而導致的次優的 3D 結果的生成,X-Dreamer 提出了 Camera-Guided Low-Rank Adaptation。
如圖 3 所示,利用攝像機參數和方向感知文本來指導 CG-LoRA 中參數的生成,使 X-Dreamer 能夠有效地感知攝像機的位置和方向信息。
圖 3 攝像機引導的 CG-LoRA 示意。
具體的,給定文本提示和相機參數
,首先使用預訓練的文本 CLIP 編碼器
和可訓練的 MLP
,將這些輸入投影到特征空間中:
其中,和
分別是是文本特征和相機特征。之后,使用兩個低秩矩陣將
和
投影到 CG-LoRA 中的可訓練降維矩陣中:
其中,和
是 CG-LoRA 的兩個降維矩陣。函數
用于將張量的形狀從變換為
。
和
是兩個低秩矩陣。因此,可以將它們分解為兩個矩陣的乘積,以減少實現中的可訓練參數,即
;
,其中
,
,
,
,
是一個很小的數字(如:4)。根據 LoRA 的構成,將維度擴展矩陣
初始化為零,以確保模型開始使用 SD 的預訓練參數進行訓練。因此,CG-LoRA 的前饋過程公式如下:
其中, 表示預訓練的 SD 模型的凍結參數,
是級聯運算。在本方法的實現中,將 CG-LoRA 集成到 SD 中注意力模塊的線性嵌入層中,以有效地捕捉方向和相機信息。
Attention-Mask Alignment Loss (AMA Loss)
SD 被預訓練以生成 2D 圖像,同時考慮了前景和背景元素。然而,text-to-3D 的生成需要更加重視前景對象的生成。鑒于這一要求,X-Dreamer 提出了 Attention-Mask Alignment Loss(AMA 損失),以將 SD 的注意力圖與 3D 對象的渲染的掩碼圖像對齊。具體的,對于預訓練的 SD 中的每個注意力層,本方法使用查詢圖像特征和關鍵 CLS 標記特征
來計算注意力圖。計算公式如下:
其中, 表示多頭注意力機制中的頭的數量,
表示注意力圖,之后,通過對所有注意力頭中注意力圖
的注意力值進行平均來計算整體注意力圖
的值。
由于使用 softmax 函數對注意力圖值進行歸一化,因此當圖像特征分辨率較高時,注意力圖中的激活值可能變得非常小。但是,考慮到渲染的 3D 對象掩碼中的每個元素都是 0 或 1 的二進制值,因此將注意力圖與渲染的 3D 對象的掩碼直接對齊不是最佳的。為了解決這個問題,論文提出了一種歸一化技術,該技術將注意力圖中的值映射到(0,1)之間。此歸一化過程的公式如下:
其中,代表一個小的常數值 (例如
),來防止分母中出現 0。最后,使用 AMA 損失將所有注意力層的注意力圖與 3D 對象的渲染的掩碼對齊。
實驗結果
論文使用四個 Nvidia RTX 3090 GPU 和 PyTorch 庫進行實驗。為了計算 SDS 損失,利用了通過 Hugging Face Diffusers 實現的 Stable Diffusion 模型。對于 DMTET 和 material 編碼器,將它們分別實現為兩層 MLP 和單層 MLP,隱藏層維度為 32。
從橢球體開始進行 text-to-3D 的生成
論文展示了 X-Dreamer 利用橢球作為初始幾何形狀的 text-to-3D 的生成結果,如圖 4 所示。結果證明 X-Dreamer 具有生成高質量和照片般逼真的 3D 對象的能力,生成的 3D 對象與輸入的文本提示準確對應。
圖 4 從橢球體開始進行 text-to-3D 的生成。
從粗粒度網格開始進行 text-to-3D 的生成
雖然可以從互聯網上下載大量粗粒度網格,但由于缺乏幾何細節,直接使用這些網格創建 3D 內容往往會導致性能較差。然而,與 3D 橢球體相比,這些網格可以為 X-Dreamer 提供更好的 3D 形狀先驗信息。
因此,也可以使用粗粒度引導網格來初始化 DMTET,而不是使用橢球。如圖 5 所示,X-Dreamer 可以基于給定的文本生成具有精確幾何細節的 3D 資產,即使所提供的粗粒度網格缺乏細節。
圖 5 從粗粒度網格開始進行 text-to-3D 的生成。
定性比較
為了評估 X-Dreamer 的有效性,論文將其與四種 SOTA 方法進行比較: DreamFusion [4],Magic3D [8],Fantasia3D [7] 和 ProlificDreamer [11],如圖 6 所示。
當與基于 SDS 的方法進行比較時 [4,7,8],X-Dreamer 在生成高質量和逼真的 3D 資產方面優于他們。此外,與基于 VSD 的方法 [11] 相比,X-Dreamer 產生的 3D 內容具有相當甚至更好的視覺效果,同時需要的優化時間明顯減少。具體來說,X-Dreamer 的幾何形狀和外觀學習過程只需要大約 27 分鐘,而 ProlificDreamer 則超過 8 小時。
圖 6 與現有技術 (SOTA) 方法的比較。
消融實驗
- 模塊消融
為了深入了解 CG-LoRA 和 AMA 損失的能力,論文進行了消融研究,其中每個模塊單獨加入以評估其影響。如圖 7 所示,消融結果表明,當 CG-LoRA 被排除在 X-Dreamer 之外時,生成的 3D 對象的幾何形狀和外觀質量顯著下降。
此外,X-Dreamer 缺失 AMA 損失也對生成的 3D 資產的幾何形狀和外觀保真度產生有害影響。這些消融實驗為 CG-LoRA 和 AMA 損失在增強生成的 3D 對象的幾何形狀、外觀和整體質量方面的單獨貢獻提供了有價值的研究。
圖 7 X-Dreamer 的消融研究。
- 有無 AMA 損失的注意力圖比較
引入 AMA 損失的目的是將去噪過程中的注意力引導到前景對象。這個是通過將 SD 的注意力圖與 3D 對象的渲染掩碼對齊來實現的。為了評估 AMA 損失在實現這一目標方面的有效性,論文在幾何學習和外觀學習階段可視化了有和沒有 AMA 損失的 SD 的注意力圖。
如圖 8 所示,可以觀察到,加入 AMA 損失不僅會改善生成的 3D 資產的幾何形狀和外觀,而且會將 SD 的注意力特別集中在前景對象區域上。可視化證實了 AMA 損失在引導 SD 注意力方面的有效性,從而在幾何和外觀學習階段提高了質量和前景對象的聚焦。
圖 8 注意力圖、渲染掩碼和渲染圖像的可視化,包括和不包括 AMA 損失。
這項研究引入了一個名為 X-Dreamer 的開創性框架,該框架旨在通過解決 text-to-2D 和 text-to-3D 生成之間的領域差距來增強 text-to-3D 的生成。為了實現這一點,論文首先提出了 CG-LoRA,這是一個將 3D 相關信息(包括方向感知文本和相機參數)合并到預訓練的 Stable Diffusion(SD)模型中的模塊。通過這樣做,本文能夠有效地捕獲與 3D 領域相關的信息。此外,本文設計了 AMA 損失,以將 SD 生成的注意力圖與 3D 對象的渲染掩碼對齊。AMA 損失的主要目標是引導 text-to-3D 模型的焦點朝著前景對象的生成方向發展。通過廣泛的實驗,本文徹底評估了提出方法的有效性,證明了 X-Dreamer 能夠根據給定的文本提示生成高質量和真實的 3D 內容。