WebODM/OpenSplat

Production-grade 3D gaussian splatting with CPU/GPU support for Windows, Mac and Linux 💦

OpenSplat – 快速、开源的 3D Gaussian-splatting

是什么 – OpenSplat 是 3-D Gaussian splatting 的 C++ 实现,这是一种现代神经图形技术,可以将稀疏的相机位姿和点集(来自 COLMAP、OpenSfM、ODX、nerfstudio 等)转换为由微小 3D 高斯分布组成的紧凑场景。结果可以保存为 .ply、.splat、.spz 或 .rad,并使用任何 Gaussian-splatting 查看器进行查看或编辑。

为什么重要 – Gaussian splatting 提供与 NeRFs 相当的实时渲染质量,同时训练和渲染成本远低于后者。OpenSplat 旨在实现可移植性、轻量化和快速,支持 NVIDIA、AMD 和 Apple GPU(通过 Metal),以及纯 CPU 回退方案。


关键特性 (如 README 中所述)

  • 跨平台:构建于 Windows、macOS 和 Linux。
  • GPU 加速:支持 CUDA、ROCm (HIP) 和 Apple Metal;支持仅 CPU 模式(速度慢约 100 倍)。
  • 简单的数据摄取:接受 ODX、OpenSfM、COLMAP、OpenMVG 或 nerfstudio 格式的项目。
  • 多种输出格式:.ply、.splat、.spz、.rad – 适用于 Antimatter15 web viewer 或 PlayCanvas 等查看器。
  • Docker 镜像:提供现成的 CUDA 和 ROCm Dockerfiles,用于可重复的环境。
  • 训练实用程序:支持恢复训练、基于掩码的图像区域排除、坐标系保留以及可选的压缩。
  • 可扩展性:欢迎对 AMD 支持、分布式训练、实时查看器输出等进行贡献。

入门指南 (快速入门步骤)

  1. 安装依赖 – OpenCV 和匹配的 LibTorch 构建版本 (CPU、CUDA 或 ROCm)。README 列出了 Ubuntu、Homebrew 和 Windows 的确切包名。
  2. 构建 –
    git clone https://github.com/pierotofy/OpenSplat OpenSplat
    cd OpenSplat
    mkdir build && cd build
    cmake -DCMAKE_PREFIX_PATH=/path/to/libtorch/ ..
    make -j$(nproc)   # or use Ninja if preferred
    
    对于 ROCm,添加 -DGPU_RUNTIME="HIP" 和 -DOPENSPLAT_BUILD_SIMPLE_TRAINER=ON;或者为纯 CPU 二进制文件设置 -DGPU_RUNTIME=CPU。
  3. 运行 – 下载一个示例数据集(例如 banana 或 truck)并执行:
    ./opensplat /path/to/banana -n 2000   # 2000 Gaussians
    
    程序会写入 splat.ply(或使用 -o 参数时写入 banana.splat),可以将其放入任何兼容的查看器中。
  4. 可选 – 使用 --resume 恢复训练现有的 .ply,使用 --output-cameras 导出相机 JSON,或在 masks/ 文件夹中放置每张图像的掩码,以忽略图像的某些部分。

Docker 使用 (摘要)

  • CUDA 镜像 – docker build -t opensplat . (默认 Ubuntu/CUDA/libtorch)。
  • ROCm 镜像 – docker build -f Dockerfile.rocm -t opensplat .。
  • 运行容器,挂载你的数据,并按照 README 中的说明在内部调用 ./opensplat。

项目状态与贡献

  • 代码根据 AGPL-v3 发布(包含来自原始 splatfacto 实现的一些 Apache-2.0 组件)。
  • 当前目标包括更好的 AMD 支持、减少内存使用、分布式训练以及实时查看器输出。
  • 欢迎通过 pull requests 进行贡献;开放的 issue 正在进行增强功能标注。

TL;DR

OpenSplat 是一个实用的、开源工具,用于将摄影测量输出转换为快速渲染的 3D Gaussian splatting 场景。它运行在所有主要 GPU 平台,支持 CPU 回退,提供 Docker 镜像,并提供了一个直观的 CLI 供训练、恢复、掩码处理和导出。非常适合需要轻量级、可移植的 Gaussian-splatting 管道,且不想承受大型 NeRF 框架开销的研究人员或开发者。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目