最近两周一直在折腾AI和web三维的结合,先梳理一下 高斯溅射 的最佳实践吧, 下篇文章再增加 图片生成模型的 混元3D的AI模型
首先,大家可以看看 在tvt.js中 展示 三维高斯溅射 3DGS 的落地展示:
gaussianSplatting
nerf.studio
https://docs.nerf.studio/index.html
可以辅助这个视频:
https://www.youtube.com/watch?v=3JIpZd5XNAc
参考安装方法:https://docs.nerf.studio/quickstart/installation.html
我本人机器使用的 window10、Visual Studio 2022、MSVC 143 17.8、CUDA11.8
强调一下,AI对环境要求是很高,版本必须和要去的一一对应
set TCNN_CUDA_ARCHITECTURES=86
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
set CUDAVER=11.8
set CUDA_HOME=%CONDA_PREFIX%
set CUDA_ROOT=%CONDA_PREFIX%
set PATH=%CONDA_PREFIX%\Library\bin;%PATH%
set LD_LIBRARY_PATH=%CONDA_PREFIX%\Library\lib;%LD_LIBRARY_PATH%
set LD_LIBRARY_PATH=%CONDA_PREFIX%\Library\lib64;%LD_LIBRARY_PATH%
set CUDA_HOST_COMPILER=C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.38.33130\bin\Hostx64\x64\cl.exe
conda create --name nerfstudio -y python=3.9
conda activate nerfstudio
python -m pip install --upgrade pip
pip uninstall torch torchvision functorch tinycudann
pip install torch==2.1.2+cu118 torchvision==0.16.2+cu118 --extra-index-url https://download.pytorch.org/whl/cu118
conda install -c "nvidia/label/cuda-11.8.0" cuda-toolkit
pip install git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch
pip install nerfstudio
同样可以辅助这个视频:
https://www.youtube.com/watch?v=LhAa1B9CFeY
# 下载测试数据集
ns-download-data nerfstudio --capture-name=poster
# 如果想要用 自己的数据 详见:
# https://docs.nerf.studio/quickstart/custom_dataset.html#images-or-video
# 训练测试数据集
ns-train splatfacto --data data/nerfstudio/poster
# 查看训练结果
ns-viewer --load-config {outputs/.../config.yml}
# 导出文件
ns-export gaussian-splat --load-config {outputs/.../config.yml} --output-dir {path/to/directory}
通过https://superspl.at/editor在线编辑器,直接进行修改和裁切
ply点云文件转glb
# pip install trimesh pygltflib
import trimesh
# 加载 PLY 文件
mesh = trimesh.load("model.ply")
# 导出为 GLB 文件
mesh.export("model.glb")
3D Gaussian Splatting to Point Cloud (or Mesh)
https://github.com/Lewis-Stuart-11/3DGS-to-PC
之前也使用了另外一个高斯溅射的库:
https://github.com/graphdeco-inria/gaussian-splatting
方法大致相同,只是更新的慢了,也推荐一下
有国人做的教程:https://www.bilibili.com/video/BV1Nz421o71Q
但是不推荐了