PICO交互感知團(tuán)隊(duì) - 可控3D版生成來(lái)襲:Coin3D實(shí)現(xiàn)三維可控的物體生成
在VR/MR或者是CG游戲等領(lǐng)域,構(gòu)建帶有精細(xì)紋理的三維模型資產(chǎn)是其中的重要環(huán)節(jié)。然而,現(xiàn)有的三維建模流程往往需要用戶(hù)掌握一定的三維建模技能,使得普通用戶(hù)難以完成3D內(nèi)容創(chuàng)作。近期,隨著3D AIGC技術(shù)的發(fā)展,使用文本或者圖像生成3D物體降低了這一門(mén)檻,但在實(shí)際應(yīng)用中存在可控性差,難以交互式生成和修改等問(wèn)題。
那么,「是否有可能像小孩子搭」 「積木」 「一樣,用戶(hù)只需通過(guò)交互式地拼接基本3D形狀,」 就可以實(shí)現(xiàn)可控的3D物體生成呢?
近日,來(lái)自「浙江大學(xué)」 「和」 「字節(jié)跳動(dòng)」 「PICO」 「MR」研究團(tuán)隊(duì)在「SIGGRAPH2024」中發(fā)表了論文《「Coin3D: Controllable and Interactive 3D Assets Generation with Proxy-Guided Conditioning」》。該論文提出了一種使用文本描述驅(qū)動(dòng)的3D模型可控生成方案Coin3D,可以根據(jù)用戶(hù)搭建的粗糙幾何模型與簡(jiǎn)單文本描述來(lái)生成帶紋理的三維模型,在功能上類(lèi)似于3D版本的ControlNet。
「論文鏈接:」 「https://arxiv.org/abs/2405.08054」
「項(xiàng)目主頁(yè):」 「https://zju3dv.github.io/coin3d/」
背景
為了提升算法的實(shí)用性,3D物體生成需要兼顧可控性、交互性以及生成效率。然而,現(xiàn)有的三維模型生成方案無(wú)法做到交互式三維可控的生成,其主要有兩個(gè)技術(shù)難點(diǎn):
- 難以精準(zhǔn)控制:主流3D物體生成算法只支持圖片/文本控制,無(wú)法在3D上直接施加控制生成過(guò)程。
- 無(wú)法即時(shí)交互:現(xiàn)有快速生成方案在生成好物體后,難以支持精細(xì)的局部編輯修改操作;或是支持局部修改但需要數(shù)小時(shí)重建才能預(yù)覽修改效果,這使得在實(shí)際交互式三維建模中失去實(shí)用性。
方法
Coin3D提出的框架可以讓用戶(hù)以手工搭積木般先構(gòu)建一個(gè)粗糙模型,并利用這一粗糙模型,從三維上直接控制最終生成模型的大致外觀(guān)輪廓?;谶@一設(shè)計(jì),Coin3D提出了一種新穎的交互式生成工作流,允許用戶(hù)在單次生成好物體后,對(duì)局部紋理或者幾何進(jìn)行生成式編輯(如修改紋理,增加新的形狀塊等),且不影響其余部分的幾何與紋理,同時(shí)用戶(hù)的生成式編輯操作可在數(shù)秒內(nèi)實(shí)現(xiàn)快速預(yù)覽。最后,Coin3D將基于粗糙模型的三維控制生成算法與神經(jīng)輻射場(chǎng)重建技術(shù)相結(jié)合,有效提升最終導(dǎo)出的帶紋理網(wǎng)格的重建質(zhì)量。
「粗模引導(dǎo)的3D控制生成」
?
用戶(hù)無(wú)需復(fù)雜建模,只需在3D建模軟件中組裝基本形狀即可。
?
Coin3D將3D粗糙幾何模型與用戶(hù)文本提示結(jié)合,控制多視圖擴(kuò)散生成過(guò)程。不同于常規(guī)2D擴(kuò)散,這種方法在所有預(yù)設(shè)視角上同步執(zhí)行去噪迭代操作,實(shí)現(xiàn)跨視圖相關(guān)性和視圖相關(guān)自注意力的整合。
為了應(yīng)用粗糙幾何模型于3D生成任務(wù),Coin3D提出雙路徑條件預(yù)處理。首先,在粗模網(wǎng)格上采樣表面點(diǎn),用于3D控制;其次,Coin3D使用粗模的渲染輪廓和用戶(hù)的文本提示生成多個(gè)2D候選圖像,供用戶(hù)交互式選擇。
Coin3D引入3D適配器,將3D控制添加至多視圖擴(kuò)散流程,生成遵循粗模形狀的多視圖圖像。Coin3D構(gòu)建了一個(gè)3D控制體素,將3D體素上下文傳遞至擴(kuò)散流程。3D適配器接收粗模特征體素和多視圖圖像融合體素兩個(gè)輸入,先體素化粗模采樣點(diǎn)填充零初始化的占用網(wǎng)格,然后通過(guò)反投影和融合多視圖圖像,生成多視圖特征量。
在每個(gè)去噪步驟中,Coin3D在體素上執(zhí)行3D卷積,并將輸出添加至多視圖特征體素,生成3D控制體素。然后,在2D擴(kuò)散模型進(jìn)行多視圖去噪時(shí),通過(guò)投影來(lái)對(duì)齊相應(yīng)的視圖以獲得2D特征圖,然后將其與CLIP嵌入的候選圖像特征和相機(jī)姿態(tài)嵌入輸入到擴(kuò)散UNet中。
訓(xùn)練階段,Coin3D將每個(gè)訓(xùn)練物體預(yù)處理為多張圖像和粗模采樣,隨機(jī)選擇目標(biāo)圖像和對(duì)應(yīng)的點(diǎn)采樣,以及帶有高斯噪聲的時(shí)間戳。Coin3D約束網(wǎng)絡(luò)預(yù)測(cè)添加的噪聲,使用零卷積作為粗模特征卷卷積UNet,同時(shí)凍結(jié)其他層,以便在生成過(guò)程中操縱控制強(qiáng)度,優(yōu)化目標(biāo)如下:
?
簡(jiǎn)單來(lái)說(shuō),這就像是讓用戶(hù)在3D樂(lè)高世界里,用最簡(jiǎn)單的積木搭建出大致形狀,然后Coin3D的神奇畫(huà)筆(多視圖擴(kuò)散模型)就會(huì)根據(jù)這個(gè)形狀和用戶(hù)的要求,生成出多視角一致的模型照片。在這個(gè)過(guò)程中,Coin3D的3D適配器就像是一個(gè)翻譯器,把用戶(hù)的三維模型構(gòu)建要求,轉(zhuǎn)化為生成算法可以理解的語(yǔ)言。
?
「交互式生成技術(shù)」
Coin3D提出了一種新穎的交互式三維生成與建模工作流程,充分利用粗模自身的可組合性來(lái)實(shí)現(xiàn)輕松精確的部分編輯,并重用3D控制體素進(jìn)行交互式預(yù)覽。具體來(lái)說(shuō),用戶(hù)可以從基本形狀中指定某一塊區(qū)域,并重新生成這一塊區(qū)域的內(nèi)容。
由于多視圖擴(kuò)散模型同時(shí)以 3D 體素和 2D 圖像為控制條件,因此,Coin3D提出了一種同時(shí)考慮2D和3D條件控制的雙路徑條件編輯方案。對(duì)于 2D 條件控制,Coin3D通過(guò)將遮罩粗模投影到所需的編輯視圖來(lái)構(gòu)建 2D 掩碼,并執(zhí)行基于掩碼的2D重繪。然后,使用編輯后的圖像作為模型去噪步驟的圖像條件。對(duì)于 3D 條件控制,Coin3D首先通過(guò)略微膨脹擴(kuò)大的遮罩粗模來(lái)構(gòu)建 3D 體素掩碼。然后,在每個(gè)去噪步驟中,Coin3D重用緩存的原始 3D 控制體素,并根據(jù)特征掩碼部分更新未掩蔽的體素,如下所示:
為了保證交互生成的流暢體驗(yàn),Coin3D可實(shí)現(xiàn)在幾秒鐘內(nèi)預(yù)覽編輯結(jié)果,并從任意角度檢查編輯后的效果。具體而言,Coin3D設(shè)計(jì)了一種漸進(jìn)式體素緩存機(jī)制,用于記住每個(gè)時(shí)間戳的最新3D控制體素。然后,在預(yù)覽階段,Coin3D將用戶(hù)在建模軟件內(nèi)的視點(diǎn)變換遷移控制多視圖擴(kuò)散中的視點(diǎn)條件和體素投影。為了使預(yù)覽功能具有快速響應(yīng),Coin3D使用緩存的 3D 控制體素,而無(wú)需重新運(yùn)行 3D 適配器,并在每次去噪迭代中快速解碼出每個(gè)步驟的預(yù)覽預(yù)覽圖像,實(shí)現(xiàn)拖拽交互式的3D生成預(yù)覽。
「基于體素蒸餾損失的紋理網(wǎng)格重建」
前文所述的多視圖擴(kuò)散模型的結(jié)果是物體的一組多視角圖像(如蘋(píng)果從16個(gè)環(huán)繞角度拍攝的圖),因此Coin3D需要將其重建為成熟的三維表達(dá)(如帶紋理的網(wǎng)格模型)以便于后續(xù)的 CG 應(yīng)用。然而,使用生成好的多視角圖像直接進(jìn)行重建效果有限,而且由于視角數(shù)量較少,可能會(huì)產(chǎn)生不穩(wěn)定的幾何重建結(jié)果。因此,Coin3D設(shè)計(jì)使用三維控制體素 作為重建時(shí)的輔助監(jiān)督,以提高三維重建質(zhì)量,其公式如下:
簡(jiǎn)單來(lái)說(shuō),Coin3D提出了一種基于體素的分?jǐn)?shù)蒸餾采樣,其在神經(jīng)輻射場(chǎng)重建的反向傳播過(guò)程中嵌入了來(lái)自三維控制的梯度信息,從而實(shí)現(xiàn)了更好的網(wǎng)格重建質(zhì)量。
實(shí)驗(yàn)與結(jié)果
這里展示了更多使用Coin3D進(jìn)行可控 3D 生成的示例,其中我們使用粗模型作為控制條件,生成精細(xì)帶紋理的物體。
這里展示了更多交互式生成與編輯的示例,其中用戶(hù)可以精確地指定待編輯的粗模區(qū)域,并使用Coin3D進(jìn)行編輯/重新生成所需的部件(例如,給企鵝添加火炬、給蛋糕添加蠟燭或?qū)⒁粋€(gè)南瓜更換為蘋(píng)果)。
同時(shí),我們也將Coin3D與基于圖像的3D生成方法(Wonder3D 和 SyncDreamer),以及提供了可控3D生成接口的方法(Latent-NeRF和Fantasia3D)進(jìn)行了對(duì)比進(jìn)行比較,可以看到Coin3D的生成結(jié)果能更符合用戶(hù)的預(yù)期。
總結(jié)
Coin3D提出了一種三維可控的生成式3D資產(chǎn)制作流程,并提出了一個(gè)交互式生成的工作流,用戶(hù)可以自由地改變提示詞/形狀控制,或重新生成指定的局部,并在幾秒鐘通過(guò)交互式3D預(yù)覽查看修改之后的變化。