Misalignment of Splatfacto's hyperparameter and VanillaGS's hyperparameter
Opened this issue · 0 comments
Sunnyhong0326 commented
Describe the bug
Hi, I am tracing the code of Splatfacto and find out that some hyperparmeters does not align with the original Vanilla GS
Here is an example of misalignment of Splatfacto's hyperparameter and VanillaGS's hyperparameter:
VanillaGS's self.percent_dense: https://github.com/graphdeco-inria/gaussian-splatting/blob/8a70a8cd6f0d9c0a14f564844ead2d1147d5a7ac/scene/gaussian_model.py#L356
Splatfacto's densify_size_threshold:
nerfstudio/nerfstudio/models/splatfacto.py
Line 460 in 9b3cbc7
In nerfstudio 1.1.4, Splatfacto's hyperparameter also does not align (scene_scale hard_coded to 1) :
nerfstudio/nerfstudio/models/splatfacto.py
Line 332 in 516fd7c
The hyperparameter of self.percent_dense and densify_size_threshold is the same (value = 0.01), but VanillaGS's splitting and cloning threshold is actually self.percent_dense*scene_extent (from above link)
In splatfacto, the threshold does not multiply scene_extent. I think it is because it assumes that the scene is normalized to -1 and 1 (default setting auto scales camera poses to -1 and 1 so scene_extent is 1)
However, in my application, I do not want to auto scale poses, so scene_extent is not 1 and results in the threshold does not align the VanillaGS.