前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVPR2023 | Tensor4D 高效动态神经辐射场

CVPR2023 | Tensor4D 高效动态神经辐射场

作者头像
用户1324186
发布2023-09-09 09:06:08
4780
发布2023-09-09 09:06:08
举报
文章被收录于专栏:媒矿工厂

来源: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的核心是将时空张量用于动态场景表示,并通过层次化分解策略来解决内存占用过大的问题。这种方法可以用于从稀疏视图视频或单目视频中学习动态场景的高质量神经表示,并实现高保真度的动态重建和渲染。

相关工作

NeRF-T

将 t 作为一个参数(条件)加入原始 NeRF 场中。

f(x,y,z,t)=(\mathbf{f},\sigma), \quad g(\mathbf{f},\theta,\phi)=\mathbf{c} \quad (1)
f

是一个产生高维特征

\mathbf{f}

的隐式动态场,

\sigma

是在位置

(x,y,z)

处时间

t

的密度。

g

是一个以

\mathbf{f},(\theta,\phi)

为输入,RGB 颜色

\mathbf{c}

为输出的 MLP(多层感知机)。

D-NeRF

由一个将所有场景变形映射到一个共同的正则配置的变形网络和一个从每个相机射线回归体积密度相关和视相关的RGB颜色的规范网络构成。

f(x,y,z,t)=(\hat{x},\hat{y},\hat{z}),\\ g(\hat{x},\hat{y},\hat{z},\theta,\phi)=(\mathbf{c},\sigma). \quad (2)
f

是一个变形场,将时间

t

时位置

(x,y,z)

的场景映射为用于规范网络的3个位置坐标

(\hat{x},\hat{y},\hat{z})

中,

g

则是将这三个经变形网络的坐标与视角

(𝜃,𝜙)

作为输入得到颜色与密度的辐射场。

方法

层级化三投影分解

直接建模一个 4D 张量来表示动态场景在内存上的消耗太大而且不利于高分辨率的渲染。所以作者采用了层级化的三投影手段来将 4D 张量分解为多个小的特征,这样极大的减少了在内存上的消耗。

  1. 对于一个 4D 场
𝑓(𝑥,𝑦,𝑧,𝑡)

,首先把其中的 3 维空间部分通过三投影分解为 3 个时间感知体积张量。

Π_3(f(x,y,z,t))=\{f_z(x,y,t),f_y(x,z,t),f_x(y,z,t)\} \quad (3)
Π_3

表示投影算符。

  1. 为了继续降低空间复杂度和提升高分辨率的渲染能力,作者又将每个特征体积分解为三个特征平面。
\begin{align*} \pi_3(f_z)&=\{f_{zt}(x,y),f_{zy}(x,t),f_{zx}(y,t)\} \\ \pi_3(f_y)&=\{f_{yt}(x,z),f_{yz}(x,t),f_{yx}(z,t)\} \quad (4) \\ \pi_3(f_x)&=\{f_{xt}(y,z),f_{xz}(y,t),f_{xy}(z,t)\} \end{align*}
\pi_3

表示体积到平面的三投影。 这样,我们就可以用 9 个平面来表示一个 4D 场。给定任何一个时空坐标

(x,y,z,t)

,我们可以先将 4D 场投影到平面上在通过双线性插值获取相应的值。在空间复杂度上,这个方法使得其从

𝑂(𝑛^4 )

降至

𝑂(𝑛^2 )

(n 是网络的空间分辨率)。

图1 层级化三投影分解示意图

由粗到细的算法

在粗优化阶段,用一个低分辨率的特征平面来分解 4D 场(128×128)(有利于鲁棒性和快速收敛),在精优化阶段,用一个高分辨率平面 (512×512) 来分解 4D 场以表示动态细节和达到高质量渲染的目的。将分解的张量按照不同的幅度分解。

f(x,y,z,t)=\{\pi_3(Π_3(f^{LR})),\pi_3(Π_3(f^{HR}))\} \quad (5)
f^{LR}

f^{HR}

分别是

f(x,y,z,t)

粗优化部分和细优化部分。在粗优化部分中,用低分辨率特征平面

𝜋_3 (Π_3 (𝑓^{𝐿𝑅}))

用于表示大概的 3D 结构和4D运动的改变 在细优化部分, 高分辨率特征平面

𝜋_3 (Π_3 (𝑓^{𝐻𝑅}))

更多的作用在于后续恢复动态细节部分。

多视角重建

图2 多视角重建流程示意图

将公式(5)用于 NeRF-T 的分解。这样我们可以得到 9 个低分辨率的特征平面

𝑇^{𝐿𝑅}

和 9 个高分辨率特征平面

𝑇^{𝐻𝑅}

来表示 4D NeRF-T 场。对于体积渲染,当在一个方向为(𝜃,𝜙)射线r上采样一个在 (x,y,z,t) 的点 p 时,我们首先查询p在低分辨率平面和高分辨率平面的特征 𝐹_𝑝。以低分辨率特征为例:

\begin{aligned} F_P^{LR}(&x,y,z,t)=\pi_3(Π_3(f^{LR}))\\ &=\oplus(\pi_3(f_z^{LR}),\pi_3(f_y^{LR}),\pi_3(f_x^{LR}))\\ &=\oplus(\oplus(T_{zt}^{LR}(x,y),T_{zy}^{LR}(x,t),T_{zx}^{LR}(y,t)),...) \quad (6)\end{aligned}

然后我们将低分辨率特征和高分辨率特征还有空间位置编码拼接起来作为 MLP

𝐸_𝑔

的输入,其输出为高维特征

\mathbf{f}

和密度

σ

E_g(F_p^{LR},F_p^{HR},\gamma(x,y,z,t))=(\mathbf{f},\sigma) \quad (7)
\gamma

是位置编码函数。 然后我们将高维特征f和视角位置编码拼接起来并作为颜色MLP

𝐸_𝐶

的输入来获取颜色,这样我们就可以通过体积渲染图像。

E_C(\mathbf{f},\gamma(\theta,\phi))=c \quad (8)

我们用颜色损失来训练

𝐸_𝐶,𝐸_𝑔

L_c=||C_{i,j}-C^*_{i,j}|| \quad (9)

为了达到一个稳定的动态重建过程,本文还对所有分解特征平面做正则化

L_r=\sum_T\sum_{i,j} \sqrt{(T_{i+1,j}-T_{i,j})^2+(T_{i,j+1}-T_{i,j})^2} \quad (10)
L_r

是特征平面

T

的全变分损失。 为了更好地渲染曲面,此处在体积渲染过程中引入了一个表面约束。这里作者用了 Neus 中的 SDF 场。这样引入一个体表约束损失来达到一个让体表光滑的效果。

L_e= ||\ ||\nabla_s(x,y,z,t)||_2-1\ ||_2 \quad (11)

总的 LOSS 是上述三者的加权平均。

L_m=\lambda_r L_r+\lambda_eL_e+\lambda_cL_c \quad (12)

单视角重建

图3 单视角重建流程示意图

由于 D-NeRF 是将运动对象表示为一个 4D 变形场和一个 3D 基准场,此处作者分别对这两个场进行分解。对于 4D 变形场,只进行粗优化阶段的分解得到一个低分辨率特征平面

f(x,y,z,t)=\pi_3(Π_3(f^{LR})) \quad (13)

对于 3D 基准场,进行粗优化和细优化分解

h(\hat{x},\hat{y},\hat{z})={\pi_3(Π_3(h^{LR})+\pi_3(Π_3(h^{HR})} \quad (14)

这样我们就可以得到对应的 4D 变形场的特征平面

𝑇_𝑓

和 3D 基准场的特征平面

𝑇_ℎ

。在体积渲染中,对于一个采样点 p,我们可以用式 6 和

𝑇_𝑓

来获取变形特征

𝐹_𝑓

,然后我们用一个 MLP

𝐸_𝑓

来预测这点的运动。

E_f(F_p,\gamma(x,y,z,t)=(\hat{x},\hat{y},\hat{z}) \quad (15)

然后我们通过

𝑇_h

查询得到基准特征

𝐹_𝑐

。以低分辨率特征

𝐹_𝐶^{𝐿𝑅}

为例:

F_c^{LR}=\pi_3(h^{LR})=\oplus(T_{h_z}^{LR}(x,y),T_{h_y}^{LR}(x,z),T_{h_x}^{LR}(y,z))\quad (16)

然后将

𝐹_𝐶^{𝐿𝑅}

(𝑥,𝑦,𝑧)

处的位置编码输入到几何 MLP

𝐸_𝑔

中来获取高维特征

\mathbf{f}

和密度

𝜎
E_g(F_c^{LR},\gamma(\hat{x},\hat{y},\hat{z}))=(\mathbf{f},\sigma) \quad (17)

后续 loss 计算与多视角重建完全一样

L_s=\lambda_r L_r+\lambda_eL_e+\lambda_cL_c \quad (18)

实验结果

与其他方法对比

表1 在合成图测试集上的对比

表2 在现实图像测试集上的对比

可以看出 Tensor4D 在与其他方法的对比中优势明显。

计算资源消耗对比

表3 计算资源与训练时间

从表3中可看出 Tensor4D 的方法在训练时间以及 Params 和 PSNR的综合对比下有一定优势。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 媒矿工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 相关工作
    • NeRF-T
      • D-NeRF
      • 方法
        • 层级化三投影分解
          • 由粗到细的算法
            • 多视角重建
              • 单视角重建
              • 实验结果
                • 与其他方法对比
                  • 计算资源消耗对比
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档