0 论文链接
nerf:https://arxiv.org/abs/2003.08934
3dgs:https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/3d_gaussian_splatting_low.pdf
1 简要
1.1 nerf
neural radiance fields神经辐射场
作者提出了一种优化来自一组输入图像的场景的连续5D神经辐射场表示(空间位置 x y z和视图方向 d θ)的方法。作者使用体绘制的技术来积累这个场景表示沿着射线的样本,以从任何视点渲染场景。作者可视化了在周围半球上随机捕获的合成 鼓场景 的100个输入视图的集合,最后作者显示了从优化的NeRF表示渲染的两个新视图。
1.2 3dgs
3d guassian splatting三维高斯喷溅
核心是构建以协方差为主导的3d高斯点云,然后围绕3d高斯点云进行渲染和优化。
从已有的点云模型出发,以每个点为中心,建立可学习的3d高斯表达,用相机参数把点投影到图像平面上,splatting即抛雪球的方法进行渲染,在splatting的痕迹中进行tile based的光栅化得到渲染图像,将渲染图像和GT图像求损失loss,沿蓝色箭头反向传播,自适应的密度控制模块根据传递到点上的梯度来决定是否需要对3d高斯做分割或者克隆,梯度也会传递到3d高斯里面,来更新其中存储的位置、协方差矩阵、球谐函数、不透明度这些参数。
实现了高分辨率的实时渲染
2 隐式几何与显式几何
nerf是神经隐式辐射场
而3d高斯是可微分的,可以实现快速α混合渲染
3dgs的显式几何,和nerf方法的隐式几何,是非常重要的区别
3 采样与渲染
从采样点颜色贡献度的角度进行nerf系的方法区分,可以分为体积类方法和表明类方法
2020年原版nerf属于体积类表达,输入5d信息(x y z d θ)输出颜色和体密度,采样点返回密度值反映了这里是否存在几何占用。
另一种热门的是表面类表达,输入采样点,sdf(signed distance function,符号距离函数)
输出空间中距离这个点最近的表明的距离。正值表示表面外,负值表示表面内,表面可以用所有的sdf=0的采样点的集合来表达,借助神经网络实现的sdf即神经sdf
体积类方法通过几何密度决定采样点颜色贡献度,表面类方法则判定越靠近表面的采样点颜色贡献度越高.
隐式的采样,投出射线,累积颜色不透明度来做渲染
3dgs的引言部分这样提到:nerf方式的渲染所需要的随机采样成本高,并且可能会导致噪声。
而3d高斯有个特性,其轴向积分等同2d高斯,从数学层面降低了采样的成本,我们并不需要花费高昂的成本做采样了,用数学的方式就可以轻松地把3dgs转化成一个2dgs。
直接把球抛掷在墙上,在墙上留下的斑点,就是3dgs splatting 投掷的结果,完成了采样的渲染
4 光栅化
传统的nerf方法并不能做光栅化,而3dgs可以进行光栅化,对速度的提升是至关重要的
5 可微性
nerf全链路可微
3dgs也具有可微分的特性