ECCV`24 | 首次解決文本到3D NeRFs分解問題!港中文等提出DreamDissector
論文鏈接:https://arxiv.org/abs/2407.16260
亮點(diǎn)直擊
- 第一個(gè)解決文本到3D NeRFs分解問題的團(tuán)隊(duì)。
- 為了解決這個(gè)問題,本文引入了一個(gè)名為DreamDissector的新穎框架,包括一種新穎的神經(jīng)類別場(NeCF)表示,可以將輸入的NeRF分解成獨(dú)立的子NeRF,一個(gè)深度概念挖掘(DCM)技術(shù),通過個(gè)性化擴(kuò)散模型促進(jìn)子NeRF和概念之間的對齊,以及一個(gè)類別分?jǐn)?shù)蒸餾采樣(CSDS)損失,利用DCM增強(qiáng)NeCF的學(xué)習(xí)。
- 實(shí)驗(yàn)結(jié)果展示了DreamDissector的有效性,額外的可控編輯應(yīng)用展示了其在真實(shí)場景中的實(shí)用性。
最近,文本到3D生成領(lǐng)域取得了顯著進(jìn)展。為了增強(qiáng)其在實(shí)際應(yīng)用中的實(shí)用性,關(guān)鍵是生成具有交互作用的多個(gè)獨(dú)立對象,類似于2D圖像編輯中的圖層合成。然而,現(xiàn)有的文本到3D方法在這一任務(wù)上存在困難,因?yàn)樗鼈冊O(shè)計(jì)用于生成非獨(dú)立對象或缺乏空間合理交互的獨(dú)立對象。
針對這一問題,本文提出了DreamDissector,一種能夠生成具有交互作用的多個(gè)獨(dú)立對象的文本到3D方法。DreamDissector接受多對象文本到3D NeRF作為輸入,并生成獨(dú)立的紋理網(wǎng)格。為實(shí)現(xiàn)這一目標(biāo),本文引入了神經(jīng)類別場(NeCF)來分解輸入的NeRF。此外,本文提出了類別分?jǐn)?shù)蒸餾采樣(CSDS),由深度概念挖掘(DCM)模塊促進(jìn),以解決擴(kuò)散模型中的概念差距問題。通過利用NeCF和CSDS,本文能夠有效地從原始場景中導(dǎo)出子NeRF。進(jìn)一步的優(yōu)化增強(qiáng)了幾何和紋理。本文的實(shí)驗(yàn)結(jié)果驗(yàn)證了DreamDissector的有效性,為用戶提供了控制3D合成在對象級別的新手段,并可能為未來各種創(chuàng)意應(yīng)用打開了途徑。
定性結(jié)果展示
方法
概覽
DreamDissector從文本轉(zhuǎn)3D神經(jīng)輻射場(NeRF)開始。其目標(biāo)是將生成的3D NeRF分解為根據(jù)NeRF包含的物體類別分開的獨(dú)立3D資產(chǎn)。為實(shí)現(xiàn)這一目標(biāo),本文引入了一種稱為神經(jīng)類別場(NeCF)的3D表示。
這旨在將目標(biāo)NeRF分解為多個(gè)子NeRF,同時(shí)保持每個(gè)物體的原始外觀。NeCF受本文新引入的類別分?jǐn)?shù)蒸餾采樣(CSDS)監(jiān)督,這是一種涉及一系列針對子NeRF的特定類別文本提示的分?jǐn)?shù)蒸餾采樣(SDS)的方法。隨后,這些子NeRF被轉(zhuǎn)換為DMTets進(jìn)行最終的幾何和紋理細(xì)化。由于DMTets可以輕松轉(zhuǎn)換為表面網(wǎng)格,DreamDissector最終為每個(gè)物體生成獨(dú)立的表面網(wǎng)格,保留了動(dòng)作和互動(dòng),從而方便人類藝術(shù)家進(jìn)行編輯。本文的DreamDissector框架概述如下圖2所示。
神經(jīng)類別場
為了在目標(biāo)NeRF中渲染每個(gè)分類對象,一個(gè)直接的解決方案是為每個(gè)對象引入一個(gè)子NeRF,例如,一個(gè)密度場和一個(gè)顏色場。隨后,可以使用其密度和顏色場來渲染每個(gè)對象。然后,整個(gè)NeRF可以通過根據(jù)體積渲染的原則組合這些密度和顏色場來渲染:
其中,K表示類別的數(shù)量。然而,這種方法需要為密度和顏色場訓(xùn)練額外的網(wǎng)絡(luò),并需要一個(gè)約束損失來保持整個(gè)NeRF的外觀一致性。
為此,本文提出了一種用概率分布(即類別場)對密度場進(jìn)行分解以渲染每個(gè)類別對象的替代公式。具體來說,上述密度組合可以重新表述如下:
值得注意的是,NeCF的設(shè)計(jì)具有以下優(yōu)點(diǎn):
- 本文只需要訓(xùn)練一個(gè)額外的類別場網(wǎng)絡(luò),這比訓(xùn)練額外的密度和顏色場網(wǎng)絡(luò)更有效率。
- 由于原始的密度和顏色場網(wǎng)絡(luò)在訓(xùn)練過程中被凍結(jié),子NeRF的重新組合完全等同于原始的NeRF,保持其原始外觀。
類別 分?jǐn)?shù) 蒸餾 抽樣
一個(gè)樸素的方法。 為了訓(xùn)練NeCF,一個(gè)樸素的方法是使用多個(gè)SDS損失來監(jiān)督每個(gè)類別的類別字段。具體地,對于第k個(gè)類別的對象,其SDS損失的梯度可以被表達(dá)為:
這里,yk表示第k個(gè)類別的文本embedding。例如,給定由提示生成的NeRF:“一個(gè)[v1]坐在一個(gè)[v2]上?!?,用于類別對象的文本提示將是“一個(gè)[v1]”和“一個(gè)[v2]”。這可以很容易地由人類用戶或現(xiàn)代LLM完成。需要注意的是,本文在訓(xùn)練NeCF時(shí)不需要為整個(gè)文本提示使用SDS,除了類別字段網(wǎng)絡(luò)之外,所有網(wǎng)絡(luò)都被凍結(jié)。
概念差異在擴(kuò)散模型中。 盡管這種樸素的方法可以處理一些簡單的情況,但它無法將具有概念差距的場景從文本描述中分離出來。概念差距指的是完整文本提示生成的對象與類別文本提示生成的對象在2D擴(kuò)散模型的潛在空間中占據(jù)不同區(qū)域的差異。
例如,文本提示“一只黑猩猩透過望遠(yuǎn)鏡看?!睍?huì)生成一個(gè)場景,描述一只黑猩猩使用手持望遠(yuǎn)鏡,如下圖3左側(cè)(a)所示。相比之下,類別文本提示“一個(gè)望遠(yuǎn)鏡”更有可能生成一個(gè)三腳架安裝的望遠(yuǎn)鏡,因?yàn)槿_架安裝的望遠(yuǎn)鏡位于提示“一個(gè)望遠(yuǎn)鏡”的主導(dǎo)特征空間中,而手持望遠(yuǎn)鏡則位于邊緣特征空間中。因此,學(xué)習(xí)到的NeCF會(huì)生成一個(gè)帶有三腳架的望遠(yuǎn)鏡,三腳架被隱藏在黑猩猩的身體內(nèi),如下圖3左側(cè)(c)所示。
深度概念挖掘。為了解決這個(gè)問題,本文提出挖掘文本提示中的概念,并將其與NeRF中描繪的概念進(jìn)行對齊,以進(jìn)行分解,如上圖3所示。為此,本文個(gè)性化了一個(gè)T2I擴(kuò)散模型,將由NeRF渲染的給定視圖去噪,生成描繪一個(gè)(或多個(gè))獨(dú)立對象的圖像,在一個(gè)(或多個(gè))特定概念的條件下。具體來說,本文首先創(chuàng)建一組包含一個(gè)或多個(gè)概念的提示。對于每個(gè)概念或概念組合,本文通過基于文本的開放詞匯分割模型(例如Grounded-SAM)為NeRF渲染視圖生成相應(yīng)的分割蒙版。然后,本文利用提示-蒙版對來優(yōu)化文本embedding和擴(kuò)散主干,使用帶有蒙版注意力的概念挖掘損失:
最終精化。 在訓(xùn)練完NeCF后,本文使用等值面提取技術(shù)將子NeRF轉(zhuǎn)換為DMTets,并利用文本embedding和來自DCM的模型對這些DMTets進(jìn)行微調(diào)。其原理是進(jìn)一步精化可以修復(fù)分解產(chǎn)生的偽影,而且DMTets可以輕松轉(zhuǎn)換為表面網(wǎng)格。然而,DCM傾向于在原始NeRF中過度擬合挖掘的概念,導(dǎo)致顏色過飽和和不真實(shí)。為了解決這個(gè)問題,本文采用原始的穩(wěn)定擴(kuò)散方法通過額外步驟對DMTets的顏色進(jìn)行微調(diào),增強(qiáng)其真實(shí)感。最后,DMTets被轉(zhuǎn)換為有紋理的網(wǎng)格。
整體 Pipeline
因此,整個(gè)流程包括以下步驟:
- 從渲染視圖中為提示中的每個(gè)類別生成mash,并用它們來優(yōu)化DCM模塊。
- 凍結(jié)DCM,并使用CSDS損失訓(xùn)練NeCF網(wǎng)絡(luò),將一個(gè)NeRF分解為獨(dú)立對象的子NeRF。
- 將子NeRF轉(zhuǎn)換為DMTets,并利用優(yōu)化后的DCM模塊對它們進(jìn)行微調(diào),然后使用原始穩(wěn)定擴(kuò)散微調(diào)DMTets的顏色以生成最終輸出。
實(shí)驗(yàn)
結(jié)果
主要結(jié)果。 定性結(jié)果顯示在下圖4中。對于每種情況,每個(gè)對象的兩個(gè)視圖被采樣,并且相應(yīng)的文本提示在補(bǔ)充文件中提供??梢杂^察到DreamDissector能夠有效地解開具有各種復(fù)雜交互的輸入場景,比如騎行等。值得注意的是,DreamDissector能夠處理具有大型和復(fù)雜接觸表面的情況,如“章魚彈鋼琴”案例中所示,章魚的觸手與鋼琴分離開來。此外,最終的網(wǎng)格比輸入NeRF中的網(wǎng)格展現(xiàn)出更加真實(shí)和高質(zhì)量的紋理。這種改進(jìn)歸因于最終的精細(xì)化處理,進(jìn)一步展示了DreamDissector的實(shí)用性。
比較。 本文將DreamDissector與兩個(gè)基線方法進(jìn)行比較:負(fù)面提示和一個(gè)組合基線。負(fù)面提示涉及將整個(gè)文本提示作為正面提示,并將獨(dú)占對象作為負(fù)面提示。例如,在提示“一個(gè)[v1]坐在[v2]上”中,兩個(gè)對象的正面提示都是整個(gè)提示,而對象[v1]的負(fù)面提示是“[v2]”,反之亦然。由于最相關(guān)的作品CompoNeRF和Comp3D不是開源的,本文實(shí)現(xiàn)了一個(gè)具有類似思想的組合基線:分別訓(xùn)練對象,然后通過進(jìn)一步的微調(diào)進(jìn)行組合。本文在定性和定量上將本文的方法與這些基線進(jìn)行比較。如下圖5所示,DreamDissector明顯優(yōu)于基線方法。此外,本文使用CLIP分?jǐn)?shù)指標(biāo)評估DreamDissector和基線方法,該指標(biāo)衡量文本和圖像embedding之間的余弦相似性。本文對獨(dú)立對象和組合對象進(jìn)行這種評估,并計(jì)算平均分?jǐn)?shù)。正如下表1所示,本文的方法明顯優(yōu)于基線方法。
分析
用于分解的DCM.
與完全無監(jiān)督的基礎(chǔ)CSDS不同,本文的DCM方法和SA3D都需要一個(gè)輸入mask來進(jìn)行單視圖處理。正如下圖6所示,基礎(chǔ)CSDS在處理存在顯著概念差異的場景(例如“一只藍(lán)色毒箭蛙坐在一片睡蓮上”)時(shí)很難分解NeRF,其中原始場景主要描繪了睡蓮葉。而SA3D雖然成功分解涉及概念差異的場景(如青蛙),但在涉及大量遮擋的更復(fù)雜情況下表現(xiàn)不佳,比如比格犬和章魚等情況。相比之下,DCM展現(xiàn)出卓越的性能,成功分解涉及概念差異和顯著遮擋的場景。
DCM用于細(xì)化。 DCM不僅用于NeRF的分解,還用于細(xì)化DMTets。本文對DCM在這種細(xì)化過程中的有效性進(jìn)行了分析。結(jié)果如下圖7所示。從(a)可以看出,在分解后仍然存在偽影。由于原始NeRF的不可見接觸表面,在分解后出現(xiàn)了“黑洞”。然而,使用原始穩(wěn)定擴(kuò)散進(jìn)行DMTet細(xì)化并不能解決這個(gè)問題,如(d)所示。這是因?yàn)樘崾尽耙化B煎餅”通常會(huì)生成在煎餅上放水果的圖像,因?yàn)檫@些水果在stable diffusion的高密度區(qū)域中很常見,如(b)所示。因此,經(jīng)過微調(diào)的DMTet會(huì)在黑洞偽影區(qū)域產(chǎn)生水果。相比之下,DCM的穩(wěn)定擴(kuò)散與輸入的煎餅緊密匹配,如第一行所示,在DMTet細(xì)化過程中有效修復(fù)了偽影,如(e)所示。這進(jìn)一步展示了DCM的優(yōu)越性。
對DCM進(jìn)行消融研究。 本文對DCM的每個(gè)組成部分進(jìn)行了消融研究,包括兩階段訓(xùn)練和mask注意力損失。具體來說,本文使用經(jīng)過微調(diào)的模型從文本提示“一只小兔子坐在一堆煎餅上”中挖掘出“小兔子”概念的圖像樣本。理想情況下,采樣的圖像不應(yīng)包含任何類似于煎餅的概念。如下圖8所示,DCM成功提取了“小兔子”概念,而其他訓(xùn)練策略未能將該概念與其他類似于其坐在上面的煎餅的物品分離開。這證明了DCM挖掘獨(dú)立概念的能力。
Applications
可控紋理編輯。 盡管基于文本引導(dǎo)的紋理生成取得了顯著進(jìn)展,但為具有多個(gè)物體的復(fù)雜場景生成紋理仍然具有挑戰(zhàn)性。本文在三種不同情況下評估了TEXTure,如下圖9所示。對于基準(zhǔn)情況,本文將多物體網(wǎng)格視為單個(gè)實(shí)體并應(yīng)用TEXTure。對于本文的方法,本文將TEXTure分別應(yīng)用于每個(gè)物體的網(wǎng)格,然后將它們組合起來。本文觀察到,基準(zhǔn)方法生成的紋理與輸入提示不匹配,并且質(zhì)量較低。值得注意的是,獨(dú)立物體的紋理受到場景中其他物體的影響,例如,老鼠的一部分呈現(xiàn)出紅色。相比之下,DreamDissector顯著提升了TEXTure的性能,生成視覺上吸引人且準(zhǔn)確的紋理。
可控對象替換。 除了可控紋理編輯外,DreamDissector還具有替換單個(gè)對象而不影響場景中其他對象的能力。為了實(shí)現(xiàn)這一點(diǎn),目標(biāo)DMTet在保持其他DMTets固定的同時(shí)進(jìn)行微調(diào)。然而,使用基于SDS的監(jiān)督將DMTet變形為完全不同拓?fù)浣Y(jié)構(gòu)的對象具有挑戰(zhàn)性。受[7]啟發(fā),本文最初將DMTet的法線饋送到stable diffusion中進(jìn)行多個(gè)步驟,有效地變形了DMTet。本文還經(jīng)驗(yàn)性地觀察到,僅微調(diào)目標(biāo)DMTet會(huì)引起嚴(yán)重的網(wǎng)格相互穿透。為了解決這個(gè)問題,本文引入了一個(gè)相互穿透損失,
用戶進(jìn)行幾何編輯。 為了進(jìn)一步驗(yàn)證 DreamDissector 如何促進(jìn)用戶工作流程,本文允許用戶單獨(dú)編輯對象。正如下圖 11 所示,通過簡單的操作,如縮放、平移和拖動(dòng),可以輕松修改對象,從而突顯了 DreamDissector 在提高實(shí)際應(yīng)用中人類編輯能力方面的有效性。
結(jié)論
DreamDissector,這是一個(gè)新穎的框架,旨在生成由文本引導(dǎo)的多個(gè)獨(dú)立交互對象。DreamDissector 接受多對象文本到 3D 神經(jīng)輻射場(Neural Radiance Field,NeRF)作為輸入,并生成多個(gè)帶紋理的網(wǎng)格。本文引入了神經(jīng)類別場(Neural Category Field,NeCF),這是一種能夠?qū)⑤斎氲?NeRF 分解為多個(gè)子 NeRF 的表示。為了訓(xùn)練 NeCF,本文提出了類別分?jǐn)?shù)蒸餾采樣(Category Score Distillation Sampling,CSDS)損失。此外,本文觀察到了 2D 擴(kuò)散模型中的概念差異問題,這可能會(huì)降低分解性能。為了解決這個(gè)問題,本文引入了深度概念挖掘(Deep Concept Mining,DCM)來微調(diào)文本embedding和 2D 擴(kuò)散模型,有效地導(dǎo)出子 NeRF。此外,本文提出了一個(gè)兩階段的細(xì)化過程,進(jìn)一步改進(jìn)幾何和紋理,從而增強(qiáng)現(xiàn)實(shí)感。實(shí)驗(yàn)結(jié)果和進(jìn)一步應(yīng)用展示了 DreamDissector 在現(xiàn)實(shí)場景中的有效性和實(shí)用性。
本文轉(zhuǎn)自 AI生成未來,作者:Zizheng Yan等
原文鏈接:??https://mp.weixin.qq.com/s/mHNfZb5jFoZpwKxQ9Q3bNA??
