pierotofy/OpenSplat
GitHub: pierotofy/OpenSplat
开源的跨平台 3D 高斯泼溅工具,支持从照片重建可实时渲染的 3D 场景。
Stars: 1912 | Forks: 178
# 💦 OpenSplat
一个免费开源的 3D [gaussian splatting](https://www.youtube.com/watch?v=HVv_IQKlafQ) C++ 实现,专注于可移植性、精简和快速。
OpenSplat 接收 [COLMAP](https://colmap.github.io/)、[OpenSfM](https://github.com/mapillary/OpenSfM)、[ODM](https://github.com/OpenDroneMap/ODM)、[OpenMVG](https://github.com/OpenMVG/OpenMVG) 或 [nerfstudio](https://docs.nerf.studio/quickstart/custom_dataset.html) 项目格式的相机位姿 + 稀疏点,并计算出一个 [场景文件](https://drive.google.com/file/d/12lmvVWpFlFPL6nxl2e2d-4u4a31RCSKT/view?usp=sharing) (.ply 或 .splat),该文件随后可被导入到其他[软件](https://github.com/MrNeRF/awesome-3D-gaussian-splatting?tab=readme-ov-file#open-source-implementations)中进行[查看](https://antimatter15.com/splat/?url=https://splat.uav4geo.com/banana.splat)、编辑和渲染。
推荐使用显卡,但非必须!OpenSplat 在 NVIDIA、AMD 和 Apple (Metal) GPU 上运行速度最快,但也可以完全在 CPU 上运行(约慢 100 倍)。
在 [AGPLv3](https://www.tldrlegal.com/license/gnu-affero-general-public-license-v3-agpl-3-0) 条款下允许并鼓励商业使用。✅
我们甚至还有一首[歌](https://youtu.be/1bma7XJkoDM) 🎵
## 入门指南
如果你使用的是 Windows,可以[购买](http://sites.fastspring.com/masseranolabs/product/opensplatforwindows)预构建的程序。这能节省你的时间并帮助支持本项目 ❤️。然后直接跳转到[运行](#run)章节。或者,查看下面的[构建](#build)章节。
如果你使用的是 macOS 或 Linux,请查看下面的[构建](#build)章节。
## 构建
你可以构建支持或不支持 GPU 的 OpenSplat。
所有构建的要求:
* **OpenCV**:执行 `sudo apt install libopencv-dev` 即可。
* **libtorch**:见下文说明。
### CPU
关于 libtorch,请访问 https://pytorch.org/get-started/locally/ 并选择你的操作系统,包类型选择 "LibTorch"。计算平台可以选择 "CPU"。
然后:
```
git clone https://github.com/pierotofy/OpenSplat OpenSplat
cd OpenSplat
mkdir build && cd build
cmake -DCMAKE_PREFIX_PATH=/path/to/libtorch/ .. && make -j$(nproc)
```
### CUDA
额外要求:
* **CUDA**:确保你的 PATH 中有 CUDA 编译器 (`nvcc`),并且 `nvidia-smi` 正常工作。https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
关于 libtorch,请访问 https://pytorch.org/get-started/locally/ 并选择你的操作系统,包类型选择 "LibTorch"。如果你想利用 libtorch 中的 GPU 支持,请确保匹配你的 CUDA 版本。
然后:
```
git clone https://github.com/pierotofy/OpenSplat OpenSplat
cd OpenSplat
mkdir build && cd build
cmake -DCMAKE_PREFIX_PATH=/path/to/libtorch/ .. && make -j$(nproc)
```
### 通过 HIP 实现 ROCm
额外要求:
* **ROCm**:确保你已在 /opt/rocm 安装了 ROCm。https://rocm.docs.amd.com/projects/install-on-linux/en/latest/tutorial/quick-start.html
关于 libtorch,请访问 https://pytorch.org/get-started/locally/ 并选择你的操作系统,包类型选择 "LibTorch"。如果你想利用 libtorch 中的 AMD GPU 支持,请确保匹配你的 ROCm 版本 (5.7)。
然后:
```
git clone https://github.com/pierotofy/OpenSplat OpenSplat
cd OpenSplat
mkdir build && cd build
export PYTORCH_ROCM_ARCH=gfx906
cmake -DCMAKE_PREFIX_PATH=/path/to/libtorch/ -DGPU_RUNTIME="HIP" -DHIP_ROOT_DIR=/opt/rocm -DOPENSPLAT_BUILD_SIMPLE_TRAINER=ON ..
make
```
此外,你可以利用 Jinja 来构建项目
```
cmake -GNinja -DCMAKE_PREFIX_PATH=/path/to/libtorch/ -DGPU_RUNTIME="HIP" -DHIP_ROOT_DIR=/opt/rocm -DOPENSPLAT_BUILD_SIMPLE_TRAINER=ON ..
jinja
```
### Windows
在 Windows 上有多种构建方式,但此特定配置已被确认可行:
* Visual Studio 2022 C++
* https://github.com/Kitware/CMake/releases/download/v3.28.3/cmake-3.28.3-windows-x86_64.msi
* https://developer.download.nvidia.com/compute/cuda/11.8.0/network_installers/cuda_11.8.0_windows_network.exe
* https://download.pytorch.org/libtorch/cu118/libtorch-win-shared-with-deps-2.1.2%2Bcu118.zip
* https://github.com/opencv/opencv/releases/download/4.9.0/opencv-4.9.0-windows.exe
然后运行:
```
"C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Auxiliary/Build/vcvars64.bat"
git clone https://github.com/pierotofy/OpenSplat OpenSplat
cd OpenSplat
md build
cd build
cmake -DCMAKE_PREFIX_PATH=C:/path_to/libtorch_2.1.2_cu11.8/libtorch -DOPENCV_DIR=C:/path_to/OpenCV_4.9.0/build -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --config Release
```
可选:在 `cmake --build .` 之前编辑 cuda 目标(仅在需要时)
C:/path_to/OpenSplat/build/gsplat.vcxproj
例如:arch=compute_75,code=sm_75
### macOS
如果你使用的是 [Homebrew](https://brew.sh),可以通过运行以下命令安装 Cmake/OpenCV/Pytorch:
```
brew install cmake
brew install opencv
brew install pytorch
```
你还需要安装 Xcode 和 Xcode 命令行工具以编译 metal 支持(否则,OpenSplat 将仅使用 CPU 加速进行构建):
1. 从 Apple App Store 安装 Xcode。
2. 使用 `xcode-select --install` 安装命令行工具。这对你的机器可能没有任何作用。
3. 如果 `xcode-select --print-path` 输出 `/Library/Developer/CommandLineTools`,则运行 `sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer`。
然后运行:
```
git clone https://github.com/pierotofy/OpenSplat OpenSplat
cd OpenSplat
mkdir build && cd build
cmake -DCMAKE_PREFIX_PATH=/path/to/libtorch/ -DGPU_RUNTIME=MPS .. && make -j$(sysctl -n hw.logicalcpu)
./opensplat
```
如果仅构建 CPU 版本,移除 `-DGPU_RUNTIME=MPS`。
:warning: 首次运行时,你可能会遇到 *libc10.dylib can’t be opened because Apple cannot check it for malicious software* 错误。打开 **系统设置**,前往 **隐私与安全性**,找到 **允许** 按钮。你可能需要重复此操作几次,直到加载完所有 torch 库。
:warning: 如果你遇到 *Library not loaded: @rpath/libomp.dylib* 错误,请尝试在运行 OpenSplat 之前执行 `brew link libomp --force`。
## Docker 构建
### CUDA
导航到包含 Dockerfile 的 OpenSplat 仓库根目录,并运行以下命令来构建 Docker 镜像:
```
docker build -t opensplat .
```
`-t` 标志和其他 `--build-arg` 允许你在不同的 ubuntu 版本、CUDA/libtorch 堆栈和硬件加速器之间标记并进一步自定义你的镜像。
例如,要构建一个包含 Ubuntu 22.04、CUDA 12.1.1、libtorch 2.2.1 并支持 CUDA 架构 7.0 和 7.5 的镜像,请运行以下命令:
```
docker build \
-t opensplat:ubuntu-22.04-cuda-12.1.1-torch-2.2.1 \
--build-arg UBUNTU_VERSION=22.04 \
--build-arg CUDA_VERSION=12.1.1 \
--build-arg TORCH_VERSION=2.2.1 \
--build-arg CMAKE_CUDA_ARCHITECTURES="70;75;80" \
--build-arg CMAKE_BUILD_TYPE=Release .
```
### 通过 HIP 实现 ROCm
导航到包含 Dockerfile 的 OpenSplat 仓库根目录,并运行以下命令来构建 Docker 镜像:
```
docker build \
-t opensplat \
-f Dockerfile.rocm .
```
`-t` 标志和其他 `--build-arg` 允许你在不同的 ubuntu 版本、CUDA/libtorch 堆栈和硬件加速器之间标记并进一步自定义你的镜像。
例如,要构建一个包含 Ubuntu 22.04、CUDA 12.1.1、libtorch 2.2.1、ROCm 5.7.1 并支持 ROCm 架构 gfx906 的镜像,请运行以下命令:
```
docker build \
-t opensplat:ubuntu-22.04-cuda-12.1.1-libtorch-2.2.1-rocm-5.7.1-llvm-16 \
--build-arg UBUNTU_VERSION=22.04 \
--build-arg CUDA_VERSION=12.1.1 \
--build-arg TORCH_VERSION=2.2.1 \
--build-arg ROCM_VERSION=5.7.1 \
--build-arg PYTORCH_ROCM_ARCH="gfx906" \
--build-arg CMAKE_BUILD_TYPE=Release .
```
注意:如果你想使用 ROCm 6.x,你需要切换到 AMD 版本的 pytorch docker 作为基础层来构建:
```
docker build \
-t opensplat:ubuntu-22.04-libtorch-2.1.2-rocm-6.0.2 \
-f Dockerfile.rocm6 .
```
## 运行
首先,下载数据集并将其解压到一个文件夹中:[ [banana](https://drive.google.com/file/d/1mUUZFDo2swd6CE5vwPPkjN63Hyf4XyEv/view?usp=sharing) ] [ [truck](https://drive.google.com/file/d/1WWXo-GKo6d-yf-K1T1CswIdkdZrBNZ_e/view?usp=sharing) ]
然后在命令行提示符下运行:
### Windows
```
cd c:\path\to\opensplat
opensplat.exe c:\path\to\banana -n 2000
```
### macOS / Linux
```
cd build
./opensplat /path/to/banana -n 2000
```
程序将生成一个输出的 `splat.ply` 文件,该文件可以拖放到许多[查看器](https://github.com/MrNeRF/awesome-3D-gaussian-splatting?tab=readme-ov-file#viewers)中的一个,例如 https://playcanvas.com/viewer。你也可以使用 https://playcanvas.com/supersplat/editor 来编辑/清理场景。程序还会在同一目录下输出一个 `cameras.json` 文件,供某些查看器使用。
要运行你自己的数据,请选择一个现有的 [COLMAP](https://colmap.github.io/)、[OpenSfM](https://github.com/mapillary/OpenSfM)、[ODM](https://github.com/OpenDroneMap/ODM) 或 [nerfstudio](https://docs.nerf.studio/quickstart/custom_dataset.html) 项目的路径。该项目必须包含稀疏点(不支持随机初始化,见 https://github.com/pierotofy/OpenSplat/issues/7)。
有几个参数你可以调整。要查看完整列表:
```
./opensplat --help
```
### Google Colab
要在 Google Colab 中运行 OpenSplat,请遵循此[示例笔记本](https://colab.research.google.com/drive/1USqQsIBcqdOP6Fy0aVAyoXzTdpaEoTL_)。
### 压缩
要生成压缩的 splats(.splat 文件),请使用 `-o` 选项:
```
./opensplat /path/to/banana -o banana.splat
```
### 恢复
你可以使用 `--resume` 选项来恢复 .PLY 文件的训练:
```
./opensplat /path/to/banana --resume ./splat.ply
```
### AMD GPU 说明
要使用 docker 容器在 AMD GPU 上训练模型,你可以参考以下命令:
1. 使用以下命令启动 docker 容器:
```
docker run -it -v ~/data:/data --device=/dev/kfd --device=/dev/dri opensplat:ubuntu-22.04-libtorch-2.1.2-rocm-6.0.2 bash
```
2. 在 docker 容器内,运行以下命令来训练模型:
```
export HIP_VISIBLE_DEVICES=0
export HSA_OVERRIDE_GFX_VERSION=10.3.0 # AMD RX 6700 XT workaround
cd /code/build
./opensplat /data/banana -n 2000
```
## 项目目标
我们最近发布了 OpenSplat,所以还有很多工作要做。
* 支持在 AMD 显卡上运行(需要更多测试)
* 提高速度 / 减少内存使用
* 使用多台机器进行分布式计算
* 实时训练查看器输出
* 自动过滤
* 你的想法?
https://github.com/pierotofy/OpenSplat/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement
## GPU 内存说明
单个高斯大约占用 ~2000 字节的内存,因此目前每百万个高斯大约需要 ~2GB 的 GPU 内存。
## 致谢
OpenSplat 中使用的方法最初基于 [splatfacto](https://docs.nerf.studio/nerfology/methods/splat.html)。
## 许可证
本仓库中的代码,除非另有说明,否则根据 AGPLv3 授权。
来自 [splatfacto](https://docs.nerf.studio/nerfology/methods/splat.html) 的代码最初根据 Apache 2.0 许可证授权,并归 © 2023 The Nerfstudio Team 所有。
OpenSplat 接收 [COLMAP](https://colmap.github.io/)、[OpenSfM](https://github.com/mapillary/OpenSfM)、[ODM](https://github.com/OpenDroneMap/ODM)、[OpenMVG](https://github.com/OpenMVG/OpenMVG) 或 [nerfstudio](https://docs.nerf.studio/quickstart/custom_dataset.html) 项目格式的相机位姿 + 稀疏点,并计算出一个 [场景文件](https://drive.google.com/file/d/12lmvVWpFlFPL6nxl2e2d-4u4a31RCSKT/view?usp=sharing) (.ply 或 .splat),该文件随后可被导入到其他[软件](https://github.com/MrNeRF/awesome-3D-gaussian-splatting?tab=readme-ov-file#open-source-implementations)中进行[查看](https://antimatter15.com/splat/?url=https://splat.uav4geo.com/banana.splat)、编辑和渲染。
推荐使用显卡,但非必须!OpenSplat 在 NVIDIA、AMD 和 Apple (Metal) GPU 上运行速度最快,但也可以完全在 CPU 上运行(约慢 100 倍)。
在 [AGPLv3](https://www.tldrlegal.com/license/gnu-affero-general-public-license-v3-agpl-3-0) 条款下允许并鼓励商业使用。✅
我们甚至还有一首[歌](https://youtu.be/1bma7XJkoDM) 🎵
## 入门指南
如果你使用的是 Windows,可以[购买](http://sites.fastspring.com/masseranolabs/product/opensplatforwindows)预构建的程序。这能节省你的时间并帮助支持本项目 ❤️。然后直接跳转到[运行](#run)章节。或者,查看下面的[构建](#build)章节。
如果你使用的是 macOS 或 Linux,请查看下面的[构建](#build)章节。
## 构建
你可以构建支持或不支持 GPU 的 OpenSplat。
所有构建的要求:
* **OpenCV**:执行 `sudo apt install libopencv-dev` 即可。
* **libtorch**:见下文说明。
### CPU
关于 libtorch,请访问 https://pytorch.org/get-started/locally/ 并选择你的操作系统,包类型选择 "LibTorch"。计算平台可以选择 "CPU"。
然后:
```
git clone https://github.com/pierotofy/OpenSplat OpenSplat
cd OpenSplat
mkdir build && cd build
cmake -DCMAKE_PREFIX_PATH=/path/to/libtorch/ .. && make -j$(nproc)
```
### CUDA
额外要求:
* **CUDA**:确保你的 PATH 中有 CUDA 编译器 (`nvcc`),并且 `nvidia-smi` 正常工作。https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
关于 libtorch,请访问 https://pytorch.org/get-started/locally/ 并选择你的操作系统,包类型选择 "LibTorch"。如果你想利用 libtorch 中的 GPU 支持,请确保匹配你的 CUDA 版本。
然后:
```
git clone https://github.com/pierotofy/OpenSplat OpenSplat
cd OpenSplat
mkdir build && cd build
cmake -DCMAKE_PREFIX_PATH=/path/to/libtorch/ .. && make -j$(nproc)
```
### 通过 HIP 实现 ROCm
额外要求:
* **ROCm**:确保你已在 /opt/rocm 安装了 ROCm。https://rocm.docs.amd.com/projects/install-on-linux/en/latest/tutorial/quick-start.html
关于 libtorch,请访问 https://pytorch.org/get-started/locally/ 并选择你的操作系统,包类型选择 "LibTorch"。如果你想利用 libtorch 中的 AMD GPU 支持,请确保匹配你的 ROCm 版本 (5.7)。
然后:
```
git clone https://github.com/pierotofy/OpenSplat OpenSplat
cd OpenSplat
mkdir build && cd build
export PYTORCH_ROCM_ARCH=gfx906
cmake -DCMAKE_PREFIX_PATH=/path/to/libtorch/ -DGPU_RUNTIME="HIP" -DHIP_ROOT_DIR=/opt/rocm -DOPENSPLAT_BUILD_SIMPLE_TRAINER=ON ..
make
```
此外,你可以利用 Jinja 来构建项目
```
cmake -GNinja -DCMAKE_PREFIX_PATH=/path/to/libtorch/ -DGPU_RUNTIME="HIP" -DHIP_ROOT_DIR=/opt/rocm -DOPENSPLAT_BUILD_SIMPLE_TRAINER=ON ..
jinja
```
### Windows
在 Windows 上有多种构建方式,但此特定配置已被确认可行:
* Visual Studio 2022 C++
* https://github.com/Kitware/CMake/releases/download/v3.28.3/cmake-3.28.3-windows-x86_64.msi
* https://developer.download.nvidia.com/compute/cuda/11.8.0/network_installers/cuda_11.8.0_windows_network.exe
* https://download.pytorch.org/libtorch/cu118/libtorch-win-shared-with-deps-2.1.2%2Bcu118.zip
* https://github.com/opencv/opencv/releases/download/4.9.0/opencv-4.9.0-windows.exe
然后运行:
```
"C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Auxiliary/Build/vcvars64.bat"
git clone https://github.com/pierotofy/OpenSplat OpenSplat
cd OpenSplat
md build
cd build
cmake -DCMAKE_PREFIX_PATH=C:/path_to/libtorch_2.1.2_cu11.8/libtorch -DOPENCV_DIR=C:/path_to/OpenCV_4.9.0/build -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --config Release
```
可选:在 `cmake --build .` 之前编辑 cuda 目标(仅在需要时)
C:/path_to/OpenSplat/build/gsplat.vcxproj
例如:arch=compute_75,code=sm_75
### macOS
如果你使用的是 [Homebrew](https://brew.sh),可以通过运行以下命令安装 Cmake/OpenCV/Pytorch:
```
brew install cmake
brew install opencv
brew install pytorch
```
你还需要安装 Xcode 和 Xcode 命令行工具以编译 metal 支持(否则,OpenSplat 将仅使用 CPU 加速进行构建):
1. 从 Apple App Store 安装 Xcode。
2. 使用 `xcode-select --install` 安装命令行工具。这对你的机器可能没有任何作用。
3. 如果 `xcode-select --print-path` 输出 `/Library/Developer/CommandLineTools`,则运行 `sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer`。
然后运行:
```
git clone https://github.com/pierotofy/OpenSplat OpenSplat
cd OpenSplat
mkdir build && cd build
cmake -DCMAKE_PREFIX_PATH=/path/to/libtorch/ -DGPU_RUNTIME=MPS .. && make -j$(sysctl -n hw.logicalcpu)
./opensplat
```
如果仅构建 CPU 版本,移除 `-DGPU_RUNTIME=MPS`。
:warning: 首次运行时,你可能会遇到 *libc10.dylib can’t be opened because Apple cannot check it for malicious software* 错误。打开 **系统设置**,前往 **隐私与安全性**,找到 **允许** 按钮。你可能需要重复此操作几次,直到加载完所有 torch 库。
:warning: 如果你遇到 *Library not loaded: @rpath/libomp.dylib* 错误,请尝试在运行 OpenSplat 之前执行 `brew link libomp --force`。
## Docker 构建
### CUDA
导航到包含 Dockerfile 的 OpenSplat 仓库根目录,并运行以下命令来构建 Docker 镜像:
```
docker build -t opensplat .
```
`-t` 标志和其他 `--build-arg` 允许你在不同的 ubuntu 版本、CUDA/libtorch 堆栈和硬件加速器之间标记并进一步自定义你的镜像。
例如,要构建一个包含 Ubuntu 22.04、CUDA 12.1.1、libtorch 2.2.1 并支持 CUDA 架构 7.0 和 7.5 的镜像,请运行以下命令:
```
docker build \
-t opensplat:ubuntu-22.04-cuda-12.1.1-torch-2.2.1 \
--build-arg UBUNTU_VERSION=22.04 \
--build-arg CUDA_VERSION=12.1.1 \
--build-arg TORCH_VERSION=2.2.1 \
--build-arg CMAKE_CUDA_ARCHITECTURES="70;75;80" \
--build-arg CMAKE_BUILD_TYPE=Release .
```
### 通过 HIP 实现 ROCm
导航到包含 Dockerfile 的 OpenSplat 仓库根目录,并运行以下命令来构建 Docker 镜像:
```
docker build \
-t opensplat \
-f Dockerfile.rocm .
```
`-t` 标志和其他 `--build-arg` 允许你在不同的 ubuntu 版本、CUDA/libtorch 堆栈和硬件加速器之间标记并进一步自定义你的镜像。
例如,要构建一个包含 Ubuntu 22.04、CUDA 12.1.1、libtorch 2.2.1、ROCm 5.7.1 并支持 ROCm 架构 gfx906 的镜像,请运行以下命令:
```
docker build \
-t opensplat:ubuntu-22.04-cuda-12.1.1-libtorch-2.2.1-rocm-5.7.1-llvm-16 \
--build-arg UBUNTU_VERSION=22.04 \
--build-arg CUDA_VERSION=12.1.1 \
--build-arg TORCH_VERSION=2.2.1 \
--build-arg ROCM_VERSION=5.7.1 \
--build-arg PYTORCH_ROCM_ARCH="gfx906" \
--build-arg CMAKE_BUILD_TYPE=Release .
```
注意:如果你想使用 ROCm 6.x,你需要切换到 AMD 版本的 pytorch docker 作为基础层来构建:
```
docker build \
-t opensplat:ubuntu-22.04-libtorch-2.1.2-rocm-6.0.2 \
-f Dockerfile.rocm6 .
```
## 运行
首先,下载数据集并将其解压到一个文件夹中:[ [banana](https://drive.google.com/file/d/1mUUZFDo2swd6CE5vwPPkjN63Hyf4XyEv/view?usp=sharing) ] [ [truck](https://drive.google.com/file/d/1WWXo-GKo6d-yf-K1T1CswIdkdZrBNZ_e/view?usp=sharing) ]
然后在命令行提示符下运行:
### Windows
```
cd c:\path\to\opensplat
opensplat.exe c:\path\to\banana -n 2000
```
### macOS / Linux
```
cd build
./opensplat /path/to/banana -n 2000
```
程序将生成一个输出的 `splat.ply` 文件,该文件可以拖放到许多[查看器](https://github.com/MrNeRF/awesome-3D-gaussian-splatting?tab=readme-ov-file#viewers)中的一个,例如 https://playcanvas.com/viewer。你也可以使用 https://playcanvas.com/supersplat/editor 来编辑/清理场景。程序还会在同一目录下输出一个 `cameras.json` 文件,供某些查看器使用。
要运行你自己的数据,请选择一个现有的 [COLMAP](https://colmap.github.io/)、[OpenSfM](https://github.com/mapillary/OpenSfM)、[ODM](https://github.com/OpenDroneMap/ODM) 或 [nerfstudio](https://docs.nerf.studio/quickstart/custom_dataset.html) 项目的路径。该项目必须包含稀疏点(不支持随机初始化,见 https://github.com/pierotofy/OpenSplat/issues/7)。
有几个参数你可以调整。要查看完整列表:
```
./opensplat --help
```
### Google Colab
要在 Google Colab 中运行 OpenSplat,请遵循此[示例笔记本](https://colab.research.google.com/drive/1USqQsIBcqdOP6Fy0aVAyoXzTdpaEoTL_)。
### 压缩
要生成压缩的 splats(.splat 文件),请使用 `-o` 选项:
```
./opensplat /path/to/banana -o banana.splat
```
### 恢复
你可以使用 `--resume` 选项来恢复 .PLY 文件的训练:
```
./opensplat /path/to/banana --resume ./splat.ply
```
### AMD GPU 说明
要使用 docker 容器在 AMD GPU 上训练模型,你可以参考以下命令:
1. 使用以下命令启动 docker 容器:
```
docker run -it -v ~/data:/data --device=/dev/kfd --device=/dev/dri opensplat:ubuntu-22.04-libtorch-2.1.2-rocm-6.0.2 bash
```
2. 在 docker 容器内,运行以下命令来训练模型:
```
export HIP_VISIBLE_DEVICES=0
export HSA_OVERRIDE_GFX_VERSION=10.3.0 # AMD RX 6700 XT workaround
cd /code/build
./opensplat /data/banana -n 2000
```
## 项目目标
我们最近发布了 OpenSplat,所以还有很多工作要做。
* 支持在 AMD 显卡上运行(需要更多测试)
* 提高速度 / 减少内存使用
* 使用多台机器进行分布式计算
* 实时训练查看器输出
* 自动过滤
* 你的想法?
https://github.com/pierotofy/OpenSplat/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement
## GPU 内存说明
单个高斯大约占用 ~2000 字节的内存,因此目前每百万个高斯大约需要 ~2GB 的 GPU 内存。
## 致谢
OpenSplat 中使用的方法最初基于 [splatfacto](https://docs.nerf.studio/nerfology/methods/splat.html)。
## 许可证
本仓库中的代码,除非另有说明,否则根据 AGPLv3 授权。
来自 [splatfacto](https://docs.nerf.studio/nerfology/methods/splat.html) 的代码最初根据 Apache 2.0 许可证授权,并归 © 2023 The Nerfstudio Team 所有。标签:3D Gaussian Splatting, 3D高斯泼溅, 4DGeoMap, AGPLv3, Bash脚本, C++, COLMAP, CPU渲染, CUDA, Mac, Metal, OpenSfM, PLY文件, SLAM, Vectored Exception Handling, 三维重建, 凭据扫描, 场景重建, 安全工具测试, 开源, 摄影测量, 数据擦除, 模型生成, 点云, 神经渲染, 计算机图形学, 计算机视觉, 请求拦截