無(wú)需任何3D數(shù)據(jù),直接文本生成高質(zhì)量3D內(nèi)容,清華朱軍團(tuán)隊(duì)帶來(lái)重大進(jìn)展
ProlificDreamer 算法為文生 3D 領(lǐng)域帶來(lái)重大進(jìn)展。利用 ProlificDreamer,輸入文本 “一個(gè)菠蘿”,就能生成非常逼真且高清的 3D 菠蘿:
給出稍微難一些的文本,比如 “一只米開(kāi)朗琪羅風(fēng)格狗的雕塑,正在用手機(jī)讀新聞”,ProlificDreamer 的生成也不在話下:
將 Imagen 生成的照片(下圖靜態(tài)圖)和 ProlificDreamer(基于 Stable-Diffusion)生成的 3D(下圖動(dòng)態(tài)圖)進(jìn)行對(duì)比。有網(wǎng)友感慨:短短一年時(shí)間,高質(zhì)量的生成已經(jīng)能夠從 2D 圖像領(lǐng)域擴(kuò)展到 3D 領(lǐng)域了!
A blue jay standing on a large basket of rainbow macarons
這一切都來(lái)源于清華大學(xué)計(jì)算機(jī)系朱軍教授帶領(lǐng)的 TSAIL 團(tuán)隊(duì)近期公開(kāi)的一篇論文《ProlificDreamer: High-Fidelity and Diverse Text-to-3D Generation with Variational Score Distillation》:
- 論文鏈接:https://arxiv.org/abs/2305.16213
- 項(xiàng)目主頁(yè):https://ml.cs.tsinghua.edu.cn/prolificdreamer/
在數(shù)字創(chuàng)作和虛擬現(xiàn)實(shí)等領(lǐng)域,從文本到三維模型(Text-to-3D)的技術(shù)具有重要的價(jià)值和廣泛的應(yīng)用潛力。這種技術(shù)可以從簡(jiǎn)單的文本描述中生成具體的 3D 模型,為設(shè)計(jì)師、游戲開(kāi)發(fā)者和數(shù)字藝術(shù)家提供強(qiáng)大的工具。
然而,為了根據(jù)文本生成準(zhǔn)確的 3D 模型,傳統(tǒng)方法需要大量的標(biāo)記 3D 模型數(shù)據(jù)集。這些數(shù)據(jù)集需要包含多種不同類型和風(fēng)格的 3D 模型,并且每個(gè)模型都需要與相應(yīng)的文本描述相關(guān)聯(lián)。創(chuàng)建這樣的數(shù)據(jù)集需要大量的時(shí)間和人力資源,目前還沒(méi)有現(xiàn)成的大規(guī)模數(shù)據(jù)集可供使用。
由谷歌提出的 DreamFusion [1] 利用預(yù)訓(xùn)練的 2D 文本到圖像擴(kuò)散模型,首次在無(wú)需 3D 數(shù)據(jù)的情況下完成開(kāi)放域的文本到 3D 的合成。但是 DreamFusion 提出的 Score Distillation Sampling (SDS) [1] 算法生成結(jié)果面臨嚴(yán)重的過(guò)飽和、過(guò)平滑、缺少細(xì)節(jié)等問(wèn)題。高質(zhì)量 3D 內(nèi)容生成目前仍然是非常困難的前沿問(wèn)題之一。
ProlificDreamer 論文提出了 Variational Score Distillation(VSD)算法,從貝葉斯建模和變分推斷(variational inference)的角度重新形式化了 text-to-3D 問(wèn)題。具體而言,VSD 把 3D 參數(shù)建模為一個(gè)概率分布,并優(yōu)化其渲染的二維圖片的分布和預(yù)訓(xùn)練 2D 擴(kuò)散模型的分布間的距離??梢宰C明,VSD 算法中的 3D 參數(shù)近似了從 3D 分布中采樣的過(guò)程,解決了 DreamFusion 所提 SDS 算法的過(guò)飽和、過(guò)平滑、缺少多樣性等問(wèn)題。此外,SDS 往往需要很大的監(jiān)督權(quán)重(CFG=100),而 VSD 是首個(gè)可以用正常 CFG(=7.5)的算法。
效果展示
ProlificDreamer 可以根據(jù)文本生成非常高質(zhì)量的帶紋理的三維網(wǎng)格:
ProlificDreamer 可以根據(jù)文本生成非常高質(zhì)量的三維神經(jīng)輻射場(chǎng)(NeRF),包括復(fù)雜的效果。甚至 360° 的場(chǎng)景也能生成:
ProlificDreamer 還可以在給出同樣文本的情況下生成具有多樣性的 3D 內(nèi)容:
傳統(tǒng)文生 3D 的優(yōu)化算法
給定一個(gè) 2D 圖片上預(yù)訓(xùn)練好的擴(kuò)散模型(例如 stable-diffusion),Dreamfusion [1] 提出可以在不借助任何 3D 數(shù)據(jù)的情況下實(shí)現(xiàn)開(kāi)放域的文到 3D 內(nèi)容(text-to-3D)生成。具體而言,對(duì)于一個(gè) 3D 物體,文生 3D 任務(wù)的關(guān)鍵是設(shè)計(jì)一種優(yōu)化算法,使得 3D 物體在各個(gè)視角下投影出來(lái)的 2D 圖片與預(yù)訓(xùn)練的 2D 擴(kuò)散模型匹配,并不斷優(yōu)化 3D 物體。其中,SDS [1] (也稱為 Score Jacobian Chaining (SJC) [3]) 是目前幾乎所有的零樣本開(kāi)放域文生 3D 工作所使用的算法。該算法將 3D 物體視為一個(gè)單點(diǎn)(single point),并通過(guò)隨機(jī)梯度下降優(yōu)化該 3D 物體,優(yōu)化目標(biāo)是最大化該渲染的 2D 圖像在預(yù)訓(xùn)練擴(kuò)散模型下的似然值。值得注意的是,該優(yōu)化問(wèn)題的最優(yōu)解并不等價(jià)于從擴(kuò)散模型中采樣。
傳統(tǒng)文生 3D 的優(yōu)化算法示意圖
實(shí)驗(yàn)中,所有基于 SDS/SJC 的方法目前都有一個(gè)嚴(yán)重的問(wèn)題:生成的物體過(guò)于平滑、過(guò)飽和現(xiàn)象嚴(yán)重,并且多樣性不高。例如,開(kāi)源庫(kù) threestudio [4] 將目前主流的 text-to-3D 工作復(fù)現(xiàn)至與原論文可比水平,如下圖所示:
由 threestuidio [4] 復(fù)現(xiàn)的文生 3D 工作
在此之前,基于 2D 擴(kuò)散模型的文生 3D 仍然與實(shí)踐落地有較大差距。然而,清華大學(xué)朱軍團(tuán)隊(duì)提出的 ProlificDreamer 在算法層面解決了 SDS 的上述問(wèn)題,能夠生成非常逼真的 3D 內(nèi)容,極大地縮小了這一差距。
ProlificDreamer 的原理
與以往方法不同,ProlificDreamer 并不單純優(yōu)化單個(gè) 3D 物體,而是優(yōu)化 3D 物體對(duì)應(yīng)的概率分布。通常而言,給定一個(gè)有效的文本輸入,存在一個(gè)概率分布包含了該文本描述下所有可能的 3D 物體。
給定文本下的 3D 物體存在一個(gè)潛在的概率分布
基于該 3D 概率分布,我們可以進(jìn)一步誘導(dǎo)出一個(gè) 2D 概率分布。具體而言,只需要對(duì)每一個(gè) 3D 物體經(jīng)過(guò)相機(jī)渲染到 2D,即可得到一個(gè) 2D 圖像的概率分布。
由潛在 3D 分布可以誘導(dǎo)出一個(gè) 2D 圖像分布
因此,優(yōu)化 3D 分布可以被等效地轉(zhuǎn)換為優(yōu)化 2D 渲染圖片的概率分布與 2D 擴(kuò)散模型定義的概率分布之間的距離(由 KL 散度定義)。這是一個(gè)經(jīng)典的變分推斷(variational inference)任務(wù),因此 ProlificDreamer 文中將該任務(wù)及對(duì)應(yīng)的算法稱為變分得分蒸餾(Variational Score Distillation,VSD)。
優(yōu)化 3D 分布可以被等效地轉(zhuǎn)換為優(yōu)化 2D 圖片之間的概率分布
具體而言,VSD 的算法流程圖如下所示。其中,3D 物體的迭代更新需要使用兩個(gè)模型:一個(gè)是預(yù)訓(xùn)練的 2D 擴(kuò)散模型(例如 Stable-Diffusion),另一個(gè)是基于該預(yù)訓(xùn)練模型的 LoRA(low-rank adaptation)。該 LoRA 估計(jì)了當(dāng)前 3D 物體誘導(dǎo)的 2D 圖片分布的得分函數(shù)(score function),并進(jìn)一步用于更新 3D 物體。該算法實(shí)際上在模擬 Wasserstein 梯度流,并可以保證收斂得到的分布滿足與預(yù)訓(xùn)練的 2D 擴(kuò)散模型的 KL 散度最小。
VSD 的訓(xùn)練流程圖
與傳統(tǒng)的 SDS/SJC 算法相比,可以發(fā)現(xiàn) VSD 僅僅需要把原來(lái)的高斯噪聲項(xiàng)換成 LoRA 項(xiàng)即可。由于 LoRA 提供了比高斯噪聲更精細(xì)的更新方向(例如,LoRA 可以利用文本 y、相機(jī)視角 c、擴(kuò)散時(shí)間 t 等的先驗(yàn)信息),VSD 在實(shí)踐中可以得到遠(yuǎn)超 SDS 的精細(xì)結(jié)果。并且,論文作者提出,SDS/SJC 實(shí)際上是 VSD 使用一個(gè)單點(diǎn) Dirac 分布作為變分分布的特例,而 VSD 擴(kuò)展到了由 LoRA 定義的更復(fù)雜的概率分布,因此可以得到更好的結(jié)果。此外,VSD 還對(duì)監(jiān)督權(quán)重(CFG)更友好,可以使用與 2D 擴(kuò)散模型一樣的監(jiān)督權(quán)重(例如 stable-diffusion 常用的 CFG=7.5),因此可以達(dá)到和 2D 擴(kuò)散模型類似的采樣質(zhì)量。這一結(jié)果首次解決了 SDS/SJC 中的超大 CFG(一般為 100)的問(wèn)題,也同時(shí)說(shuō)明 VSD 這種基于分布優(yōu)化的思想與預(yù)訓(xùn)練的 2D 擴(kuò)散模型更適配。
SDS/SJC 與 VSD 的更新公式對(duì)比
最后,ProlificDreamer 還對(duì) 3D 表示的設(shè)計(jì)空間做了詳細(xì)的研究,提出了如下實(shí)現(xiàn)。在實(shí)踐中,VSD 可以在 512 渲染分辨率的 NeRF 下訓(xùn)練,并極大地豐富了所得到的 3D 結(jié)果的紋理細(xì)節(jié)。
ProlificDreamer 與其它工作的實(shí)現(xiàn)細(xì)節(jié)比較
關(guān)于作者
論文有兩位共同一作。第一位是清華大學(xué)在讀的二年級(jí)博士生王征翊,主要研究方向是深度生成模型的理論與算法在 3D 內(nèi)容生成的應(yīng)用。此前在 ICML/CVPR/IJCAI 等頂級(jí)會(huì)議發(fā)表多篇論文。
共同一作王征翊
個(gè)人主頁(yè):https://thuwzy.github.io/
論文的另一位共同一作是清華大學(xué)在讀的四年級(jí)博士生路橙,目前主要研究方向是深度生成模型的理論與算法,及其在計(jì)算機(jī)視覺(jué)、強(qiáng)化學(xué)習(xí)、3D 生成中的應(yīng)用,在 ICML/ICLR/NeurIPS 等頂級(jí)會(huì)議發(fā)表多篇論文。此前由他為第一作者發(fā)表的 DPM-Solver(NeurIPS 2022 oral)將擴(kuò)散模型的快速采樣算法提升到了極致,無(wú)需額外訓(xùn)練即可在 10 到 25 步獲得極高質(zhì)量的采樣,目前仍然是 stable-diffusion 等文生圖的默認(rèn)采樣算法(詳見(jiàn)機(jī)器之心報(bào)道 [5])。
共同一作路橙
個(gè)人主頁(yè):https://luchengthu.github.io/
團(tuán)隊(duì)成員很早就開(kāi)始致力于擴(kuò)散模型的研究,成員鮑凡以第一作者發(fā)表的 Analytic-DPM 此前獲得 ICLR 2022 outstanding paper award,并且提出了 Unidiffuser 多模態(tài)大模型(詳見(jiàn)機(jī)器之心報(bào)道 [6])等多個(gè)優(yōu)秀的工作;另一位成員李崇軒也是 TSAIL 組培養(yǎng)的博士,曾獲 CCF 優(yōu)秀博士論文獎(jiǎng),現(xiàn)在在中國(guó)人民大學(xué)擔(dān)任助理教授,并將在 6 月份舉行的智源大會(huì)上組織 “生成模型專題論壇”。
最后,清華大學(xué) TSAIL 團(tuán)隊(duì)長(zhǎng)期致力于貝葉斯機(jī)器學(xué)習(xí)的理論和算法研究,是國(guó)際上最早研究深度概率生成模型的團(tuán)隊(duì)之一,在貝葉斯模型、高效算法和概率編程庫(kù)方面取得了系統(tǒng)深入的研究成果。機(jī)器之心早在 2017 年就報(bào)道了該團(tuán)隊(duì)發(fā)布的 “ZhuSuan” 深度概率編程庫(kù)(https://zhusuan.readthedocs.io/en/latest/),是國(guó)際上最早的面向深度概率模型的編程庫(kù)之一。