Gaussian Splatting
探索高斯泼溅,实现照片级真实感的 3D 场景重建。了解它如何实现实时渲染,并与 Ultralytics YOLO26 集成用于视觉任务。
高斯泼溅是一种现代光栅化技术,用于在计算机图形学和计算机视觉中,从一组二维图像重建具有照片级真实感的三维场景。不同于依赖多边形网格的传统三维建模,也不同于使用神经网络近似场景的最新 AI 技术(例如 神经辐射场 (NeRF)),高斯泼溅将场景表示为数百万个三维高斯分布(椭球体)的集合。该方法能够在保持出色视觉保真度的同时,以较高帧率进行实时渲染(通常超过 100 FPS),解决了以往视图合成方法中的主要性能瓶颈。
高斯泼溅的工作原理#
其核心思想是显式而非隐式地表示三维空间。在典型工作流中,流程首先使用一种称为 运动恢复结构 (SfM) 的技术,从一组照片生成稀疏的 点云。随后,点云中的每个点都会被初始化为一个三维高斯分布。
在 训练过程 中,系统会优化每个高斯分布的多个参数:
- **位置:**场景中的三维坐标(X、Y、Z)。
- **协方差:**决定椭球体的形状和旋转方式(例如“泼溅”的拉伸或倾斜程度)。
- **不透明度:**高斯分布呈现得有多透明或多实心(alpha 值)。
- **颜色:**使用 球谐函数 表示,使颜色能够根据观察角度发生变化,从而捕捉逼真的反射和光照效果。
“泼溅”一词指的是这样一种 光栅化 过程:这些三维高斯分布被投影——或“泼溅”——到二维相机平面上,以形成图像。该投影是完全可微的,这意味着可以使用标准的 梯度下降 算法,最小化渲染图像与原始真实照片之间的差异。
高斯泼溅与 NeRF 的对比#
虽然这两种技术都旨在生成场景的新视图,但它们在架构和性能方面存在根本差异。NeRF(神经辐射场) 将场景编码在 神经网络 的权重中。渲染 NeRF 时,每一帧都需要对该网络查询数百万次(光线行进),因此计算成本高且速度缓慢。
相比之下,高斯泼溅使用显式表示(高斯分布列表)。这使其能够利用高效的基于瓦片的光栅化,其方式类似于电子游戏渲染图形。因此,高斯泼溅的训练和渲染速度都显著快于 NeRFs,使其更适用于消费级应用和 实时推理。
实际应用#
高斯泼溅的速度和质量为各行各业带来了新的机遇:
- **虚拟旅游和房地产:**创作者可以使用无人机或智能手机拍摄博物馆、历史遗址或待售房屋。高斯泼溅允许远程用户在 虚拟现实 (VR) 中以 6 个自由度(6DoF)探索这些空间,看到传统摄影测量可能遗漏的细节,例如硬木地板上的反射。
- **汽车仿真:**开发 自动驾驶汽车 的公司需要大量数据来测试其感知算法。高斯泼溅可以根据传感器数据重建真实世界中的街区,创建具有照片级真实感的仿真环境。在这些环境中,可以测试诸如 Ultralytics YOLO26 这样的视觉模型,确保它们能够在复杂的三维场景中正确识别危险。
使用计算机视觉进行泼溅预处理#
要使高斯泼溅有效运行,训练图像通常需要保持静态。源照片中的移动物体(例如行人或汽车)可能会造成称为“漂浮物”的伪影。高级流程会使用 实例分割,在训练泼溅模型之前自动屏蔽这些动态元素。
Ultralytics Platform 允许团队管理数据集并训练模型,以协助完成这一预处理阶段。下面介绍一种使用分割模型为用于三维重建的数据集创建掩码的方法:
from ultralytics import YOLO
# Load the YOLO26 segmentation model
model = YOLO("yolo26n-seg.pt")
# Run inference on an image from the scan dataset
# Class 0 is 'person' in COCO - we mask them out to keep the scene static
results = model.predict("scan_frame_001.jpg", classes=[0])
# Save the generated mask to exclude the person from the 3D reconstruction
for result in results:
result.save_masks("scan_frame_001_mask.png")对 AI 的意义与未来趋势#
高斯泼溅代表了 计算机视觉 的一种转变,即转向将 深度学习 的可学习性与经典计算机图形学的高效性相结合的混合方法。这项技术正在快速发展,研究人员正探索压缩文件大小(文件可能很大)的方法,并将其与 生成式 AI 集成,以根据文本提示创建三维资产。随着 GPUs 等硬件加速器不断改进,高斯泼溅很可能会成为以数字形式捕获和渲染现实世界的标准。









