通用場景拉滿了!GenXD:生成任何3D&4D場景(新加坡國立&微軟最新)
寫在前面&筆者的個(gè)人理解
近年來,利用擴(kuò)散和自回歸建模生成2D視覺內(nèi)容已經(jīng)取得了顯著成功,并已在實(shí)際應(yīng)用中進(jìn)行廣泛使用。除了 2D 生成之外,3D 內(nèi)容生成也至關(guān)重要,可應(yīng)用于視頻游戲、視覺效果和可穿戴混合現(xiàn)實(shí)設(shè)備。然而,由于 3D 建模的復(fù)雜性和 3D 數(shù)據(jù)的局限性,3D 內(nèi)容生成仍然遠(yuǎn)遠(yuǎn)不能令人滿意,并且正在引起學(xué)術(shù)界和工業(yè)界越來越多的關(guān)注。
之前大多數(shù)的研究工作主要聚焦于使用合成的目標(biāo)數(shù)據(jù)實(shí)現(xiàn)3D和4D內(nèi)容的生成。合成的目標(biāo)數(shù)據(jù)通常是網(wǎng)格,從而允許研究人員從任何的視角來渲染圖像和其他的3D信息。然而,目標(biāo)生成對(duì)領(lǐng)域?qū)<业囊嫣庍h(yuǎn)遠(yuǎn)大于大眾。相比之下,場景級(jí)的生成可以幫助每個(gè)人用更加豐富的內(nèi)容來增強(qiáng)他們的圖像以及視頻。因此,最近的研究探索了單一模型中的一般 3D 生成,并取得了令人印象深刻的生成性能。盡管如此,這些研究工作僅關(guān)注靜態(tài) 3D 生成,而沒有解決動(dòng)態(tài)的問題。
考慮到 4D 生成面臨的首要挑戰(zhàn)是缺乏通用 4D 數(shù)據(jù)。在這項(xiàng)工作中,我們提出了 CamVid-30K數(shù)據(jù)集,其中包含大約 30K 個(gè) 4D 數(shù)據(jù)樣本。4D 數(shù)據(jù)需要多視圖空間信息和時(shí)間動(dòng)態(tài),因此我們轉(zhuǎn)向視頻數(shù)據(jù)來獲取必要的 4D 數(shù)據(jù)。
此外,我們也提出了一個(gè)統(tǒng)一的框架 GenXD,用于在單個(gè)模型中處理 3D 和 4D 生成,能夠從不同視角和時(shí)戳生成任意數(shù)量的條件圖像,其生成的部分內(nèi)容如下圖所示。
此外,我們對(duì)各種現(xiàn)實(shí)世界和合成數(shù)據(jù)集進(jìn)行了廣泛的實(shí)驗(yàn)和評(píng)估,證明了與之前的 3D 和 4D 生成方法相比,我們提出的GenXD算法模型具有更好的有效性和多功能性。
論文鏈接:https://arxiv.org/pdf/2411.02319
GenXD網(wǎng)絡(luò)結(jié)構(gòu)&技術(shù)細(xì)節(jié)梳理
生成模型
由于大多數(shù)的場景級(jí)3D和4D數(shù)據(jù)通過視頻獲得,因此這些數(shù)據(jù)缺少明確的表示。所以,我們采用一種生成與空間相機(jī)姿勢(shì)和時(shí)間戳步長對(duì)齊的圖像的方法。具體而言,我們將擴(kuò)散模型納入到我們的框架當(dāng)中,引入額外的多視圖時(shí)域?qū)?,包括多視圖時(shí)序ResBlocks和多視圖時(shí)序Transformer,以解耦和融合3D和時(shí)序信息,下面是我們提出的GenXD的整體網(wǎng)絡(luò)結(jié)構(gòu)圖。
Mask Latent Conditioned Diffusion Model
GenXD 生成具有相機(jī)姿勢(shì)和參考圖像的多視圖圖像和視頻,因此它需要相機(jī)和圖像條件。相機(jī)條件對(duì)于每幅圖像都是獨(dú)立的,無論是 條件性的還是有針對(duì)性的。因此,很容易將其附加到每個(gè)潛在圖像中。在這里,我們選擇Plucker射線作為相機(jī)條件
Plucker 射線是一種密集嵌入編碼,不僅編碼了像素信息,還編碼了相機(jī)位姿和內(nèi)在信息,相比于全局相機(jī)而言更具有優(yōu)勢(shì)。參考圖像條件更為復(fù)雜。GenXD 旨在通過單視圖和多視圖輸入進(jìn)行 3D 和 4D 生成。單視圖生成要求較低,而多視圖生成結(jié)果更一致。因此,將單視圖和多視圖生成結(jié)合起來將帶來更好的實(shí)際應(yīng)用。
然而,之前的相關(guān)研究工作通過將潛在條件連接到目標(biāo)潛在條件,并通過交叉注意力合并CLIP模型的圖像嵌入來生成圖像。連接方式的改變需要更改模型的通道,無法處理任意輸入視圖。CLIP嵌入可以支持多種條件。然而,這兩種方式都無法對(duì)多種條件的位置信息進(jìn)行建模,也無法對(duì)輸入視圖之間的信息進(jìn)行建模。鑒于這種局限性,我們利用掩碼作為潛在條件來處理圖像條件。如上圖所示,我們使用VAE編碼器之后,對(duì)目標(biāo)幀應(yīng)用前向擴(kuò)散過程,使用條件保持原樣。然后通過去噪模型估計(jì)兩幀上的噪聲,并通過后向過程進(jìn)行去除。
掩碼潛在條件有三個(gè)主要優(yōu)點(diǎn)。首先,模型可以支持任何輸入視圖而無需修改參數(shù)。其次,對(duì)于序列生成(多視圖圖像或視頻),我們不需要限制條件幀的位置,因?yàn)闂l件幀在序列中保持其位置。相反,許多工作要求條件圖像在序列中的固定位置(通常是第一幀)。第三,如果沒有來自其他模型的條件嵌入,可以刪除用于集成條件嵌入的交叉注意層,這將大大減少模型參數(shù)的數(shù)量。為此,我們?cè)贕enXD算法模型中利用掩碼潛在條件方法。
MultiView-Temporal Modules
3D表達(dá)生成
GenXD 可以使用一個(gè)或多個(gè)條件圖像生成具有不同視點(diǎn)和時(shí)間步長的圖像。但是,為了呈現(xiàn)任意的 3D 一致視圖,我們需要將生成的樣本提升為 3D 表示。以前的工作通常通過從生成模型中提取知識(shí)來優(yōu)化 3D 表示。由于 GenXD 可以生成高質(zhì)量且一致的結(jié)果,我們直接使用生成的圖像來優(yōu)化 3D 表示。具體來說,我們利用 3D Gaussian Splatting 和 Zip-NeRF 進(jìn)行 3D 生成,利用 4D Gaussian Splatting (4D-GS) 進(jìn)行 4D 生成。
CAMVID-30K數(shù)據(jù)集介紹
由于缺乏大規(guī)模 4D 場景數(shù)據(jù)限制了動(dòng)態(tài) 3D 任務(wù)的發(fā)展,包括但不限于 4D 生成、動(dòng)態(tài)相機(jī)姿勢(shì)估計(jì)和可控視頻生成。為了解決這個(gè)問題,我們?cè)诒疚闹幸肓艘粋€(gè)高質(zhì)量的 4D 數(shù)據(jù)集。首先,我們使用基于結(jié)構(gòu)運(yùn)動(dòng) (SfM) 的方法估計(jì)相機(jī)姿勢(shì),然后使用所提出的運(yùn)動(dòng)強(qiáng)度過濾掉沒有物體運(yùn)動(dòng)的數(shù)據(jù),整個(gè)流程如下圖所示。
相機(jī)位姿估計(jì)
相機(jī)姿態(tài)估計(jì)基于SfM,它從一系列圖像中的投影重建 3D 結(jié)構(gòu)。SfM 涉及三個(gè)主要步驟:(1) 特征檢測和提取,(2) 特征匹配和幾何驗(yàn)證,(3) 3D 重建和相機(jī)姿態(tài)估計(jì)。在第二步中,匹配的特征必須位于場景的靜態(tài)部分。否則,在特征匹配期間,物體移動(dòng)將被解釋為相機(jī)移動(dòng),這會(huì)損害相機(jī)姿態(tài)估計(jì)的準(zhǔn)確性。為了獲得準(zhǔn)確的相機(jī)姿勢(shì),必須分割所有移動(dòng)像素。在這種情況下,假陽性錯(cuò)誤比假陰性更容易接受。為了實(shí)現(xiàn)這一點(diǎn),我們使用實(shí)例分割模型來貪婪地分割所有可能移動(dòng)的像素。在分割出可能移動(dòng)的像素后,我們使用 Particle-SfM估計(jì)相機(jī)姿態(tài),以獲得相機(jī)信息和稀疏點(diǎn)云。
目標(biāo)運(yùn)動(dòng)估計(jì)
雖然實(shí)例分割可以準(zhǔn)確地將物體與背景分開,但它無法確定物體本身是否在移動(dòng),而靜態(tài)物體會(huì)對(duì)運(yùn)動(dòng)學(xué)習(xí)產(chǎn)生負(fù)面影響。因此,我們引入了運(yùn)動(dòng)強(qiáng)度來識(shí)別真正的物體運(yùn)動(dòng),并過濾掉只有靜態(tài)物體的視頻。
由于攝像機(jī)運(yùn)動(dòng)和物體運(yùn)動(dòng)都存在于視頻中,因此基于 2D 的運(yùn)動(dòng)估計(jì)方法無法準(zhǔn)確表示真實(shí)的物體運(yùn)動(dòng)。有兩種方法可以捕捉真實(shí)的物體運(yùn)動(dòng):通過測量 3D 空間中的運(yùn)動(dòng)或通過將視頻中的運(yùn)動(dòng)投影到同一臺(tái)攝像機(jī)。這兩種方法都需要與攝像機(jī)姿勢(shì)比例對(duì)齊的深度圖。稀疏深度圖可以通過投影 3D 點(diǎn)云到相機(jī)視角來獲得
由于在 3D 重建過程中僅匹配靜態(tài)部分的特征,因此我們只能獲得靜態(tài)區(qū)域的稀疏點(diǎn)云。然而,動(dòng)態(tài)部分的深度信息對(duì)于估計(jì)運(yùn)動(dòng)至關(guān)重要。為了解決這個(gè)問題,我們利用預(yù)先訓(xùn)練的相對(duì)單目深度估計(jì)模型來預(yù)測每幀的相對(duì)深度,然后我們應(yīng)用比例因子和移位來使其與 SfM 稀疏深度對(duì)齊
有了對(duì)齊的深度,我們可以將幀中的動(dòng)態(tài)目標(biāo)投影到 3D 空間中,從而提供一種直接測量目標(biāo)運(yùn)動(dòng)的方法。如上圖 (b) 所示,如果目標(biāo)(例如,穿綠色襯衫的人)正在移動(dòng),則投影的 3D 點(diǎn)云中將發(fā)生位移。但是,由于 SfM 的運(yùn)行范圍很廣,因此直接在 3D 空間中測量運(yùn)動(dòng)可能會(huì)導(dǎo)致幅度問題。因此,我們將動(dòng)態(tài)目標(biāo)投影到相鄰視圖中并估計(jì)目標(biāo)運(yùn)動(dòng)場。
具體來說,我們首先需要在 2D 視頻中找到匹配點(diǎn)。我們不使用光流等密集表示,而是為每個(gè)目標(biāo)實(shí)例采樣關(guān)鍵點(diǎn),并在 2D 視頻中使用視頻目標(biāo)分割和關(guān)鍵點(diǎn)跟蹤來建立匹配關(guān)系。然后將每個(gè)關(guān)鍵點(diǎn)投影到相鄰幀中。首先將第幀中的關(guān)鍵點(diǎn)反向投影到世界空間,以獲得 3D 關(guān)鍵點(diǎn)。
有了每個(gè)物體的運(yùn)動(dòng)場,我們可以通過平均運(yùn)動(dòng)場的絕對(duì)幅度來估計(jì)物體的全局運(yùn)動(dòng)。對(duì)于每個(gè)視頻,運(yùn)動(dòng)強(qiáng)度由所有物體中的最大運(yùn)動(dòng)值表示。如下圖所示,當(dāng)相機(jī)移動(dòng)而物體保持靜止時(shí)(第二個(gè)示例),與有物體運(yùn)動(dòng)的視頻相比,運(yùn)動(dòng)強(qiáng)度明顯較小。使用運(yùn)動(dòng)強(qiáng)度,我們進(jìn)一步過濾掉缺乏明顯物體運(yùn)動(dòng)的數(shù)據(jù)。
實(shí)驗(yàn)結(jié)果&評(píng)價(jià)指標(biāo)
4D生成實(shí)驗(yàn)結(jié)果
我們將 GenXD 與開源相機(jī)條件視頻生成方法進(jìn)行了比較,我們使用Stable Video Diffusion作為baseline模型,并利用攝像機(jī)軌跡和第一幀條件生成視頻,相關(guān)的實(shí)驗(yàn)結(jié)果如下表所示。
以第一視圖為條件,GenXD 在兩個(gè)指標(biāo)上均明顯優(yōu)于 CameraCtrl 和 MotionCtrl。此外,以 3 個(gè)視圖(第一幀、中間幀和最后一幀)為條件,GenXD 的表現(xiàn)遠(yuǎn)遠(yuǎn)優(yōu)于之前的作品。這些結(jié)果證明了 GenXD 在 4D 生成上的強(qiáng)大泛化能力。
此外,為了直觀的展現(xiàn)出GenXD算法模型的性能,我們將相關(guān)的生成結(jié)果展示在下圖中。我們比較了三種方法的定性結(jié)果。在這個(gè)例子中,MotionCtrl 無法生成明顯的物體運(yùn)動(dòng),而 CameraCtrl 生成的視頻既不是 3D 的也不是時(shí)間一致的。相反,我們的單視圖條件模型可以生成流暢且一致的 4D 視頻。通過 3 個(gè)條件視圖,GenXD 可以生成非常逼真的結(jié)果。
3D生成實(shí)驗(yàn)結(jié)果
對(duì)于少視圖 3D 重建設(shè)置,我們?cè)诜植純?nèi)和分布外數(shù)據(jù)集上評(píng)估 GenXD。我們從 Re10K 中選擇了 10 個(gè)場景,在 LLFF 中選擇了所有 8 個(gè)場景,每個(gè)場景中的 3 個(gè)視圖用于訓(xùn)練。使用渲染測試視圖上的 PSNR、SSIM 和 LPIPS 指標(biāo)評(píng)估性能。作為生成模型,GenXD 可以從稀疏輸入視圖中生成附加視圖,并提高任何重建方法的性能。在這個(gè)實(shí)驗(yàn)中,我們利用了兩種基線方法:Zip-NeRF 和 3D-GS。這兩個(gè)基線是多視圖重建的方法,因此我們調(diào)整超參數(shù)以實(shí)現(xiàn)更好的少視圖重建。如下表所示,Zip-NeRF 和 3D-GS 都可以使用 GenXD 生成的圖像進(jìn)行改進(jìn),并且 Zip-NeRF 基線的改進(jìn)更為顯著。具體來說,Re10K(分布內(nèi))和 LLFF(分布外)上的 PSNR 分別提高了 4.82 和 5.13。
更加直觀的展示結(jié)果如下圖所示,使用生成的視圖,重建場景中的浮動(dòng)物和模糊減少了。
結(jié)論
在本文中,我們提出了GenXD算法模型來處理一般的 3D 和 4D 內(nèi)容生成。GenXD 可以利用多視圖時(shí)間模塊來解開相機(jī)和物體的移動(dòng),并且能夠通過掩碼潛在條件來支持任意數(shù)量的輸入條件視圖。提出的GenXD算法模型可以處理多種應(yīng)用,并且可以通過一個(gè)模型在所有設(shè)置中實(shí)現(xiàn)相當(dāng)或更好的性能。