摘要
雖然最近關(guān)于根據(jù)文本提示生成 3D點(diǎn)云的工作已經(jīng)顯示出可喜的結(jié)果,但最先進(jìn)的方法通常需要多個(gè) GPU 小時(shí)來生成單個(gè)樣本。這與最先進(jìn)的生成圖像模型形成鮮明對(duì)比,后者在幾秒或幾分鐘內(nèi)生成樣本。在本文中,我們探索了一種用于生成 3D 對(duì)象的替代方法,該方法僅需 1-2 分鐘即可在單個(gè) GPU 上生成 3D 模型。
我們的方法首先使用文本到圖像的擴(kuò)散模型生成單個(gè)合成視圖,然后使用以生成的圖像為條件的第二個(gè)擴(kuò)散模型生成 3D 點(diǎn)云。雖然我們的方法在樣本質(zhì)量方面仍未達(dá)到最先進(jìn)的水平,但它的采樣速度要快一到兩個(gè)數(shù)量級(jí),為某些用例提供了實(shí)際的權(quán)衡。
背景介紹
這種方法實(shí)施起來很簡(jiǎn)單,只需要在訓(xùn)練期間隨機(jī)丟棄條件信息。我們?cè)谡麄€(gè)模型中采用這種技術(shù),使用丟棄概率 為0.1。
簡(jiǎn)介
我們不是訓(xùn)練單個(gè)生成模型直接生成以文本為條件的點(diǎn)云,而是將生成過程分為三個(gè)步驟。首先,我們生成一個(gè)以文本標(biāo)題為條件的綜合視圖。接下來,我們生成一個(gè)基于合成視圖的粗略點(diǎn)云(1,024 個(gè)點(diǎn))。最后,我們生成了一個(gè)以低分辨率點(diǎn)云和合成視圖為條件的精細(xì)點(diǎn)云(4,096 個(gè)點(diǎn))。在實(shí)踐中,我們假設(shè)圖像包含來自文本的相關(guān)信息,并且不明確地以文本為條件點(diǎn)云。
1、數(shù)據(jù)集
我們?cè)跀?shù)百萬個(gè) 3D 模型上訓(xùn)練我們的模型。我們發(fā)現(xiàn)數(shù)據(jù)集的數(shù)據(jù)格式和質(zhì)量差異很大,促使我們開發(fā)各種后處理步驟以確保更高的數(shù)據(jù)質(zhì)量。 為了將我們所有的數(shù)據(jù)轉(zhuǎn)換為一種通用格式,我們使用 Blender(Community,2018)從 20 個(gè)隨機(jī)攝像機(jī)角度將每個(gè) 3D 模型渲染為 RGBAD 圖像,Blender 支持多種 3D 格式并帶有優(yōu)化的渲染引擎。對(duì)于每個(gè)模型,我們的 Blender 腳本將模型標(biāo)準(zhǔn)化為邊界立方體,配置標(biāo)準(zhǔn)照明設(shè)置,最后使用 Blender 的內(nèi)置實(shí)時(shí)渲染引擎導(dǎo)出 RGBAD 圖像。
然后,我們使用渲染將每個(gè)對(duì)象轉(zhuǎn)換為彩色點(diǎn)云。特別地,我們首先通過計(jì)算每個(gè) RGBAD 圖像中每個(gè)像素的點(diǎn)來為每個(gè)對(duì)象構(gòu)建一個(gè)稠密點(diǎn)云。這些點(diǎn)云通常包含數(shù)十萬個(gè)不均勻分布的點(diǎn),因此我們還使用最遠(yuǎn)點(diǎn)采樣來創(chuàng)建均勻的 4K 點(diǎn)云。通過直接從渲染構(gòu)建點(diǎn)云,我們能夠避免嘗試直接從 3D 網(wǎng)格采樣點(diǎn)時(shí)可能出現(xiàn)的各種問題,例如模型中包含的采樣點(diǎn)或處理以不尋常文件格式存儲(chǔ)的 3D 模型 。
最后,我們采用各種啟發(fā)式方法來減少數(shù)據(jù)集中低質(zhì)量模型的出現(xiàn)頻率。首先,我們通過計(jì)算每個(gè)點(diǎn)云的 SVD 來消除平面對(duì)象,只保留那些最小奇異值高于某個(gè)閾值的對(duì)象。接下來,我們通過 CLIP 特征對(duì)數(shù)據(jù)集進(jìn)行聚類(對(duì)于每個(gè)對(duì)象,我們對(duì)所有渲染的特征進(jìn)行平均)。我們發(fā)現(xiàn)一些集群包含許多低質(zhì)量的模型類別,而其他集群則顯得更加多樣化或可解釋。
我們將這些集群分到幾個(gè)不同質(zhì)量的容器中,并使用所得容器的加權(quán)混合作為我們的最終數(shù)據(jù)集。
2、查看合成 GLIDE 模型
本文的點(diǎn)云模型以文中數(shù)據(jù)集的渲染視圖為條件,這些視圖都是使用相同的渲染器和照明設(shè)置生成的。因此,為了確保這些模型正確處理生成的合成視圖,我們的目標(biāo)是顯式生成與數(shù)據(jù)集分布相匹配的 3D 渲染。 為此,我們微調(diào)了 GLIDE,混合了其原始的數(shù)據(jù)集和我們的 3D 渲染數(shù)據(jù)集。由于我們的 3D 數(shù)據(jù)集與原始 GLIDE 訓(xùn)練集相比較小,因此我們僅在 5% 的時(shí)間內(nèi)從 3D 數(shù)據(jù)集中采樣圖像,其余 95% 使用原始數(shù)據(jù)集。我們對(duì) 100K 次迭代進(jìn)行了微調(diào),這意味著該模型已經(jīng)在 3D 數(shù)據(jù)集上進(jìn)行了多次迭代(但從未兩次看到完全相同的渲染視點(diǎn))。
為了確保我們始終對(duì)分布渲染進(jìn)行采樣(而不是僅在 5% 的時(shí)間內(nèi)對(duì)其進(jìn)行采樣),我們?cè)诿總€(gè) 3D 渲染的文本提示中添加了一個(gè)特殊標(biāo)記,表明它是 3D 渲染;然后我們?cè)跍y(cè)試時(shí)使用此標(biāo)記進(jìn)行采樣。
3、點(diǎn)云擴(kuò)散
值得注意的是,我們沒有為這個(gè)模型使用位置編碼。因此,模型本身對(duì)于輸入點(diǎn)云是排列不變的(盡管輸出順序與輸入順序相關(guān))。
4、點(diǎn)云上采樣
對(duì)于圖像擴(kuò)散模型,最好的質(zhì)量通常是通過使用某種形式的層級(jí)結(jié)構(gòu)來實(shí)現(xiàn)的,其中低分辨率基礎(chǔ)模型產(chǎn)生輸出,然后由另一個(gè)模型進(jìn)行上采樣。我們采用這種方法來生成點(diǎn)云,首先使用大型基礎(chǔ)模型生成 1K 點(diǎn),然后使用較小的上采樣模型上采樣到 4K 點(diǎn)。
值得注意的是,我們模型的計(jì)算需求隨點(diǎn)數(shù)的增加而增加,因此對(duì)于固定模型大小,生成 4K 點(diǎn)的成本是生成 1K 點(diǎn)的四倍。 我們的上采樣器使用與我們的基本模型相同的架構(gòu),為低分辨率點(diǎn)云提供額外的條件標(biāo)記。為了達(dá)到 4K 點(diǎn),上采樣器以 1K 點(diǎn)為條件并生成額外的 3K 點(diǎn),這些點(diǎn)被添加到低分辨率點(diǎn)云中。我們通過一個(gè)單獨(dú)的線性嵌入層傳遞條件點(diǎn),而不是用于 的線性嵌入層,從而允許模型將條件信息與新點(diǎn)區(qū)分開來,而無需使用位置嵌入。
5、點(diǎn)云網(wǎng)格
對(duì)于基于渲染的評(píng)估,我們不直接渲染生成的點(diǎn)云。相反,我們將點(diǎn)云轉(zhuǎn)換為帶紋理的網(wǎng)格并使用 Blender 渲染這些網(wǎng)格。從點(diǎn)云生成網(wǎng)格是一個(gè)經(jīng)過充分研究的問題,有時(shí)甚至是一個(gè)難題。我們的模型生成的點(diǎn)云通常有裂縫、異常值或其他類型的噪聲,使問題特別具有挑戰(zhàn)性。
為此,我們簡(jiǎn)要嘗試使用預(yù)訓(xùn)練的 SAP 模型(Peng 等人,2021 年),但發(fā)現(xiàn)生成的網(wǎng)格有時(shí)會(huì)丟失點(diǎn)云中存在的大部分形狀或重要的形狀細(xì)節(jié)。我們沒有訓(xùn)練新的 SAP 模型,而是選擇了一種更簡(jiǎn)單的方法。 為了將點(diǎn)云轉(zhuǎn)換為網(wǎng)格,我們使用基于回歸的模型來預(yù)測(cè)給定點(diǎn)云的對(duì)象的符號(hào)距離場(chǎng),然后將行進(jìn)立方體 (Lorensen & Cline, 1987) 應(yīng)用于生成的 SDF 以提取網(wǎng)格。然后,我們使用距離原始點(diǎn)云最近的點(diǎn)的顏色為網(wǎng)格的每個(gè)頂點(diǎn)分配顏色。
實(shí)驗(yàn)結(jié)果
由于通過文本條件合成3D是一個(gè)相當(dāng)新的研究領(lǐng)域,因此還沒有針對(duì)此任務(wù)的標(biāo)準(zhǔn)基準(zhǔn)集。然而,其他幾項(xiàng)工作使用 CLIP R-Precision 評(píng)估 3D 生成,我們?cè)诒?1 中與這些方法進(jìn)行了比較。除了 CLIP R-Precision 之外,我們還注意到報(bào)告的每種方法的采樣計(jì)算要求。
雖然我們的方法比當(dāng)前最先進(jìn)的方法表現(xiàn)要差些,但我們注意到此評(píng)估的兩個(gè)微妙之處,它們可以解釋部分(但可能不是全部)這種差異:
與 DreamFusion 等基于多視圖優(yōu)化的方法不同,Point E 不會(huì)明確優(yōu)化每個(gè)視圖以匹配文本提示。這可能會(huì)導(dǎo)致 CLIP R-Precision 降低,因?yàn)槟承┪矬w不容易從所有角度識(shí)別。
我們的方法生成的點(diǎn)云必須在渲染前進(jìn)行預(yù)處理。將點(diǎn)云轉(zhuǎn)換為網(wǎng)格是一個(gè)難題,我們使用的方法有時(shí)會(huì)丟失點(diǎn)云本身中存在的信息。
總結(jié)與展望
本文介紹了 Point E,一個(gè)用于從文本生成點(diǎn)云的方法,它首先生成合成視圖,然后生成以這些視圖為條件的彩色點(diǎn)云。我們發(fā)現(xiàn) Point E 能夠根據(jù)文本提示有效地生成多樣化和復(fù)雜的 3D 形狀。希望我們的方法可以作為文本到 3D這一塊研究領(lǐng)域進(jìn)一步工作的起點(diǎn)。
審核編輯:劉清
-
gpu
+關(guān)注
關(guān)注
28文章
4673瀏覽量
128596 -
RGB
+關(guān)注
關(guān)注
4文章
797瀏覽量
58339 -
SVD
+關(guān)注
關(guān)注
0文章
21瀏覽量
12151 -
Clip
+關(guān)注
關(guān)注
0文章
30瀏覽量
6641
原文標(biāo)題:使用擴(kuò)散模型從文本提示中生成3D點(diǎn)云
文章出處:【微信號(hào):3D視覺工坊,微信公眾號(hào):3D視覺工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論