硬核解決Sora的物理bug!美國四所頂尖高校聯合發(fā)布:給視頻生成器裝個物理引擎
Sora剛發(fā)布后沒多久,火眼金睛的網友們就發(fā)現了不少bug,比如模型對物理世界知之甚少,小狗在走路的時候,兩條前腿就出現了交錯問題,讓人非常出戲。
對于生成視頻的真實感來說,物體的交互非常重要,但目前來說,合成真實3D物體在交互中的動態(tài)行為仍然非常困難。
與無條件或文本條件的動力學不同的是,以動作為條件的動力學(action-conditioned dynamics)需要感知對象的物理材料屬性,并將3D運動預測建立在這些屬性(例如物體剛度)的基礎上。
但由于缺乏材料的真實數據,估計物理材料屬性仍然是一個懸而未決的問題,因為測量真實物體的物理材料屬性非常困難。
最近,來自MIT、斯坦福大學、哥倫比亞大學和康奈爾大學聯合提出了一種基于物理的方法模型PhysDreamer,利用視頻生成模型學習到的對象動力學先驗,為靜態(tài)3D對象賦予交互式動力學。
論文鏈接:https://arxiv.org/pdf/2404.13026.pdf
項目主頁:https://physdreamer.github.io/
通過提煉上述先驗知識,PhysDreamer 能夠合成現實物體對全新交互的響應,例如外力或智能體操作,并且通過在彈性物體的不同示例上展現了該方法的效果,利用用戶研究評估了合成交互的真實性。
問題形式化
給定一個由3D高斯表示的靜態(tài)物體(其中xp表示位置,αp表示不透明度,Σp表示協(xié)方差矩陣,cp表示粒子的顏色),最終目標是估計對象的物理材料屬性場,以實現真實的交互式運動合成。
具體性質包括質量m、楊氏模量E和泊松比ν,其中楊氏模量用來測量材料的剛度,決定物體響應外力作用的運動軌跡:較高的楊氏模量會帶來更小的形變,以及更剛性和更高頻率的運動。
花在相同的作用力下但具有不同楊氏模量的模擬運動
所以研究人員將問題形式化為,估計3D物體的空間變化楊氏模量場E(x),可以用查詢粒子的楊氏模量,以進行粒子模擬。
至于其他物理性質,粒子的質量m_p可以預先計算為恒定密度(ρ)和粒子體積Vp的乘積;粒子體積可以通過將「背景單元的體積」除以「該單元包含的粒子數」來估計得到;泊松比νp對物體運動的影響可以忽略不計,可以假設為常數。
模型架構
PhysDreamer可以估計靜態(tài)3D對象的材質場,其關鍵想法在于生成運動中物體的可信視頻,然后優(yōu)化材料場E(x)以匹配合成運動。
給定一個表示為3D高斯的對象,首先從某個視點進行渲染(帶背景),然后使用圖像到視頻生成模型來生成運動中物體的參考視頻,再使用可微分材質點方法(MPM,Material Point Methods)和可微分渲染,對空間變化的材質場和初始速度場進行優(yōu)化,旨在最小化渲染視頻和參考視頻之間的差異。
虛線箭頭代表梯度流
1. 基礎知識
3D高斯采用一組各向異性的3D高斯核來表示3D場景的輻射場,雖然其主要是作為3D新視圖合成方法引入的,但由于3D高斯具有拉格朗日性質,所以能夠直接適用于粒子的物理模擬器。
與PhysGaussian方法類似,研究人員使用材質點方法(MPM,Material Point Methods)直接在高斯粒子上模擬物體動力學。
由于3D高斯分布主要位于物體表面,因此可以應用可選的內部填充過程來提高模擬真實感。
連續(xù)介質力學(Continuum mechanics)和彈性材料
在連續(xù)介質力學中,材料的變形是通過一個映射函數?來進行模擬的,可以將材料在未變形狀態(tài)下的空間點X轉換為變形后的世界空間中的點x,這個過程可以用公式
為了衡量材料變形中的局部旋轉和應變(strain),引入了形變梯度(deformation gradient)的概念,為映射函數?的雅可比矩陣F,即
形變梯度是理解和描述材料應力-應變關系的關鍵,涉及到材料的局部變形狀態(tài)。
在高彈性材料中,Cauchy應力(stress)的計算依賴于應變能密度函數ψ(F),可以對材料非剛性變形的程度進行量化;通常來說,該函數由材料科學家根據材料的對稱性和旋轉不變性原則設計,并與實驗數據相匹配。
此外,固定旋轉超彈性模型中的能量密度函數可以通過變形梯度的一個奇異值σi來表示,并且模型參數μ和λ與材料的楊氏模量E和泊松比ν有直接關系,這些參數對于理解材料在受力時的表現至關重要。
材質點方法 Material Point Method (MPM)
研究人員使用移動最小二乘材料點法(MLS-MPM)來求解「彈性材料動態(tài)」的控制方程,其中ρ代表密度,v(x, t)代表世界空間的速度場,f代表外部力。
MPM是一種用于模擬各種材料動力學的計算方法,結合了歐拉和拉格朗日方法的優(yōu)點,特別適合于模擬固體、流體、沙子、布料等材料的動態(tài)行為,能夠有效處理材料的拓撲變化,并且在圖形處理單元(GPU)上容易實現并行化。
通過將物體視為一系列高斯粒子來進行空間離散化,每個粒子p代表物體的一小部分體積,并攜帶體積、質量、位置、速度、變形梯度和局部速度場梯度等屬性。
MPM的計算過程包括粒子到網格(P2G)和網格到粒子(G2P)的轉換循環(huán)(transfer loop):
在P2G階段,動量從粒子傳遞到網格,更新網格上的速度,然后這些更新后的速度信息被傳回粒子,用于更新粒子的位置和速度,同時,粒子的局部速度梯度和變形梯度也會相應更新,以反映材料的當前狀態(tài)。
MPM方法可以對材料的復雜動態(tài)行為進行精確模擬,包括材料的變形、斷裂和交互作用。
2. 估計物理屬性
研究人員使用移動最小二乘材質點法(MLS-MPM)作為物理仿真器,并采用固定旋轉超彈性材料模型來模擬三維物體的過程。
MLS-MPM仿真過程
仿真器使用MLS-MPM來模擬物體的物理行為,仿真函數接收當前時間步t的粒子位置x、速度v、形變梯度F和局部速度場梯度C,以及粒子的物理屬性集合θ(包含所有粒子的質量、楊氏模量、泊松比和體積)和時間步長Δt(1×10^-4)作為輸入,并輸出下一個時間步t+1的相應值。
為了模擬相鄰視頻幀之間的動態(tài),通常需要迭代幾百個子步。
仿真與渲染
在仿真后,使用可微分渲染函數Frender來渲染每個幀的高斯粒子,其中Rt表示從仿真步驟中獲得的所有粒子的旋轉矩陣。
然后使用生成的視頻作為參考,通過每幀的損失函數來優(yōu)化空間變化的楊氏模量E和初始速度v0,其中損失函數結合了L1損失和D-SSIM損失,權重參數λ設置為0.1
參數化和正則化
材質場和速度場通過兩個三平面(triplanes)和三層多層感知器(MLP)來進行參數化,為了提升空間平滑性,對這兩個場的所有空間平面應用了總變分正則化(total variation regularization)。
優(yōu)化過程
優(yōu)化過程被分為兩個階段以提高穩(wěn)定性和加快收斂速度:
1. 在第一階段,對每個高斯粒子的楊氏模量進行隨機初始化并固定,然后僅使用參考視頻的前三個幀來優(yōu)化每個粒子的初始速度。
2. 在第二階段,固定初始速度并優(yōu)化空間變化的楊氏模量。為了防止梯度爆炸或消失,梯度信號只流向前一幀。
通過這種方式,仿真器能夠模擬物體的物理行為,并根據參考視頻優(yōu)化材料屬性和初始條件,以生成逼真的動態(tài)效果。
3. 用子采樣(subsampling)加速模擬
使用三維高斯粒子進行高保真渲染通常需要數百萬個粒子才能表示出一個場景,給運行模擬帶來了巨大的計算負擔。
為了提高效率,模型引入了一個子采樣過程,在大大減少計算量的同時,還能保持渲染結果的高保真度:只用少量的驅動粒子(driving particle)進行模擬,然后通過插值驅動粒子來獲得高斯粒子的位置和旋轉,有效地平衡了計算效率和渲染質量。
具體來說,模型使用K-Means聚類算法在t=0時刻創(chuàng)建一組驅動粒子,其中每個驅動粒子由一組物理屬性表示,包括位置、速度、形變梯度、局部速度場梯度、楊氏模量、質量、泊松比和體積。
驅動粒子的初始位置是其所有聚類成員位置的平均值,其中驅動粒子的數量遠小于三維高斯粒子的數量。
在渲染過程中,通過插值驅動粒子的位置和旋轉來計算每個三維高斯粒子的位置和旋轉:對于每個三維高斯粒子,首先找到它在t=0時刻的八個最近鄰驅動粒子,然后擬合這些八個驅動粒子在t=0時刻和當前時間戳之間的剛體變換T,以確定粒子的當前位置和旋轉。
實驗結果
數據集
通過捕捉多視角圖像,研究人員收集了八個真實世界的靜態(tài)場景,其中每個場景包括一個物體和一個背景,物品包括五朵花(一朵紅玫瑰、一朵康乃馨、一朵橙玫瑰、一朵郁金香和一朵白玫瑰)、一株海芋、一根電話線和一頂無檐帽;然后捕捉四個交互視頻來說明其在交互后的自然運動,例如戳或拖,再使用真實視頻作為額外的對比參考。
實驗結果
關于空間變化的楊氏模量(一種衡量材料彈性的物理量)的定性分析結果
在用戶研究中,與基線方法和真實世界捕捉的視頻對比后可以看到,有超過80%的參與者在兩項選擇實驗(2AFC)中更傾向于PhysDreamer模型,認為其在運動的真實性上更勝一籌;在視覺質量方面,也有65%的參與者更偏好PhysDreamer
需要注意的是,由于比較的靜態(tài)場景本身是一致的,因此視覺質量的評估也在一定程度上也依賴于生成物體的運動效果。
從運動模式在不同時間點上的切片中可以觀察到,PhysGaussian由于缺少對材料屬性進行原理性估計,導致其生成的運動幅度過大且速度過慢,與現實不符。
而與DreamGaussian4D相比,有70%和63.5%的2AFC樣本在視覺質量和運動真實性上更傾向于PhysDreamer模型,從上圖中可以看到,DreamGaussian4D生成的運動是周期性的,且幅度保持在一個較小的恒定值,相比之下,PhysDreamer能夠模擬出運動中的衰減效果。