The detailed setting of each step on GauU-Scene and MatrixCity Dataset can be found in ./scripts/run_citygs_SCENE.sh
.
- If applying 3DGS, please change model and renderer as done in
configs/citygs_lfls_sh2_trim.yaml
overconfigs/citygsv2_lfls_sh2_trim.yaml
. - To obtain full model, adjust SH degree to 3 and enable
diable_trimming
in renderer. - You can also run on Mill19 or UrbanScene3D dataset by setting configs according to that of branch V1-Original.
# $COARSE_NAME is the name of coarse model training config file.
python main.py fit \
--config configs/$COARSE_NAME.yaml \
-n $COARSE_NAME \
# $NAME is the name of parallel tuning config file.
# to partition in contracted space, add `--contract`
# to partition after xy plane is aligned to ground plane, add `--reorient`
python utils/partition_citygs.py --config_path configs/$NAME.yaml --force
The command also visualizes block division and data partitioning, as like below:
python utils/train_citygs_partitions.py -n $NAME
python utils/merge_citygs_ckpts.py outputs/$NAME
# For finetuned model, since the split mode and eval ratios are changed for per-block tuning, the parameters have to be reappointed. Please see the script for details.
python main.py test \
--config outputs/$NAME/config.yaml \
--save_val \
--test_speed \ # calculate FPS
python utils/gs2d_mesh_extraction.py \
outputs/$NAME \
--voxel_size $VOXEL_SIZE \
--sdf_trunc $SDF_TRUNC \
--depth_trunc $DEPTH_TRUNC \
python tools/eval_tnt/run.py \
--scene your_gt_pcd \
--dataset-dir data/geometry_gt/your_scene \
--transform-path data/geometry_gt/your_scene/transform.txt \
--ply-path "outputs/$NAME/fuse_post.ply"
python tools/vectree_lightning.py \
--model_path outputs/$NAME \
--save_path outputs/$NAME/vectree \
If you use SH degree of 2, please add --sh_degree 2
. And if you want to decode the quantized result to checkpoint, add --no_save_ply
. If 3DGS is used, add --gs_dim 3
.