Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Gaussian Splatting

高斯泼溅用数百万个 3D 高斯体从照片重建逼真的 3D 场景,并支持实时渲染。涵盖训练、NeRF 和采集。

高斯泼溅(也称 3D 高斯泼溅,3DGS)是一种从普通照片重建逼真的 3D 场景并实时渲染新视角的技术。它将场景表示为数百万个 3D 高斯体,即具有位置、形状、不透明度和视角相关颜色的柔和椭球体;绘制图像时,会将它们投影(“泼溅”)到屏幕上并进行混合。该技术在 SIGGRAPH 2023 上通过论文《用于实时辐射场渲染的 3D 高斯泼溅》首次提出,其图像质量达到最佳神经辐射场 (NeRF)的水平,同时能以每秒 30 帧或更高速度渲染 1080p 画面;此前没有其他方法能在大型、无界场景中实现这一点。它是一种新视角合成和3D 重建方法。

高斯泼溅的工作原理#

每个高斯体都存储 59 个可学习数值:一个 3D 位置、一个 3D 尺度和一个包含 4 个数值的旋转四元数,它们共同定义协方差(形状和方向);此外还有一个不透明度,以及 48 个球谐函数系数(每个颜色通道 16 个),可让颜色随观察方向变化,从而捕捉反射和光泽。训练从运动恢复结构 (SfM)在相机标定过程中生成的稀疏点云开始,并在每个点上放置一个高斯体。每轮迭代都会渲染一个训练视角,使用加权的 L1 和 D-SSIM 损失将其与真实照片进行比较,再通过可微渲染器进行梯度下降,更新每个高斯体。每经过 100 轮迭代,自适应密度控制会在重建不足的区域复制较小的高斯体,将覆盖过多细节的大高斯体拆分,并移除几乎透明的高斯体;论文中的每个场景最终包含 100 万至 500 万个高斯体。

渲染一帧时,渲染器会将每个 3D 高斯体投影到图像平面上的 2D 椭圆,将屏幕划分为 16×16 像素的图块,使用一次GPU基数排序,按深度对每个图块中重叠的高斯体排序,然后针对每个像素从前到后进行 alpha 混合。由于场景是由基本图元组成的显式列表,渲染过程类似游戏引擎的光栅化器,无需针对每个像素运行神经网络。

高斯泼溅与 NeRF 和网格的比较#

NeRF 将场景隐式存储在神经网络的权重中,并通过沿每条相机射线在许多点查询该网络来渲染场景。高斯泼溅则显式存储场景,因此渲染只需排序和混合。在原论文所用的相同硬件上,Mip-NeRF360 平均需要 48 小时训练,每帧渲染约需 10 秒;高斯泼溅充分训练 35–45 分钟后,图像质量便能达到或略微超过它,并可实时渲染。显式表示需要占用内存:每个高斯体有 59 个数值,包含 300 万个高斯体的场景约需存储 700 MB 的 32 位浮点数;在原始实现中,训练大型场景时 GPU 峰值内存可能超过 20 GB。泼溅也没有定义明确的表面,因此需要碰撞几何或 CAD 风格编辑的应用仍需使用后续方法将其转换为网格;动态场景则需要4D 高斯泼溅等扩展。

采集高斯泼溅数据#

一次采集是一组在静态场景周围移动时拍摄的重叠照片或视频帧。采集过程中移动的物体(如路人或汽车)会出现在部分帧中,却不出现在其他帧中;优化过程会试图用称为漂浮伪影的半透明瑕疵来解释这些物体。因此,训练流水线支持使用掩码排除移动物体;Nerfstudio 的数据格式接受黑白掩码,其中黑色表示忽略相应像素。YOLO26实例分割模型会自动分割每一帧中的所有人,生成这些掩码。

import cv2
from ultralytics import YOLO

# 加载 YOLO26 实例分割模型
model = YOLO("yolo26n-seg.pt")

# 只分割人(COCO 类别 0),这是采集中漂浮伪影的常见来源
results = model("https://ultralytics.com/images/bus.jpg", classes=[0], retina_masks=True)
result = results[0]

# 白色标记用于训练的静态场景,黑色标记需要忽略的人
people = result.masks.data.sum(dim=0) > 0
keep_mask = (~people).cpu().numpy().astype("uint8") * 255
cv2.imwrite("bus_mask.png", keep_mask)

保存的 bus_mask.png 保持照片的完整分辨率,因为 retina_masks=True会以原始图像尺寸返回掩码,并且画面中的每个人都是黑色。

应用场景#

  • 房地产与虚拟导览: 用手机或无人机拍摄住宅、博物馆或历史遗址,就能将其转化为场景,让访客在浏览器或 VR 头显中自由探索,并保留地板和窗户上的反射效果。
  • 视觉特效与虚拟制作: 影视和游戏团队将真实场景采集为泼溅数据,并将其用作逼真的背景和布景参考。
  • 数字孪生与地图绘制: 地理空间平台会与传统 3D 瓦片一起,流式传输城市、建筑工地和基础设施的大型泼溅重建数据。
  • 驾驶与机器人仿真: 对真实驾驶过程的重建,使自动驾驶汽车团队能够从新的相机位置重新渲染记录的场景,以测试感知模型。

gsplat等开源库提供用于训练泼溅模型的 CUDA 光栅化器;Khronos Group 也已批准 KHR_gaussian_splatting,这是用于存储高斯泼溅数据的 glTF 2.0 扩展,由 Cesium、Esri、Niantic Spatial、NVIDIA、Huawei 和 Autodesk 的贡献者共同开发。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来