來自張標大佬的文章,將三維形狀表示成向量集合,然后使用擴散模型實現(xiàn)多種條件控制生成

這種表示是在全局隱向量,規(guī)則隱向量和不規(guī)則隱向量的表示的基礎(chǔ)上發(fā)展而來,利用到了徑向基函數(shù),交叉注意力,自注意力等設(shè)計了幾種基于transformer的處理方式。對于條件生成任務(wù),采用兩階段的訓練策略,第一階段是自動編碼器(變分自動編碼器),將三維形狀編碼到潛在空間中。第二階段是在學習到的潛在空間中訓練一個擴散模型。

一個合適的學習到的神經(jīng)場表示,必須在壓縮和重建質(zhì)量之間提供一個良好的權(quán)衡。這種設(shè)計通常需要三個組成部分:用于存儲潛在信息的空間數(shù)據(jù)結(jié)構(gòu)、空間插值方法和神經(jīng)網(wǎng)絡(luò)架構(gòu)。文獻中提出的備選方案有多種,如圖2所示。早期的方法使用單個全局隱向量結(jié)合MLP網(wǎng)絡(luò)。這個概念簡單但通常很難重建高質(zhì)量的形狀。通過使用latent grid 3D規(guī)則網(wǎng)格,結(jié)合三線性插值和MLP,可以獲得更好的形狀細節(jié)。然而,這樣的表示對于生成式模型來說太大了,只能使用極低分辨率的(例如, 8 × 8 × 8)的網(wǎng)格。通過引入稀疏性,latents排列在不規(guī)則的網(wǎng)格中。雖然在很大程度上減少了潛在的尺寸,但在3DShape2VecSet的設(shè)計中,我們?nèi)杂泻艽蟮母倪M空間。
受transformer中交叉注意力的啟發(fā),使用固定大小的隱向量集合作為形狀的隱向量表示。我們認為有兩個主要原因促成了表征的成功。首先,該表示非常適合與基于transformer的網(wǎng)絡(luò)使用。由于基于transformer的網(wǎng)絡(luò)往往優(yōu)于當前的備選方案,因此我們可以更好地從這種網(wǎng)絡(luò)架構(gòu)中受益。與僅使用MLPs處理潛在信息不同,我們使用了線性層和交叉注意力。其次,該表征不再使用明確設(shè)計的位置特征,而僅賦予網(wǎng)絡(luò)以其認為合適的任何形式編碼位置信息的選擇權(quán),這符合我們的設(shè)計原則,即學習到的表示優(yōu)于手工設(shè)計的表示。所提出的潛在表示見圖2e )。
歸納起來,作者的貢獻如下:( 1 )提出了一種新的三維形狀表示方法。任何形狀都可以用固定長度的隱層數(shù)組來表示,并使用交叉注意力和線性層來處理,以產(chǎn)生一個神經(jīng)場。( 2 )我們提出了一種新的網(wǎng)絡(luò)架構(gòu)來處理所提出的表示中的形狀,包括一個構(gòu)建塊來使用交叉注意力從大的點云中聚合信息。( 3 )我們改進了3D形狀自編碼的研究現(xiàn)狀,以獲得包含局部細節(jié)的高保真重建。( 4 )提出了一種latent set diffusion。我們改進了FID、KID、FPD和KPD在3D形狀生成方面的研究現(xiàn)狀。( 5 )展示了類別條件生成、文本條件生成、點云補全和圖像條件生成的3D形狀擴散。
1、形狀表示
徑向基函數(shù)
一個連續(xù)函數(shù)可以用3D中的一組加權(quán)點用RBFs表示:
這里 是徑向基函數(shù)radial basis function (RBF) 通常表示兩個輸入之間的相似性(或相異性),
給定xi的真值占有率occupancies,λi的值可以通過求解一個線性方程組得到。這樣,我們可以將連續(xù)函數(shù)O ( · )表示為M個點的集合以及它們對應的權(quán)重。
然而,為了保留三維形狀的細節(jié),往往需要非常多的點數(shù)(如文獻[ Carr et al.2001 ]中M = 80000)。這種表示并沒有從表示學習的最新進展中獲益,也無法與更緊湊的學習表示競爭。因此,我們想對表征進行修改,使其變成一個神經(jīng)場。
神經(jīng)場的表示
有兩種解決方案:一種是將每個形狀表示為一個單獨的神經(jīng)網(wǎng)絡(luò)(使得固定大小網(wǎng)絡(luò)的網(wǎng)絡(luò)權(quán)值成為形狀的表示),并將一個擴散過程訓練為超網(wǎng)絡(luò)。(將形狀表示成網(wǎng)絡(luò),使用超網(wǎng)絡(luò)表示不同形狀)第二種方法是為所有形狀建立一個共享的編碼器-解碼器網(wǎng)絡(luò),并將每個形狀表示為編碼器計算的一個潛在形狀(將形狀表示成不同的latents)。第二種方法表示更緊湊,因為它是由數(shù)據(jù)集中的所有形狀共同學習的,而網(wǎng)絡(luò)權(quán)重本身并不計算到潛在的表示。這樣的神經(jīng)場以坐標x和C維隱形f的元組作為輸入,輸出占有率。
因此很多方法來表示f,如圖2。第一種方法是使用單個全局隱變量f,但是一個主要的限制是編碼形狀細節(jié)的能力。后續(xù)的一些工作研究了將傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)如規(guī)則網(wǎng)格與神經(jīng)場概念相結(jié)合的坐標依賴隱層。將隱向量排列成空間數(shù)據(jù)結(jié)構(gòu),然后插值(三線性)得到坐標依賴的隱向量fx。最近的一項工作3DILG也是張標大神的cvpr文章 [ Zhang et al . 2022]提出了一種3D形狀的稀疏表示方法,使用在點位置xi的不規(guī)則網(wǎng)格中排列的隱元fi。然后通過核回歸估計最終的坐標依賴潛變量fx。
其中 是一個歸一化因子,因此,三維形狀的表示可以寫為
,在此之后一個MLP
應用于將近似特征
投影到占有率,
提出的表示方法
我們初步探索了基于不規(guī)則和規(guī)則網(wǎng)格irregular and regular grids以及三平面tri-planes、頻率組成frequency compositions,和其他分解表示的三維形狀表示的多種變體。最終,我們無法對現(xiàn)有的不規(guī)則網(wǎng)格進行改進。然而,我們能夠?qū)崿F(xiàn)一個顯著的改善與以下的策略。我們的目標是保持不規(guī)則網(wǎng)格和插值的結(jié)構(gòu),但是沒有顯式地表示實際的空間位置。我們讓網(wǎng)絡(luò)對空間信息進行編碼。我們保持了插值的結(jié)構(gòu),但減少了顯式的點坐標,并從公式中集成了交叉注意力。他的結(jié)果是下面的可學習函數(shù)逼近器,
最后通過一個fc層得到占有率
與3DILG和其他所有基于坐標隱變量的方法相比,我們降低了對坐標集合的依賴,新的表示只包含一組隱變量, 另一個觀點是將其看作查詢點x和一組潛變量之間的交叉注意力。
2、形狀表示方法
該結(jié)構(gòu)由三個部分組成:3D形狀編碼器、KL正則化模塊和3D形狀解碼器。

形狀編碼
為了將三維形狀表示為一組向量,首先的挑戰(zhàn)是如果將較多的點云信息聚合到一個較小的向量集合中,解決這個問題的一個流行的方法是將大的點云劃分為更小的塊集合,并在每個塊中學習一個潛在向量。雖然這在許多網(wǎng)絡(luò)中是一個非常有研究和標準的組件,但我們發(fā)現(xiàn)了一種更成功的方法來從大的點云中聚合特征,該方法與transformer架構(gòu)更好地兼容。我們考慮了兩種選擇。一種是定義一個查詢集合,這個集合是可以學習的,另一種是使用點云自身,首先使用最遠點采樣得到更小的點擊,然后進行位置嵌入通過交叉注意力得到position。
如圖4所示。數(shù)量M影響重構(gòu)性能:M越大,重構(gòu)效果越好。但由于transformer架構(gòu)的原因,M對訓練時間影響較大,不宜過大。在我們的最終模型中,將隱層節(jié)點數(shù)M設(shè)置為512,通道數(shù)C設(shè)置為512,以在重建質(zhì)量和訓練時間之間進行權(quán)衡。
正則化
我們將VAE的設(shè)計思想應用于我們的3D形狀表示,并利用KL散度對特征進行正則化。需要注意的是,KL正則化是可選的,只對第二階段的擴散模型訓練是必要的。如果我們只想從點云中重建表面,就不需要KL正則化。
首先通過兩個網(wǎng)絡(luò)分支分別對均值和方差進行線性投影:
其中 and
是兩個線性映射層,我們使用了不同大小的輸出通道C0,其中C0<<C,這樣的壓縮使得我們可以在更小的潛在總大小M上訓練擴散模型
. 這樣可以寫成VAE的形式
這里,KL正則化可以寫作
在實際應用中,我們將KL損失的權(quán)重設(shè)置為0.001,并實驗了不同C0值的性能。我們推薦的設(shè)置是C0 = 32
形狀解碼
為了增加網(wǎng)絡(luò)的表達能力,我們在兩部分之間加入了一個潛在學習網(wǎng)絡(luò)(latent learning network)。因為我們的隱層是一組向量,所以在這里使用transformer網(wǎng)絡(luò)是很自然的。因此,這里提出的網(wǎng)絡(luò)是一系列自注意塊,形狀編碼后的latents 輸入到self-att塊中,對于一個查詢x,使用交叉注意力獲得相對應的latent,然后通過全連接層獲得占用率。
損失
使用交叉熵損失訓練,我們在分辨率為的網(wǎng)格中采樣查詢點。利用Marching Cubes對最終曲面進行重構(gòu)
3、形狀生成
我們提出的擴散模型結(jié)合了潛在擴散(壓縮潛在空間的思想)、EDM (大部分訓練細節(jié)),和我們的形狀表示設(shè)計(該架構(gòu)基于注意力和自注意力而不是卷積)。 擴散模型在kl正則化后的潛在空間訓練


該網(wǎng)絡(luò)可以很容易地通過自注意力transformer進行建模。每層由兩個注意力塊組成。第一個自注意力塊是對潛在集進行專注學習的自我關(guān)注。第二個注入條件信息C (圖7 ( b )) )。對于類別等簡單信息,C是一個可學習的嵌入向量(例如,對于55個類別,有55個不同的嵌入向量)。對于單視角圖像,我們使用ResNet - 18作為上下文編碼器來提取一個全局特征向量作為條件C。對于文本條件,我們使用BERT來學習一個全局特征向量作為C。對于部分點云,我們使用本文的形狀編碼方法得到一組潛在嵌入作為C。在無條件生成的情況下,交叉注意力退化為自注意力(圖7 ( a )) )。
實驗設(shè)置
數(shù)據(jù)集
我們使用ShapeNet - v2數(shù)據(jù)集作為基準,包含55類人造物體。我們使用[ Zhang et al . 2022]中的training / val拆分。我們像在[Mescheder et al 2019]中一樣對形狀進行預處理。每個形狀首先轉(zhuǎn)換為水密網(wǎng)格,然后歸一化到其包圍盒,從中進一步采樣尺寸為50,000的稠密表面點云。為了學習神經(jīng)場,我們在三維空間中隨機采樣50,000個有占位的點,在近表面區(qū)域隨機采樣50,000個有占位的點。對于單視點物體重建,我們使用3D - R2N2 提供的2D渲染數(shù)據(jù)集,其中每個形狀從24個隨機視點渲染成大小為224 × 224的RGB圖像。對于文本驅(qū)動的形狀生成,我們使用Shape Glot的文本提示。對于形狀補全訓練的數(shù)據(jù)預處理,我們通過采樣點云面片來創(chuàng)建部分點云。
形狀自動編碼結(jié)果
對于形狀自編碼器,我們使用大小為2048的點云作為輸入。在每次迭代中,我們分別從格點中抽取1024個查詢點和從近表面區(qū)域中抽取1024個查詢點進行占有率預測。形狀自編碼器在8 A100上訓練,對于T = 1,600個epoch,批處理大小為512。學習速率在前t0 = 80個epochs線性增加到lrmax = 5e-5,然后使用余弦衰減規(guī)則逐漸減小,until reaching the minimum value of 1?? ? 6. 擴散模型在4 A100上進行訓練,批次大小為256,T = 8000epochs.。在前t0 = 800個歷元中,學習速率線性增加到lrmax = 1e-4,然后使用上述衰減規(guī)律逐漸減小,直到達到1e - 6。我們對EDM [ Karras et al 2022]的超參數(shù)使用默認設(shè)置。在采樣過程中,我們僅通過18個去噪步驟就得到了最終的潛在集。

可以說相當炸裂,平均iou達到96.5%效果相當好,他這里說訓練了1600輪,不知道怎么訓練的,單個椅子類別70多G的數(shù)據(jù),8張3090 24G顯存需要1天訓練,全部數(shù)據(jù)有500G,不知道要訓練多久。可能要一周。而且使用給出的數(shù)據(jù)和代碼在單類椅子上訓練的iou只有91%,暫不明確問題出來哪里,可能是單個類別導致的?
使用下采樣作為latents的方法都優(yōu)于可學習查詢。因此,我們在后面的實驗中使用了下采樣點云,

latents數(shù)量M是網(wǎng)絡(luò)中使用的潛在向量的數(shù)量。直觀上,M越大,重建效果越好。我們在表中給出了M的結(jié)果。4 .因此,在我們的所有實驗中,M都設(shè)置為512。對于M較大的情況,計算成本更高。

此外,kl正則化將確定性形狀編碼變?yōu)樽兎肿跃幋a器。引入的超參數(shù)為C0。較小的C0導致較高的壓縮率。C0的選擇在表5中給出。顯然,更大的C0給出了更好的結(jié)果。C0 = 8,16,32,64的重建結(jié)果非常接近。然而,在第二階段,它們之間存在顯著差異,因為更大的潛在規(guī)模會使擴散模型的訓練更加困難。它表明在KL塊中大大增加壓縮并不會過多地降低重建性能。我們還可以看到,通過減少C0來壓縮KL塊比使用更少的隱向量M來壓縮要好得多。
無條件形狀生成
我們用表6中提出的度量來評估無條件形狀生成任務(wù)我們還將我們的方法與[ Zhang et al . 2022]中提出的基線方法進行了比較。該方法稱為Grid - 83,因為隱層網(wǎng)格大小為83,與Auto SDF [ Mittal et al 2022]中完全相同。表中還給出了不同C0的結(jié)果。當C0 = 32時,我們的結(jié)果在所有度量中都是最好的。當C0 = 64時,結(jié)果變差。這也符合我們的猜想,即更大的潛在規(guī)模使得訓練更加困難。


類別條件生成

文本驅(qū)動的條件生成
由于該模型是一個概率模型,我們可以在給定文本提示的情況下對形狀進行采樣。結(jié)果非常令人鼓舞,它們構(gòu)成了使用擴散模型的文本條件3D形狀生成的第一個演示。據(jù)我們所知,在提交這項工作的時候,還沒有公開發(fā)表的競爭方法。

形狀補全
我們還通過使用部分點云作為條件輸入擴展了我們的擴散模型用于概率形狀補全。與ShapeFormer [ Yan et al . 2022]的對比結(jié)果如圖12所示??梢?,我們的潛在集擴散可以預測更準確的完工,我們也有能力實現(xiàn)更多樣的世代。

圖像條件生成

生成的新穎度

3、limitation
雖然我們的方法在各種任務(wù)上展示了令人信服的結(jié)果,但我們的設(shè)計選擇也有我們想要討論的缺點。例如,我們需要一個兩階段的訓練策略。雖然這導致在生成質(zhì)量方面的性能提高,但訓練第一階段比依賴手工設(shè)計的特征如小波[ Hui et al . 2022]更耗時。此外,如果考慮的形狀數(shù)據(jù)發(fā)生變化,第一階段可能需要重新訓練,而對于第二階段- -我們的擴散架構(gòu)的核心- -訓練時間也相對較高??偟膩碚f,我們認為未來的研究途徑有很大的潛力來加快培訓,特別是在擴散模型的背景下。