3d gaussian splatting:基于splatting和机器学习的三维重建方法。
特点:
- 无深度学习
- 简单的机器学习
- 大量的CG知识
- 复杂的线性代数
- 对GPU的高性能编程
一、什么是splatting
1、选择"雪球";
为什么使用核(雪球)
各向同性:在所有方向具有相同的扩散梯度(球);
各向异性:在不同方向具有不同的扩散程度(椭球);
通过协方差矩阵可以确定椭球,协方差矩阵可以用旋转和缩放矩阵表达。
2、抛掷"雪球":
作用:从3D投影到2D,得到足迹footprint;
相机模型理论:
**世界坐标系:作用:**相当于现实世界的"地图坐标",用于描述物体在三维空间中的绝对位置;
相机坐标系:作用:以相机镜头为原点的"私人视角",描述物体相对于相机的位置。原点在镜头光心,Z轴指向拍摄方向。
归一化坐标系:作用 :对相机坐标系下的坐标进行"标准化",消除实际焦距的影响。特点是将物体投影到虚拟的z=1平面上(想象成一张距离镜头1米的透明纸),坐标值由相机坐标除以Z值得到,单位是米但无量纲。
像素坐标系:作用 :计算机存储照片的"格子坐标",直接对应图像中的像素位置。特点:原点通常在图像左上角,单位是像素,最终用于显示或算法处理。
内参(相机身份证):包括焦距fx/fy(像素单位)、中心点cx/cy(图像中心偏移),存储在3x3矩阵中,用于描述相机硬件特性。
外参(相机位置与角度):包括旋转矩阵R(角度)和平移向量T(位置),描述相机在世界中的摆放姿态。
假设拍摄一张桌子:
- 桌子的世界坐标(X,Y,Z)通过外参(R,T)转换到相机坐标;
- 相机坐标除以Z值得到归一化坐标(X/Z, Y/Z, 1);
- 归一化坐标通过内参矩阵映射到像素坐标(u,v),最终生成照片中的像素点。
通过这一套坐标系转换,相机完成了从三维世界到二维图像的"翻译"过程。
计算机图形学4个概念:
视图变换:
- 含义:确定相机的位置、角度和方向,建立物体与相机的相对坐标系。
- 作用:将物体从世界坐标系(真实3D空间)转换到相机坐标系(以相机为原点的空间)。
- 通俗解释:就像你拿着手机绕场景走动,直到找到最佳拍摄角度。
- 关键操作:平移相机到原点,旋转使其朝向标准方向(如看向-Z轴)
投影变换:
- 含义 :将3D物体投影到2D平面上,分两种类型:
- 透视投影:模拟人眼近大远小的效果(如广角镜头)。
- 正交投影:忽略距离,保持物体尺寸不变(如工程图纸)。
- 作用:将相机坐标系下的3D坐标转换为裁剪空间(一个标准立方体范围),方便后续裁剪和计算。
- 通俗解释:就像决定用鱼眼镜头还是普通镜头拍摄,影响画面是否变形。
视口变换:
- 含义:将裁剪后的标准立方体坐标映射到屏幕的实际像素范围。
- 作用:将[-1,1]的规范化坐标拉伸到屏幕分辨率(如1920×1080),并确定显示区域的位置和大小。
- 通俗解释:调整照片尺寸,使其恰好铺满手机屏幕或某个窗口。
光栅化:
- 含义:将几何图形(如三角形)分解为像素,并确定每个像素的颜色和位置。
- 作用:生成最终显示在屏幕上的图像,处理锯齿、抗锯齿等视觉效果。
- 通俗解释:把照片放大到像素级别,决定每个小格子(像素)的颜色是否填充。
- 关键技术 :
- 三角形采样:判断像素中心是否在三角形内(如叉乘法)。
- 抗锯齿 :通过多重采样(如MSAA)减轻边缘锯齿
流程示例:
- 物体位置(世界坐标)→ 调整相机视角(视图变换)。
- 投影到2D平面(投影变换)→ 裁剪不可见部分。
- 映射到屏幕分辨率(视口变换)。
- 将几何图形转为像素(光栅化)。
3dgs:
不能直接使用投影变换,因为从透射投影到正交投影,是非线性变换,不是仿射变换,所以要引入雅可比近似矩阵。
雅可比矩阵:泰勒展开,线性逼近
3、加以合成,形成最后的图像;
如何进行参数估计