Meta、CMU聯(lián)手推出VR史詩級(jí)升級(jí)!最新HyperReel模型實(shí)現(xiàn)高保真6自由度視頻渲染
最近,由Meta和卡內(nèi)基梅隆大學(xué)提出的6-DoF視頻表征模型——HyperReel,可能預(yù)示著一個(gè)全新的VR「殺手級(jí)」應(yīng)用即將誕生!
所謂「六自由度視頻」(6-DoF),簡單來說就是一個(gè)超高清的4D體驗(yàn)式回放。
其中,用戶可以完全「置身于」動(dòng)態(tài)場景里面,并且可以自由地移動(dòng)。而當(dāng)他們?nèi)我飧淖冏约旱念^部位置(3 DoF)和方向(3 DoF)時(shí),與之相應(yīng)的視圖也會(huì)隨之生成。
論文地址:https://arxiv.org/abs/2301.02238
與之前的工作相比,HyperReel最大的優(yōu)勢在于內(nèi)存和計(jì)算效率,而這兩點(diǎn)對于便攜式VR頭顯來說都至關(guān)重要。
而且只需采用vanilla PyTorch,HyperReel就能在單張英偉達(dá)RTX 3090上,以每秒18幀的速度實(shí)現(xiàn)百萬像素分辨率的渲染。
?
太長不看版:
1. 提出一種可在高分辨率下實(shí)現(xiàn)高保真度、高幀率的渲染的光線條件采樣預(yù)測網(wǎng)絡(luò),以及一種緊湊且內(nèi)存高效的動(dòng)態(tài)體積表征;
2. 6-DoF視頻表征方法HyperReel結(jié)合了以上兩個(gè)核心部分,可以在實(shí)時(shí)渲染百萬像素分辨率的同時(shí),實(shí)現(xiàn)速度、質(zhì)量和內(nèi)存之間的理想平衡;
3. HyperReel在內(nèi)存需求、渲染速度等多個(gè)方面均優(yōu)于其他方法。?
論文介紹
體積場景表征(volumetric scene representation)能夠?yàn)殪o態(tài)場景提供逼真的視圖合成,并構(gòu)成了現(xiàn)有6-DoF視頻技術(shù)的基礎(chǔ)。
然而,驅(qū)動(dòng)這些表征的體積渲染程序,需要在質(zhì)量、渲染速度和內(nèi)存效率方面,進(jìn)行仔細(xì)的權(quán)衡。
現(xiàn)有的方法有一個(gè)弊端——不能同時(shí)實(shí)現(xiàn)實(shí)時(shí)性能、小內(nèi)存占用和高質(zhì)量渲染,而在極具挑戰(zhàn)性的真實(shí)場景中,這些都是極為重要的。
為了解決這些問題,研究人員提出了HyperReel——一種基于NeRF技術(shù)(神經(jīng)輻射場)的6-DoF視頻表征方法。
其中,HyperReel的兩個(gè)核心部分是:
1. 一個(gè)光線條件下的采樣預(yù)測網(wǎng)絡(luò),能夠在高分辨率下進(jìn)行高保真、高幀率的渲染;
2. 一個(gè)緊湊且內(nèi)存高效的動(dòng)態(tài)體積表征。
與其他方法相比,HyperReel的6-DoF視頻管線不僅在視覺質(zhì)量上表現(xiàn)極佳,而且內(nèi)存需求也很小。
同時(shí),HyperReel無需任何定制的CUDA代碼,就能在百萬像素分辨率下實(shí)現(xiàn)18幀/秒的渲染速度。
具體來說,HypeReel通過結(jié)合樣本預(yù)測網(wǎng)絡(luò)和基于關(guān)鍵幀的體積表征法,從而實(shí)現(xiàn)了高渲染質(zhì)量、速度和內(nèi)存效率之間的平衡。
其中的樣本預(yù)測網(wǎng)絡(luò),既能加速體積渲染,又能提高渲染質(zhì)量,特別是對于具有挑戰(zhàn)性的視圖依賴性的場景。
而在基于關(guān)鍵幀的體積表征方面,研究人員采用的是TensoRF的擴(kuò)展。
這種方法可以在內(nèi)存消耗與單個(gè)靜態(tài)幀TensoRF大致相同的同時(shí),湊地表征了一個(gè)完整的視頻序列。
實(shí)時(shí)演示
接下來,我們就實(shí)時(shí)演示一下,HypeReel在512x512像素分辨率下動(dòng)態(tài)和靜態(tài)場景的渲染效果。
值得注意的是,研究人員在Technicolor和Shiny場景中使用了更小的模型,因此渲染的幀率大于40 FPS。對于其余的數(shù)據(jù)集則使用完整模型,不過HypeReel仍然能夠提供實(shí)時(shí)推理。
Technicolor
Shiny
Stanford
Immersive
DoNeRF
實(shí)現(xiàn)方法
為了實(shí)現(xiàn)HeperReel,首先要考慮的問題,就是要優(yōu)化靜態(tài)視圖合成的體積表征。
像NeRF這樣的體積表征,就是對靜態(tài)場景在3D空間中的每一個(gè)點(diǎn)的密度和外觀,進(jìn)行建模。
更具體地說,通過函數(shù)將位置x和方向
沿著?條射線映射到顏色
和密度σ(x)。
此處的可訓(xùn)練參數(shù)θ,可以是神經(jīng)網(wǎng)絡(luò)權(quán)重、N維數(shù)組條目,或兩者的組合。?
然后就可以渲染靜態(tài)場景的新視圖
其中表征從o到
的透射率。?
在實(shí)踐中,可以通過沿給定射線獲取多個(gè)樣本點(diǎn),然后使用數(shù)值求積來計(jì)算方程式1:
其中權(quán)重指定了每個(gè)樣本點(diǎn)的顏色對輸出的貢獻(xiàn)。?
體積渲染的網(wǎng)格示例
在靜態(tài)場景的HyperReel中,給定一組圖像和相機(jī)姿勢,而訓(xùn)練目標(biāo)就是重建與每條光線相關(guān)的測量顏色。
大多數(shù)場景是由實(shí)體物體組成的,這些物體的表面位于3D場景體積內(nèi)的一個(gè)2D流形上。在這種情況下,只有一小部分樣本點(diǎn)會(huì)影響每條光線的渲染顏色。
因此,為了加速體積渲染,研究人員希望只對非零的點(diǎn),查詢顏色和不透明度。
如下圖所示,研究人員使用前饋網(wǎng)絡(luò)來預(yù)測一組樣本位置。具體來說,就是使用樣本預(yù)測網(wǎng)絡(luò)
,將射線
映射到樣本點(diǎn)
,以獲取體積等式2中的渲染。
?這里,研究人員使用Plucker的參數(shù)化來表征光線。??
但是這其中有一個(gè)問題:給網(wǎng)絡(luò)太多的靈活性,可能會(huì)對視圖合成質(zhì)量產(chǎn)生負(fù)面影響。例如,如果(x1, . . . , xn) 是完全任意的點(diǎn),那么渲染可能看起來不是多視圖?致的。
為了解決這個(gè)問題,研究人員選擇用樣本預(yù)測網(wǎng)絡(luò)來預(yù)測一組幾何基元G1, ..., Gn的參數(shù),其中基元的參數(shù)可以根據(jù)輸入射線的不同而變化。為了得到樣本點(diǎn),將射線與每個(gè)基元相交。
如圖a所示,給定源自相機(jī)原點(diǎn)o并沿方向ω傳播的輸入光線后, 研究人員首先使用Plucker坐標(biāo),重新對光線進(jìn)行參數(shù)化。
如圖b所示,一個(gè)網(wǎng)絡(luò)將此射線作為輸入,輸出一組幾何基元{}(如軸對齊的平面和球體)和位移矢量{}的參數(shù)。??
如圖c所示,為了生成用于體積渲染的樣本點(diǎn){},研究人員計(jì)算了射線和幾何基元之間的交點(diǎn),并將位移矢量添加到結(jié)果中。預(yù)測幾何基元的好處是使采樣信號(hào)平滑,易于插值。
位移矢量為采樣點(diǎn)提供了額外的靈活性,能夠更好地捕捉到復(fù)雜的視線依賴的外觀。?
如圖d所示,最終,研究人員通過公式2進(jìn)行體積渲染,產(chǎn)生一個(gè)像素顏色,并根據(jù)相應(yīng)的觀察結(jié)果,對它進(jìn)行了監(jiān)督訓(xùn)練。
基于關(guān)鍵幀的動(dòng)態(tài)體積
通過上述辦法,就可以有效地對3D場景體積進(jìn)行采樣。
如何表征體積呢?在靜態(tài)情況下,研究人員使用的是內(nèi)存有效的張量輻射場(TensoRF)方法;在動(dòng)態(tài)情況下,就將TensoRF擴(kuò)展到基于關(guān)鍵幀的動(dòng)態(tài)體積表征。
下圖解釋了從基于關(guān)鍵幀的表征中,提取動(dòng)態(tài)的樣本點(diǎn)表征的過程。
如圖1所示,首先,研究人員使用從樣本預(yù)測網(wǎng)絡(luò)輸出的速度{},將時(shí)間處的樣本點(diǎn){}平移到最近的關(guān)鍵幀中。
然后,如圖2所示,研究人員查詢了時(shí)空紋理的外積,產(chǎn)生了每個(gè)樣本點(diǎn)的外觀特征,然后通過公式10將其轉(zhuǎn)換成顏色。
通過這樣的過程,研究人員提取了每個(gè)樣本的的不透明度。?
結(jié)果對比
靜態(tài)場景的比較
在此,研究人員將HyperReel與現(xiàn)有的靜態(tài)視圖合成方法(包括NeRF、InstantNGP和三種基于采樣網(wǎng)絡(luò)的方法)進(jìn)行了比較。
- DoNeRF數(shù)據(jù)集?
DoNeRF數(shù)據(jù)集包含六個(gè)合成序列,圖像分辨率為800×800像素。
如表1所示,HyperReel的方法在質(zhì)量上優(yōu)于所有基線,并在很大程度上提高了其他采樣網(wǎng)絡(luò)方案的性能。
同時(shí),HyperReel是用vanilla PyTorch實(shí)現(xiàn)的,可在單張RTX 3090 GPU上以6.5 FPS的速度渲染800×800像素的圖像(或者用Tiny模型實(shí)現(xiàn)29 FPS的渲染)。
此外,與R2L的88層、256個(gè)隱藏單元的深度MLP相比,研究人員提出的6層、256個(gè)隱藏單元的網(wǎng)絡(luò)外加TensoRF體積骨干的推理速度更快
- LLFF數(shù)據(jù)集?
LLFF數(shù)據(jù)集包含8個(gè)具有1008×756像素圖像的真實(shí)世界序列。
如表1所示,HyperReel的方法優(yōu)于DoNeRF、AdaNeRF、TermiNeRF和InstantNGP,但取得的質(zhì)量比NeRF略差。
由于錯(cuò)誤的相機(jī)校準(zhǔn)和輸入視角的稀疏性,這個(gè)數(shù)據(jù)集對顯式體積表征來說是一個(gè)巨大的挑戰(zhàn)。
動(dòng)態(tài)場景的比較
- Technicolor數(shù)據(jù)集?
Technicolor光場數(shù)據(jù)集包含了由時(shí)間同步的4×4攝像機(jī)裝置拍攝的各種室內(nèi)環(huán)境的視頻,其中每個(gè)視頻流中的每張圖片都是2048×1088像素。
研究人員將HyperReel和Neural 3D Video在全圖像分辨率下對這個(gè)數(shù)據(jù)集的五個(gè)序列(Birthday, Fabien, Painter, Theater, Trains)進(jìn)行比較,每個(gè)序列有50幀長。
如表2所示,HyperReel的質(zhì)量超過了Neural 3D Video,同時(shí)每個(gè)序列的訓(xùn)練時(shí)間僅為1.5個(gè)小時(shí)(而不是Neural 3D的1000多個(gè)小時(shí)),并且渲染速度更快。
- Neural 3D Video數(shù)據(jù)集?
Neural 3D Video數(shù)據(jù)集包含6個(gè)室內(nèi)多視圖視頻序列,由20臺(tái)攝像機(jī)以2704×2028像素的分辨率拍攝。
如表2所示,HyperReel在這個(gè)數(shù)據(jù)集上的表現(xiàn)超過了所有的基線方法,包括NeRFPlayer和StreamRF等最新工作。
特別是,HyperReel在數(shù)量上超過了NeRFPlayer,渲染速度是其40倍左右;在質(zhì)量上超過了StreamRF,盡管其采用Plenoxels為骨干的方法(使用定制的CUDA內(nèi)核來加快推理速度)渲染速度更快。
此外,HyperReel平均每幀消耗的內(nèi)存比StreamRF和NeRFPlayer都要少得多。
- 谷歌Immersive數(shù)據(jù)集?
谷歌Immersive數(shù)據(jù)集包含了各種室內(nèi)和室外環(huán)境的光場視頻。
如表2所示,HyperReel在質(zhì)量上比NeRFPlayer的要好1 dB,同時(shí)渲染速度也更快。
有些遺憾的是,HyperReel目前還沒有達(dá)到VR所要求的渲染速度(理想情況下為72FPS,立體聲)。
不過,由于該方法是在vanilla PyTorch中實(shí)現(xiàn)的,因此可以通過比如自定義的CUDA內(nèi)核等工作,來進(jìn)一步優(yōu)化性能。
作者介紹
論文一作Benjamin Attal,目前在卡內(nèi)基梅隆機(jī)器人研究所攻讀博士學(xué)位。研究興趣包括虛擬現(xiàn)實(shí),以及計(jì)算成像和顯示。