- 本文提出一种新的3D数据表达形式3D Gaussians。每个Gaussian由以下参数组成:中心点位置、协方差矩阵、可见性、颜色。通过世界坐标系到相机坐标系,再到图像坐标系的仿射关系,可将3D Gaussian映射到相机坐标系,通过对z轴积分,可得到对应Splatting 2D分布。
- 针对3D Gaussians,提出对应的优化方法。去除可见性太低的高斯,对回传梯度较大的高斯,通过复制,克隆等操作,增强表达能力。
- 针对3D Gaussians,提出对应的光栅化方法。将图像切分为16 x 16的块,每个块内对高斯根据深度进行排序。光栅时,从前向后遍历,当可见性累加到某个阈值即停止。梯度回传时从停止块开始,有后向前遍历。
Traditional Scene Reconstruction and Rendering
Neural Rendering and Radiance Fields
Point-Based Rendering and Radiance Fields
Differentiable 3D Gaussian Splatting
Optimization with Adaptive Density Control of 3D Gaussians
Fast Differentiable Rasterizer for Gaussians
Implementation, Results and Evaluation
Unlimited depth complexity of splats with gradients
摘要
- NeRF效果好,但是训练和渲染很花时间;特别是对1080p分辨率渲染的场景,现有方法无法实现实时渲染。
- 本文引入三个关键部分,实现sota视觉质量、较短训练时间和1080p分辨率下新视角实时渲染。
- 本文在多个数据集上,实现sota视觉质量和实时渲染。
引言
- Mesh和点云是最常用的3D场景表达,这种显式表达非常适合快速GPU/CUDA-based rasterization。另一方面,NeRF可建立连续的场景表达,用volumetric ray-marching优化MLP,实现新视角生成。基于NeRF的高效算法,通常会引入一些新的表达形式,用插值的方式实现连续表达,例如:体素(voxel),hash grids,或点云。这些方法效果不错,但是渲染中要求的随机采样计算开销大、并且会导致噪声。本文提出的方法:3D Gaussian可以实现sota的视觉质量和具有竞争力的训练时间;tile-based splatting solution可以实现1080p的实时渲染。
- 本文所提方法由三个主要部分组成。
- 3D Gaussians:通过Structure-from-Motion (SfM) 相机标定得到的稀疏点云初始化,对于NeRF-synthetic dataset,本文方法在随机初始化情况下,也可取得较好的结果。3D Gaussian的优点在于(a)可导的体表示;(b)通过映射至2D,实现高效栅格化;(c)可以实施标准的alpha–blending;
- 优化:提出一种优化3D Gaussians参数的方法,参数包括:3D position,opacity alpha,anisotropic covariance和球谐系数(spherical harmonic coefficients)。优化方法:交替执行密度控制步,在优化过程中增加或去除3D Gaussians。
- 渲染:提出一种快速GPU排序算法,受tile-based rasterization方法启发。实现各向异性纹理飞溅(anisotropic splatting),一种可见性排序(visibility ordering)。受益于排序和alpha–blending,可以实现快速和准确的反向传播。
近期工作
Traditional Scene Reconstruction and Rendering
- light fields (1996) -> Structure-from-Motion (SfM,2006) -> multi–view stereo (MVS,2007)
- MVS-based方法会重投影(re–project)并融合(blend)输入图片到新相机视角,使用几何引导重投影。
Neural Rendering and Radiance Fields
- Soft3D (2017,首次提出Volumetric representations) -> 将深度学习技术应用到volumetric ray-marching(2019)-> NeRF (2020,提出importance sampling和postional encoding,但是较大MLP影响了速度) -> MipNeRF360(2022,sota视觉效果,但训练和渲染时间太长)
- 为了加速训练或渲染,现有的探索集中在三个方向:稀疏数据结构存储特征,不同的编码器和MLP容量。其中,值得一提的方法是InstantNGP(2022),该方法使用hash grid和occupancy grid来加速计算,用一个较小的MLP表示密度和外观。Plenoxels(2022),使用稀疏体素网格,插值表示连续密度场,并且能够不使用MLP。
- 尽管上述方法产生了很好的结果,这些方法仍然不能高效表示空白区域。
Point-Based Rendering and Radiance Fields
-blending和体渲染(volumetric rendering)本质上是相同的成像模型。对于体渲染方法:
其中是密度,是透光率,是颜色,是相邻采样点的间隙。密度越大,越接近1,该点越重要;之前点的密度和越大,越大,该点越不重要。上式可以被重新组织为:
alpha-blending可以表示为:
其中,所有点根据前后关系排序,是该点颜色,是该点所在2D高斯的概率密度乘以该点的不透明性(opacity)。
相较于之前的-blending栅格化方法,本文提出可见性(visibility)排序。另外,本文反向传播梯度到像素点中的所有splats,栅格化所有各向异性splats。
Overview
- Initialization:给定静态场景的一组图片,和对应经过SfM校准的相机参数,以及SfM在校准过程中产生的稀疏点云;
- 3D Gaussians:给定稀疏点云,初始化3D Gaussians,每个3D Gaussian由位置mean,协方差矩阵和不透明性决定;辐射场中指向性外观部分(颜色),通过spherical harmonics (SH) 表征;
- Optimization:逐步优化3D Gaussians的参数:位置、协方差矩阵、和SH系数;
- Rendering:tile-based rasterizer,支持根据可见性顺序的各向异性splats的-blending
Differentiable 3D Gaussian Splatting
在世界坐标系下,3D Gaussians由三个系数定义:均值,3D协方差矩阵和:
其中,是世界坐标系坐标到相机坐标系坐标的转换矩阵,是透视变换的Jacobian矩阵。
参考:EWA Volume Splatting
协方差矩阵具有物理含义,需要满足半正定条件。考虑协方差矩阵描述了一个标准球体向椭球体的变化过程,对标准球体先放缩,再旋转:
因此,缩放可以用三维向量描述,也即协方差矩阵的三个特征值。旋转其实是三个特征向量,它们两两正交且模为1,通过分析可由四维向量描述。
综上,一个3D Gaussian可由三个缩放系数、四个旋转系数、中心点位置和不透明率表示。除了上述提到的参数外,本文还用SH系数表示颜色。
Optimization with Adaptive Density Control of 3D Gaussians
Fast Differentiable Rasterizer for Gaussians
提出一种tile-based rasterizer
Implementation, Results and Evaluation
Implementation
Pytorch + 用于光栅化的custom CUDA kernels
Results and Evaluation
Real-World Scenes
Synthetic Bounded Scenes
- 30K迭代后,每个场景由200-500K Gaussians组成
Ablations
Initialization from SfM
Densification
Unlimited depth complexity of splats with gradients
Anisotropic Covariance
Limitations
原文地址:https://blog.csdn.net/qq_40731332/article/details/134535065
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_14067.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!