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 支持、分布式训练、实时查看器输出等进行贡献。
入门指南 (快速入门步骤)
- 安装依赖 – OpenCV 和匹配的 LibTorch 构建版本 (CPU、CUDA 或 ROCm)。README 列出了 Ubuntu、Homebrew 和 Windows 的确切包名。
- 构建 –
对于 ROCm,添加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-DGPU_RUNTIME="HIP"和-DOPENSPLAT_BUILD_SIMPLE_TRAINER=ON;或者为纯 CPU 二进制文件设置-DGPU_RUNTIME=CPU。 - 运行 – 下载一个示例数据集(例如 banana 或 truck)并执行:
程序会写入./opensplat /path/to/banana -n 2000 # 2000 Gaussianssplat.ply(或使用-o参数时写入banana.splat),可以将其放入任何兼容的查看器中。 - 可选 – 使用
--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 框架开销的研究人员或开发者。
相关
- 项目
- 项目
- 项目
- 项目
- 项目