来源:CVPR 2023 论文标题:Tensor4D : Efficient Neural 4D Decomposition for High-fidelity Dynamic Reconstruction and Rendering 作者:Ruizhi Shao, Zerong Zheng, Hanzhang Tu, Boning Liu, Hongwen Zhang, Yebin Liu 论文链接:https://arxiv.org/abs/2211.11610 代码链接:https://github.com/DSaurus/Tensor4D 内容整理:查人瑞 Tensor 4D的核心是将时空张量用于动态场景表示,并通过层次化分解策略来解决内存占用过大的问题。这种方法可以用于从稀疏视图视频或单目视频中学习动态场景的高质量神经表示,并实现高保真度的动态重建和渲染。
将 t 作为一个参数(条件)加入原始 NeRF 场中。
是一个产生高维特征
的隐式动态场,
是在位置
处时间
的密度。
是一个以
为输入,RGB 颜色
为输出的 MLP(多层感知机)。
由一个将所有场景变形映射到一个共同的正则配置的变形网络和一个从每个相机射线回归体积密度相关和视相关的RGB颜色的规范网络构成。
是一个变形场,将时间
时位置
的场景映射为用于规范网络的3个位置坐标
中,
则是将这三个经变形网络的坐标与视角
作为输入得到颜色与密度的辐射场。
直接建模一个 4D 张量来表示动态场景在内存上的消耗太大而且不利于高分辨率的渲染。所以作者采用了层级化的三投影手段来将 4D 张量分解为多个小的特征,这样极大的减少了在内存上的消耗。
,首先把其中的 3 维空间部分通过三投影分解为 3 个时间感知体积张量。
表示投影算符。
表示体积到平面的三投影。 这样,我们就可以用 9 个平面来表示一个 4D 场。给定任何一个时空坐标
,我们可以先将 4D 场投影到平面上在通过双线性插值获取相应的值。在空间复杂度上,这个方法使得其从
降至
(n 是网络的空间分辨率)。
图1 层级化三投影分解示意图
在粗优化阶段,用一个低分辨率的特征平面来分解 4D 场(128×128)(有利于鲁棒性和快速收敛),在精优化阶段,用一个高分辨率平面 (512×512) 来分解 4D 场以表示动态细节和达到高质量渲染的目的。将分解的张量按照不同的幅度分解。
与
分别是
粗优化部分和细优化部分。在粗优化部分中,用低分辨率特征平面
用于表示大概的 3D 结构和4D运动的改变 在细优化部分, 高分辨率特征平面
更多的作用在于后续恢复动态细节部分。
图2 多视角重建流程示意图
将公式(5)用于 NeRF-T 的分解。这样我们可以得到 9 个低分辨率的特征平面
和 9 个高分辨率特征平面
来表示 4D NeRF-T 场。对于体积渲染,当在一个方向为(𝜃,𝜙)射线r上采样一个在 (x,y,z,t) 的点 p 时,我们首先查询p在低分辨率平面和高分辨率平面的特征 𝐹_𝑝。以低分辨率特征为例:
然后我们将低分辨率特征和高分辨率特征还有空间位置编码拼接起来作为 MLP
的输入,其输出为高维特征
和密度
。
是位置编码函数。 然后我们将高维特征f和视角位置编码拼接起来并作为颜色MLP
的输入来获取颜色,这样我们就可以通过体积渲染图像。
我们用颜色损失来训练
:
为了达到一个稳定的动态重建过程,本文还对所有分解特征平面做正则化
是特征平面
的全变分损失。 为了更好地渲染曲面,此处在体积渲染过程中引入了一个表面约束。这里作者用了 Neus 中的 SDF 场。这样引入一个体表约束损失来达到一个让体表光滑的效果。
总的 LOSS 是上述三者的加权平均。
图3 单视角重建流程示意图
由于 D-NeRF 是将运动对象表示为一个 4D 变形场和一个 3D 基准场,此处作者分别对这两个场进行分解。对于 4D 变形场,只进行粗优化阶段的分解得到一个低分辨率特征平面
对于 3D 基准场,进行粗优化和细优化分解
这样我们就可以得到对应的 4D 变形场的特征平面
和 3D 基准场的特征平面
。在体积渲染中,对于一个采样点 p,我们可以用式 6 和
来获取变形特征
,然后我们用一个 MLP
来预测这点的运动。
然后我们通过
查询得到基准特征
。以低分辨率特征
为例:
然后将
和
处的位置编码输入到几何 MLP
中来获取高维特征
和密度
后续 loss 计算与多视角重建完全一样
表1 在合成图测试集上的对比
表2 在现实图像测试集上的对比
可以看出 Tensor4D 在与其他方法的对比中优势明显。
表3 计算资源与训练时间
从表3中可看出 Tensor4D 的方法在训练时间以及 Params 和 PSNR的综合对比下有一定优势。