Mip-Splatting复现小记
Paper:2311.16493.pdf (arxiv.org)
Code:GitHub - autonomousvision/mip-splatting: Mip-Splatting: Alias-free 3D Gaussian Splatting
步骤
Step1:拉取code
git clone git@github.com:autonomousvision/mip-splatting.git
Step2:数据集
DataSet1:NeRF官方数据集nerf_synthetic文件夹 - Google 云端硬盘(1.56GB)
预处理数据:
python convert_blender_data.py --blender_dir nerf_synthetic/ --out_dir multi-scale 处理后数据输出到Multi-scale文件夹
DataSet2:Mip-NeRF360mip-NeRF 360 (jonbarron.info)
Step3:环境配置
①创建conda环境 conda create -y -n mip-splatting python=3.8 ②激活 conda activate mip-splatting ③安装适合自己电脑的pytorch和cuda pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 conda install cudatoolkit=11.3 -c conda-forge ④安装剩余环境 pip install -r requirements.txt pip install submodules/diff-gaussian-rasterization pip install submodules/simple-knn/
Step4:训练和预测
# single-scale training and single-scale testing on NeRF-synthetic dataset python scripts/run_nerf_synthetic_stmt.py # multi-scale training and multi-scale testing on NeRF-synthetic dataset python scripts/run_nerf_synthetic_mtmt.py # single-scale training and single-scale testing on the mip-nerf 360 dataset python scripts/run_mipnerf360.py # single-scale training and multi-scale testing on the mip-nerf 360 dataset python scripts/run_mipnerf360_stmt.py
我直接运行脚本控制台一直等待,无任何输出
检查GPU状态和cuda都可用
直接用下面的命令直接手动训练
训练train.py set OMP_NUM_THREADS=4 set CUDA_VISIBLE_DEVICES=0,1 python train.py -s multi-scale/lego -m output/lego --eval --white_background --port 6209 --kernel_size 0.1 #输入是预处理的场景multi-scale/lego #输出是训练过的点云数据output/lego 渲染render.py python render.py -m {output_dir}/{scene} -r {scale} --data_device cpu --skip_train 评估指标metrics.py python metrics.py -m {output_dir}/{scene}
训练过程:
评估过程:
输出至output文件夹
3D 平滑滤波器融合到高斯参数
python create_fused_ply.py -m {model_dir}/{scene} --output_ply fused/{scene}_fused.ply"
viewer:Mip-Splatting Viewer Examples (niujinshuchong.github.io)(google打开)
上传ply文件即可渲染