-- 阅读
2474 字
12 分钟
三维高斯溅射(3DGS)完全教程

三维高斯溅射(3DGS)完全教程#

面向零基础程序员的系统性学习路径:从直觉理解到工程实践


前言#

本教程面向具备编程基础的本科毕业生,不要求任何三维视觉或图形学背景。 你将从”新场景重建是什么”出发,逐步理解 3DGS 的数学原理、训练流程与工程实践, 读完后能够独立训练模型、定制优化、参与前沿改进。

阅读建议:顺序阅读,每章末有小结与思考题;公式可跳过初读,二刷时重点推敲。


目录#

第一章:三维重建是什么,为什么重要#

标题要点
1.1从一张照片说起人眼如何感知三维;照片丢失了什么信息
1.2三维重建的定义与目标输入/输出是什么;评价指标 PSNR / SSIM / LPIPS
1.3主流技术路线全景MVS、NeRF、3DGS 的横向对比;各自适用场景
1.43DGS 能做什么,不能做什么典型应用案例;已知局限性
1.5学习路线与本教程结构如何使用本教程;推荐配套读物

第二章:视觉基础——相机、投影与点云#

标题要点
2.1针孔相机模型内参矩阵 KK;焦距、主点、像素坐标
2.2相机外参与世界坐标系旋转矩阵 RR、平移向量 tt;坐标变换链
2.3齐次坐标与投影矩阵为什么用齐次坐标;完整投影公式
2.4畸变模型径向畸变、切向畸变;实际标定流程
2.5点云是什么从立体视觉到稀疏点云;SfM 的直觉解释
2.6COLMAP 实战入门安装、运行、读取结果;为 3DGS 准备输入

第三章:高斯函数与概率基础#

标题要点
3.1一维高斯函数的几何直觉均值、方差、面积归一化
3.2多维高斯分布协方差矩阵的几何意义;椭球体可视化
3.3协方差矩阵的分解Σ=RSSTRT\Sigma = RSS^T R^T;旋转与缩放的解耦
3.4为什么选高斯作为场景基元可微性;闭合解析投影;连续可导的优化目标
3.5高斯的加法与混合多个高斯叠加;Gaussian Mixture Model 直觉

第四章:球谐函数与外观建模#

标题要点
4.1颜色与方向的关系镜面反射、漫反射;非朗伯体表面
4.2球谐函数是什么在球面上的”傅里叶基”;阶数与频率的对应
4.3球谐函数的数学定义实数形式 YlmY_l^m;前四阶系数数量
4.4用球谐函数表示颜色RGB 各通道独立展开;视角相关颜色的计算
4.5阶数对质量与开销的影响0阶=常色;3阶的工程折衷

第五章:体渲染与 Alpha 合成#

标题要点
5.1体渲染方程的直觉推导光线穿过介质;透射率 TT;吸收与散射
5.2离散近似:Alpha 合成前向 α\alpha-blending 公式;顺序敏感性
5.3NeRF 的体渲染实现采样点、权重计算;体渲染瓶颈
5.43DGS 的渲染公式推导每个高斯的贡献;深度排序 tile-based rasterizer
5.5可微渲染的意义反向传播到场景参数;梯度信号的流向

第六章:3DGS 核心算法详解#

标题要点
6.1整体架构一览输入→SfM→初始化→训练→渲染;数据流图
6.2高斯基元的完整参数定义位置 μ\mu、协方差 Σ\Sigma、不透明度 α\alpha、球谐系数
6.3三维高斯投影到二维雅可比近似推导;二维协方差计算
6.4Tile-based 光栅化屏幕分块;排序;并行渲染原理
6.5自适应密度控制(ADC)克隆、分裂、剪枝的触发条件与效果
6.6损失函数设计L1\mathcal{L}_1 + D-SSIM;各项权重的意义
6.7训练超参数解读学习率调度;迭代步数;指数衰减策略

第七章:从原始论文到开源代码#

标题要点
7.1论文精读:原版 3DGS(2023)Kerbl et al. 核心贡献;与 NeRF 的关键差异
7.2代码仓库结构导览文件树;各模块职责;CUDA 扩展的边界
7.3训练脚本逐行解读train.py 主循环;关键 API 调用
7.4渲染脚本与评估render.pymetrics.py;如何解读指标
7.5常见报错与排查手册CUDA OOM;COLMAP 失败;点云为空等

第八章:数据准备与训练实战#

标题要点
8.1硬件与环境配置GPU 显存需求;CUDA 版本;Docker 镜像
8.2公开数据集下载与使用Tanks and Temples;Mip-NeRF 360;BlendedMVS
8.3用自己的视频训练视频抽帧;COLMAP 流程;质量检查
8.4训练参数精调指南不同场景的推荐配置;快速实验策略
8.5可视化与结果分析SIBR Viewer 使用;用 Python 渲染轨迹
8.6导出与部署PLY 格式;WebGL 实时渲染;移动端适配

第九章:主流改进方向与前沿论文#

标题要点
9.1压缩与轻量化Compact 3DGS;LightGaussian;Mini-Splatting(2024,极限压缩至原始点数的 0.2%);存储瓶颈分析
9.2动态场景与视频4D Gaussians;Deformable 3DGS;SplatFields(2024,神经变形场与 3DGS 融合);时序建模范式对比
9.3大场景与城市级重建VastGaussian;CityGaussian;GaussianWorld(2025,开放世界可扩展场景表示);分块与流式训练策略
9.4文本/图像驱动生成GaussianDreamer;DreamGaussian;结合扩散模型的零样本重建
9.5物理模拟与编辑PhysGaussian;可交互场景;刚体软体模拟;GaussianOccupancy(2024,占用场与高斯融合用于物理感知)
9.6结构化与稀疏表示Scaffold-GS(2024,锚点驱动的神经高斯,显著降低冗余基元数量);层次化场景表示
9.7平面基元与几何改进2DGS(2024,用二维圆盘替代三维椭球,改善表面几何精度);几何感知密度控制
9.8语义理解与分割Gaussian Grouping(2024,无需额外标注的实例级语义分割);Feature 3DGS;开放词汇场景查询
9.9光照分解与重光照Relightable 3DGS(2024,将高斯属性分解为漫反射、镜面与可见度);GaussianShader;材质估计
9.10人体与头像建模GaussianAvatars(2024,基于 FLAME 驱动的高精度人脸头像);3DGS 在人体动画中的应用;驱动与表情迁移
9.11SLAM 与实时定位建图3DGS-SLAM(2024,将高斯场景表示嵌入实时 SLAM 系统);SplaTAM;在线增量建图;闭环检测
9.12自动驾驶仿真HUGSIM(2025,统一闭环自动驾驶仿真框架,覆盖多传感器);EmerNeRF;UniSim;传感器级真实性评测
9.13阅读前沿论文的方法论arXiv 检索技巧;如何快速判断论文价值;跟踪 2025-2026 新进展的工作流

第十章:成为贡献者——如何迭代改进系统#

标题要点
10.1建立自己的实验基线可复现实验的工程规范;日志与版本管理
10.2如何定位性能瓶颈Profiling CUDA 核;内存带宽分析
10.3修改高斯基元的正确姿势添加新属性;修改梯度流;CUDA 扩展入门
10.4使用 gsplat 库加速开发gsplat(Nerfstudio 团队维护的高性能 3DGS CUDA 后端);API 对比原版实现;自定义算子插入点
10.5nerfstudio 集成与生态nerfstudio 中的 Splatfacto 实现;插件式训练框架;与 gsplat 的协同使用;快速原型验证流程
10.6Gaussian Opacity Fields 解析GOF(2024,用不透明度场替代显式 alpha,改善无纹理区域与边界重建);体积表示与高斯基元的互补性
10.73DGUT:非结构化高斯溅射3DGUT(2025,支持非结构化相机模型与鱼眼镜头的通用高斯训练框架);工业级数据集适配
10.8消融实验设计控制变量;指标选取;统计显著性
10.9投稿与开源的建议论文写作要点;代码整洁度;社区协作
10.10推荐学习资源汇总论文、课程、博客、社区的精选清单(含 2025 年新增资源)

附录#

附录内容
A线性代数速查:矩阵乘法、特征值分解、SVD
B概率论速查:期望、协方差、多元高斯
C自动微分与反向传播原理
DCUDA 编程入门:线程层级、共享内存
E术语中英对照表

推荐配套读物#

基础教材#

  • 《计算机视觉:算法与应用》(Szeliski,第2版)— 相机模型、立体视觉权威参考
  • 《深度学习》(Goodfellow et al.)— 自动微分、优化器原理

必读论文#

论文贡献链接
Kerbl et al., 2023原版 3DGSarXiv:2308.04079
Mildenhall et al., 2020NeRFarXiv:2003.08934
Schönberger & Frahm, 2016COLMAP SfMCVPR 2016
Zwicker et al., 2001EWA SplattingSIGGRAPH 2001
Lu et al., 2024Scaffold-GS:锚点驱动结构化高斯arXiv:2312.00109
Huang et al., 20242DGS:平面高斯改善表面重建arXiv:2403.17888
Liu et al., 2024Gaussian Grouping:语义实例分割arXiv:2312.00732
Liang et al., 2024Relightable 3DGS:光照分解与重光照arXiv:2311.09897
Qian et al., 2024GaussianAvatars:FLAME 驱动人脸头像arXiv:2312.02069
Yugay et al., 20243DGS-SLAM:高斯场景的实时 SLAMarXiv:2312.02126
Yu et al., 2024Gaussian Opacity Fields:体积不透明度场arXiv:2404.10772
Chen et al., 2025HUGSIM:统一自动驾驶闭环仿真arXiv:2501.12320
Niedermayr et al., 2024Mini-Splatting:极致高斯压缩arXiv:2403.14166
Waczynska et al., 2024SplatFields:神经场驱动动态高斯arXiv:2409.11211
Fischer et al., 20253DGUT:非结构化相机模型高斯训练arXiv:2312.02121

在线课程#

  • Stanford CS231A:计算机视觉基础(相机与三维视觉)
  • CMU 16-385:计算机视觉(含立体和重建)
  • MIT 6.837:计算机图形学(体渲染部分)

开源框架与工具#

  • 3DGS 官方仓库 — 原版代码、issue、社区讨论
  • gsplat — Nerfstudio 团队维护的高性能 3DGS CUDA 后端,支持自定义扩展
  • nerfstudio — 模块化 NeRF/3DGS 训练框架,内置 Splatfacto
  • Awesome-3D-Gaussian-Splatting — 持续更新的论文与资源列表
  • Luma AI / Polycam 博客 — 工业级落地经验与工程技巧

本教程持续更新,当前版本覆盖 3DGS 截至 2026 年中的主流进展。

三维高斯溅射(3DGS)完全教程
https://cmcblog.top/posts/三维高斯溅射3dgs完全教程/
作者
日月星辰
发布于
2026-09-12
许可协议
CC BY-NC-SA 4.0