DekuLiuTesla / CityGaussian

[ECCV2024] CityGaussian: Real-time High-quality Large-Scale Scene Rendering with Gaussians
https://dekuliutesla.github.io/citygs/
Other
329 stars 18 forks source link

How to use custom dataset #3

Closed nurbanu170399 closed 4 weeks ago

nurbanu170399 commented 1 month ago

There are no instructions on how to use custom dataset. Would appreciate one. For example, i have a folder named "stadium": ├── stadium/ │ ├── train/ │ │ ├── sparse/ │ │ │ ├── cameras.bin │ │ │ ├── images.bin │ │ │ └── points3D.bin │ │ └── images/ │ └── val/ │ │ ├── sparse/ │ │ │ ├── cameras.bin │ │ │ ├── images.bin │ │ │ └── points3D.bin │ │ └── images/ How do i edit the COARSE_CONFIGand CONFIG, Themax_block_id, out_name, and TEST_PATH in run_citygs.sh according to my data? Thanks for your work.

ArSpi commented 1 month ago

the same question.

DekuLiuTesla commented 1 month ago

Hi, thanks for your feedback. I'm planning to add a detailed instruction to repo. Here are some tips:

  1. For COARSE_CONFIG, you can copy from our config/rubble_coarse.yaml, then change source_path to /path/to/stadium/train and resolution to -1 for 1K rendering.
  2. For CONFIG, you can copy from config/rubble_c9_r4.yaml, then similarly change source_path and resolution as step 1. You can also adjust partition_name to the one you like. pretrain_path should point to the trained result of your COARSE_CONFIG. We set block_dim according to length-width ratio of interested area. For instance, if you want to reconstruct a building and it's around 800m x 600m, then you can use a block dimension of 4 x 3 x 1 (Suppose z is height dimension).
  3. For max_block_id, suppose that you have a block dimension of M x N x S, then max_block_id=M*N*S-1.
  4. For TEST_PATH, it should be set to path/to/stadium/val in this case.
  5. For out_name, if you use resolution=-1, then it is the name of test set, i.e. out_name="val". If you specify resolution to $r, out_name would be val_$r. For instance, if you use resolution 2, then out_name="val_2".

Hope these tips can help you. If you have any other questions, please let me know ^_^.

ArthurXu0101 commented 1 month ago

Hi there, I got some questions about LoD part. I wonder what 's the next step after merging parallel blocks, i.e., I followed the scripts but when calling render_large_lod.py, it went wrong with failing to find "output/datasetname_40_vq". I noticed that there is a "compress" operation in the LoD illustration figure, but I couldn't find coreesponding function. In addition, the config file config/datasetname_lod.yaml contains 'lod_configs' param in model_params, which I assume is needed to run render_large_lod.py. So how should 'lod_configs' be prepared, perhaps with a 'compress' operation? I am using a custom colormap dataset stuructured like: xxx_COLMAP

DekuLiuTesla commented 4 weeks ago

Hi, thanks for your feedback. I'm planning to add a detailed instruction to repo. Here are some tips:

  1. For COARSE_CONFIG, you can copy from our config/rubble_coarse.yaml, then change source_path to /path/to/stadium/train and resolution to -1 for 1K rendering.
  2. For CONFIG, you can copy from config/rubble_c9_r4.yaml, then similarly change source_path and resolution as step 1. You can also adjust partition_name to the one you like. pretrain_path should point to the trained result of your COARSE_CONFIG. We set block_dim according to length-width ratio of interested area. For instance, if you want to reconstruct a building and it's around 800m x 600m, then you can use a block dimension of 4 x 3 x 1 (Suppose z is height dimension).
  3. For max_block_id, suppose that you have a block dimension of M x N x S, then max_block_id=M*N*S-1.
  4. For TEST_PATH, it should be set to path/to/stadium/val in this case.
  5. For out_name, if you use resolution=-1, then it is the name of test set, i.e. out_name="val". If you specify resolution to $r, out_name would be val_$r. For instance, if you use resolution 2, then out_name="val_2".

Hope these tips can help you. If you have any other questions, please let me know ^_^.

@nurbanu170399 @ArSpi The instruction has been updated to repo. Please check it.