Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Configuration parameters #25

Open
ming82871 opened this issue Jul 24, 2023 · 2 comments
Open

Configuration parameters #25

ming82871 opened this issue Jul 24, 2023 · 2 comments

Comments

@ming82871
Copy link

Hi!
Thanks for your excellent work! We intend to evaluate some other datasets with the code which you have provided. Therefore, we need to reconstruct the config file following your code example. We found that these parameters, especially the bounding box, learning rate, and loss weight, significantly impact rendering and reconstruction in tracking and mapping thread, even if the GT pose is given. Can you give me some suggestions or experience about the details of parameter configuration for the new dataset such as ETH3D (how to fine-tune the parameter on the new indoor dataset)?
Thanks!

@HengyiWang
Copy link
Owner

Hi @ming82871, thanks for using our code. I will try to give you some suggestions for tuning the parameters.

  1. Bounding box: The requirement of the bounding box is to cover the target object/scene. We usually use the pre-defined voxel size to construct the feature grid. Thus, the bounding box size usually will not affect the results that much. However, if you make the bounding box too large, then you may need to increase the hash table size and the dimension of oneblob encoding as well. Another notable thing is that for the TUM dataset, sometimes the background wall is quite far away from the target table, and the depth measurements are quite noisy there. Setting a smaller bounding box can be helpful in that case, but we did not do that in our experiments. (We did not take effort into outlier handling, e.g., rejecting pixels that have large re-render errors. However, this is quite important if you want to apply Co-SLAM for some challenging scenes) You can use the jupyter notebook here https://github.com/HengyiWang/Co-SLAM/blob/main/vis_bound.ipynb to help you set the bounding box if you have gt pose. Otherwise, you need to estimate the bounding on your own.

  2. Learning rate and loss weight are usually tuned for different camera settings and scenes. For example, the TUM dataset has a rolling shatter effect, thus, we have to down-weight the color loss and increase the weight of the SDF loss. Also, the TUM dataset usually focuses on smaller objects instead of indoor scene reconstruction, so a smaller truncation distance is needed. In terms of learning rate, there are learning rates for parametric encoding, decoder, and pose parameters. We set lr_embed=lr_decoder=0.01 for all experiments (There is an interesting thing here. If you set lr_embed=0.001, then coordinate encoding will be dominating and give you some smooth results and vice versa.) In terms of the pose parameters, we observe that 0.001 is usually the most generalizable for room-scale scene reconstruction.

I would always suggest trying out the config file of ScanNet first as the setting there will be mostly generalizable to other room-scale scenes.

Please feel free to ask if you need more clarifications (Also, it would be helpful if you can share your problems more in detail).

@HengyiWang
Copy link
Owner

Also, please note there is a documentation that contains the details of each hyper-parameters here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants