yanyan-li / GeoGaussian

GeoGaussian: Geometry-aware Gaussian Splatting for Scene Rendering
Other
121 stars 6 forks source link

About clone and split, where is the code relate to your algorithm?? #9

Open xxxrc4 opened 1 month ago

xxxrc4 commented 1 month ago

Debugging your code, i have not found the code about your clone and split algorithm, where is it?? In /scene/gaussian_model.py, line 492 is the function def densify_and_split(self, grads, grad_threshold, scene_extent, N=2): line 505 new_xyz = torch.bmm(rots, samples.unsqueeze(-1)).squeeze(-1) + self.get_xyz[selected_pts_mask].repeat(N, 1), it is the same with the original 3dgs, and line 522 def densify_and_clone(self, grads, grad_threshold, scene_extent): line 538 new_xyz[new_type.squeeze() == 1] += self.position_gradient_accum[selected_pts_mask] / self.denom[selected_pts_mask] the new position of insert gs is only adding average gradient of selected one, have not the code related to equation 4 implemented in your paper.

Please tell me why, and where is the implementation? Thank you.

fred-lyu commented 1 month ago

First, since our thin Gaussian points are approximately planar, and secondly, we will constrain the nearest neighbor thin Gaussian coplanar, so we can guarantee that Gaussian will still be generated in the tangent space during our clone。Due to the planarity of thin Gaussian, new points sampled randomly inside Gaussian are still generated in tangent space during our split .

Zhentao-Liu commented 4 days ago

It seems that the paper descriptions are not relevant to your code. Could you explain your insight in more details?