Anttwo / SuGaR

[CVPR 2024] Official PyTorch implementation of SuGaR: Surface-Aligned Gaussian Splatting for Efficient 3D Mesh Reconstruction and High-Quality Mesh Rendering
https://anttwo.github.io/sugar/
Other
2.36k stars 182 forks source link

Why am I not generating a mesh using the following command? #216

Open asalan570 opened 2 months ago

asalan570 commented 2 months ago

command: python train_full_pipeline.py -s /mnt/d/Project/res-gaussian/data/ggbond/ -r dn_consistency --high_poly True -t True

image

The [coarse_mesh/ggbond] directory has no files.

Finally, I tried the following command without generating any mesh:

python extract_mesh.py -s /mnt/d/Project/res-gaussian/data/ggbond/ -c ./output/vanilla_gs/ggbond/ -m /opt/project/SuGaR/output/coarse/ggbond/xxxx/15000.pt -o /opt/project/SuGaR/output/coarse_mesh/ggbond/

The following is the log information:

/opt/project/SuGaR/sugar_extractors/coarse_mesh.py:169: FutureWarning: You are using torch.load with weights_only=False (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for weights_only will be flipped to True. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via torch.serialization.add_safe_globals. We recommend you start setting weights_only=True for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature. checkpoint = torch.load(sugar_checkpoint_path, map_location=nerfmodel.device) Use min to initialize scales. Initialized radiuses for 3D Gauss Rasterizer Coarse model loaded. Coarse model parameters: _points torch.Size([157485, 3]) True all_densities torch.Size([157485, 1]) True _scales torch.Size([157485, 3]) True _quaternions torch.Size([157485, 4]) True _sh_coordinates_dc torch.Size([157485, 1, 3]) True _sh_coordinates_rest torch.Size([157485, 15, 3]) True Number of gaussians: 157485 Opacities min/max/mean: tensor(9.2172e-05, device='cuda:0') tensor(1., device='cuda:0') tensor(0.5398, device='cuda:0') Quantile 0.0: 9.217214392265305e-05 Quantile 0.1: 0.004669577814638615 Quantile 0.2: 0.013865726068615913 Quantile 0.3: 0.04103592783212662 Quantile 0.4: 0.20630957186222076 Quantile 0.5: 0.6525238752365112 Quantile 0.6: 0.9831106066703796 Quantile 0.7: 0.999570906162262 Quantile 0.8: 0.9998905658721924 Quantile 0.9: 0.9999686479568481

Starting pruning low opacity gaussians... WARNING! During optimization, you should use a densifier to prune low opacity points. This function does not preserve the state of an optimizer, and sets requires_grad=False to all parameters. Number of gaussians left: 83901 Opacities min/max/mean: tensor(0.5001, device='cuda:0') tensor(1., device='cuda:0') tensor(0.9445, device='cuda:0') Quantile 0.0: 0.5000557899475098 Quantile 0.1: 0.7435584664344788 Quantile 0.2: 0.9352741837501526 Quantile 0.3: 0.9963169097900391 Quantile 0.4: 0.9993656277656555 Quantile 0.5: 0.9997476935386658 Quantile 0.6: 0.9998724460601807 Quantile 0.7: 0.9999315738677979 Quantile 0.8: 0.9999656677246094 Quantile 0.9: 0.9999862909317017 Processing frame 0/81... Current point cloud for level 0.1 has 0 points. Current point cloud for level 0.3 has 0 points. Current point cloud for level 0.5 has 0 points. Processing frame 30/81... Current point cloud for level 0.1 has 3703710 points. Current point cloud for level 0.3 has 3703710 points. Current point cloud for level 0.5 has 3703710 points. Processing frame 60/81... Current point cloud for level 0.1 has 7407420 points. Current point cloud for level 0.3 has 7407420 points. Current point cloud for level 0.5 has 7407420 points.

========== Processing surface level 0.1 ========== Final point cloud for level 0.1 has 10000017 points. Using default, camera based bounding box. Centering bounding box. Foreground points: torch.Size([5434350, 3]) torch.Size([5434350, 3]) torch.Size([5434350, 3]) Background points: torch.Size([3322087, 3]) torch.Size([3322087, 3]) torch.Size([3322087, 3])

-----Foreground mesh----- Computing points, colors and normals... Cleaning Point Cloud... Finished computing points, colors and normals. Now computing mesh... [WARNING] /root/Open3D/build/poisson/src/ext_poisson/PoissonRecon/Src/FEMTree.Initialize.inl (Line 193) Initialize Found bad data: 18092 Removing vertices with low densities...

-----Background mesh----- Computing points, colors and normals... Cleaning Point Cloud... Finished computing points, colors and normals. Now computing mesh... [WARNING] /root/Open3D/build/poisson/src/ext_poisson/PoissonRecon/Src/FEMTree.Initialize.inl (Line 193) Initialize Found bad data: 467 Removing vertices with low densities... Finished computing meshes. Foreground mesh: TriangleMesh with 1068544 points and 2112688 triangles. Background mesh: TriangleMesh with 2051134 points and 4027950 triangles.

-----Decimating and cleaning meshes-----

Processing decimation target: 200000 Decimating foreground mesh... Finished decimating foreground mesh. Decimating background mesh... Finished decimating background mesh. Cleaning mesh... Merging foreground and background meshes. Projecting mesh on surface points to recover better details... Segmentation fault