3DGaussianSplatting
type
status
date
slug
summary
tags
category
icon
password
3D Gaussian Splatting
competitive training times and high-quality real-time novel-view synthesis
- 3D Gussians
- optimizing anisotropic covariance
- visibility-aware rendering algorithm
显示表达优点:
- good fit for fast GPU/CUDA-based resterization
隐式表达通常使用的加速方法:例如Instant-NGP
- 在voxel, hash grids, points 里采样点
- 在采样点之间进行插值
sampling操作开销大, noisy
new approach: 3D Gaussian representation
main components
- 3D Gaussians, only SfM points as input(even random initialization)
- optimizate 3Dposition, opacity 𝛼, anisotropic covariance, spherical harmonic coeffcients——with adaptive density control
- fast GPU sorting algorithms——inspired by tile-based rasterization
![notion image](https://raw.githubusercontent.com/BigCiLeng/picgo_photos/main/img/20230508152820.png)
pipline
Differentiable 3D Gaussian splatting
选择的原因:
- 可微
- 容易投影到2D平面, 进行α − blending
函数形式:
给一个viewing transformation W 协方差矩阵转化公式为:
Σ′ = JWΣWTJT
其中J是投影变换的仿射近似的Jacobian矩阵
Σ必须保持半正定,直接对其优化会导致不可用 对Σ进行分解:
Σ = RSSTRT
其中S是一个尺度矩阵(Scaling matrix), T是一个旋转矩阵(rotation matrix) 矩阵特征值分解 S为3D向量,T为四元数(quaternion)可转化为3D向量
各向异性协方差(anisotropic covariance)
Optimization with adaptive density
Optimization
Stochastic Gradient Descent sigmoid for α exponential for covariance
初始化的高斯为各向同性协方差(isotropic Gaussian) 使用standard exponential decay scheduling(与Plenoxels相同)
ℒ = (1 − λ)ℒ1 + λℒD − SSIM
Adaptive control of Gaussians
densify every 100 iterations 移除接近透明的高斯函数—— 使用视点空间位置梯度的平均值(设置阈值
τ
pos
)
![notion image](https://raw.githubusercontent.com/BigCiLeng/picgo_photos/main/img/20230508203308.png)
- under-reconstruction:复制原来的高斯,并向positional gradient梯度方向移动
- over-reconstruction:将原来的高斯分割成两个,使用原始3D高斯做PDF采样
每3000次迭代去除透明的小于阈值,和特别大的高斯
Fast Differentiable Rasterizer for Gausians
- 将屏幕分割为16X16的块
- 从视点的平截头体开始采集3D高斯
- 使用保护带去除极端位置的高斯(near far平面)
- 根据他重叠在块的数量进行实例化,给每个实例一个基于视角的深度和ID
- 使用GPU基数排序
- 为每个块创造一个列表,基于深度排序的高斯
- 为每个块创建一个进程
- 每个进程将自己对应的高斯加载到共享内存中
- 每个块遍历列表累计color和α
- 当一个pixel的α饱和,停掉相应的线程