4DGS简要笔记

解决的主要问题

传统的3DGS只能生成静态的多视角图片,本文在此基础上更进一步,生成动态的多视角视频,即在一个流畅的视频中,观看者可以自由变换观看视角。其渲染帧率为82FPS,硬件设备是RTX3090 GPU.

主要思路

由多视角图片拓展为多视角视频,一个容易想到的思路是对视频中的每一帧单独建立一个3DGS模型,但是这样系统要同时维护很多个3DGS模型,费时费力,本文没有这样做。

本文提出的方法是只维护一组3DGS模型,即从始至终只有一组3D高斯球,只是在不同的时间节点,这组高斯球会做出相应的变化(位移、缩放)等以表示在视频中物体随时间的移动。

具体思路

假设在t时刻时高斯球的形态为G_t,在上一时刻该高斯球的形态为G_{t-1},则可以用下面的公式来表示这种变化:

G_t=G_{t-1}+\Delta G

从上面的公式中可以看出,得到了\Delta G就可以得到G_t,得到了G_t就可以根据3DGS的步骤渲染得到图像,所以本文的核心在于如何计算\Delta G。在论文中\Delta G可以用一个MLP网络F()计算出来,即

\Delta G=F(G_{t-1},t).

而MLP网络F()又进一步可被拆分成一个编码器H和一个解码器D:

f_d=H(G_{t-1},t)

\Delta G=D(f_d)

下面具体介绍编码和解码两部分。

编码

按照k-plane这篇论文的方法,把全空间分为6个特征平面,编码时先从这6个特征平面中提取特征,然后把这6个特征乘起来,最后通过一个编码MLP  \phi_{d}(\cdot),得到最终编码f_d.

第一步:划分特征平面

特征平面用R_l^{(i,j)}表示,其中l\in \{1,2\}为分辨率等级,每个分辨率等级分为6个特征平面,即(i,j)\in\{(x,y),(x,z),(x,t),(y,z),(y,t),(z,t)\}.

第二步:通过插值获得原始特征编码

原始特征编码f_h的计算公式为:

f_h=\bigcup_{l}\prod_{(i,j)}interp(R_l^{(i,j)},x)

其中,interp(R_l^{(i,j)},x)表示在特征平面R_l(i,j)中根据待查询点x的位置进行插值,得到属于点x的特征,\prod_{(i,j)}表示同分辨率下6个平面下的特征相乘起来,\bigcup_{l}表示不同分辨率下的特征拼接起来。

第三步:得到最终特征编码

将原始特征编码f_h用一个MLP网络\phi_d编码得到最终特征编码f_d,即

f_d=\phi_d(f_h).

解码

解码网络分为:预测高斯球位移的网络\phi_x、预测高斯球旋转四元数的网络\phi_r、预测高斯球缩放因子的网络\phi_s.

\Delta x=\phi_x(f_d);\Delta r=\phi_r(f_d);\Delta s=\phi_s(f_d)

\Delta G=\{\Delta x,\Delta r,\Delta s\}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值