Jumpat / SegAnyGAussians

The official implementation of SAGA (Segment Any 3D GAussians)
Apache License 2.0
543 stars 39 forks source link

Export the segmented 3D into the .ply file? #91

Open engrkhurramshabbir opened 1 month ago

engrkhurramshabbir commented 1 month ago

Thanks for sharing your valuable work. Is it possible to export the segmented 3D into the .ply file?

Jumpat commented 1 month ago

Of course. After run .segment() (in render.py you can find the function), the gaussian_model is the segmented 3D object(s). Then, you can simply save it as a common 3D-GS Gaussian model.

engrkhurramshabbir commented 1 month ago

Unfortunately, I am unable to get any .ply file after running the render.py code. I am using PCA and 3D Cluster to save the precomputed_mask.pt Untitled

But when I execute "python render.py -m output/ae32a2ba-a --precomputed_mask segmentation_res/precomputed_mask.pt --target scene --segment" I don't get any .ply file which has the 3D segmentation information as shown in above attached picture in the GUI. Moreover, the 2D rendered images are also RGB and do have any segmentation information.

Jumpat commented 1 month ago

Yeah. First, I haven't provided the function to store the PCA and 3D cluster results. You may need to implement it as you like since there may be many possible storing forms.

To store the segmented object(s) as a 3D-GS ply file, render.py only provides a sample about calling the .segment() function. To store the segmented Gaussian model, you need to add scene.save(scene.loaded_iter, target='seg_no_mask') after calling .segment().

Jumpat commented 1 month ago

Hints: If you just want to save the PCA colors as Gaussian colors, you can just find this color in the GUI code (l1, l2) and replace the original point color with the PCA color and call this.

Note that the pca decomposition is conducted on rendered feature. If you want to save it as 3D Gaussian point you need to conduct the projection on point features instead.