功能性高斯泼溅扩散——DiffGS: Functional Gaussian Splatting Diffusion
功能性高斯泼溅扩散——DiffGS: Functional Gaussian Splatting Diffusion
文章目录
- 功能性高斯泼溅扩散——DiffGS: Functional Gaussian Splatting Diffusion
- 摘要
- Abstract
- 1. 基本思想
- 1.1 高斯概率函数
- 1.2 高斯颜色和变换建模
- 1.3 高斯变分自编码器和潜在扩散
- 1.4 高斯提取算法
- 2. 实验
- 2.1 无条件生成
- 2.2 有条件生成
- 2.3 点高斯化(Point-to-Gaussian)生成
- 2.4 消融实验
- 3. 数据准备
- 4. 3D Gaussian Splatting
- 4.1 捏雪球
- 4.2 抛雪球
- 4.3 雪球颜色
- 总结
摘要
本周报介绍了功能性高斯泼溅扩散 (DiffGS) 的方法、实现及实验结果。DiffGS 是第一个针对 3D 高斯泼溅 (3DGS) 的通用生成模型,能够在不需要体素化或预处理的情况下生成任意数量的 3DGS。此外,DiffGS 通过高斯概率函数 (GauPF)、高斯颜色函数 (GauCF) 和高斯变换函数 (GauTF) 的解耦表示,解决了 3DGS 的离散性和非结构化问题。模型采用高斯变分自编码器 (VAE) 和潜在扩散模型 (LDM),通过八叉树引导的高斯提取算法生成高质量的 3DGS。实验结果表明,DiffGS 在无条件生成、有条件生成、高斯泼溅补全和点高斯化任务中均表现出色,其生成效果在视觉质量和几何精细度上显著优于现有方法。
Abstract
This report presents DiffGS: Functional Gaussian Splatting Diffusion, the first universal generative model for 3D Gaussian Splatting (3DGS). DiffGS directly generates 3DGS without requiring preprocessing, such as voxelization, and can create an arbitrary number of Gaussian primitives. The method addresses the challenges posed by the discrete and unstructured nature of 3DGS by introducing a disentangled representation consisting of the Gaussian Probability Function (GauPF), the Gaussian Color Function (GauCF), and the Gaussian Transformation Function (GauTF). A Gaussian Variational Autoencoder (VAE) and a Latent Diffusion Model (LDM) are employed to generate these functions, while an octree-based Gaussian extraction algorithm ensures accurate reconstruction of 3DGS. Experimental results demonstrate that DiffGS achieves superior performance in unconditional generation, conditional generation, Gaussian splat completion, and point-to-Gaussian generation tasks, producing visually appealing 3DGS with high fidelity and detailed geometry compared to state-of-the-art methods.
1. 基本思想
3D Gaussian Splatting(3DGS)在渲染速度和保真度方面表现出色,但其生成由于离散性和非结构化特性而具有挑战性。DiffGS第一次实现了原生的三维高斯生成式模型,无需对高斯数据进行体素化等预处理操作,并可以生成任意数量的3DGS。DiffGS同时是第一个通用三维高斯生成模型,支持图生3DGS、文生3DGS、三维高斯补全、点云到3DGS的生成等任务。这篇论文的方法主要有以下几点:
- 3DGS的解耦表示:通过三种新颖函数(高斯概率函数GauPF、高斯颜色函数GauCF和高斯变换函数GauTF)解耦表示3DGS。
- 生成模型:设计高斯变分自编码器(VAE)和潜在扩散模型(LDM)来生成这些函数。
- 高斯提取算法:通过八叉树引导的采样和优化从生成的函数中提取任意数量的高斯基元。
如上图所示,作者从多视图的图像中拟合 3DGS,然后将其解耦为三个高斯泼溅函数。作者训练一个高斯变分自编码器和一个潜在扩散模型来生成这些函数,然后通过高斯提取算法获得最终生成的高斯基元。
生成 3DGS 建模的核心挑战在于其离散性和非结构化特性,这使得在结构化图像/体素/视频生成中广泛研究的生成框架无法直接转移到生成 3DGS 上。为了解决这一挑战。通过新颖的 3DGS 解耦,作者将离散和非结构化的 3DGS 表示为三个连续的高斯泼溅函数,以建模高斯概率、高斯颜色和高斯变换。
三维高斯泼溅(3DGS)将三维形状或场景表示为一组具有属性以建模几何和视图相关外观的高斯基元。对于包含 N N N个高斯基元的 3DGS G = { g i } i = 1 N G=\{g_i\}_{i=1}^N G={gi}i=1N,第 i i i个高斯的几何形状通过三维协方差矩阵 Σ i \Sigma_i Σi和其中心 σ i ∈ R 3 \sigma_i\in\mathbb{R}^3 σi∈R3显式参数化,公式为(1):
g i ( x ) = exp ( − 1 2 ( x − σ i ) T Σ − 1 ( x − σ i ) ) g_i(x)=\exp\left(-\frac12(x-\sigma_i)^T\Sigma^{-1}(x-\sigma_i)\right) gi(x)=exp(−21(x−σi)TΣ−1(x−σi))
其中协方差矩阵 Σ i = r i s i s i T r i T \Sigma_i=r_is_is_i^Tr_i^T Σi=risisiTriT分解为一个旋转矩阵 r i ∈ R 4 r_i\in\mathbb{R}^4 ri∈R4和一个尺度矩阵 s i ∈ R s_i\in\mathbb{R} si∈R。高斯 g i g_i gi 的外观由不透明度值 o j ∈ R o_j\in\mathbb{R} oj∈R和颜色值 c i ∈ R 3 c_i\in\mathbb{R}^3 ci∈R3控制。请注意,在 3DGS 的实际应用中,颜色表示为一系列球谐系数,但在本文中作者仍将其定义为三维颜色 c i c_i ci ,以便更清晰地理解其提出的方法。因此,3DGS G G G定义为 { g i = { σ i , r i , s i , o i , c i } ∈ R K } j = 1 N \{g_i=\{\sigma_i,r_i,s_i,o_i,c_i\}\in\mathbb{R}^K\}_{j=1}^N {gi={σi,ri,si,oi,ci}∈RK}j=1N,其中 K K K是每个高斯中组合属性的维度。
上图是DiffGS的概览。(a) 作者将拟合的 3DGS 解耦为三个高斯泼溅函数,分别建模高斯概率、颜色和变换。然后作者训练一个高斯变分自编码器和一个条件潜在扩散模型来生成这些函数。(b) 在生成过程中,作者首先从生成的 GauPF 中提取高斯几何,然后通过 GauCF 和 GauTF 获得高斯属性。
1.1 高斯概率函数
高斯概率函数 (GauPF) 通过建模每个采样三维位置成为高斯位置的概率来指示3DGS 的几何形状。给定拟合的 3DGS G = { g i ∈ R 3 } j = 1 N G=\{g_i\in\mathbb{R}^3\}_{j=1}^N G={gi∈R3}j=1N周围的三维空间中采样的一组三维查询位置 Q = { q j ∈ R 3 } i = 1 M Q=\{q_j\in\mathbb{R}^3\}_{i=1}^M Q={qj∈R3}i=1M, G G G的 GauPF 预测查询 { q j } i = 1 M \{q_j\}_{i=1}^M {qj}i=1M成为 G G G中高斯位置的概率 p p p,公式为(2):
p j = GauPF ( q j ) ∈ [ 0 , 1 ] . p_j=\text{GauPF}(q_j)\in[0,1]. pj=GauPF(qj)∈[0,1].
高斯概率建模的思想来自于观察到,三维位置 q j q_j qj离所有高斯越远,任何高斯占据 q j q_j qj处空间的可能性越低。因此, q j q_j qj的真实高斯概率定义公式为(3):
G a u P F ( q j ) = τ ( λ ( min i ∈ [ 1 , N ] ∣ ∣ q j − σ i ∣ ∣ 2 ) ) , \mathrm{GauPF}(q_j)=\tau(\lambda(\min_{i\in[1,N]}||q_j-\sigma_i||_2)), GauPF(qj)=τ(λ(i∈[1,N]min∣∣qj−σi∣∣2)),
其中 m i n i ∈ [ 1 , N ] ∣ ∣ q j − σ i ∣ ∣ 2 min_{i\in[1,N]}||q_j-\sigma_i||_2 mini∈[1,N]∣∣qj−σi∣∣2表示 q j q_j qj到 { σ i } i = 1 N \{\sigma_i\}_{i=1}^N {σi}i=1N中最近高斯中心的距离, λ \lambda λ是一个截断函数,过滤极端大值, τ \tau τ是一个连续函数,将查询的高斯距离映射到[0,1]范围内的概率。
学习到的 GauPF 隐式建模了三维高斯中心的位置,这是生成高质量 3DGS 的关键因素。通过我们设计的高斯提取算法,从 GauPF 中提取 3DGS 中心得以实现,这将在后面介绍。
1.2 高斯颜色和变换建模
高斯颜色函数 (GauCF) 和高斯变换函数 (GauTF) 从高斯几何中预测高斯的外观和变换属性。具体来说,给定 3DGS G G G中高斯 g i g_i gi的中心 σ i \sigma_i σi作为输入,GauCF 预测颜色属性 c i c_i ci, GauTF 预测旋转 r i r_i ri、尺度 s i s_i si和不透明度 o i o_i oi ,公式为(4):
{ c i } = G a u C F ( σ i ) ; { r i , s i , o i } = G a u T F ( σ i ) . \{c_i\}=\mathrm{GauCF}(\sigma_i);\:\{r_i,s_i,o_i\}=\mathrm{GauTF}(\sigma_i). {ci}=GauCF(σi);{ri,si,oi}=GauTF(σi).
请注意,GauCF 和 GauTF 主要关注从三维高斯中心预测高斯颜色和变换。这与 GauPF 不同,GauPF 建模三维空间中查询样本的概率。原因是 GauPF 关注从三维空间探索 3DGS 的几何形状,而 GauCF 和 GauTF 从已知几何中学习预测高斯属性。
通过新颖的 3DGS 解耦,作者将离散和非结构化的 3DGS 表示为三个连续的高斯泼溅函数。功能性表示是一个通用且灵活的 3DGS 术语,对高斯数量、密度、几何等没有限制。
1.3 高斯变分自编码器和潜在扩散
有了这种解耦且强大的表示,下一步是设计一个生成模型,目标是生成这些高斯泼溅函数。作者遵循常见的方案,设计一个高斯变分自编码器(VAE),并使用潜在扩散模型(LDM)作为生成模型。
高斯变分自编码器通过将高斯泼溅函数映射到正则化的潜在空间中,将每个3DGS 形状的高斯泼溅函数压缩为一个潜在向量,从中我们也可以恢复高斯泼溅函数。具体来说, 高斯变分自编码器包括 (1)一个 GS 编码器 ϕ e n \phi_{en} ϕen,从 3DGS 中学习表示并将其编码为潜在向量 z z z,(2)一个三平面解码器 ϕ d e \phi_{de} ϕde,将潜在 z z z解码为特征三平面(triplane),(3)三个神经预测器 ψ p f \psi_{pf} ψpf、 ψ c f \psi_{cf} ψcf和 ψ t f \psi_{tf} ψtf,分别作为 GauPF、GauCF 和 GauTF 的实现,预测高斯概率、颜色和变换。
给定输入的拟合 3DGS G = { g i } j = 1 N G=\{g_i\}_{j=1}^N G={gi}j=1N,GS 编码器 ϕ e n \phi_{en} ϕen从 G G G中提取全局潜在特征 z z z,然后通过解码器 ϕ d e \phi_{de} ϕde将其解码为特征三平面 t ∈ R H × W × C × 3 t\in\mathbb{R}^{H\times W\times C\times3} t∈RH×W×C×3,公式为(5):
z = ϕ e n ( G ) ; t = ϕ d e ( z ) . z=\phi_{en}(G);\:t=\phi_{de}(z). z=ϕen(G);t=ϕde(z).
三平面 t t t由三个正交特征平面 { t X Y , t X Z , t Y Z } \{t_{XY},t_{XZ},t_{YZ}\} {tXY,tXZ,tYZ}组成,这些平面与轴对齐。对于三维位置 q j q_j qj,我们通过将 q j q_j qj投影到正交特征平面上并连接三个平面上三线性插值的特征,从三平面 t t t中获得其对应的特征 f j = i n t e r p ( t , q j ) f_j=interp(t,q_j) fj=interp(t,qj)。然后我们使用神经高斯泼溅函数预测器预测 q j q_j qj的高斯概率、颜色和变换,公式为(6):
{ p ^ i } = ψ p f ( f j ) ; { c ^ i } = ψ c f ( f j ) ; { r ^ i , s ^ i , o ^ i } = ψ t f ( f j ) . \{\hat{p}_i\}=\psi_{pf}(f_j);\:\{\hat{c}_i\}=\psi_{cf}(f_j);\:\{\hat{r}_i,\hat{s}_i,\hat{o}_i\}=\psi_{tf}(f_j). {p^i}=ψpf(fj);{c^i}=ψcf(fj);{r^i,s^i,o^i}=ψtf(fj).
高斯变分自编码器的目标是准确预测高斯属性并稳健地正则化潜在空间。在实践中,训练目标公式为(7):
L V A E = ∥ { p ^ , c ^ , r ^ , s ^ , o ^ } − { p , c , r , s , o } ∥ 1 + β ( D K L ( Q ϕ ( z ∣ G ) ∥ P ( z ) ) ) . \mathcal{L}_{\mathrm{VAE}}=\|\{\hat{p},\hat{c},\hat{r},\hat{s},\hat{o}\}-\{p,c,r,s,o\}\|_{1}+\beta\left(D_{KL}\left(\mathcal{Q}_{\phi}(z|G)\|\mathcal{P}(z)\right)\right). LVAE=∥{p^,c^,r^,s^,o^}−{p,c,r,s,o}∥1+β(DKL(Qϕ(z∣G)∥P(z))).
第一个损失项表示公式(6)中预测的高斯属性与公式(2)和公式(4)中定义的目标高斯属性之间的 L 1 \mathcal{L}_1 L1损失。公式(7)中的第二个项是带有因子 β \beta β的KL-散度损失,约束了学习到的潜在空间 z z z的正则化。具体来说,我们将 z z z的后验分布定义为 Q ϕ ( z ∣ G ) \mathcal{Q}_{\phi}(z|G) Qϕ(z∣G),并将其正则化为与高斯分布先验 P ( z ) = N ( 0 , I ) \mathcal{P}(z)=\mathcal{N}(0,I) P(z)=N(0,I)对齐,其中 I I I是标准差。
有了训练好的高斯变分自编码器,我们现在能够将任何 3DGS 编码为一个紧凑的 1D 潜在向量 z z z。然后作者在潜在空间上高效地训练一个潜在扩散模型(LDM)。扩散模型通过反向一个逐步引入噪声的过程来生成目标分布的样本。作者将 { z 0 , z 1 , . . . , z K } \{z_0,z_1,...,z_K\} {z0,z1,...,zK}定义为正向过程 γ ( z 0 : K ) \gamma(z_{0:K}) γ(z0:K),通过添加噪声逐步将真实数据 z 0 z_0 z0转换为高斯噪声 ( z T ) (z_T) (zT) 。反向过程 μ ( z 0 : K ) \mu(z_{0:K}) μ(z0:K)利用神经生成器 μ \mu μ将 z K z_K zK去噪为真实数据样本。
为了实现可控的 3DGS 生成,作者在扩散过程中引入了一个条件机制,通过交叉注意力融合条件。给定输入条件 y y y (例如文本、图像、部分 3DGS),作者利用自定义编码器 δ \delta δ将 y y y投影为条件嵌入 δ ( y ) \delta(y) δ(y)。然后将嵌入通过交叉注意力模块融合到生成器 μ \mu μ中。按照 DDPM,作者简单地采用优化目标来训练生成器,以预测噪声 ϵ σ \epsilon_\mathrm{\sigma} ϵσ,公式为(8):
L L D M = E z 0 , t , ϵ ∼ N ( 0 , I ) [ ∥ ϵ − ϵ σ ( z t , δ ( y ) , t ) ∥ 2 ] \mathcal{L}_{\mathrm{LDM}}=\mathbb{E}_{z_0,t,\epsilon\sim\mathcal{N}(0,I)}\left[\|\epsilon-\epsilon_\sigma\left(z_t,\delta(y),t\right)\|^2\right] LLDM=Ez0,t,ϵ∼N(0,I)[∥ϵ−ϵσ(zt,δ(y),t)∥2]
其中 t t t是时间步, ϵ \epsilon ϵ是从高斯分布 N ( 0 , I ) \mathcal{N}(0,I) N(0,I)中采样的噪声。作者采用广泛研究的架构DALLE-2作为 LDM 的实现。
1.4 高斯提取算法
DiffGS 生成过程的最后一步是从生成的高斯泼溅函数中提取 3DGS,类似于 Marching Cubes 算法从有符号距离函数中提取网格的效果。关键因素是提取 3DGS 的几何形状,即高斯位置和 3DGS 的外观,即颜色和变换。完整的生成流程如之前的图示(b)所示。
八叉树引导的几何采样。三维高斯中心的位置指示了所表示的 3DGS 的几何形状。作者旨在设计一种离散化算法,从神经网络 ψ p f \psi_{pf} ψpf学习到的连续高斯概率函数中获得离散的三维位置,该函数建模了三维空间中每个查询采样成为三维高斯位置的概率。为此,我们设计了一种基于八叉树的采样和优化算法,生成任意数量的且准确的高斯中心位置。
上图展示了展示了该算法的二维图示。假设 3D 空间被生成的 GauPF 分为高概率区域(黄色区域)和低概率区域(绿色区域),我们的目标是提取具有高概率的位置作为几何形状。一个简单的实现是在 3D 空间中密集采样查询,并保留具有大概率的查询作为输出。然而,这将导致推理的高计算成本,离散采样也难以准确到达连续 GauPF 中具有最大概率的位置。作者从八叉树中获得灵感,设计了一种渐进策略,仅在当前八叉树深度中探索具有大概率的 3D 区域,以便在下一八叉树深度中进一步细分。经过 L 层八叉树细分后,我们到达具有最大概率的局部区域,从中我们均匀采样 N 个三维点作为代理点 { ρ i } i = 1 N \{\rho_i\}_{i=1}^N {ρi}i=1N,表示高斯中心的粗略位置。
优化几何与 GauPF。为了进一步将代理点优化到 GauPF 中具有最大概率的精确高斯中心位置,作者提出进一步优化代理点,并从学习到的 GauPF ψ p f \psi_{pf} ψpf中进行监督。具体来说,我们将代理点的位置 { ρ i = { ρ x i , ρ y i , ρ z i } } i = 1 N \{\rho_i=\{\rho x_i,\rho y_i,\rho z_i\}\}_{i=1}^N {ρi={ρxi,ρyi,ρzi}}i=1N设为可学习的,并优化它们以达到具有最大概率的 ψ p f \psi_{pf} ψpf的位置 { σ ^ i } i = 1 N \{\hat{\sigma}_i\}_{i=1}^N {σ^i}i=1N。优化目标公式为(9):
L G e o = − 1 N ∑ i = 1 N ψ p f ( ρ i ) . \mathcal{L}_{\mathrm{Geo}}=-\frac1N\sum_{i=1}^N\psi_{pf}(\rho_i). LGeo=−N1i=1∑Nψpf(ρi).
注意,作者提到可以将 N 设置为任意数量,使 DiffGS 生成 3DGS 不受密度和分辨率的限制。
提取高斯属性。我们现在获得了指示预测高斯中心 { σ ^ i } i = 1 N \{\hat{\sigma}_i\}_{i=1}^N {σ^i}i=1N的几何估计。然后我们从生成的三平面
t t t、高斯颜色函数 ψ c f \psi_{cf} ψcf和高斯变换函数 ψ t f \psi_{tf} ψtf中提取外观和变换,公式为:
{ c ^ i } = ψ c f ( i n t e r p ( t , σ ^ i ) ) ; { r ^ i , s ^ i , σ ^ i } = ψ t f ( i n t e r p ( t , σ ^ i ) ) . \{\hat{c}_{i}\}=\psi_{cf}(interp(t,\hat{\sigma}_{i}));\:\{\hat{r}_{i},\hat{s}_{i},\hat{\sigma}_{i}\}=\psi_{tf}(interp(t,\hat{\sigma}_{i})). {c^i}=ψcf(interp(t,σ^i));{r^i,s^i,σ^i}=ψtf(interp(t,σ^i)).
最终,生成的 3DGS 为 G ^ = { σ ^ i , c ^ i , r ^ i , s ^ i , σ ^ i } i = 1 N \hat{G}=\{\hat{\sigma}_i,\hat{c}_i,\hat{r}_i,\hat{s}_i,\hat{\sigma}_i\}_{i=1}^N G^={σ^i,c^i,r^i,s^i,σ^i}i=1N。
2. 实验
2.1 无条件生成
数据集和指标。 对于三维高斯泼溅的无条件生成,作者在 ShapeNet 数据集的飞机和椅子类别上进行实验。按照之前的工作,作者使用了了两个广泛使用的图像生成指标:Frechet Inception Distance (FID)和 Kernel Inception Distance (KID),用于评估提出的 DiffGS 和之前最先进工作的渲染质量。这些指标在生成的形状和真实形状的50K 次渲染进行评估,分辨率为 1024×1024。
比较。作者比较了 DiffGS 与最先讲方法在生成形状的渲染质量方面的表现,包括基于 GAN 的方法GET3D和基于扩散的方法 DiffTF。定量比较如上表所示,DiffGS 在所有基线上表现最佳。作者进一步展示了上图中一些生成形状的渲染视觉比较,其中基于 GAN 的 GET3D 在生成复杂形状时遇到困难,DiffTF 的生成模糊且纹理较差。相比之下,DiffGS 在渲染和几何质量方面产生了显著更具视觉吸引力和高保真的生成结果。
2.2 有条件生成
作者探索了 DiffGS 在给定文本、图像和部分 3DGS 作为输入条件时的有条件生成能力。所有实验在 ShapeNet[6]数据集的椅子类别上进行。
文本/图像条件的高斯泼溅生成。为了将有条件的高斯泼溅生成引入文本/图像作为条件,我们利用预训练的 CLIP 模型中的冻结文本和图像编码器作为自定义文本编码器 γ t e x t \gamma_{text} γtext和图像编码器 γ i m a g e \gamma_{image} γimage的实现,以获得文本/图像嵌入。然后我们使用条件优化目标在公式 (8) 中训练 DiffGS。作者在上图(a)和上图(b)中展示了 DiffGS 生成的一些文本/图像条件生成结果的可视化。结果显示,DiffGS 准确恢复了文本提示和图像中描述的语义和几何,展示了 DiffGS 从文本描述或视觉信号生成高保真 3DGS 的强大能力。
高斯泼溅补全。此外,作者探索了一个有趣的高斯泼溅补全任务。据作者所知,其是第一个关注并引入此任务解决方案的。具体来说,高斯泼溅补全任务是从包含大遮挡的部分 3DGS 中恢复完整 3DGS。在实际应用中,只有稀疏视图且视角移动有限的情况下优化 3DGS 通常会导致部分 3DGS。解决高斯泼溅补全任务使我们能够从部分 3DGS 推断出完整且密集的 3DGS,以提高不可见视角的渲染质量。
作者引入 DiffGS 以部分 3DGS 作为条件来解决此任务。具体来说,我们简单地利用修改后的PointNet作为自定义编码器 γ p a r t i a l \gamma_{partial} γpartial处理部分 3DGS。上图©展示了 DiffGS 生成的高斯泼溅补全结果的可视化。结果显示,DiffGS 能够从高度遮挡的 3DGS 中恢复复杂的几何和详细的外观。附录中包含了高斯泼溅补全的实现细节。
2.3 点高斯化(Point-to-Gaussian)生成
作者进一步引入 DiffGS 用于另一个具有挑战性和重要性的点高斯化生成任务。该任务旨在给定三维点云作为输入生成高斯属性。该任务作为易于获取的点云和高效建模高质量三维外观的强大3DGS 表示之间的桥梁。
数据集和实现。 作者在 ShapeNet 的椅子和飞机类别以及广泛使用的服装数据集 DeepFashion3D上进行实验。DeepFashion3D 数据集是一个包含复杂纹理的真实捕获三维数据集。对于点高斯化的实现,作者简单地使用三维点云作为输入训练高斯变分自编码器,而不是带有属性的 3DGS。请参阅附录以获取更多数据准备和实现的详细信息。
性能。 作者在上图中提供了一些点高斯化拟合和生成结果的可视化。作者展示了 Deepfashion3D数据集的拟合结果和 ShapeNet中飞机和椅子类别测试集的生成结果。DiffGS 在仅输入三维点云几何的情况下产生了视觉吸引力的 3DGS 生成结果。结果表明,DiffGS 可以准确预测三维点云的高斯属性。作者相信 DiffGS 通过连接 3DGS 和点云,为 3DGS 内容生成提供了新的方向。
2.4 消融实验
为了评估 DiffGS 中的一些主要设计和重要超参数,作者在 ShapeNet 数据集的椅子类别上进行了消融研究。作者报告了高斯变分自编码器重建的 3DGS 的 PSNR、SSIM 和 LPIPS 性能。
框架设计。 作者首先评估了框架中的一些主要设计,如上表所示。作者验证了在 GauPF 建模时引入截断函数 λ λ λ的有效性,并将没有 λ λ λ的结果报告为“无截断(图中w/o truncation)”。然后作者探索了将投影函数 τ \tau τ实现为 τ ( x ) = e − x \tau(x)=e^{-x} τ(x)=e−x(图中Exponent)或线性投影(如ours所示)。作者还展示了在高斯提取算法中没有优化过程的结果,如“w/o Optimization”所示,这证明了将高斯优化到精确位置的有效性。
高斯数量。 DiffGS 的一个显著优势在于能够生成任意数量的高质量高斯基元。为了探索高斯数量对渲染质量的影响,作者进行了如上表所示的消融研究。结果表明,更密集的高斯导致更好的质量。
3. 数据准备
DiffGS将拟合的3DGS作为生成模型的输入。 作者主要使用了ShapeNet数据集,数据集下载仓库。这个数据集是点云中一个比较常见的数据集,它总共包括十六个大类别,每个大类别又可以分成若干个小类别(例如,飞机可以分成机翼,机身等小类别),总共有五十个小类别。为了将ShapeNet数据集转换为3DGS的形式,作者利用Blender软件对真实的mesh渲染了100个视角,首次在ShapeNet数据的椅子和飞机类别中获取每个3D样本的多视图图像。之后,作者利用原生的3D Gaussian Splatting的方法,通过多视图的图像,渲染3DGS。
4. 3D Gaussian Splatting
Splatting是一种体渲染的方法,将3D物体渲染到2D平面。splat的本意为“啪嗒的声音”,splatiing的方法是我们想象输入是一些雪球,图片是一面砖墙,2D图像生成的过程就是向墙面扔雪球的过程,每扔一个雪球,墙面上会有扩散的过程,这被称为足迹,同时会有啪嗒一声。因为Splatting算法也叫抛雪球算法或者足迹法,也翻译为“泼溅”。
- NeRF中使用的是Ray-casting的被动算法,计算出每个像素点受到发光粒子的影响来生成图像。
- Splatting是主动的,计算出每个发光粒子是如何影响像素点的。
那么Splatting的流程简化为:
- 选择雪球。
- 抛掷雪球,从3D投影到2D,得到足迹。
- 加以合成,形成最后的图像。
4.1 捏雪球
一般的输入是点云中的一些点,点是没有体积的,所以选择一个核对点进行膨胀,这个核可以是高斯,也可以是圆或正方体等等。选择核为高斯的原因是:
- 仿射变换后高斯核仍然闭合。
- 我们沿着某一个轴对高斯进行积分(3D降维到2D)后,依然为高斯。
高维高斯的公式为: G ( x ) = 1 ( 2 π ) k ∣ Σ ∣ e − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) G(x)=\frac1{\sqrt{(2\pi)^k|\Sigma|}}e^{-\frac12(x-\mu)^T\Sigma^{-1}(x-\mu)} G(x)=(2π)k∣Σ∣1e−21(x−μ)TΣ−1(x−μ),其中 Σ \Sigma Σ 表示协方差矩阵,半正定, ∣ Σ ∣ |\Sigma| ∣Σ∣是其行列式
3D Gaussian为什么是一个椭球?3D Gaussian是一个分布,取出来的值是个概率,0到1范围的。
椭球面的公式为:
x 2 a 2 + y 2 b 2 + z 2 c 2 = 1 A x 2 + B y 2 + C z 2 + 2 D x y + 2 E x z + 2 F y z = 1 \begin{aligned}&\frac{x^{2}}{a^{2}}+\frac{y^{2}}{b^{2}}+\frac{z^{2}}{c^{2}}=1\\&Ax^{2}+By^{2}+Cz^{2}+2Dxy+2Exz+2Fyz=1\end{aligned} a2x2+b2y2+c2z2=1Ax2+By2+Cz2+2Dxy+2Exz+2Fyz=1
高斯函数在一维上是由均值和方差控制的,在高维上是由均值和协方差矩阵控制的。协方差矩阵:
Σ = [ σ x 2 σ x y σ x z σ y x σ y 2 σ y z σ z x σ z y σ z 2 ] \boldsymbol{\Sigma}=\begin{bmatrix}\sigma_x^2&\sigma_{xy}&\sigma_{xz}\\\sigma_{yx}&\sigma_y^2&\sigma_{yz}\\\sigma_{zx}&\sigma_{zy}&\sigma_z^2\end{bmatrix} Σ= σx2σyxσzxσxyσy2σzyσxzσyzσz2
协方差矩阵是一个对称矩阵,决定高斯分布的形状。对角线上元素为x轴/y轴/z轴的方差,其他部分是x和y,x和z以及y和z的线性相关程度。
我们已知:
G ( x ; μ , Σ ) = 1 ( 2 π ) k ∣ Σ ∣ exp ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) {G(x;\mu,\Sigma)}=\frac{1}{\sqrt{(2\pi)^{k}|\Sigma|}}\exp\left(-\frac{1}{2}(x-\mu)^{T}\Sigma^{-1}(x-\mu)\right) G(x;μ,Σ)=(2π)k∣Σ∣1exp(−21(x−μ)TΣ−1(x−μ))
且 1 ( 2 π ) k ∣ Σ ∣ \frac{1}{\sqrt{(2\pi)^k|\Sigma|}} (2π)k∣Σ∣1项必定为常数constant,则当 ( x − μ ) T Σ − 1 ( x − μ ) = c o n s t a n t , G ( x ; μ , Σ ) = c o n s t a n t (x-\mu)^{T}\Sigma^{-1}(x-\mu)=\mathrm{constant},G(x;\mu,\Sigma)=\mathrm{constant} (x−μ)TΣ−1(x−μ)=constant,G(x;μ,Σ)=constant。我们现在考虑 ( x − μ ) T Σ − 1 ( x − μ ) = c o n s t a n t (x-\mu)^{T}\Sigma^{-1}(x-\mu)=\mathrm{constant} (x−μ)TΣ−1(x−μ)=constant的情况:
- 二维: ( x − μ 1 ) 2 σ 1 2 + ( y − μ 2 ) 2 σ 2 2 − 2 σ x y ( x − μ 1 ) ( y − μ 2 ) σ 1 σ 2 = c o n s t a n t \frac{(x-\mu_1)^2}{\sigma_1^2}+\frac{(y-\mu_2)^2}{\sigma_2^2}-\frac{2\sigma_{xy}(x-\mu_1)(y-\mu_2)}{\sigma_1\sigma_2}=\mathrm{constant} σ12(x−μ1)2+σ22(y−μ2)2−σ1σ22σxy(x−μ1)(y−μ2)=constant,这是2D平面上的椭圆
- 三维: ( x − μ 1 ) 2 σ 1 2 + ( y − μ 2 ) 2 σ 2 2 + ( z − μ 3 ) 2 σ 3 2 − 2 σ x y ( x − μ 1 ) ( y − μ 2 ) σ 1 σ 2 − 2 σ x z ( x − μ 1 ) ( z − μ 3 ) σ 1 σ 3 − 2 σ y z ( y − μ 2 ) ( z − μ 3 ) σ 2 σ 3 = c o n s t a n t \frac{(x-\mu_{1})^{2}}{\sigma_{1}^{2}}+\frac{(y-\mu_{2})^{2}}{\sigma_{2}^{2}}+\frac{(z-\mu_{3})^{2}}{\sigma_{3}^{2}}-\frac{2\sigma_{xy}(x-\mu_1)(y-\mu_2)}{\sigma_1\sigma_2}-\frac{2\sigma_{xz}(x-\mu_1)(z-\mu_3)}{\sigma_1\sigma_3}-\frac{2\sigma_{yz}(y-\mu_2)(z-\mu_3)}{\sigma_2\sigma_3}=\mathrm{constant} σ12(x−μ1)2+σ22(y−μ2)2+σ32(z−μ3)2−σ1σ22σxy(x−μ1)(y−μ2)−σ1σ32σxz(x−μ1)(z−μ3)−σ2σ32σyz(y−μ2)(z−μ3)=constant,符合上面提到的椭球面的公式,这是3D中的一个椭球面。
因为 ( x − μ ) T Σ − 1 ( x − μ ) = c o n s t a n t (x-\mu)^{T}\Sigma^{-1}(x-\mu)=\mathrm{constant} (x−μ)TΣ−1(x−μ)=constant,定义了一个椭球面,而 G ( x ; μ , Σ ) = 1 ( 2 π ) k ∣ Σ ∣ ⋅ c o n s t a n t = [ 0 , 1 ] {G(x;\mu,\Sigma)}=\frac{1}{\sqrt{(2\pi)^{k}|\Sigma|}}\cdot\mathrm{constant}=[0,1] G(x;μ,Σ)=(2π)k∣Σ∣1⋅constant=[0,1] , c o n s t a n t \mathrm{constant} constant不断变化时,表明是大椭球壳套小椭球壳,所以 G ( x ; μ , Σ ) {G(x;\mu,\Sigma)} G(x;μ,Σ)是个实心的椭球。
协方差矩阵是如何控制椭球形状的?
高斯分布仿射变换后仍为高斯分布: w = A x + b \mathbf{w}=A\mathbf{x}+b w=Ax+b,变化的是其均值和协方差为: w ∼ N ( A μ + b , A Σ A T ) \mathbf{w}\sim N(A\mu+b,A\Sigma A^T) w∼N(Aμ+b,AΣAT),则任意高斯可以看作是标准高斯通过仿射变换得到的,标准高斯分布 x ∼ N ( 0 , I ) \mathbf{x}\sim N(0,I) x∼N(0,I)的均值为 [ 0 , 0 , 0 ] [0,0,0] [0,0,0],协方差矩阵为 I = [ 1 0 0 0 1 0 0 0 1 ] I=\begin{bmatrix}1&0&0\\0&1&0\\0&0&1\end{bmatrix} I= 100010001 ,则通过标准高斯分布仿射变换得到的协方差为: Σ = A ⋅ I ⋅ A T \Sigma=A\cdot I\cdot A^T Σ=A⋅I⋅AT,即将一个球仿射变换为一个椭球。
协方差矩阵如何用旋转和缩放矩阵表达?
我们将 w = A x + b \mathbf{w}=A\mathbf{x}+b w=Ax+b, w ∼ N ( A μ + b , A Σ A T ) \mathbf{w}\sim N(A\mu+b,A\Sigma A^T) w∼N(Aμ+b,AΣAT)中的 A A A分解为 A = R S A=RS A=RS,旋转和缩放,则协方差矩阵可以写为:
Σ = A ⋅ I ⋅ A T = R ⋅ S ⋅ I ⋅ ( R ⋅ S ) T = R ⋅ S ⋅ ( S ) T ⋅ ( R ) T \begin{aligned}\mathrm{\Sigma}&=A\cdot I\cdot A^T\\&=R\cdot S\cdot I\cdot({R\cdot S})^T\\&=R\cdot S\cdot(S)^T\cdot(R)^T\end{aligned} Σ=A⋅I⋅AT=R⋅S⋅I⋅(R⋅S)T=R⋅S⋅(S)T⋅(R)T
4.2 抛雪球
这一部分主要涉及计算机图形学的知识,参考知识如下:
现代计算机图形学(正交投影,透视投影,MVP变换)
较真系列】讲人话-3d gaussian splatting全解(原理+代码+公式)【2】 抛雪球
4.3 雪球颜色
球谐函数
总结
本周报系统性地分析了功能性高斯泼溅扩散 (DiffGS) 的技术原理、生成流程以及实验性能。DiffGS 提出了基于高斯概率、颜色和变换函数的解耦表示方法,克服了 3DGS 离散性和非结构化的难点。通过高斯变分自编码器和潜在扩散模型,DiffGS 能够有效生成高质量的 3DGS,并通过八叉树引导的高斯提取算法实现任意数量的高斯生成。实验结果表明,DiffGS 在无条件生成、有条件生成、高斯泼溅补全以及点高斯化生成任务中均展现了卓越的性能,生成结果在渲染质量和几何细节上均优于现有方法,为 3D 表示和生成任务提供了新的方向和技术支持。