无需COLMAP的3D高斯散射
杨甫
·
刘思飞
·
Amey Kulkarni
·
Jan Kautz
Alexei A. Efros
·
王晓龙
论文 | 视频 | 项目主页
安装
(推荐)
代码已在Python 3.10和CUDA>=11.6上进行测试。安装所有依赖项的最简单方法是使用anaconda和pip,按以下步骤操作:
conda create -n cf3dgs python=3.10
conda activate cf3dgs
conda install conda-forge::cudatoolkit-dev=11.7.0
conda install pytorch==2.0.0 torchvision==0.15.0 pytorch-cuda=11.7 -c pytorch -c nvidia
git clone --recursive git@github.com:NVlabs/CF-3DGS.git
pip install -r requirements.txt
数据集准备
默认数据根目录为./data
。请先通过mkdir data
创建数据文件夹。
Tanks and Temples
下载由Nope-NeRF预处理的数据,如下所示,并将数据保存到./data/Tanks
文件夹中。
wget https://www.robots.ox.ac.uk/~wenjing/Tanks.zip
CO3D
下载我们预处理的数据,并将其保存到./data/co3d
文件夹中。
运行
训练
python run_cf3dgs.py -s data/Tanks/Francis \ # 更改场景路径
--mode train \
--data_type tanks
评估
# 姿态估计
python run_cf3dgs.py --source data/Tanks/Francis \
--mode eval_pose \
--data_type tanks \
--model_path ${CKPT_PATH}
# 默认情况下,检查点应存储在"./output/progressive/Tanks_Francis/chkpnt/ep00_init.pth"
# 新视角合成
python run_cf3dgs.py --source data/Tanks/Francis \
--mode eval_nvs \
--data_type tanks \
--model_path ${CKPT_PATH}
我们发布了一些新视角合成结果(gdrive)以供未来工作进行比较。
在自己的视频上运行
-
要在自己的视频上运行CF-3DGS,首先需要将视频转换为帧并保存到
./data/$CUSTOM_DATA/images/
-
相机内参可以通过运行COLMAP获得(查看
convert.py
中的详细信息)。否则,我们提供了一个启发式相机设置,适用于大多数风景视频。 -
运行以下命令:
python run_cf3dgs.py -s ./data/$CUSTOM_DATA/ \ # 更改为您的数据路径
--mode train \
--data_type custom
致谢
我们的渲染基于3DGS构建。数据处理和可视化代码部分借鉴自Nope-NeRF。我们感谢所有作者提供的出色仓库。
引用
如果您觉得这份代码有帮助,请引用:
@InProceedings{Fu_2024_CVPR,
author = {Fu, Yang and Liu, Sifei and Kulkarni, Amey and Kautz, Jan and Efros, Alexei A. and Wang, Xiaolong},
title = {COLMAP-Free 3D Gaussian Splatting},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2024},
pages = {20796-20805}
}