bg
  • 新智元
  • 2023年1月09日01时

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



    新智元报道

    编辑:好困 Aeneas
    【新智元导读】近日,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,目前在卡内基梅隆机器人研究所攻读博士学位。研究兴趣包括虚拟现实,以及计算成像和显示。

    参考资料:
    https://arxiv.org/abs/2301.02238
    https://hyperreel.github.io
    https://hub.baai.ac.cn/view/23146
    https://twitter.com/DrJimFan/status/1611791338034593793