论文阅读笔记——Deformable 3DGS,4DGS

Deformable 3DGS

Deformable 3DGS 论文

3DGS 只能解决静态场景,对于动态场景只能逐帧重建,浪费时间,存储开销大,无连续性;在 3DGS 基础上,引入变形场使高斯分布随时间变化,从而支持动态内容。该方法类似在 4D 空间压缩数据,故事“记录”动态信息,不能让静态场景“变得动态”。(变形场调整适合规则运动)

在这里插入图片描述
通过一个 变形场(类似 NeRF) 和三维高斯分布来 解耦运动和几何结构(动态三维高斯分布可以映射到规范空间中)。
输入一组单目动态场景图像,SfM 校准的时间标签、相机姿态和稀疏点云,由此创建一组高斯分布 G ( x , r , s , σ ) G(x,r,s,\sigma) G(x,r,s,σ)
给定时间 t 和三维高斯中心 x 作为输入,通过 MLP 产生偏移量将规范空间转换到变形高斯空间:
在这里插入图片描述
( δ x , δ r , δ s ) = F θ ( γ ( s g ( x ) ) , γ ( t ) ) γ ( p ) = ( s i n ( 2 k π p ) , c o s ( 2 k π p ) ) k = 0 L = 1 \begin{aligned} (\delta x,\delta r, \delta s)=F_\theta(\gamma(sg(x)), \gamma(t)) \\\gamma(p)=(sin(2^k\pi p),cos(2^k\pi p))_{k=0}^{L=1} \end{aligned} (δx,δr,δs)=Fθ(γ(sg(x)),γ(t))γ(p)=(sin(2kπp),cos(2kπp))k=0L=1
其中 s g ( ⋅ ) sg(·) sg() 为停止梯度, γ \gamma γ 表示位置编码(实验表明:作用于输入可以增强细节)(个人感觉是让规范场和变形场交替迭代优化)

因为 colmap 从数据集中估计的姿态不准确,(显示渲染会放大这种抖动,MLP 因其连续性会缩小这种扰动),本文提出 AST 机制——在训练过程中向时间维度注入线性衰减的高斯噪声,模拟位姿误差的扰动:(使得训练出来的变形场在时域上平滑,减少抖动)
Δ = F θ ( γ ( s g ( x ) ) , γ ( t ) + χ ( i ) ) χ ( i ) = N ( 0 , 1 ) ⋅ β ⋅ Δ t ⋅ ( 1 − i r ) \begin{aligned} \Delta = \mathcal{F}_\theta(\gamma(sg(x)), \gamma(t)+\chi(i)) \\\chi(i)=\mathbb{N}(0,1)·\beta·\Delta t·(1-\frac{i}{r}) \end{aligned} Δ=Fθ(γ(sg(x)),γ(t)+χ(i))χ(i)=N(0,1)βΔt(1ri)

实验结果

在这里插入图片描述

4DGS

4DGS 论文

解决动态场景的高效建模与实时渲染,避免逐帧独立重建(同 Deformable 3DGS)。但采用 4D 时空体素分解(HexPlane)联合优化高斯,相比于 Deformable 3DGS,适合复杂非刚性运动(质量高),但速度相比会慢一点,开销会增大(处理 4D 体素)。

在这里插入图片描述
本文于 Deformable 3DGS 相似,采用了规范空间+变形场的思路,但 4DGS 的变形场是通过学习的方式得到。
输入数据为 4D 数据 ( x , y , z , t ) (x,y,z,t) (x,y,z,t) ,初始化一组标准 3D 高斯函数,通过 HexPlane 对高斯函数编码得到时空特征,一个编码的 MLP,3 个解码的 MLP,生成高斯函数的变形值 ( Δ x , Δ y , Δ z , Δ r , Δ s ) (\Delta x,\Delta y, \Delta z, \Delta r,\Delta s) (Δx,Δy,Δz,Δr,Δs)

HexPlane

将四维体素分解到 { ( x , y ) , ( x , z ) , ( y , z ) , ( x , t ) , ( y , t ) , ( z , t ) } \{(x,y),(x,z),(y,z),(x,t),(y,t),(z,t)\} {(x,y),(x,z),(y,z),(x,t),(y,t),(z,t)} 6 个 2D 平面组合,每个平面用不同分辨率 l 记录格点待编码属性(低分辨率整体,高分辨率细节),对每个平面进行双线性插值编码。
f h = ⋃ l ∏ i n t e r p ( R l ( i , j ) ) ( i , j ) ∈ { ( x , y ) , ( x , z ) , ( y , z ) , ( x , t ) , ( y , t ) , ( z , t ) } f d = ϕ d ( f h ) \begin{aligned} &f_h = \bigcup_l \prod interp(R_l(i,j)) \quad (i,j)\in\{(x,y),(x,z),(y,z),(x,t),(y,t),(z,t)\} \\&f_d = \phi_d(f_h) \end{aligned} fh=linterp(Rl(i,j))(i,j){(x,y),(x,z),(y,z),(x,t),(y,t),(z,t)}fd=ϕd(fh)
将每个隐藏元素的双线性插值结果进行分别乘积,然后对每个分辨率进行级联,得到一个 l ∗ h l*h lh 的特征向量。 l l l 代表不同分辨率, h h h 代表编码的维度(位置偏移3+scale偏移3+rotation偏移4)
损失函数:
L = ∣ I ^ − I ∣ + L t v L T V ( P ) = 1 ∣ C ∣ n 2 ∑ c , i , j ( ∣ ∣ P c i , j − P c i − 1 , j ∣ ∣ 2 2 + ∣ ∣ P c i , j − P c i , j − 1 ∣ ∣ 2 2 ) \begin{aligned} &\mathcal{L} = |\hat{I}-I|+\mathcal{L}_{tv} \\&\mathcal{L}_{TV}(P)=\frac{1}{|C|n^2}\sum_{c,i,j}(||\boldsymbol{P}_c^{i,j}-\boldsymbol{P}_c^{i-1,j}||_2^2+||\boldsymbol{P}_c^{i,j}-\boldsymbol{P}_c^{i,j-1}||_2^2) \end{aligned} L=I^I+LtvLTV(P)=Cn21c,i,j(∣∣Pci,jPci1,j22+∣∣Pci,jPci,j122)

L T V \mathcal{L}_{TV} LTV 从 K-planes 中截取,P 与本文 R 相同。

实验结果

在这里插入图片描述

总结

4DGS将四维空间中的特征属性投影到多个二维平面并栅格化,类似数据压缩,但处理稀疏输入如单目视频时,可能因信息不足导致恢复结果有歧义。而deformable 3DGS的MLP模型直接在四维空间压缩数据,对单目视频更友好,效果可能更好。

关于4DGS的相关代码示例,目前并没有明确的官方定义或标准库支持4DGS(四维数据网格服务)。然而,可以推测其可能是基于现有的DGS框架扩展而来,用于处理更复杂的多维度场景。以下是可能实现的一个假设性代码示例: ### 假设性4DGS Code Example ```java // Assuming the extension of DGS to handle 4-dimensional data structures. plugins { id "com.netflix.dgs.codegen" version "5.2.4" } class FourDimensionalGraphService { public static class TypeSafeQueryApi { private final String queryName; public TypeSafeQueryApi(String queryName) { this.queryName = queryName; } public String getQuery() { return queryName; } } public static void main(String[] args) { // Generating a type-safe API for querying four-dimensional data TypeSafeQueryApi api = new TypeSafeQueryApi("fourDimensionalData"); System.out.println(api.getQuery()); // Simulating constants generation similar to DGS Constants Class DgsConstants.FOUR_DIMENSIONAL_TYPE_NAME = "FourDimensionalType"; System.out.println(DgsConstants.FOUR_DIMENSIONAL_TYPE_NAME); } } class DgsConstants { public static String FOUR_DIMENSIONAL_TYPE_NAME; // Placeholder for constant names related to 4D types } ``` 上述代码展示了如何利用现有DGS插件的功能来创建一个假想中的4D环境下的类型安全查询API[^1]。 需要注意的是,当前主流的技术栈主要集中在3D视觉技术和传统的二维、三维数据结构上[^4]。如果确实存在针对4D的应用需求,则通常需要依赖于特定领域的算法设计以及更高层次的数据抽象方法[^5]。 #### 关键点说明: - **插件集成**:继续沿用`com.netflix.dgs.codegen`插件作为基础架构的一部分。 - **扩展功能**:增加对于第四维度的支持逻辑,这可能涉及时间轴或其他物理量度。 - **模拟生成器行为**:模仿原有的DGS常量类形式,新增适用于四维空间的对象描述符。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值