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