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