Open AutoSenseTech opened 4 months ago
Hi, the original 3DGS initializes the size of the Gaussians by using the 3D chamfer distance between points (which can be slow). Essentially, this initialization aims to make Gaussians near the camera smaller and make them larger as you move farther away from the camera.
Another fast and correct way of doing this is to use projective geometry, where the scale/size of Gaussian can be obtained by using the point's depth and the camera's focal length.
The means2D param computes the Gaussian's movement in the image space, which is then used to determine whether the Gaussian should be further split in the densification scheme. This is a parameter from the original 3D Gaussian Splatting. https://github.com/spla-tam/SplaTAM/blob/da6bbcd24c248dc884ac7f49d62e91b841b26ccc/utils/gs_external.py#L191
I have a question about the code:
mean_sq_dist_method
is set to 'projective'. What is the purpose of using 'projective'?variables['means2D']
in the code? Aren't we passing 3D coordinates for rendering? Why do we need to calculate the gradient ofmeans2D
?"Let me know if you need further assistance or explanations.