散模型如何邁向3D資產(chǎn)生成:從隱式場(chǎng)到可擴(kuò)展落地)
先說一個(gè)業(yè)內(nèi)普遍的感受3D資產(chǎn)生成從“能出圖”進(jìn)化到“能出模型”這兩年最大的變量就是擴(kuò)散模型。圖像領(lǐng)域里Diffusion已經(jīng)把生成質(zhì)量拉到了一個(gè)以前不敢想的高度但真輪到3D資產(chǎn)生成時(shí)直接照搬那套方法論完全不行——數(shù)據(jù)量差著幾個(gè)數(shù)量級(jí)表示形式五花八門顯存和算力消耗更是另一個(gè)世界。3D-Diffusion這類工作的價(jià)值就在于它嘗試把“數(shù)據(jù)規(guī)模換質(zhì)量”這條擴(kuò)散模型的黃金路線真正搬到三維世界里。這篇內(nèi)容解析會(huì)圍繞幾個(gè)我判斷對(duì)工程落地最有價(jià)值的問題展開3D擴(kuò)散模型到底在生成什么、它憑什么實(shí)現(xiàn)可擴(kuò)展、網(wǎng)絡(luò)和訓(xùn)練怎么設(shè)計(jì)、復(fù)現(xiàn)時(shí)要避哪些坑。想把手上的三維重建、生成式建模或者自動(dòng)化資產(chǎn)管線往前推一步的同學(xué)應(yīng)該能從里面找到比論文更貼近實(shí)操的解讀。1. 項(xiàng)目定位與整體設(shè)計(jì)思路1.1 3D資產(chǎn)生成為什么是硬骨頭要理解這項(xiàng)工作的貢獻(xiàn)得先明白3D資產(chǎn)生成和2D圖像生成的本質(zhì)差異在哪里。2D圖像生成能成功很大程度上歸功于“數(shù)據(jù)和表示的統(tǒng)一”。爬蟲抓取幾天就有上億張圖像壓縮成像素網(wǎng)格之后結(jié)構(gòu)整齊劃一卷積網(wǎng)絡(luò)和Transformer都能直接處理。但3D資產(chǎn)完全不是這么回事公開數(shù)據(jù)集的規(guī)模滿打滿算也就幾十萬量級(jí)還沒法等比縮小。更麻煩的是格式極度不統(tǒng)一——有掃描重建的網(wǎng)格、有手工建模的CAD模型、有點(diǎn)云、有帶材質(zhì)和不帶材質(zhì)的拓?fù)?、尺度、面片?shù)全都不一樣。還有一個(gè)更底層的問題計(jì)算機(jī)根本沒有一個(gè)“普適的3D表示”。圖像天然是二維矩陣但3D形狀可以用體素、點(diǎn)云、三角網(wǎng)格、隱式場(chǎng)來表示每一種都有自己的一套優(yōu)缺點(diǎn)。所以3D生成模型首先面對(duì)的是一個(gè)“表示選擇”難題這決定了后面所有的網(wǎng)絡(luò)結(jié)構(gòu)、損失函數(shù)和訓(xùn)練流程。我認(rèn)識(shí)的一些同行剛上手時(shí)習(xí)慣性把2D的UNet換成3D卷積直接訓(xùn)練體素結(jié)果就是生成結(jié)果發(fā)糊分辨率一提上去顯存直接爆炸。這不是算法不行是表示和架構(gòu)不匹配。3D-Diffusion這類工作把“可擴(kuò)展性”當(dāng)作設(shè)計(jì)的第一性約束而不是訓(xùn)練之后再來反思這個(gè)立場(chǎng)我認(rèn)為是它最值得學(xué)習(xí)的地方。它的目標(biāo)不是在小數(shù)據(jù)集上講一個(gè)玩具故事而是找到一條能靠算力和數(shù)據(jù)規(guī)模堆出質(zhì)量的路。1.2 從“數(shù)據(jù)表示”出發(fā)的方案選型方案選型本質(zhì)上是一次關(guān)于3D表示的艱難權(quán)衡。我根據(jù)自己的實(shí)踐把幾個(gè)主流候選梳理成一張對(duì)比表。表示方式優(yōu)點(diǎn)缺點(diǎn)擴(kuò)散模型適配度顯式體素網(wǎng)格結(jié)構(gòu)規(guī)則卷積友好顯存隨分辨率立方級(jí)增長(zhǎng)高頻細(xì)節(jié)上限低簡(jiǎn)單直接但分辨率受限點(diǎn)云輕量、原生稀疏、容易獲取無表面連通性后處理成網(wǎng)格麻煩可用但生成結(jié)果不夠完整三角網(wǎng)格工業(yè)界直接可用拓?fù)潆x散難以定義連續(xù)擴(kuò)散過程很難直接作為擴(kuò)散模型輸出隱式場(chǎng)占用場(chǎng)/SDF/NeRF連續(xù)表示、支持任意分辨率查詢、多視圖一致性好訓(xùn)練需要采樣或渲染推理需額外提取等值面主流適配方案最順從擴(kuò)散模型的視角看最關(guān)鍵的需求是“能定義一個(gè)連續(xù)的高斯加噪過程”。三角網(wǎng)格是離散的組合結(jié)構(gòu)點(diǎn)云是帶噪聲的無序集合都不好直接套標(biāo)準(zhǔn)的DDPM框架。隱式場(chǎng)不一樣你只要把三維空間采樣成一個(gè)個(gè)點(diǎn)每個(gè)點(diǎn)對(duì)應(yīng)“該位置是否被占用”或者“到最近表面的有符號(hào)距離”形狀就變成了一組“坐標(biāo)—數(shù)值”對(duì)擴(kuò)散模型的加噪和去噪就在這個(gè)場(chǎng)上進(jìn)行訓(xùn)練目標(biāo)非常干凈。這里有一個(gè)工程判斷我覺得特別重要如果選占用場(chǎng)這類表示網(wǎng)絡(luò)就不需要直接處理復(fù)雜的表面拓?fù)渌皇穷A(yù)測(cè)每個(gè)三維點(diǎn)是實(shí)體還是空白。看起來繞了一步實(shí)際上大大降低了生成任務(wù)的難度。我這個(gè)實(shí)踐下來暫時(shí)沒有找到比隱式場(chǎng)更適合擴(kuò)散范式起步的表示方式。1.3 擴(kuò)散模型在3D上如何重新建模到這一步整體框架就比較清楚了擴(kuò)散模型的核心邏輯都沒變變的只是它所作用的對(duì)象從二維像素矩陣換成了三維采樣場(chǎng)。你可以把空間劃分成比如128×128×128的網(wǎng)格每個(gè)采樣點(diǎn)有一個(gè)占用值然后把所有點(diǎn)的值拉成一個(gè)長(zhǎng)向量當(dāng)作擴(kuò)散模型的輸入。前向過程往這個(gè)向量上逐步加高斯噪聲反向過程從一個(gè)純?cè)肼晥?chǎng)開始逐步去噪最終恢復(fù)成有意義的形狀場(chǎng)。這跟圖像DDPM在數(shù)學(xué)上沒有本質(zhì)區(qū)別噪聲調(diào)度、目標(biāo)函數(shù)都能沿用成熟的經(jīng)驗(yàn)。但3D域里有一個(gè)2D完全沒有的工程問題場(chǎng)的規(guī)模大得嚇人。一個(gè)2563的場(chǎng)單通道就有一千六百多萬個(gè)元素比224×224×3的彩色圖像還要高出兩個(gè)數(shù)量級(jí)。直接對(duì)這么長(zhǎng)的向量做擴(kuò)散無論是顯存還是計(jì)算量都不可接受。所以設(shè)計(jì)上必須有壓縮手段要么分塊訓(xùn)練要么先用一個(gè)自編碼器把高維場(chǎng)壓成緊湊的潛碼再在潛空間上做擴(kuò)散。這也是后面整個(gè)3D生成方向演進(jìn)的伏筆潛空間擴(kuò)散的思路幾乎是從這里開始扎根的。我自己的理解里3D-Diffusion最核心的貢獻(xiàn)并不是發(fā)明了一個(gè)新范式而是把擴(kuò)散模型從一個(gè)不適合直接處理的離散表示里拉出來放到了一個(gè)連續(xù)但相對(duì)緊湊的空間里這才讓“堆數(shù)據(jù)和算力就能提升質(zhì)量”這件事在3D領(lǐng)域變得有一點(diǎn)點(diǎn)可能性。2. 核心機(jī)制與關(guān)鍵技術(shù)拆解這一章拆幾個(gè)決定工作成敗的核心機(jī)制論文里往往是公式帶過實(shí)際工程里全是坑。2.1 前向與反向擴(kuò)散過程的3D化前向過程很簡(jiǎn)單。給定一個(gè)3D場(chǎng)x_0按照預(yù)設(shè)的噪聲調(diào)度表β_t每一步執(zhí)行標(biāo)準(zhǔn)的高斯擴(kuò)散q(x_t | x_{t-1}) N(x_t; sqrt(1?β_t) x_{t-1}, β_t I)形式上看和圖像擴(kuò)散沒有任何區(qū)別只是x_t的尺寸變成了三維場(chǎng)。因?yàn)閳?chǎng)的每個(gè)坐標(biāo)都是獨(dú)立被采樣和預(yù)測(cè)的所以網(wǎng)絡(luò)本質(zhì)上學(xué)習(xí)的是一個(gè)形狀的概率分布而不是記憶某個(gè)固定形狀。反向過程也是標(biāo)準(zhǔn)套路訓(xùn)練一個(gè)去噪網(wǎng)絡(luò)ε_(tái)θ讓它盡可能準(zhǔn)確地預(yù)測(cè)每一步注入的噪聲損失函數(shù)是最小化預(yù)測(cè)噪聲和真實(shí)噪聲之間的均方誤差。這里我喜歡用一個(gè)“刮油漆”的類比來解釋前向相當(dāng)于把一尊雕塑不斷潑上油漆直到完全糊成一塊純色立方體反向過程就是讓網(wǎng)絡(luò)學(xué)著從純色立方體出發(fā)一步步把油漆刮掉直到露出雕塑的輪廓。每一步只需做微小的修正所以比一口氣猜出整尊雕塑要穩(wěn)定得多。實(shí)際訓(xùn)練時(shí)擴(kuò)散步數(shù)T的選擇要非常小心。T越大每步的去噪任務(wù)越簡(jiǎn)單訓(xùn)練越穩(wěn)但訓(xùn)練和推理開銷都線性上漲。3D域里的網(wǎng)絡(luò)推理本來就重所以我見過不少工程實(shí)現(xiàn)會(huì)把采樣步數(shù)壓到100步甚至50步配合DDIM這類確定性采樣質(zhì)量上基本能逼近1000步的結(jié)果這算是實(shí)用派和原教旨派的一個(gè)明顯分界。2.2 網(wǎng)絡(luò)架構(gòu)從UNet到3D稀疏卷積網(wǎng)絡(luò)骨架層面最常見的做法是把2D UNet做3D化移植編碼器逐級(jí)下采樣中間是若干分辨率層解碼器上采樣配上skip connection卷積替換成3D卷積歸一化層用GroupNorm這類與batch大小無關(guān)的方案。移植的代碼難度本身不高真正的瓶頸在算力分配。三維卷積的復(fù)雜度跟分辨率之間是立方關(guān)系。2563的場(chǎng)直接用全稠密UNet訓(xùn)練單張中高端卡根本跑不動(dòng)。我見過的主流緩解方案有兩條路。第一條是降低訓(xùn)練分辨率先用1283甚至643把模型訓(xùn)出來推理后再通過超分辨率模塊或后續(xù)細(xì)化提升細(xì)節(jié)。優(yōu)點(diǎn)是實(shí)現(xiàn)最簡(jiǎn)單缺點(diǎn)就是高頻幾何細(xì)節(jié)容易丟生成出來的模型總覺得“肉肉的”棱角不夠分明。第二條是借力稀疏化。因?yàn)?D場(chǎng)里絕大多數(shù)體素是空的可以只對(duì)非空區(qū)域做計(jì)算配合稀疏卷積實(shí)現(xiàn)內(nèi)存和計(jì)算量能省一到兩個(gè)數(shù)量級(jí)。這個(gè)方法的效果很誘人但代碼復(fù)雜度高數(shù)據(jù)預(yù)處理和工程鏈路都要跟著改造對(duì)開發(fā)周期要求高。我給一個(gè)實(shí)用建議想快速理解這套流程先用1283稠密體素跑通一個(gè)demo想逼近論文的生成質(zhì)量或者做大類別訓(xùn)練再考慮引入稀疏卷積。不要一開始就被顯存瓶頸嚇退先求跑通再求優(yōu)化。2.3 條件生成與生成的“入口”現(xiàn)在的主流3D生成論文幾乎都會(huì)把條件生成作為核心feature原因很現(xiàn)實(shí)無條件生成的價(jià)值有限游戲、影視、仿真場(chǎng)景都需要可控的生成入口。常見的條件類型可以歸成三類類別標(biāo)簽最簡(jiǎn)單把類別embedding拼進(jìn)網(wǎng)絡(luò)即可適合數(shù)據(jù)集規(guī)模有限時(shí)的入門實(shí)驗(yàn)。文本描述用CLIP或類似編碼器把文本轉(zhuǎn)成向量然后通過cross-attention注入到UNet的特征層這是在圖像生成里被驗(yàn)證過的成熟方案。圖像條件給定單張或多視角圖生成對(duì)應(yīng)的3D模型這是“圖片生成3D”pipeline的核心也是最貼近實(shí)際設(shè)計(jì)流程的條件類型。條件機(jī)制在3D和2D之間是高度共通的。如果你已經(jīng)理解了Stable Diffusion里怎么做文本條件的cross-attention那遷移到3D擴(kuò)散模型上幾乎沒有學(xué)習(xí)成本。唯一要額外注意的是條件編碼器對(duì)3D數(shù)據(jù)的適配度大量3D數(shù)據(jù)集沒有現(xiàn)成的文本標(biāo)注經(jīng)常需要先用預(yù)訓(xùn)練視覺模型自動(dòng)生成描述或者退而求其次用類別標(biāo)簽混著用。我在做數(shù)據(jù)準(zhǔn)備時(shí)體會(huì)很深數(shù)據(jù)清洗和條件標(biāo)注的質(zhì)量往往比模型結(jié)構(gòu)更能決定最終生成效果的上限。2.4 訓(xùn)練損失與采樣策略里的細(xì)節(jié)3D擴(kuò)散模型的損失函數(shù)核心是噪聲預(yù)測(cè)的MSE這一點(diǎn)跟圖像域完全一樣。但工程實(shí)現(xiàn)里有幾個(gè)容易被忽略的細(xì)節(jié)我一個(gè)個(gè)說。時(shí)間步embedding要加夠。3D模型的參數(shù)量比2D更大對(duì)時(shí)間步的感知更容易失效建議使用正弦位置編碼并且在每個(gè)下采樣塊和上采樣塊里都注入不要只在入口加一次。噪聲調(diào)度表要自己調(diào)。我對(duì)比過線性調(diào)度和cosine調(diào)度在3D場(chǎng)數(shù)據(jù)上cosine明顯更穩(wěn)梯度方差更小。如果你發(fā)現(xiàn)loss下降正常但生成結(jié)果總是一片空白或一片噪聲大概率是β調(diào)的不對(duì)尤其要注意β最大值別設(shè)太大。EMA必須開。3D訓(xùn)練每個(gè)batch的方差比圖像大得多指數(shù)移動(dòng)平均能顯著穩(wěn)定生成質(zhì)量。這是2D那邊早就驗(yàn)證過的經(jīng)驗(yàn)到了3D場(chǎng)景里依賴程度只會(huì)更深不開EMA的模型訓(xùn)練曲線會(huì)抖得讓你想罵人。采樣階段純DDPM采樣雖然理論正確但每步都要過一遍大網(wǎng)絡(luò)慢得無法接受。強(qiáng)烈建議用DDIM或類似確定性加速采樣我在實(shí)驗(yàn)里發(fā)現(xiàn)幾乎不掉點(diǎn)推理時(shí)間能降到原來的十分之一左右。3. 可擴(kuò)展性設(shè)計(jì)從哪幾個(gè)維度落地標(biāo)題里“Scalable”不是隨便放的裝飾詞。真正落地的可擴(kuò)展性至少要拆成三個(gè)維度來理解。3.1 數(shù)據(jù)規(guī)模的可擴(kuò)展可擴(kuò)展性的第一個(gè)要求是模型不能只“記住”某個(gè)小數(shù)據(jù)集而要能從持續(xù)增長(zhǎng)的數(shù)據(jù)中學(xué)習(xí)新規(guī)律。這要求數(shù)據(jù)表示、網(wǎng)絡(luò)結(jié)構(gòu)、訓(xùn)練策略都能對(duì)新增樣本、新增類別自然適配而不是一加數(shù)據(jù)模型就崩潰。我在實(shí)際項(xiàng)目中體會(huì)最深的一點(diǎn)是數(shù)據(jù)清洗的優(yōu)先級(jí)要遠(yuǎn)高于數(shù)據(jù)量。3D數(shù)據(jù)集里的網(wǎng)格經(jīng)常有尺度不統(tǒng)一、坐標(biāo)系錯(cuò)亂、內(nèi)部結(jié)構(gòu)殘留、孔洞未封閉等問題。做場(chǎng)表示之前一定要做歸一化對(duì)齊流程把所有模型縮放到單位立方體質(zhì)心對(duì)齊到坐標(biāo)原點(diǎn)必要時(shí)統(tǒng)一朝向再做表面采樣和水密化預(yù)處理。不做這一步訓(xùn)練過程中你會(huì)發(fā)現(xiàn)生成結(jié)果里充斥著大量“半殘”形狀像是從非常糟糕的訓(xùn)練樣本里直接學(xué)壞了。3.2 分辨率與類別的可擴(kuò)展分辨率可擴(kuò)展在這個(gè)方向上的常見做法是先低后高的課程式訓(xùn)練。比如先在643或1283的低分辨率下讓模型學(xué)會(huì)整體的結(jié)構(gòu)布局再逐步上采樣到2563。這種兩階段訓(xùn)練比端到端的一次性高分辨率訓(xùn)練穩(wěn)定得多也不容易碰到訓(xùn)練初期就顯存不足的尷尬。類別覆蓋度是另一個(gè)判斷可擴(kuò)展性的好標(biāo)準(zhǔn)。很多3D生成模型在單一類別上效果很好比如只生成椅子時(shí)有模有樣但一旦混合到家居場(chǎng)景、機(jī)械零件、人體模型這些跨類別數(shù)據(jù)里就開始串類別。一個(gè)架構(gòu)是否真的可擴(kuò)展就看當(dāng)訓(xùn)練類別從10個(gè)擴(kuò)展到100個(gè)時(shí)平均生成質(zhì)量有沒有明顯下滑。下降幅度小的才是真正能規(guī)模化的架構(gòu)。3.3 算力與部署的可擴(kuò)展3D生成對(duì)顯存的貪婪程度做過的人都懂。一個(gè)2563的場(chǎng)已經(jīng)能吃掉接近一張中端卡的全部顯存這讓“可擴(kuò)展”在工程上多了一層含義能不能在大規(guī)模集群上并行訓(xùn)練以及推理時(shí)能不能在低顯存設(shè)備上落地。我有兩個(gè)實(shí)際部署中的策略可以分享。第一個(gè)是分塊推理把空間劃分成若干重疊塊分別采樣場(chǎng)值再在邊緣做羽化融合這樣單卡也能推高分辨率結(jié)果代價(jià)只是多花一些時(shí)間。第二個(gè)是潛空間壓縮先訓(xùn)練一個(gè)自編碼器把3D場(chǎng)壓成緊湊的潛向量然后在潛空間做擴(kuò)散。這個(gè)方案犧牲了一點(diǎn)可視化直觀性但換來的是訓(xùn)練和部署成本的顯著下降也是后續(xù)許多3D生成工作的主流路線。4. 實(shí)操要點(diǎn)與復(fù)現(xiàn)避坑指南這部分是我自己動(dòng)手復(fù)現(xiàn)這類方案時(shí)最想留下的經(jīng)驗(yàn)可能比論文里的公式更容易你在實(shí)際項(xiàng)目里用到。4.1 最小復(fù)現(xiàn)流程如果你想快速跑通一個(gè)最小流程來理解整套機(jī)制我建議按下面這個(gè)順序一步步來。不用一開始就追求大數(shù)據(jù)集和大模型先讓鏈路完整轉(zhuǎn)起來。第一步準(zhǔn)備一批規(guī)范化后的3D模型。訓(xùn)練集不需要很大幾百個(gè)單一類別的模型就足夠把框架跑通。重點(diǎn)是把模型全部縮放到單位立方體統(tǒng)一坐標(biāo)系確保表面是水密的。第二步對(duì)每個(gè)模型做空間采樣生成占用場(chǎng)或SDF場(chǎng)的訓(xùn)練對(duì)。采樣策略上我建議均勻采樣整個(gè)三維空間同時(shí)額外在表面附近做密集采樣用來增強(qiáng)細(xì)節(jié)學(xué)習(xí)。采樣代碼大概長(zhǎng)這樣def sample_occupancy_field(mesh, num_uniform60000, num_surface40000): # 均勻采樣 pts_uniform np.random.rand(num_uniform, 3) occ_uniform compute_occupancy(mesh, pts_uniform) # 表面附近采樣在網(wǎng)格頂點(diǎn)附近加高斯擾動(dòng) surface_pts sample_surface(mesh, num_surface) pts_surface surface_pts 0.01 * np.random.randn(*surface_pts.shape) occ_surface compute_occupancy(mesh, pts_surface) pts np.concatenate([pts_uniform, pts_surface], axis0) occ np.concatenate([occ_uniform, occ_surface], axis0) return pts, occ注意占用值的計(jì)算必須使用水密網(wǎng)格和射線法或符號(hào)距離判斷否則空間內(nèi)外判斷會(huì)有嚴(yán)重問題。第三步定義一個(gè)3D UNet。輸入是帶噪聲的場(chǎng)樣本輸出是預(yù)測(cè)的噪聲場(chǎng)。參數(shù)量從小規(guī)模開始卷積通道數(shù)從32起步不要一開始就往大了堆。第四步按標(biāo)準(zhǔn)DDPM流程訓(xùn)練幾百個(gè)epoch。我常用的關(guān)鍵超參數(shù)組合是擴(kuò)散步數(shù)T1000噪聲調(diào)度用cosine學(xué)習(xí)率1e-4batch size盡可能給滿。EMA權(quán)重衰減系數(shù)設(shè)成0.999。第五步推理時(shí)用DDIM加速采樣從純?cè)肼晥?chǎng)開始逐步去噪。得到場(chǎng)之后用Marching Cubes算法提取等值面轉(zhuǎn)成網(wǎng)格。這里等值面閾值的選擇對(duì)網(wǎng)格質(zhì)量影響很大占用場(chǎng)一般取0.5附近SDF場(chǎng)取0附近需要根據(jù)訓(xùn)練時(shí)的定義微調(diào)。如果過程中發(fā)現(xiàn)生成結(jié)果是一團(tuán)均勻噪聲或者全空優(yōu)先檢查兩個(gè)地方噪聲調(diào)度和輸入取值范圍的匹配程度以及采樣點(diǎn)分布是不是過度偏向了表面。這兩個(gè)問題占了大多數(shù)“訓(xùn)練沒效果”的案例。4.2 評(píng)估指標(biāo)FID、覆蓋率和多樣性評(píng)估3D生成質(zhì)量不能只看渲染出來的圖片好不好看。行業(yè)內(nèi)常用的做法是把生成網(wǎng)格渲染成多視角圖像然后計(jì)算FID、覆蓋率COV和最小匹配距離MMD這些指標(biāo)。這里有很關(guān)鍵的一個(gè)細(xì)節(jié)渲染視角必須固定。我見過不少項(xiàng)目的評(píng)估結(jié)果波動(dòng)巨大后來排查發(fā)現(xiàn)是渲染相機(jī)位置不統(tǒng)一導(dǎo)致的。建議所有生成樣本統(tǒng)一使用同一套相機(jī)軌跡比如固定等距旋轉(zhuǎn)的若干個(gè)角度保證每個(gè)模型獲取圖像的條件一致。另外3D生成里單純看FID很容易失真。FID反映的是分布接近程度不代表單個(gè)樣本的可用性。一個(gè)模型可能FID很低但生成的形狀都在幾個(gè)固定模式附近打轉(zhuǎn)。所以最好配合覆蓋率指標(biāo)看看生成的集合是不是真的覆蓋了訓(xùn)練集中的各類形態(tài)還是只在少數(shù)幾個(gè)模式附近反復(fù)抽樣。4.3 常見的三個(gè)坑我把實(shí)操作業(yè)里踩過、也見過別人踩的坑整理成一張速查表希望幫你省掉幾周的排查時(shí)間。問題典型原因解決建議生成的形狀總是半破碎場(chǎng)分辨率太低或訓(xùn)練采樣點(diǎn)分布不均提高場(chǎng)分辨率增加表面附近采樣密度訓(xùn)練loss降了但樣本全是噪聲噪聲調(diào)度β設(shè)置過大改用cosine調(diào)度或縮小β范圍降低學(xué)習(xí)率顯存爆炸全稠密高分辨率場(chǎng)訓(xùn)練分塊推理、改用稀疏卷積、或做潛空間壓縮生成結(jié)果朝向混亂訓(xùn)練集的坐標(biāo)朝向沒有對(duì)齊訓(xùn)練前統(tǒng)一做朝向左齊或固定方向歸一化這張表里的每一條都能讓一個(gè)看起來完全正確的框架直接翻車。我尤其想強(qiáng)調(diào)朝向?qū)R的問題3D數(shù)據(jù)集的原始朝向千奇百怪有的模型正著擺有的旋轉(zhuǎn)了90度甚至倒置。不對(duì)齊的話模型在訓(xùn)練時(shí)會(huì)花大量容量去學(xué)習(xí)各種朝向的變換最后生成結(jié)果就在各個(gè)朝向之間飄忽不定。5. 應(yīng)用場(chǎng)景、變體與未來發(fā)展5.1 在行業(yè)里的典型應(yīng)用位置這類3D擴(kuò)散生成能力最直接的用武之地是游戲和影視前期的資產(chǎn)快速原型。美術(shù)可以先讓擴(kuò)散模型生成一批符合粗略描述的模型從中挑選幾版有潛力的基礎(chǔ)形態(tài)再進(jìn)入精細(xì)雕刻流程。相比從頭建模節(jié)省的時(shí)間是質(zhì)變級(jí)別的。真正在項(xiàng)目里跑過一遍的人才會(huì)理解這就像是給美術(shù)配了一個(gè)不知疲倦的靈感實(shí)習(xí)生你只需要做選擇和優(yōu)化。另一個(gè)重要場(chǎng)景是自動(dòng)駕駛和機(jī)器人仿真。這類系統(tǒng)需要大量形狀多樣、覆蓋極端邊界情況的三維障礙物和目標(biāo)模型人工建模根本跟不上測(cè)試集擴(kuò)張的速度。擴(kuò)散模型可以在短時(shí)間內(nèi)產(chǎn)出大量合乎要求的幾何體雖然是隨機(jī)生成的但正因?yàn)殡S機(jī)才能覆蓋各種意想不到的corner case。做3D打印設(shè)計(jì)的人也值得關(guān)注。擴(kuò)散模型生成的隱式場(chǎng)天然是連續(xù)的提取出的網(wǎng)格基本都是封閉水密的用來生成可打印結(jié)構(gòu)比手工建模順暢不少。我在一些創(chuàng)作者社區(qū)里見過有人用類似方法生成燈具外殼、機(jī)械零件的原型輸出網(wǎng)格的打印友好度普遍不錯(cuò)。5.2 從生成走向編輯生成模型解決了“從無到有”的問題但產(chǎn)業(yè)界需求量更大的是“從有到好”——也就是編輯能力。擴(kuò)散模型框架在這方面有一個(gè)天然優(yōu)勢(shì)它可以在反向采樣過程中通過引導(dǎo)項(xiàng)classifier guidance或類似機(jī)制把形狀推向特定方向從而實(shí)現(xiàn)局部修改。比如把椅子的背部改高一點(diǎn)把一個(gè)零件的孔改大一點(diǎn)這些操作不需要重新訓(xùn)練模型只需要在采樣時(shí)加一個(gè)引導(dǎo)梯度。我實(shí)際測(cè)試過用引導(dǎo)項(xiàng)做局部約束體會(huì)是約束強(qiáng)度必須控制在很窄的窗口內(nèi)太強(qiáng)會(huì)破壞整體結(jié)構(gòu)一致性太弱則幾乎看不出變化。每個(gè)類別、每種修改類型都需要單獨(dú)調(diào)參不像文本去噪那樣能粗放式工作。這個(gè)特性決定了現(xiàn)階段的編輯能力適合做探索式調(diào)整還沒有到可以交給非專業(yè)人士隨便操作的程度。5.3 主要瓶頸與可能的演化方向盡管這條技術(shù)路線已經(jīng)證明了相當(dāng)強(qiáng)的可擴(kuò)展性但距離“泛用3D資產(chǎn)生成”還有三道必須跨越的門。第一是表示層的不統(tǒng)一仍然沒有最終答案。隱式場(chǎng)在捕捉高頻細(xì)節(jié)時(shí)天生吃虧網(wǎng)格直接生成又難定義連續(xù)擴(kuò)散過程未來大概率會(huì)走向多表示融合先用隱式場(chǎng)生成整體結(jié)構(gòu)再通過可微渲染或優(yōu)化步驟從圖像細(xì)節(jié)上恢復(fù)紋理和微表面結(jié)構(gòu)。第二是紋理和材質(zhì)的缺失。很多早期3D擴(kuò)散模型只關(guān)注幾何場(chǎng)本身沒有把顏色、材質(zhì)信息納入生成范圍。但一個(gè)3D資產(chǎn)能不能直接被下游使用很大程度取決于它有沒有貼圖和PBR材質(zhì)。光有幾何形狀但沒有外觀下游還要額外做一輪成本不低的材質(zhì)配套工作。第三是條件控制的穩(wěn)定性。文本條件、圖像條件、布局條件在2D里已經(jīng)非常強(qiáng)大但在3D領(lǐng)域里因?yàn)閿?shù)據(jù)模態(tài)稀疏跨模態(tài)對(duì)齊還很不穩(wěn)定。我判斷未來一段時(shí)間的主要增長(zhǎng)點(diǎn)會(huì)集中在跨模態(tài)訓(xùn)練數(shù)據(jù)的蒸餾與自動(dòng)清洗、更高效的標(biāo)注流水線、以及條件注入方式的細(xì)粒度控制。純模型結(jié)構(gòu)優(yōu)化的邊際收益正在讓位于數(shù)據(jù)處理和條件設(shè)計(jì)的系統(tǒng)化改進(jìn)。我個(gè)人在實(shí)際項(xiàng)目里的體會(huì)是這個(gè)方向真正的門檻已經(jīng)不在“能不能生成一個(gè)形狀”而在于“生成之后怎么無縫接入現(xiàn)有生產(chǎn)管線”。幾何、紋理、語義、交互每一步都在消耗工程成本這不是單一篇論文能一攬子解決的。但退一步說3D擴(kuò)散生成至少把這條長(zhǎng)跑賽道的起點(diǎn)向前挪了很大一截。未來幾年誰能在數(shù)據(jù)管線和條件控制上做出系統(tǒng)化突破誰就更有可能拿到3D資產(chǎn)生成這片藍(lán)海的入場(chǎng)券。