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