gsplat icon indicating copy to clipboard operation
gsplat copied to clipboard

[DRAFT] Gaussian Opacity Fields implementation

Open niujinshuchong opened this issue 1 year ago • 5 comments

Implementation of Gaussian Opacity Fields. Training and testing works.

Benchmark results on Mip-NeRF 360 dataset.

PSNR SSIM LPIPS num_GS (M)
classic 28.989 0.871 0.136 3.23
GOF 28.843 0.867 0.140 3.08
GOF + depth-normal consitency 28.616 0.865 0.142 3.08

Visual comparison: without depth-normal consistency Screenshot from 2024-07-16 16-25-49 and with depth-normal consistency Screenshot from 2024-07-16 16-25-56 Left: rendered normal. right: normal from depth.

Extracted Mesh: ScreenCapture_2024-07-23-15-15-28

ScreenCapture_2024-07-23-15-15-54

TODO:

  • [x] Mesh extraction
  • [ ] Clean up
  • [ ] Documation

niujinshuchong avatar Jul 16 '24 14:07 niujinshuchong

Hi,

I am trying to extract mesh in the gsplat module and have written some functions for this purpose, but I am encountering some bugs. Could you please guide me on how to better implement this feature? Any suggestions or example code would be greatly appreciated.

Thank you!

Bugs: TSDF open3d function: image

KuoFengYuan avatar Jul 24 '24 10:07 KuoFengYuan

@GuoFengYung You can refer to https://github.com/autonomousvision/gaussian-opacity-fields/blob/main/extract_mesh_tsdf.py for mesh extraction with TSDF. However, TSDF is not good at extracting fine detailed geometry or extracting the mesh at background regions. I just implemented GOF's tetrahedra meshing in this PR. You can try the latest code.

niujinshuchong avatar Jul 25 '24 10:07 niujinshuchong

@GuoFengYung You can refer to https://github.com/autonomousvision/gaussian-opacity-fields/blob/main/extract_mesh_tsdf.py for mesh extraction with TSDF. However, TSDF is not good at extracting fine detailed geometry or extracting the mesh at background regions. I just implemented GOF's tetrahedra meshing in this PR. You can try the latest code.

Thanks for your reply!! I will try it

KuoFengYuan avatar Jul 25 '24 13:07 KuoFengYuan

Appreciate your amazing work!

I'm curious about how to proceed with from tetranerf.utils.extension import cpp. Would I need to clone and install the Tetranerf myself, or is there like a more convenient approach?

KohsukeIde avatar Sep 21 '24 16:09 KohsukeIde

@KohsukeIde You can install it from https://github.com/autonomousvision/gaussian-opacity-fields/tree/main/submodules/tetra-triangulation

niujinshuchong avatar Sep 22 '24 12:09 niujinshuchong