当前位置: 首页 > news >正文

3dgs通俗讲解

3d gaussian splatting:基于splatting和机器学习的三维重建方法。

特点:

  1. 无深度学习
  2. 简单的机器学习
  3. 大量的CG知识
  4. 复杂的线性代数
  5. 对GPU的高性能编程

一、什么是splatting

1、选择“雪球”;

为什么使用核(雪球)

各向同性:在所有方向具有相同的扩散梯度(球);

各向异性:在不同方向具有不同的扩散程度(椭球);

通过协方差矩阵可以确定椭球,协方差矩阵可以用旋转和缩放矩阵表达。

2、抛掷“雪球”:

作用:从3D投影到2D,得到足迹footprint;

相机模型理论:

世界坐标系:作用:相当于现实世界的“地图坐标”,用于描述物体在三维空间中的绝对位置;

相机坐标系:作用:以相机镜头为原点的“私人视角”,描述物体相对于相机的位置。原点在镜头光心,Z轴指向拍摄方向。

归一化坐标系:作用:对相机坐标系下的坐标进行“标准化”,消除实际焦距的影响。特点是 将物体投影到虚拟的z=1平面上(想象成一张距离镜头1米的透明纸),坐标值由相机坐标除以Z值得到,单位是米但无量纲。

像素坐标系:作用:计算机存储照片的“格子坐标”,直接对应图像中的像素位置。特点:原点通常在图像左上角,单位是像素,最终用于显示或算法处理。

内参(相机身份证):包括焦距fx/fy(像素单位)、中心点cx/cy(图像中心偏移),存储在3x3矩阵中,用于描述相机硬件特性。

外参(相机位置与角度):包括旋转矩阵R(角度)和平移向量T(位置),描述相机在世界中的摆放姿态。

假设拍摄一张桌子:

  1. 桌子的世界坐标(X,Y,Z)通过外参(R,T)转换到相机坐标;
  2. 相机坐标除以Z值得到归一化坐标(X/Z, Y/Z, 1);
  3. 归一化坐标通过内参矩阵映射到像素坐标(u,v),最终生成照片中的像素点。

通过这一套坐标系转换,相机完成了从三维世界到二维图像的“翻译”过程。

计算机图形学4个概念:

视图变换:

  • 含义:确定相机的位置、角度和方向,建立物体与相机的相对坐标系。
  • 作用:将物体从世界坐标系(真实3D空间)转换到相机坐标系(以相机为原点的空间)。
  • 通俗解释:就像你拿着手机绕场景走动,直到找到最佳拍摄角度。
  • 关键操作:平移相机到原点,旋转使其朝向标准方向(如看向-Z轴)

投影变换:

  • 含义:将3D物体投影到2D平面上,分两种类型:
    • 透视投影:模拟人眼近大远小的效果(如广角镜头)。
    • 正交投影:忽略距离,保持物体尺寸不变(如工程图纸)。
  • 作用:将相机坐标系下的3D坐标转换为裁剪空间(一个标准立方体范围),方便后续裁剪和计算。
  • 通俗解释:就像决定用鱼眼镜头还是普通镜头拍摄,影响画面是否变形。

视口变换:

  • 含义:将裁剪后的标准立方体坐标映射到屏幕的实际像素范围。
  • 作用:将[-1,1]的规范化坐标拉伸到屏幕分辨率(如1920×1080),并确定显示区域的位置和大小。
  • 通俗解释:调整照片尺寸,使其恰好铺满手机屏幕或某个窗口。

光栅化:

  • 含义:将几何图形(如三角形)分解为像素,并确定每个像素的颜色和位置。
  • 作用:生成最终显示在屏幕上的图像,处理锯齿、抗锯齿等视觉效果。
  • 通俗解释:把照片放大到像素级别,决定每个小格子(像素)的颜色是否填充。
  • 关键技术
    • 三角形采样:判断像素中心是否在三角形内(如叉乘法)。
    • 抗锯齿:通过多重采样(如MSAA)减轻边缘锯齿

    流程示例

    1. 物体位置(世界坐标)→ 调整相机视角(视图变换)。
    2. 投影到2D平面(投影变换)→ 裁剪不可见部分。
    3. 映射到屏幕分辨率(视口变换)。
    4. 将几何图形转为像素(光栅化)。

    3dgs:

    不能直接使用投影变换,因为从透射投影到正交投影,是非线性变换,不是仿射变换,所以要引入雅可比近似矩阵。

    雅可比矩阵:泰勒展开,线性逼近

    3、加以合成,形成最后的图像;

    如何进行参数估计

    http://www.dtcms.com/a/109496.html

    相关文章:

  • JavaScript逆向魔法:Chrome开发者工具探秘之旅
  • C语言--寻找子串的下标
  • 优雅的理解神经网络中的“分段线性单元”,解剖前向和反向传播
  • 量子计算与经典计算的拉锯战:一场关于计算未来的辩论
  • 3.2/Q2,GBD数据库最新文章解读
  • 开源可视化大屏go-view前后端安装
  • 文献分享: DESSERT基于LSH的多向量检索(Part2——理论保证的证明)
  • 《K230 从熟悉到...》识别机器码(AprilTag)
  • OpenHarmony子系统开发 - 安全(十)
  • 【网络安全实验】PKI(证书服务)配置实验
  • 操作 Office Excel 文档类库Excelize
  • Python项目-基于Python的音乐推荐系统
  • 无需预对齐即可消除批次效应,东京大学团队开发深度学习框架STAIG,揭示肿瘤微环境中的详细基因信息
  • 在网络中加入预训练的多层感知机(MLP)有什么作用?
  • BT-Basic函数之首字母R
  • Opencv之dilib库:表情识别
  • 【Linux】-进程的控制(下)
  • 安卓中app_process运行报错Aborted,怎么查看具体的报错日志
  • 光谱成像技术在海洋/管道漏油(溢油)监测中的应用
  • 化工行业如何通过定制化工作流自动化实现25-30%成本优化?
  • Bazel中的Symbol, Rule, Macro, Target, Provider, Aspect 等概念
  • Maps,
  • Computer VIsion1
  • android开发:zxing-android-embedded竖屏扫描功能
  • 四门冷柜、操作台、卧式冰柜区别及运输注意事项
  • 什么是 StarRocks?核心优势与适用场景解析
  • 【深度学习】嘿马深度学习笔记第13篇:卷积神经网络,学习目标【附代码文档】
  • 2025软件供应链安全指南︱构筑企业安全积极防御体系实践
  • U盘实现——BOT 常用命令
  • 无线通信技术(三):5G NR通信频带划分与应用场景