.hd-box .hd-fr

Meta、CMU 联手推出 VR 史诗级升级,最新 HyperReel 模型实现高保真 6 自由度视频渲染

2023-01-10 18:35新智元(新智元)3评

近日,Meta 和 CMU 的研究人员提出了一种全新的 6-DoF 视频表征方法,单张 RTX 3090 即可每秒 18 帧实现百万像素分辨率渲染,或将给 VR 带来革命性的高质量体验。

最近,由 Meta 和卡内基梅隆大学提出的 6-DoF 视频表征模型 ——HyperReel,可能预示着一个全新的 VR「杀手级」应用即将诞生!

所谓「六自由度视频」(6-DoF),简单来说就是一个超高清的 4D 体验式回放。

其中,用户可以完全「置身于」动态场景里面,并且可以自由地移动。而当他们任意改变自己的头部位置(3 DoF)和方向(3 DoF)时,与之相应的视图也会随之生成。

论文地址:https://arxiv.org/abs / 2301.02238

与之前的工作相比,HyperReel 最大的优势在于内存和计算效率,而这两点对于便携式 VR 头显来说都至关重要。

而且只需采用 vanilla PyTorch,HyperReel 就能在单张英伟达 RTX 3090 上,以每秒 18 帧的速度实现百万像素分辨率的渲染。

太长不看版:

1. 提出一种可在高分辨率下实现高保真度、高帧率的渲染的光线条件采样预测网络,以及一种紧凑且内存高效的动态体积表征;

2. 6-DoF 视频表征方法 HyperReel 结合了以上两个核心部分,可以在实时渲染百万像素分辨率的同时,实现速度、质量和内存之间的理想平衡;

3. HyperReel 在内存需求、渲染速度等多个方面均优于其他方法。

论文介绍

体积场景表征(volumetric scene representation)能够为静态场景提供逼真的视图合成,并构成了现有 6-DoF 视频技术的基础。

然而,驱动这些表征的体积渲染程序,需要在质量、渲染速度和内存效率方面,进行仔细的权衡。

现有的方法有一个弊端 —— 不能同时实现实时性能、小内存占用和高质量渲染,而在极具挑战性的真实场景中,这些都是极为重要的。

为了解决这些问题,研究人员提出了 HyperReel—— 一种基于 NeRF 技术(神经辐射场)的 6-DoF 视频表征方法。

其中,HyperReel 的两个核心部分是:

1. 一个光线条件下的采样预测网络,能够在高分辨率下进行高保真、高帧率的渲染;

2. 一个紧凑且内存高效的动态体积表征。

与其他方法相比,HyperReel 的 6-DoF 视频管线不仅在视觉质量上表现极佳,而且内存需求也很小。

同时,HyperReel 无需任何定制的 CUDA 代码,就能在百万像素分辨率下实现 18 帧 / 秒的渲染速度。

具体来说,HypeReel 通过结合样本预测网络和基于关键帧的体积表征法,从而实现了高渲染质量、速度和内存效率之间的平衡。

其中的样本预测网络,既能加速体积渲染,又能提高渲染质量,特别是对于具有挑战性的视图依赖性的场景。

而在基于关键帧的体积表征方面,研究人员采用的是 TensoRF 的扩展。

这种方法可以在内存消耗与单个静态帧 TensoRF 大致相同的同时,凑地表征了一个完整的视频序列。

实时演示

接下来,我们就实时演示一下,HypeReel 在 512x512 像素分辨率下动态和静态场景的渲染效果。

值得注意的是,研究人员在 Technicolor 和 Shiny 场景中使用了更小的模型,因此渲染的帧率大于 40 FPS。对于其余的数据集则使用完整模型,不过 HypeReel 仍然能够提供实时推理。

Technicolor

Shiny

Stanford

Immersive

DoNeRF

实现方法

为了实现 HeperReel,首先要考虑的问题,就是要优化静态视图合成的体积表征。

像 NeRF 这样的体积表征,就是对静态场景在 3D 空间中的每一个点的密度和外观,进行建模。

更具体地说,通过函数

将位置 x 和方向

沿着⼀条射线映射到颜色

和密度 σ(x)。

此处的可训练参数 θ,可以是神经网络权重、N 维数组条目,或两者的组合。

然后就可以渲染静态场景的新视图

其中

表征从 o 到

的透射率。

在实践中,可以通过沿给定射线获取多个样本点,然后使用数值求积来计算方程式 1:

其中权重

指定了每个样本点的颜色对输出的贡献。

体积渲染的网格示例

在静态场景的 HyperReel 中,给定一组图像和相机姿势,而训练目标就是重建与每条光线相关的测量颜色。

大多数场景是由实体物体组成的,这些物体的表面位于 3D 场景体积内的一个 2D 流形上。在这种情况下,只有一小部分样本点会影响每条光线的渲染颜色。

因此,为了加速体积渲染,研究人员希望只对非零

的点,查询颜色和不透明度。

如下图所示,研究人员使用前馈网络来预测一组样本位置

。具体来说,就是使用样本预测网络

,将射线

映射到样本点

,以获取体积等式 2 中的渲染。

这里,研究人员使用 Plucker 的参数化来表征光线。

但是这其中有一个问题:给网络太多的灵活性,可能会对视图合成质量产生负面影响。例如,如果 (x1, . . . , xn) 是完全任意的点,那么渲染可能看起来不是多视图⼀致的。

为了解决这个问题,研究人员选择用样本预测网络来预测一组几何基元 G1, ..., Gn 的参数,其中基元的参数可以根据输入射线的不同而变化。为了得到样本点,将射线与每个基元相交。

如图 a 所示,给定源自相机原点 o 并沿方向 ω 传播的输入光线后,研究人员首先使用 Plucker 坐标,重新对光线进行参数化。

如图 b 所示,一个网络

将此射线作为输入,输出一组几何基元 {

}(如轴对齐的平面和球体)和位移矢量 {

} 的参数。

如图 c 所示,为了生成用于体积渲染的样本点 {

},研究人员计算了射线和几何基元之间的交点,并将位移矢量添加到结果中。预测几何基元的好处是使采样信号平滑,易于插值。

位移矢量为采样点提供了额外的灵活性,能够更好地捕捉到复杂的视线依赖的外观。

如图 d 所示,最终,研究人员通过公式 2 进行体积渲染,产生一个像素颜色,并根据相应的观察结果,对它进行了监督训练。

基于关键帧的动态体积

通过上述办法,就可以有效地对 3D 场景体积进行采样。

如何表征体积呢?在静态情况下,研究人员使用的是内存有效的张量辐射场 (TensoRF) 方法;在动态情况下,就将 TensoRF 扩展到基于关键帧的动态体积表征。

下图解释了从基于关键帧的表征中,提取动态的样本点表征的过程。

如图 1 所示,首先,研究人员使用从样本预测网络输出的速度 {

},将时间

处的样本点 {

} 平移到最近的关键帧

中。

然后,如图 2 所示,研究人员查询了时空纹理的外积,产生了每个样本点的外观特征,然后通过公式 10 将其转换成颜色。

通过这样的过程,研究人员提取了每个样本的的不透明度。

结果对比

静态场景的比较

在此,研究人员将 HyperReel 与现有的静态视图合成方法(包括 NeRF、InstantNGP 和三种基于采样网络的方法)进行了比较。

DoNeRF 数据集

DoNeRF 数据集包含六个合成序列,图像分辨率为 800×800 像素。

如表 1 所示,HyperReel 的方法在质量上优于所有基线,并在很大程度上提高了其他采样网络方案的性能。

同时,HyperReel 是用 vanilla PyTorch 实现的,可在单张 RTX 3090 GPU 上以 6.5 FPS 的速度渲染 800×800 像素的图像(或者用 Tiny 模型实现 29 FPS 的渲染)。

此外,与 R2L 的 88 层、256 个隐藏单元的深度 MLP 相比,研究人员提出的 6 层、256 个隐藏单元的网络外加 TensoRF 体积骨干的推理速度更快

LLFF 数据集

LLFF 数据集包含 8 个具有 1008×756 像素图像的真实世界序列。

如表 1 所示,HyperReel 的方法优于 DoNeRF、AdaNeRF、TermiNeRF 和 InstantNGP,但取得的质量比 NeRF 略差。

由于错误的相机校准和输入视角的稀疏性,这个数据集对显式体积表征来说是一个巨大的挑战。

动态场景的比较

Technicolor 数据集

Technicolor 光场数据集包含了由时间同步的 4×4 摄像机装置拍摄的各种室内环境的视频,其中每个视频流中的每张图片都是 2048×1088 像素。

研究人员将 HyperReel 和 Neural 3D Video 在全图像分辨率下对这个数据集的五个序列(Birthday, Fabien, Painter, Theater, Trains)进行比较,每个序列有 50 帧长。

如表 2 所示,HyperReel 的质量超过了 Neural 3D Video,同时每个序列的训练时间仅为 1.5 个小时(而不是 Neural 3D 的 1000 多个小时),并且渲染速度更快。

Neural 3D Video 数据集

Neural 3D Video 数据集包含 6 个室内多视图视频序列,由 20 台摄像机以 2704×2028 像素的分辨率拍摄。

如表 2 所示,HyperReel 在这个数据集上的表现超过了所有的基线方法,包括 NeRFPlayer 和 StreamRF 等最新工作。

特别是,HyperReel 在数量上超过了 NeRFPlayer,渲染速度是其 40 倍左右;在质量上超过了 StreamRF,尽管其采用 Plenoxels 为骨干的方法(使用定制的 CUDA 内核来加快推理速度)渲染速度更快。

此外,HyperReel 平均每帧消耗的内存比 StreamRF 和 NeRFPlayer 都要少得多。

谷歌 Immersive 数据集

谷歌 Immersive 数据集包含了各种室内和室外环境的光场视频。

如表 2 所示,HyperReel 在质量上比 NeRFPlayer 的要好 1 dB,同时渲染速度也更快。

有些遗憾的是,HyperReel 目前还没有达到 VR 所要求的渲染速度(理想情况下为 72FPS,立体声)。

不过,由于该方法是在 vanilla PyTorch 中实现的,因此可以通过比如自定义的 CUDA 内核等工作,来进一步优化性能。

作者介绍

论文一作 Benjamin Attal,目前在卡内基梅隆机器人研究所攻读博士学位。研究兴趣包括虚拟现实,以及计算成像和显示。

参考资料:

本文来自微信公众号:新智元 (ID:AI_era),编辑:好困 Aeneas

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。

下载IT之家APP,分享赚金币换豪礼
相关文章
大家都在买广告
热门评论
查看更多评论