[Project Page | arXiv] | Model
GGRt: Towards Pose-free Generalizable 3D Gaussian Splatting in Real-time,
Official implementation of "GGRt: Towards Pose-free Generalizable 3D Gaussian Splatting in Real-time".
π οΈ Pipeline
Installation
git clone https://github.com/dcharatan/diff-gaussian-rasterization-modified pip install -e ./diff-gaussian-rasterization-modified
Data Preparation
For LLFF dataset, please follow the ibrnet. For Waymo dataset, please download the data from EmerNeRF.
The data structure is as follows:
data βββ ibrnet β βββ train β β βββ real_iconic_noface β β β βββ airplants β β β βββ ... β β βββ ibrnet_collected_1 β β β βββ ... β β βββ ibrnet_collected_2 β β β βββ ... β βββ train βββ nerf_llff_data β βββ fern β βββ room β βββ ... βββ waymo β βββ training β β βββ 139 β β βββ 140 β β βββ ... β βββ testing β β βββ 003 β β βββ 019 β β βββ ...
On LLFF Dataset
we provide launch.json formatted for debugging.
Generalizable Training
{
"env": {
"CUDA_VISIBLE_DEVICES": "0",
"PYTHONPATH": "${workspaceFolder}"
},
"name": "generalize:ggrt-llff",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/train_ggrt_stable.py",
"console": "integratedTerminal",
"justMyCode": false,
"args": [
"++rootdir=data/ibrnet/train",
"+ckpt_path=model_zoo/generalized_llff_best.pth",
"++train_dataset=llff",
"++eval_dataset=llff",
"++num_source_views=4",
"++expname=generalizable_llff",
"++use_depth_loss=False",
"++use_pred_pose=True",
"++render_video=False",
"++crop_size=2",
]
},Finetune on Sepcific Scenes
{
"env": {
"CUDA_VISIBLE_DEVICES": "0",
"PYTHONPATH": "${workspaceFolder}"
},
"name": "finetune:ggrt-waymo",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/finetune_ggrt_stable.py",
"console": "integratedTerminal",
"justMyCode": false,
"args": [
"++rootdir=data/ibrnet/train",
"+ckpt_path=model_zoo/generalized_llff_best.pth",
"++train_dataset=llff_test",
"++eval_dataset=llff_test",
"++eval_scenes=[fern]",
"++train_scenes=[fern]",
"++num_source_views=4",
"++expname=ft_llff_fern",
"++use_depth_loss=False",
"++use_pred_pose=True",
"++render_video=False",
"++crop_size=2",
]
},Evaluation
{
"env": {
"CUDA_VISIBLE_DEVICES": "7",
"PYTHONPATH": "${workspaceFolder}"
},
"name": "test:ggrt-llff",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/eval/eval_ggrt.py",
"console": "integratedTerminal",
"justMyCode": false,
"args": [
"++rootdir=data/ibrnet/eval",
"+ckpt_path=model_zoo/generalized_llff_best.pth",
"++train_dataset=llff_test",
"++train_scenes=[fern]",
"++eval_dataset=llff_test",
"++eval_scenes=[fern]",
"++num_source_views=5",
"++render_video=False",
"++expname=generalizable_llff_fern",
]
}On Waymo Dataset
Generalizable Training
{
"env": {
"CUDA_VISIBLE_DEVICES": "0",
"PYTHONPATH": "${workspaceFolder}"
},
"name": "generalize:ggrt-waymo",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/train_ggrt_stable.py",
"console": "integratedTerminal",
"justMyCode": false,
"args": [
"++rootdir=data/ibrnet/train",
"+ckpt_path=model_zoo/generalized_waymo_best.pth",
"++train_dataset=waymo",
"++eval_dataset=waymo",
"++eval_scenes=[019]",
"++num_source_views=4",
"++expname=ft_waymo_019",
"++use_depth_loss=False",
"++use_pred_pose=True",
"++render_video=False",
"++crop_size=2",
]
},Finetune on Sepcific Scenes
{
"env": {
"CUDA_VISIBLE_DEVICES": "0",
"PYTHONPATH": "${workspaceFolder}"
},
"name": "finetune:ggrt-waymo",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/finetune_ggrt_stable.py",
"console": "integratedTerminal",
"justMyCode": false,
"args": [
"++rootdir=data/ibrnet/train",
"+ckpt_path=model_zoo/generalized_waymo_best.pth",
"++train_dataset=waymo",
"++eval_dataset=waymo",
"++eval_scenes=[019]",
"++train_scenes=[019]",
"++num_source_views=4",
"++expname=ft_waymo_019",
"++use_depth_loss=False",
"++use_pred_pose=True",
"++render_video=False",
"++crop_size=2",
]
},Evaluation
{
"env": {
"CUDA_VISIBLE_DEVICES": "7",
"PYTHONPATH": "${workspaceFolder}"
},
"name": "test:ggrt-waymo",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/eval/eval_ggrt.py",
"console": "integratedTerminal",
"justMyCode": false,
"args": [
"++rootdir=data/ibrnet/eval",
"+ckpt_path=model_zoo/generalized_waymo_best.pth",
"++train_dataset=waymo",
"++train_scenes=[019]",
"++eval_dataset=waymo",
"++eval_scenes=['019']",
"++num_source_views=5",
"++render_video=False",
"++expname=opensource",
"++dataset_root_eval=data/waymo/testing", // ζ΅θ―ιθ·―εΎ
]
}